diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:24:48 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:24:48 +0000 |
commit | cca66b9ec4e494c1d919bff0f71a820d8afab1fa (patch) | |
tree | 146f39ded1c938019e1ed42d30923c2ac9e86789 /src/3rdparty/adaptagrams/libcola/tests | |
parent | Initial commit. (diff) | |
download | inkscape-upstream/1.2.2.tar.xz inkscape-upstream/1.2.2.zip |
Adding upstream version 1.2.2.upstream/1.2.2upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
43 files changed, 39085 insertions, 0 deletions
diff --git a/src/3rdparty/adaptagrams/libcola/tests/FixedRelativeConstraint01.cpp b/src/3rdparty/adaptagrams/libcola/tests/FixedRelativeConstraint01.cpp new file mode 100755 index 0000000..378219e --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/FixedRelativeConstraint01.cpp @@ -0,0 +1,51 @@ +#include <vector> +#include "libcola/cola.h" +using namespace cola; +int main(void) { + CompoundConstraints ccs; + std::vector<Edge> es; + double defaultEdgeLength=40; + std::vector<vpsc::Rectangle*> rs; + vpsc::Rectangle *rect = nullptr; + std::vector<unsigned> fixedShapes; + + double textW = 100; + double textH = 10; + double circleW = 5; + double circleH = 5; + + rect = new vpsc::Rectangle(303-circleW, 303+circleW, 300-circleH, 300+circleH); + rs.push_back(rect); + fixedShapes.push_back(rs.size() - 1); + + rect = new vpsc::Rectangle(310-circleW, 310+circleW, 302-circleH, 302+circleH); + rs.push_back(rect); + fixedShapes.push_back(rs.size() - 1); + + rect = new vpsc::Rectangle(313-circleW, 313+circleW, 297-circleH, 297+circleH); + rs.push_back(rect); + fixedShapes.push_back(rs.size() - 1); + + rect = new vpsc::Rectangle(300-textW, 300+textW, 300-textH, 300+textH); + rs.push_back(rect); + + rect = new vpsc::Rectangle(310-textW, 310+textW, 305-textH, 305+textH); + rs.push_back(rect); + + rect = new vpsc::Rectangle(317-textW, 317+textW, 295-textH, 295+textH); + rs.push_back(rect); + + ConstrainedFDLayout alg(rs, es, defaultEdgeLength); + alg.setAvoidNodeOverlaps(true); + + ccs.push_back(new FixedRelativeConstraint(rs, fixedShapes, true)); + alg.setConstraints(ccs); + + alg.makeFeasible(); + + // Can be used to output a "libcola-debug.svg" file: + //alg.outputInstanceToSVG(); + alg.freeAssociatedObjects(); + + return 0; +}; diff --git a/src/3rdparty/adaptagrams/libcola/tests/Makefile.am b/src/3rdparty/adaptagrams/libcola/tests/Makefile.am new file mode 100644 index 0000000..a73ff82 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/Makefile.am @@ -0,0 +1,68 @@ +AM_CPPFLAGS = -I$(top_srcdir) $(CAIROMM_CFLAGS) + +LDADD = \ + $(top_builddir)/libvpsc/libvpsc.la \ + $(top_builddir)/libtopology/libtopology.la \ + $(top_builddir)/libcola/libcola.la \ + $(top_builddir)/libavoid/libavoid.la \ + $(CAIROMM_LIBS) + +check_PROGRAMS = random_graph page_bounds constrained unsatisfiable invalid makefeasible rectclustershapecontainment FixedRelativeConstraint01 StillOverlap01 StillOverlap02 shortest_paths rectangularClusters01 overlappingClusters01 overlappingClusters02 overlappingClusters04 initialOverlap +#check_PROGRAMS = unconstrained constrained containment shortest_paths connected_components large_graph convex_hull scale_free trees random_graph large_graph topology boundary planar #resize +#check_PROGRAMS = topology boundary planar resize resizealignment + +# problem_SOURCES = problem.cpp + +initialOverlap_SOURCES = initialOverlap.cpp + +overlappingClusters01_SOURCES = overlappingClusters01.cpp +overlappingClusters02_SOURCES = overlappingClusters02.cpp +overlappingClusters04_SOURCES = overlappingClusters04.cpp + +rectangularClusters01_SOURCES = rectangularClusters01.cpp + +StillOverlap01_SOURCES = StillOverlap01.cpp +StillOverlap02_SOURCES = StillOverlap02.cpp + +FixedRelativeConstraint01_SOURCES = FixedRelativeConstraint01.cpp + +rectclustershapecontainment_SOURCES = rectclustershapecontainment.cpp + +random_graph_SOURCES = random_graph.cpp + +page_bounds_SOURCES = page_bounds.cpp + +constrained_SOURCES = constrained.cpp + +unsatisfiable_SOURCES = unsatisfiable.cpp + +invalid_SOURCES = invalid.cpp + +makefeasible_LDADD = $(LDADD) $(top_srcdir)/libavoid/libavoid.la +makefeasible_SOURCES = makefeasible02.cpp + +shortest_paths_SOURCES = shortest_paths.cpp +#unconstrained_SOURCES = unconstrained.cpp +#containment_SOURCES = containment.cpp +#topology_SOURCES = topology.cpp +#boundary_SOURCES = boundary.cpp +#resize_SOURCES = resize.cpp +#resizealignment_SOURCES = resizealignment.cpp +#planar_SOURCES = planar.cpp +#connected_components_SOURCES = connected_components.cpp +# test Requires boost +#sparse_matrix_SOURCES = sparse_matrix.cpp +#convex_hull_SOURCES = convex_hull.cpp +#convex_hull_LDADD = $(LDADD) -lcairo -lcairomm-1.0 +#aarontest_SOURCES = aarontest.cpp +#aarontest_LDADD = $(top_srcdir)/libcola/libcola.la $(top_builddir)/libvpsc/libvpsc.la -lcairo -lcairomm-1.0 +#qo1_SOURCES = qo1.c +#qo1_LDADD = -L$(mosek_home)/bin -lmosek -lguide -limf +#small_graph_SOURCES = small_graph.cpp +#large_graph_SOURCES = large_graph.cpp +#gml_graph_LDADD = $(common_LDADD) /usr/lib/libboost_regex.so +#gml_graph_SOURCES = gml_graph.cpp +#scale_free_SOURCES = scale_free.cpp +#trees_SOURCES = trees.cpp + +TESTS = $(check_PROGRAMS) diff --git a/src/3rdparty/adaptagrams/libcola/tests/StillOverlap01.cpp b/src/3rdparty/adaptagrams/libcola/tests/StillOverlap01.cpp new file mode 100755 index 0000000..1b87767 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/StillOverlap01.cpp @@ -0,0 +1,221 @@ +#include <vector> +#include "libcola/cola.h" +using namespace cola; +int main(void) { + CompoundConstraints ccs; + std::vector<Edge> es; + double defaultEdgeLength=40; + std::vector<vpsc::Rectangle*> rs; + vpsc::Rectangle *rect = nullptr; + + rect = new vpsc::Rectangle(210, 240, 83.5, 113.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(210, 240, 125.5, 155.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(377, 407, 43.5, 73.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(251, 281, 43.5, 73.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(110, 140, 43.5, 73.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(29, 79, 55.5, 105.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(427, 477, 32.5, 82.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(300, 350, 32.5, 82.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(171, 221, 32.5, 82.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(33, 83, 115.5, 165.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(522, 572, 115.5, 165.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(519, 569, 35.5, 85.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(192, 258, 123.5, 173.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(192, 258, 65.5, 115.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(359, 425, -16.5, 33.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(233, 299, -16.5, 33.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(154, 220, 33.5, 83.5); + rs.push_back(rect); + + AlignmentConstraint *alignment140600592030544 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140600592030544->addShape(1, 0); + alignment140600592030544->addShape(0, 0); + ccs.push_back(alignment140600592030544); + + AlignmentConstraint *alignment140600592030848 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140600592030848->addShape(2, 0); + ccs.push_back(alignment140600592030848); + + AlignmentConstraint *alignment140600592031040 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140600592031040->addShape(3, 0); + ccs.push_back(alignment140600592031040); + + AlignmentConstraint *alignment140600592031168 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140600592031168->addShape(4, 0); + ccs.push_back(alignment140600592031168); + + AlignmentConstraint *alignment140600592031296 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140600592031296->addShape(5, 0); + ccs.push_back(alignment140600592031296); + + AlignmentConstraint *alignment140600592031456 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140600592031456->addShape(6, 0); + ccs.push_back(alignment140600592031456); + + AlignmentConstraint *alignment140600592031616 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140600592031616->addShape(7, 0); + ccs.push_back(alignment140600592031616); + + AlignmentConstraint *alignment140600592031776 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140600592031776->addShape(8, 0); + ccs.push_back(alignment140600592031776); + + AlignmentConstraint *alignment140600592031936 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140600592031936->addShape(9, 0); + ccs.push_back(alignment140600592031936); + + AlignmentConstraint *alignment140600592032240 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140600592032240->addShape(10, 0); + ccs.push_back(alignment140600592032240); + + AlignmentConstraint *alignment140600592032400 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140600592032400->addShape(11, 0); + ccs.push_back(alignment140600592032400); + + SeparationConstraint *separation140600592044112 = new SeparationConstraint(vpsc::XDIM, alignment140600592031296, alignment140600592031936, 4, false); + ccs.push_back(separation140600592044112); + + SeparationConstraint *separation140600592045280 = new SeparationConstraint(vpsc::XDIM, alignment140600592031936, alignment140600592031168, 67, false); + ccs.push_back(separation140600592045280); + + SeparationConstraint *separation140600592045376 = new SeparationConstraint(vpsc::XDIM, alignment140600592031168, alignment140600592031776, 71, false); + ccs.push_back(separation140600592045376); + + SeparationConstraint *separation140600592045520 = new SeparationConstraint(vpsc::XDIM, alignment140600592031776, alignment140600592030544, 29, false); + ccs.push_back(separation140600592045520); + + SeparationConstraint *separation140600592045696 = new SeparationConstraint(vpsc::XDIM, alignment140600592030544, alignment140600592031040, 41, false); + ccs.push_back(separation140600592045696); + + SeparationConstraint *separation140600592045872 = new SeparationConstraint(vpsc::XDIM, alignment140600592031040, alignment140600592031616, 59, false); + ccs.push_back(separation140600592045872); + + SeparationConstraint *separation140600592043472 = new SeparationConstraint(vpsc::XDIM, alignment140600592031616, alignment140600592030848, 67, false); + ccs.push_back(separation140600592043472); + + SeparationConstraint *separation140600592043648 = new SeparationConstraint(vpsc::XDIM, alignment140600592030848, alignment140600592031456, 60, false); + ccs.push_back(separation140600592043648); + + SeparationConstraint *separation140600592043824 = new SeparationConstraint(vpsc::XDIM, alignment140600592031456, alignment140600592032400, 92, false); + ccs.push_back(separation140600592043824); + + SeparationConstraint *separation140600592046048 = new SeparationConstraint(vpsc::XDIM, alignment140600592032400, alignment140600592032240, 3, false); + ccs.push_back(separation140600592046048); + + AlignmentConstraint *alignment140600592044208 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140600592044208->addShape(0, 0); + ccs.push_back(alignment140600592044208); + + AlignmentConstraint *alignment140600592044368 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140600592044368->addShape(5, 0); + ccs.push_back(alignment140600592044368); + + AlignmentConstraint *alignment140600592044528 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140600592044528->addShape(1, 0); + alignment140600592044528->addShape(9, 0); + alignment140600592044528->addShape(10, 0); + ccs.push_back(alignment140600592044528); + + AlignmentConstraint *alignment140600592044752 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140600592044752->addShape(6, 0); + alignment140600592044752->addShape(4, 0); + alignment140600592044752->addShape(7, 0); + alignment140600592044752->addShape(8, 0); + alignment140600592044752->addShape(3, 0); + alignment140600592044752->addShape(11, 0); + alignment140600592044752->addShape(2, 0); + ccs.push_back(alignment140600592044752); + + SeparationConstraint *separation140600592045088 = new SeparationConstraint(vpsc::YDIM, alignment140600592044752, alignment140600592044368, 22.1429, false); + ccs.push_back(separation140600592045088); + + SeparationConstraint *separation140600590330720 = new SeparationConstraint(vpsc::YDIM, alignment140600592044368, alignment140600592044208, 18, false); + ccs.push_back(separation140600590330720); + + SeparationConstraint *separation140600590330896 = new SeparationConstraint(vpsc::YDIM, alignment140600592044208, alignment140600592044528, 42, false); + ccs.push_back(separation140600590330896); + + AlignmentConstraint *alignment140600590331072 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140600590331072->addShape(0, 0); + alignment140600590331072->addShape(12, 0); + ccs.push_back(alignment140600590331072); + + SeparationConstraint *separation140600590331376 = new SeparationConstraint(vpsc::YDIM, 0, 12, 50, true); + ccs.push_back(separation140600590331376); + + AlignmentConstraint *alignment140600590331520 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140600590331520->addShape(1, 0); + alignment140600590331520->addShape(13, 0); + ccs.push_back(alignment140600590331520); + + SeparationConstraint *separation140600590331744 = new SeparationConstraint(vpsc::YDIM, 1, 13, -50, true); + ccs.push_back(separation140600590331744); + + AlignmentConstraint *alignment140600590331888 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140600590331888->addShape(2, 0); + alignment140600590331888->addShape(14, 0); + ccs.push_back(alignment140600590331888); + + SeparationConstraint *separation140600590332112 = new SeparationConstraint(vpsc::YDIM, 2, 14, -50, true); + ccs.push_back(separation140600590332112); + + AlignmentConstraint *alignment140600592043200 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140600592043200->addShape(3, 0); + alignment140600592043200->addShape(15, 0); + ccs.push_back(alignment140600592043200); + + SeparationConstraint *separation140600590332784 = new SeparationConstraint(vpsc::YDIM, 3, 15, -50, true); + ccs.push_back(separation140600590332784); + + AlignmentConstraint *alignment140600590332880 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140600590332880->addShape(4, 0); + alignment140600590332880->addShape(16, 0); + ccs.push_back(alignment140600590332880); + + SeparationConstraint *separation140600590333104 = new SeparationConstraint(vpsc::XDIM, 4, 16, 62, true); + ccs.push_back(separation140600590333104); + + ConstrainedFDLayout alg(rs, es, defaultEdgeLength); + alg.setAvoidNodeOverlaps(true); + RootCluster *cluster140600590333360 = new RootCluster(); + alg.setClusterHierarchy(cluster140600590333360); + alg.setConstraints(ccs); + alg.makeFeasible(); + alg.run(); + alg.outputInstanceToSVG("test-StillOverlap01"); + alg.freeAssociatedObjects(); + return 0; +}; + diff --git a/src/3rdparty/adaptagrams/libcola/tests/StillOverlap02.cpp b/src/3rdparty/adaptagrams/libcola/tests/StillOverlap02.cpp new file mode 100755 index 0000000..c45eef6 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/StillOverlap02.cpp @@ -0,0 +1,1863 @@ +#include <vector> +#include "libcola/cola.h" +using namespace cola; +int main(void) { + CompoundConstraints ccs; + std::vector<Edge> es; + double defaultEdgeLength=40; + std::vector<vpsc::Rectangle*> rs; + vpsc::Rectangle *rect = nullptr; + + rect = new vpsc::Rectangle(80.8448, 110.845, -23.9565, 6.04346); + rs.push_back(rect); + + rect = new vpsc::Rectangle(-121.155, 128.845, -212.957, -142.957); + rs.push_back(rect); + + rect = new vpsc::Rectangle(209.095, 239.095, -389.957, -359.957); + rs.push_back(rect); + + rect = new vpsc::Rectangle(209.095, 239.095, -240.957, -210.957); + rs.push_back(rect); + + rect = new vpsc::Rectangle(274.428, 304.428, -130.957, -100.957); + rs.push_back(rect); + + rect = new vpsc::Rectangle(140.845, 170.845, -78.9565, -48.9565); + rs.push_back(rect); + + rect = new vpsc::Rectangle(80.8448, 110.845, -55.9565, -25.9565); + rs.push_back(rect); + + rect = new vpsc::Rectangle(501.428, 531.428, -232.623, -202.623); + rs.push_back(rect); + + rect = new vpsc::Rectangle(501.428, 531.428, -140.623, -110.623); + rs.push_back(rect); + + rect = new vpsc::Rectangle(485.428, 515.428, -33.3565, -3.35654); + rs.push_back(rect); + + rect = new vpsc::Rectangle(737.928, 767.928, -133.957, -103.957); + rs.push_back(rect); + + rect = new vpsc::Rectangle(140.845, 170.845, 314.043, 344.043); + rs.push_back(rect); + + rect = new vpsc::Rectangle(375.428, 405.428, 191.443, 221.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(443.428, 473.428, 202.243, 232.243); + rs.push_back(rect); + + rect = new vpsc::Rectangle(558.428, 588.428, 136.777, 166.777); + rs.push_back(rect); + + rect = new vpsc::Rectangle(634.214, 664.214, 136.777, 166.777); + rs.push_back(rect); + + rect = new vpsc::Rectangle(764.214, 794.214, 136.777, 166.777); + rs.push_back(rect); + + rect = new vpsc::Rectangle(819.095, 849.095, 156.443, 186.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(853.595, 883.595, 76.0435, 106.043); + rs.push_back(rect); + + rect = new vpsc::Rectangle(711.928, 741.928, 202.243, 232.243); + rs.push_back(rect); + + rect = new vpsc::Rectangle(542.428, 572.428, 280.443, 310.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(296.428, 326.428, 440.943, 470.943); + rs.push_back(rect); + + rect = new vpsc::Rectangle(202.428, 232.428, 693.943, 723.943); + rs.push_back(rect); + + rect = new vpsc::Rectangle(407.428, 473.428, 685.943, 735.943); + rs.push_back(rect); + + rect = new vpsc::Rectangle(375.428, 405.428, 693.943, 723.943); + rs.push_back(rect); + + rect = new vpsc::Rectangle(542.428, 572.428, 632.443, 662.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(517.428, 547.428, 444.443, 474.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(566.928, 596.928, 444.443, 474.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(879.345, 909.345, 280.443, 310.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(879.345, 909.345, 478.443, 508.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(836.095, 866.095, 332.443, 362.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(797.928, 827.928, 436.443, 466.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(55.8448, 85.8448, 507.443, 537.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(375.428, 405.428, 1026.76, 1056.76); + rs.push_back(rect); + + rect = new vpsc::Rectangle(375.428, 405.428, 1074.76, 1104.76); + rs.push_back(rect); + + rect = new vpsc::Rectangle(-102.489, -72.4885, 1051.76, 1081.76); + rs.push_back(rect); + + rect = new vpsc::Rectangle(797.928, 827.928, 802.515, 832.515); + rs.push_back(rect); + + rect = new vpsc::Rectangle(839.928, 1079.93, 198.443, 268.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(768, 1008, 844.515, 914.515); + rs.push_back(rect); + + rect = new vpsc::Rectangle(626.928, 656.928, 972.765, 1002.76); + rs.push_back(rect); + + rect = new vpsc::Rectangle(426.956, 456.956, 972.765, 1002.76); + rs.push_back(rect); + + rect = new vpsc::Rectangle(224.428, 254.428, 972.765, 1002.76); + rs.push_back(rect); + + rect = new vpsc::Rectangle(375.428, 405.428, 870.765, 900.765); + rs.push_back(rect); + + rect = new vpsc::Rectangle(255.428, 285.428, 870.765, 900.765); + rs.push_back(rect); + + rect = new vpsc::Rectangle(744.928, 774.928, 332.443, 362.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(30, 354, -347.957, -302.957); + rs.push_back(rect); + + rect = new vpsc::Rectangle(-183.905, 137.095, 68.0435, 252.043); + rs.push_back(rect); + + rect = new vpsc::Rectangle(375.428, 405.428, 530.443, 560.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(375.428, 405.428, 332.443, 362.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(1.84481, 31.8448, 870.765, 900.765); + rs.push_back(rect); + + rect = new vpsc::Rectangle(127.095, 157.095, 870.765, 900.765); + rs.push_back(rect); + + rect = new vpsc::Rectangle(991.345, 1021.34, 478.443, 508.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(991.345, 1021.34, 600.443, 630.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(38.8448, 68.8448, 693.943, 723.943); + rs.push_back(rect); + + rect = new vpsc::Rectangle(-58.1552, -28.1552, 768.765, 798.765); + rs.push_back(rect); + + rect = new vpsc::Rectangle(130.845, 180.845, -399.957, -349.957); + rs.push_back(rect); + + rect = new vpsc::Rectangle(130.845, 180.845, -250.957, -200.957); + rs.push_back(rect); + + rect = new vpsc::Rectangle(-112.489, -62.4885, -43.3565, 6.64346); + rs.push_back(rect); + + rect = new vpsc::Rectangle(289.428, 339.428, 192.243, 242.243); + rs.push_back(rect); + + rect = new vpsc::Rectangle(532.428, 582.428, 192.243, 242.243); + rs.push_back(rect); + + rect = new vpsc::Rectangle(567.428, 617.428, -150.623, -100.623); + rs.push_back(rect); + + rect = new vpsc::Rectangle(843.595, 893.595, -150.623, -100.623); + rs.push_back(rect); + + rect = new vpsc::Rectangle(616.928, 666.928, -43.3565, 6.64346); + rs.push_back(rect); + + rect = new vpsc::Rectangle(787.928, 837.928, -43.3565, 6.64346); + rs.push_back(rect); + + rect = new vpsc::Rectangle(869.345, 919.345, 520.443, 570.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(289.428, 339.428, 322.443, 372.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(130.845, 180.845, 430.943, 480.943); + rs.push_back(rect); + + rect = new vpsc::Rectangle(869.345, 919.345, 374.443, 424.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(286.428, 336.428, 683.943, 733.943); + rs.push_back(rect); + + rect = new vpsc::Rectangle(130.845, 180.845, 520.443, 570.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(130.845, 180.845, 1116.76, 1166.76); + rs.push_back(rect); + + rect = new vpsc::Rectangle(676.928, 726.928, 962.765, 1012.76); + rs.push_back(rect); + + rect = new vpsc::Rectangle(520.428, 570.428, 962.765, 1012.76); + rs.push_back(rect); + + rect = new vpsc::Rectangle(336.428, 386.428, 962.765, 1012.76); + rs.push_back(rect); + + rect = new vpsc::Rectangle(676.928, 726.928, 860.765, 910.765); + rs.push_back(rect); + + rect = new vpsc::Rectangle(130.845, 180.845, 1064.76, 1114.76); + rs.push_back(rect); + + rect = new vpsc::Rectangle(425.428, 475.428, 860.765, 910.765); + rs.push_back(rect); + + rect = new vpsc::Rectangle(305.428, 355.428, 860.765, 910.765); + rs.push_back(rect); + + rect = new vpsc::Rectangle(787.928, 837.928, 1064.76, 1114.76); + rs.push_back(rect); + + rect = new vpsc::Rectangle(532.428, 582.428, 520.443, 570.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(787.928, 837.928, 192.243, 242.243); + rs.push_back(rect); + + rect = new vpsc::Rectangle(295.428, 345.428, 520.443, 570.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(475.428, 525.428, 683.943, 733.943); + rs.push_back(rect); + + rect = new vpsc::Rectangle(113.095, 163.095, 683.943, 733.943); + rs.push_back(rect); + + rect = new vpsc::Rectangle(-19.1552, 30.8448, 520.443, 570.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(295.428, 345.428, 572.443, 622.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(295.428, 345.428, 631.943, 681.943); + rs.push_back(rect); + + rect = new vpsc::Rectangle(289.428, 339.428, -43.3565, 6.64346); + rs.push_back(rect); + + rect = new vpsc::Rectangle(177.428, 227.428, 860.765, 910.765); + rs.push_back(rect); + + rect = new vpsc::Rectangle(289.428, 339.428, -250.957, -200.957); + rs.push_back(rect); + + rect = new vpsc::Rectangle(532.428, 582.428, 322.443, 372.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(787.928, 837.928, 622.443, 672.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(556.928, 606.928, 860.765, 910.765); + rs.push_back(rect); + + rect = new vpsc::Rectangle(139.095, 189.095, 66.0435, 116.043); + rs.push_back(rect); + + rect = new vpsc::Rectangle(-68.1552, -18.1552, 683.943, 733.943); + rs.push_back(rect); + + rect = new vpsc::Rectangle(425.428, 475.428, 758.765, 808.765); + rs.push_back(rect); + + rect = new vpsc::Rectangle(177.428, 227.428, 758.765, 808.765); + rs.push_back(rect); + + rect = new vpsc::Rectangle(51.8448, 101.845, 860.765, 910.765); + rs.push_back(rect); + + rect = new vpsc::Rectangle(-68.1552, -18.1552, 860.765, 910.765); + rs.push_back(rect); + + rect = new vpsc::Rectangle(305.428, 355.428, 758.765, 808.765); + rs.push_back(rect); + + rect = new vpsc::Rectangle(616.928, 666.928, 218.443, 268.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(981.345, 1031.34, 520.443, 570.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(981.345, 1031.34, 656.943, 706.943); + rs.push_back(rect); + + rect = new vpsc::Rectangle(592.428, 839.428, 486.443, 556.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(626.928, 656.928, 596.443, 626.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(616.928, 666.928, 656.943, 706.943); + rs.push_back(rect); + + rect = new vpsc::Rectangle(616.928, 666.928, 750.515, 800.515); + rs.push_back(rect); + + rect = new vpsc::Rectangle(626.928, 656.928, 717.515, 747.515); + rs.push_back(rect); + + rect = new vpsc::Rectangle(209.095, 239.095, 76.0435, 106.043); + rs.push_back(rect); + + rect = new vpsc::Rectangle(62.8448, 128.845, 16.0435, 66.0435); + rs.push_back(rect); + + rect = new vpsc::Rectangle(191.095, 257.095, -449.957, -399.957); + rs.push_back(rect); + + rect = new vpsc::Rectangle(191.095, 257.095, -300.957, -250.957); + rs.push_back(rect); + + rect = new vpsc::Rectangle(194.428, 260.428, -140.957, -90.9565); + rs.push_back(rect); + + rect = new vpsc::Rectangle(184.845, 250.845, -88.9565, -38.9565); + rs.push_back(rect); + + rect = new vpsc::Rectangle(62.8448, 128.845, -115.957, -65.9565); + rs.push_back(rect); + + rect = new vpsc::Rectangle(483.428, 549.428, -292.623, -242.623); + rs.push_back(rect); + + rect = new vpsc::Rectangle(483.428, 549.428, -200.623, -150.623); + rs.push_back(rect); + + rect = new vpsc::Rectangle(467.428, 533.428, -93.3565, -43.3565); + rs.push_back(rect); + + rect = new vpsc::Rectangle(719.928, 785.928, -93.9565, -43.9565); + rs.push_back(rect); + + rect = new vpsc::Rectangle(122.845, 188.845, 254.043, 304.043); + rs.push_back(rect); + + rect = new vpsc::Rectangle(357.428, 423.428, 131.443, 181.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(425.428, 491.428, 142.243, 192.243); + rs.push_back(rect); + + rect = new vpsc::Rectangle(540.428, 606.428, 76.7768, 126.777); + rs.push_back(rect); + + rect = new vpsc::Rectangle(616.214, 682.214, 76.7768, 126.777); + rs.push_back(rect); + + rect = new vpsc::Rectangle(684.214, 750.214, 126.777, 176.777); + rs.push_back(rect); + + rect = new vpsc::Rectangle(863.095, 929.095, 146.443, 196.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(897.595, 963.595, 66.0435, 116.043); + rs.push_back(rect); + + rect = new vpsc::Rectangle(693.928, 759.928, 242.243, 292.243); + rs.push_back(rect); + + rect = new vpsc::Rectangle(586.428, 652.428, 270.443, 320.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(278.428, 344.428, 380.943, 430.943); + rs.push_back(rect); + + rect = new vpsc::Rectangle(184.428, 250.428, 633.943, 683.943); + rs.push_back(rect); + + rect = new vpsc::Rectangle(357.428, 423.428, 633.943, 683.943); + rs.push_back(rect); + + rect = new vpsc::Rectangle(524.428, 590.428, 572.443, 622.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(437.428, 503.428, 434.443, 484.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(610.928, 676.928, 434.443, 484.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(923.345, 989.345, 270.443, 320.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(923.345, 989.345, 468.443, 518.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(880.095, 946.095, 322.443, 372.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(841.928, 907.928, 426.443, 476.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(37.8448, 103.845, 447.443, 497.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(357.428, 423.428, 1066.76, 1116.76); + rs.push_back(rect); + + rect = new vpsc::Rectangle(357.428, 423.428, 1014.76, 1064.76); + rs.push_back(rect); + + rect = new vpsc::Rectangle(-58.4885, 7.51148, 1041.76, 1091.76); + rs.push_back(rect); + + rect = new vpsc::Rectangle(841.928, 907.928, 792.515, 842.515); + rs.push_back(rect); + + rect = new vpsc::Rectangle(608.928, 674.928, 912.765, 962.765); + rs.push_back(rect); + + rect = new vpsc::Rectangle(408.956, 474.956, 912.765, 962.765); + rs.push_back(rect); + + rect = new vpsc::Rectangle(268.428, 334.428, 962.765, 1012.76); + rs.push_back(rect); + + rect = new vpsc::Rectangle(357.428, 423.428, 810.765, 860.765); + rs.push_back(rect); + + rect = new vpsc::Rectangle(237.428, 303.428, 810.765, 860.765); + rs.push_back(rect); + + rect = new vpsc::Rectangle(664.928, 730.928, 322.443, 372.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(357.428, 423.428, 470.443, 520.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(357.428, 423.428, 272.443, 322.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(-16.1552, 49.8448, 810.765, 860.765); + rs.push_back(rect); + + rect = new vpsc::Rectangle(109.095, 175.095, 810.765, 860.765); + rs.push_back(rect); + + rect = new vpsc::Rectangle(1035.34, 1101.34, 468.443, 518.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(1035.34, 1101.34, 590.443, 640.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(20.8448, 86.8448, 633.943, 683.943); + rs.push_back(rect); + + rect = new vpsc::Rectangle(-14.1552, 51.8448, 758.765, 808.765); + rs.push_back(rect); + + rect = new vpsc::Rectangle(670.928, 736.928, 586.443, 636.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(670.928, 736.928, 707.515, 757.515); + rs.push_back(rect); + + rect = new vpsc::Rectangle(191.095, 257.095, 16.0435, 66.0435); + rs.push_back(rect); + + rect = new vpsc::Rectangle(58.8448, 128.845, -192.957, -142.957); + rs.push_back(rect); + + rect = new vpsc::Rectangle(839.928, 909.928, 218.443, 268.443); + rs.push_back(rect); + + rect = new vpsc::Rectangle(768.5, 838.5, 844.515, 894.515); + rs.push_back(rect); + + rect = new vpsc::Rectangle(67.0948, 137.095, 150.043, 200.043); + rs.push_back(rect); + + rect = new vpsc::Rectangle(67.0948, 137.095, 202.043, 252.043); + rs.push_back(rect); + + rect = new vpsc::Rectangle(-36.9052, 13.0948, 182.043, 252.043); + rs.push_back(rect); + + rect = new vpsc::Rectangle(15.0948, 65.0948, 182.043, 252.043); + rs.push_back(rect); + + rect = new vpsc::Rectangle(592.428, 662.428, 486.443, 536.443); + rs.push_back(rect); + + AlignmentConstraint *alignment1114387328 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1114387328->addShape(4, 0); + ccs.push_back(alignment1114387328); + + AlignmentConstraint *alignment1103856272 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1103856272->addShape(0, 0); + alignment1103856272->addShape(6, 0); + ccs.push_back(alignment1103856272); + + AlignmentConstraint *alignment1102536224 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1102536224->addShape(7, 0); + alignment1102536224->addShape(8, 0); + ccs.push_back(alignment1102536224); + + AlignmentConstraint *alignment1113412976 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1113412976->addShape(10, 0); + ccs.push_back(alignment1113412976); + + AlignmentConstraint *alignment1103859296 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1103859296->addShape(13, 0); + ccs.push_back(alignment1103859296); + + AlignmentConstraint *alignment1108560576 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1108560576->addShape(14, 0); + ccs.push_back(alignment1108560576); + + AlignmentConstraint *alignment1102536400 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1102536400->addShape(15, 0); + ccs.push_back(alignment1102536400); + + AlignmentConstraint *alignment1102857472 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1102857472->addShape(16, 0); + ccs.push_back(alignment1102857472); + + AlignmentConstraint *alignment1103856000 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1103856000->addShape(17, 0); + ccs.push_back(alignment1103856000); + + AlignmentConstraint *alignment1103638512 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1103638512->addShape(19, 0); + ccs.push_back(alignment1103638512); + + AlignmentConstraint *alignment1103638608 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1103638608->addShape(22, 0); + ccs.push_back(alignment1103638608); + + AlignmentConstraint *alignment1095948608 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1095948608->addShape(26, 0); + ccs.push_back(alignment1095948608); + + AlignmentConstraint *alignment1095948704 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1095948704->addShape(30, 0); + ccs.push_back(alignment1095948704); + + AlignmentConstraint *alignment1109826288 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1109826288->addShape(32, 0); + ccs.push_back(alignment1109826288); + + AlignmentConstraint *alignment1109826384 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1109826384->addShape(40, 0); + ccs.push_back(alignment1109826384); + + AlignmentConstraint *alignment1110086352 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1110086352->addShape(41, 0); + ccs.push_back(alignment1110086352); + + AlignmentConstraint *alignment1110086480 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1110086480->addShape(43, 0); + ccs.push_back(alignment1110086480); + + AlignmentConstraint *alignment1100384896 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100384896->addShape(44, 0); + ccs.push_back(alignment1100384896); + + AlignmentConstraint *alignment1100385056 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100385056->addShape(33, 0); + alignment1100385056->addShape(42, 0); + alignment1100385056->addShape(48, 0); + alignment1100385056->addShape(12, 0); + alignment1100385056->addShape(47, 0); + alignment1100385056->addShape(34, 0); + alignment1100385056->addShape(24, 0); + ccs.push_back(alignment1100385056); + + AlignmentConstraint *alignment1114389776 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1114389776->addShape(49, 0); + ccs.push_back(alignment1114389776); + + AlignmentConstraint *alignment1114389936 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1114389936->addShape(50, 0); + ccs.push_back(alignment1114389936); + + AlignmentConstraint *alignment1103858368 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1103858368->addShape(53, 0); + ccs.push_back(alignment1103858368); + + AlignmentConstraint *alignment1103858496 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1103858496->addShape(35, 0); + alignment1103858496->addShape(57, 0); + ccs.push_back(alignment1103858496); + + AlignmentConstraint *alignment1103858720 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1103858720->addShape(60, 0); + ccs.push_back(alignment1103858720); + + AlignmentConstraint *alignment1103857616 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1103857616->addShape(61, 0); + alignment1103857616->addShape(18, 0); + ccs.push_back(alignment1103857616); + + AlignmentConstraint *alignment1103857840 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1103857840->addShape(64, 0); + alignment1103857840->addShape(28, 0); + alignment1103857840->addShape(67, 0); + alignment1103857840->addShape(29, 0); + ccs.push_back(alignment1103857840); + + AlignmentConstraint *alignment1103858032 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1103858032->addShape(68, 0); + alignment1103858032->addShape(21, 0); + ccs.push_back(alignment1103858032); + + AlignmentConstraint *alignment1103741312 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1103741312->addShape(72, 0); + ccs.push_back(alignment1103741312); + + AlignmentConstraint *alignment1103741440 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1103741440->addShape(73, 0); + ccs.push_back(alignment1103741440); + + AlignmentConstraint *alignment1103741600 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1103741600->addShape(71, 0); + alignment1103741600->addShape(74, 0); + ccs.push_back(alignment1103741600); + + AlignmentConstraint *alignment1103741824 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1103741824->addShape(66, 0); + alignment1103741824->addShape(56, 0); + alignment1103741824->addShape(70, 0); + alignment1103741824->addShape(69, 0); + alignment1103741824->addShape(5, 0); + alignment1103741824->addShape(11, 0); + alignment1103741824->addShape(55, 0); + alignment1103741824->addShape(75, 0); + ccs.push_back(alignment1103741824); + + AlignmentConstraint *alignment1103742144 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1103742144->addShape(9, 0); + alignment1103742144->addShape(82, 0); + ccs.push_back(alignment1103742144); + + AlignmentConstraint *alignment1103743632 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1103743632->addShape(83, 0); + ccs.push_back(alignment1103743632); + + AlignmentConstraint *alignment1113416080 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1113416080->addShape(84, 0); + ccs.push_back(alignment1113416080); + + AlignmentConstraint *alignment1113416240 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1113416240->addShape(81, 0); + alignment1113416240->addShape(85, 0); + alignment1113416240->addShape(86, 0); + ccs.push_back(alignment1113416240); + + AlignmentConstraint *alignment1103744288 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1103744288->addShape(87, 0); + alignment1103744288->addShape(89, 0); + alignment1103744288->addShape(58, 0); + alignment1103744288->addShape(65, 0); + ccs.push_back(alignment1103744288); + + AlignmentConstraint *alignment1103744448 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1103744448->addShape(79, 0); + alignment1103744448->addShape(59, 0); + alignment1103744448->addShape(90, 0); + alignment1103744448->addShape(25, 0); + alignment1103744448->addShape(20, 0); + ccs.push_back(alignment1103744448); + + AlignmentConstraint *alignment1103744704 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1103744704->addShape(80, 0); + alignment1103744704->addShape(91, 0); + alignment1103744704->addShape(63, 0); + alignment1103744704->addShape(31, 0); + alignment1103744704->addShape(78, 0); + alignment1103744704->addShape(36, 0); + ccs.push_back(alignment1103744704); + + AlignmentConstraint *alignment1103744992 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1103744992->addShape(27, 0); + alignment1103744992->addShape(92, 0); + ccs.push_back(alignment1103744992); + + AlignmentConstraint *alignment1114376272 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1114376272->addShape(93, 0); + ccs.push_back(alignment1114376272); + + AlignmentConstraint *alignment1114376400 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1114376400->addShape(95, 0); + alignment1114376400->addShape(76, 0); + ccs.push_back(alignment1114376400); + + AlignmentConstraint *alignment1114376624 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1114376624->addShape(96, 0); + alignment1114376624->addShape(88, 0); + ccs.push_back(alignment1114376624); + + AlignmentConstraint *alignment1114376816 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1114376816->addShape(97, 0); + ccs.push_back(alignment1114376816); + + AlignmentConstraint *alignment1114376944 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1114376944->addShape(94, 0); + alignment1114376944->addShape(54, 0); + alignment1114376944->addShape(98, 0); + ccs.push_back(alignment1114376944); + + AlignmentConstraint *alignment1114377168 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1114377168->addShape(77, 0); + alignment1114377168->addShape(99, 0); + ccs.push_back(alignment1114377168); + + AlignmentConstraint *alignment1114377360 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1114377360->addShape(51, 0); + alignment1114377360->addShape(101, 0); + alignment1114377360->addShape(102, 0); + alignment1114377360->addShape(52, 0); + ccs.push_back(alignment1114377360); + + AlignmentConstraint *alignment1114377600 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1114377600->addShape(107, 0); + alignment1114377600->addShape(62, 0); + alignment1114377600->addShape(105, 0); + alignment1114377600->addShape(106, 0); + alignment1114377600->addShape(104, 0); + alignment1114377600->addShape(39, 0); + alignment1114377600->addShape(100, 0); + ccs.push_back(alignment1114377600); + + AlignmentConstraint *alignment1114378048 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1114378048->addShape(3, 0); + alignment1114378048->addShape(2, 0); + alignment1114378048->addShape(108, 0); + ccs.push_back(alignment1114378048); + + SeparationConstraint *separation1114378272 = new SeparationConstraint(vpsc::XDIM, alignment1103858496, alignment1114376944, 44.3333, false); + ccs.push_back(separation1114378272); + + SeparationConstraint *separation1114378416 = new SeparationConstraint(vpsc::XDIM, alignment1114376944, alignment1113416080, 24.6667, false); + ccs.push_back(separation1114378416); + + SeparationConstraint *separation1114378592 = new SeparationConstraint(vpsc::XDIM, alignment1113416080, alignment1114389776, 11, false); + ccs.push_back(separation1114378592); + + SeparationConstraint *separation1114378768 = new SeparationConstraint(vpsc::XDIM, alignment1114389776, alignment1103858368, 23, false); + ccs.push_back(separation1114378768); + + SeparationConstraint *separation1114378944 = new SeparationConstraint(vpsc::XDIM, alignment1103858368, alignment1109826288, 17, false); + ccs.push_back(separation1114378944); + + SeparationConstraint *separation1114379120 = new SeparationConstraint(vpsc::XDIM, alignment1109826288, alignment1114376816, 6, false); + ccs.push_back(separation1114379120); + + SeparationConstraint *separation1114379296 = new SeparationConstraint(vpsc::XDIM, alignment1114376816, alignment1103856272, 19, false); + ccs.push_back(separation1114379296); + + SeparationConstraint *separation1114379472 = new SeparationConstraint(vpsc::XDIM, alignment1103856272, alignment1103743632, 14, false); + ccs.push_back(separation1114379472); + + SeparationConstraint *separation1114379648 = new SeparationConstraint(vpsc::XDIM, alignment1103743632, alignment1114389936, 4, false); + ccs.push_back(separation1114379648); + + SeparationConstraint *separation1114379824 = new SeparationConstraint(vpsc::XDIM, alignment1114389936, alignment1103741824, 13.75, false); + ccs.push_back(separation1114379824); + + SeparationConstraint *separation1114380000 = new SeparationConstraint(vpsc::XDIM, alignment1103741824, alignment1114376272, 8.25, false); + ccs.push_back(separation1114380000); + + SeparationConstraint *separation1114380176 = new SeparationConstraint(vpsc::XDIM, alignment1114376272, alignment1114376624, 23, false); + ccs.push_back(separation1114380176); + + SeparationConstraint *separation1114380352 = new SeparationConstraint(vpsc::XDIM, alignment1114376624, alignment1103638608, 15, false); + ccs.push_back(separation1114380352); + + SeparationConstraint *separation1114380528 = new SeparationConstraint(vpsc::XDIM, alignment1103638608, alignment1114378048, 6.66667, false); + ccs.push_back(separation1114380528); + + SeparationConstraint *separation1114380704 = new SeparationConstraint(vpsc::XDIM, alignment1114378048, alignment1110086352, 15.3333, false); + ccs.push_back(separation1114380704); + + SeparationConstraint *separation1114380880 = new SeparationConstraint(vpsc::XDIM, alignment1110086352, alignment1110086480, 8, false); + ccs.push_back(separation1114380880); + + SeparationConstraint *separation1114381056 = new SeparationConstraint(vpsc::XDIM, alignment1110086480, alignment1114387328, 5, false); + ccs.push_back(separation1114381056); + + SeparationConstraint *separation1116666144 = new SeparationConstraint(vpsc::XDIM, alignment1114387328, alignment1103858032, 22, false); + ccs.push_back(separation1116666144); + + SeparationConstraint *separation1103743760 = new SeparationConstraint(vpsc::XDIM, alignment1103858032, alignment1103744288, 3, false); + ccs.push_back(separation1103743760); + + SeparationConstraint *separation1103743904 = new SeparationConstraint(vpsc::XDIM, alignment1103744288, alignment1113416240, 6, false); + ccs.push_back(separation1103743904); + + SeparationConstraint *separation1103744080 = new SeparationConstraint(vpsc::XDIM, alignment1113416240, alignment1114377168, 10, false); + ccs.push_back(separation1103744080); + + SeparationConstraint *separation1114381232 = new SeparationConstraint(vpsc::XDIM, alignment1114377168, alignment1103741440, 17, false); + ccs.push_back(separation1114381232); + + SeparationConstraint *separation1114381376 = new SeparationConstraint(vpsc::XDIM, alignment1103741440, alignment1100385056, 29, false); + ccs.push_back(separation1114381376); + + SeparationConstraint *separation1114381552 = new SeparationConstraint(vpsc::XDIM, alignment1100385056, alignment1109826384, 41, false); + ccs.push_back(separation1114381552); + + SeparationConstraint *separation1114381728 = new SeparationConstraint(vpsc::XDIM, alignment1109826384, alignment1114376400, 4, false); + ccs.push_back(separation1114381728); + + SeparationConstraint *separation1114370064 = new SeparationConstraint(vpsc::XDIM, alignment1114376400, alignment1103859296, 3, false); + ccs.push_back(separation1114370064); + + SeparationConstraint *separation1114370240 = new SeparationConstraint(vpsc::XDIM, alignment1103859296, alignment1103742144, 7, false); + ccs.push_back(separation1114370240); + + SeparationConstraint *separation1114370416 = new SeparationConstraint(vpsc::XDIM, alignment1103742144, alignment1102536224, 16, false); + ccs.push_back(separation1114370416); + + SeparationConstraint *separation1114370592 = new SeparationConstraint(vpsc::XDIM, alignment1102536224, alignment1095948608, 16, false); + ccs.push_back(separation1114370592); + + SeparationConstraint *separation1114370768 = new SeparationConstraint(vpsc::XDIM, alignment1095948608, alignment1103741312, 13, false); + ccs.push_back(separation1114370768); + + SeparationConstraint *separation1114370944 = new SeparationConstraint(vpsc::XDIM, alignment1103741312, alignment1103744448, 12, false); + ccs.push_back(separation1114370944); + + SeparationConstraint *separation1114371120 = new SeparationConstraint(vpsc::XDIM, alignment1103744448, alignment1108560576, 16, false); + ccs.push_back(separation1114371120); + + SeparationConstraint *separation1114371296 = new SeparationConstraint(vpsc::XDIM, alignment1108560576, alignment1103744992, 8.5, false); + ccs.push_back(separation1114371296); + + SeparationConstraint *separation1114371472 = new SeparationConstraint(vpsc::XDIM, alignment1103744992, alignment1103858720, 10.5, false); + ccs.push_back(separation1114371472); + + SeparationConstraint *separation1114371648 = new SeparationConstraint(vpsc::XDIM, alignment1103858720, alignment1114377600, 23.7143, false); + ccs.push_back(separation1114371648); + + SeparationConstraint *separation1114371824 = new SeparationConstraint(vpsc::XDIM, alignment1114377600, alignment1102536400, 7.28571, false); + ccs.push_back(separation1114371824); + + SeparationConstraint *separation1114372000 = new SeparationConstraint(vpsc::XDIM, alignment1102536400, alignment1103741600, 49, false); + ccs.push_back(separation1114372000); + + SeparationConstraint *separation1114372176 = new SeparationConstraint(vpsc::XDIM, alignment1103741600, alignment1103638512, 25, false); + ccs.push_back(separation1114372176); + + SeparationConstraint *separation1114372352 = new SeparationConstraint(vpsc::XDIM, alignment1103638512, alignment1113412976, 26, false); + ccs.push_back(separation1114372352); + + SeparationConstraint *separation1114372528 = new SeparationConstraint(vpsc::XDIM, alignment1113412976, alignment1100384896, 7, false); + ccs.push_back(separation1114372528); + + SeparationConstraint *separation1114372704 = new SeparationConstraint(vpsc::XDIM, alignment1100384896, alignment1102857472, 15, false); + ccs.push_back(separation1114372704); + + SeparationConstraint *separation1114372880 = new SeparationConstraint(vpsc::XDIM, alignment1102857472, alignment1103744704, 21.8333, false); + ccs.push_back(separation1114372880); + + SeparationConstraint *separation1114373056 = new SeparationConstraint(vpsc::XDIM, alignment1103744704, alignment1103856000, 21.1667, false); + ccs.push_back(separation1114373056); + + SeparationConstraint *separation1114373232 = new SeparationConstraint(vpsc::XDIM, alignment1103856000, alignment1095948704, 17, false); + ccs.push_back(separation1114373232); + + SeparationConstraint *separation1114373408 = new SeparationConstraint(vpsc::XDIM, alignment1095948704, alignment1103857616, 17.5, false); + ccs.push_back(separation1114373408); + + SeparationConstraint *separation1114373584 = new SeparationConstraint(vpsc::XDIM, alignment1103857616, alignment1103857840, 25.75, false); + ccs.push_back(separation1114373584); + + SeparationConstraint *separation1114373760 = new SeparationConstraint(vpsc::XDIM, alignment1103857840, alignment1114377360, 52.25, false); + ccs.push_back(separation1114373760); + + AlignmentConstraint *alignment1114373936 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114373936->addShape(0, 0); + ccs.push_back(alignment1114373936); + + AlignmentConstraint *alignment1114374096 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114374096->addShape(4, 0); + ccs.push_back(alignment1114374096); + + AlignmentConstraint *alignment1114374256 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114374256->addShape(5, 0); + ccs.push_back(alignment1114374256); + + AlignmentConstraint *alignment1114374416 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114374416->addShape(6, 0); + ccs.push_back(alignment1114374416); + + AlignmentConstraint *alignment1114374576 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114374576->addShape(7, 0); + ccs.push_back(alignment1114374576); + + AlignmentConstraint *alignment1114374736 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114374736->addShape(10, 0); + ccs.push_back(alignment1114374736); + + AlignmentConstraint *alignment1114374896 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114374896->addShape(11, 0); + ccs.push_back(alignment1114374896); + + AlignmentConstraint *alignment1114375056 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114375056->addShape(12, 0); + ccs.push_back(alignment1114375056); + + AlignmentConstraint *alignment1114375216 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114375216->addShape(15, 0); + alignment1114375216->addShape(16, 0); + alignment1114375216->addShape(14, 0); + ccs.push_back(alignment1114375216); + + AlignmentConstraint *alignment1114375488 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114375488->addShape(17, 0); + ccs.push_back(alignment1114375488); + + AlignmentConstraint *alignment1114375616 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114375616->addShape(26, 0); + alignment1114375616->addShape(27, 0); + ccs.push_back(alignment1114375616); + + AlignmentConstraint *alignment1114375840 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114375840->addShape(28, 0); + alignment1114375840->addShape(20, 0); + ccs.push_back(alignment1114375840); + + AlignmentConstraint *alignment1114429984 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114429984->addShape(31, 0); + ccs.push_back(alignment1114429984); + + AlignmentConstraint *alignment1114430112 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114430112->addShape(32, 0); + ccs.push_back(alignment1114430112); + + AlignmentConstraint *alignment1114430272 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114430272->addShape(33, 0); + ccs.push_back(alignment1114430272); + + AlignmentConstraint *alignment1114430432 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114430432->addShape(35, 0); + ccs.push_back(alignment1114430432); + + AlignmentConstraint *alignment1114430592 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114430592->addShape(36, 0); + ccs.push_back(alignment1114430592); + + AlignmentConstraint *alignment1114430752 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114430752->addShape(51, 0); + alignment1114430752->addShape(29, 0); + ccs.push_back(alignment1114430752); + + AlignmentConstraint *alignment1114430976 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114430976->addShape(52, 0); + ccs.push_back(alignment1114430976); + + AlignmentConstraint *alignment1114431104 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114431104->addShape(55, 0); + alignment1114431104->addShape(2, 0); + ccs.push_back(alignment1114431104); + + AlignmentConstraint *alignment1114431328 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114431328->addShape(61, 0); + alignment1114431328->addShape(60, 0); + alignment1114431328->addShape(8, 0); + ccs.push_back(alignment1114431328); + + AlignmentConstraint *alignment1114431568 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114431568->addShape(66, 0); + alignment1114431568->addShape(21, 0); + ccs.push_back(alignment1114431568); + + AlignmentConstraint *alignment1114431760 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114431760->addShape(67, 0); + ccs.push_back(alignment1114431760); + + AlignmentConstraint *alignment1114431888 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114431888->addShape(70, 0); + ccs.push_back(alignment1114431888); + + AlignmentConstraint *alignment1114432048 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114432048->addShape(71, 0); + alignment1114432048->addShape(73, 0); + alignment1114432048->addShape(40, 0); + alignment1114432048->addShape(72, 0); + alignment1114432048->addShape(41, 0); + alignment1114432048->addShape(39, 0); + ccs.push_back(alignment1114432048); + + AlignmentConstraint *alignment1114432464 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114432464->addShape(78, 0); + alignment1114432464->addShape(75, 0); + alignment1114432464->addShape(34, 0); + ccs.push_back(alignment1114432464); + + AlignmentConstraint *alignment1114432688 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114432688->addShape(13, 0); + alignment1114432688->addShape(19, 0); + alignment1114432688->addShape(58, 0); + alignment1114432688->addShape(80, 0); + alignment1114432688->addShape(59, 0); + ccs.push_back(alignment1114432688); + + AlignmentConstraint *alignment1114433040 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114433040->addShape(85, 0); + ccs.push_back(alignment1114433040); + + AlignmentConstraint *alignment1114433200 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114433200->addShape(86, 0); + ccs.push_back(alignment1114433200); + + AlignmentConstraint *alignment1114433360 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114433360->addShape(87, 0); + alignment1114433360->addShape(9, 0); + alignment1114433360->addShape(62, 0); + alignment1114433360->addShape(63, 0); + alignment1114433360->addShape(57, 0); + ccs.push_back(alignment1114433360); + + AlignmentConstraint *alignment1114433696 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114433696->addShape(56, 0); + alignment1114433696->addShape(3, 0); + alignment1114433696->addShape(89, 0); + ccs.push_back(alignment1114433696); + + AlignmentConstraint *alignment1114433920 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114433920->addShape(65, 0); + alignment1114433920->addShape(48, 0); + alignment1114433920->addShape(30, 0); + alignment1114433920->addShape(90, 0); + alignment1114433920->addShape(44, 0); + ccs.push_back(alignment1114433920); + + AlignmentConstraint *alignment1114434272 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114434272->addShape(91, 0); + alignment1114434272->addShape(25, 0); + ccs.push_back(alignment1114434272); + + AlignmentConstraint *alignment1114434496 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114434496->addShape(68, 0); + alignment1114434496->addShape(94, 0); + alignment1114434496->addShape(83, 0); + alignment1114434496->addShape(22, 0); + alignment1114434496->addShape(53, 0); + alignment1114434496->addShape(24, 0); + alignment1114434496->addShape(82, 0); + ccs.push_back(alignment1114434496); + + AlignmentConstraint *alignment1114436928 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114436928->addShape(97, 0); + alignment1114436928->addShape(43, 0); + alignment1114436928->addShape(49, 0); + alignment1114436928->addShape(77, 0); + alignment1114436928->addShape(42, 0); + alignment1114436928->addShape(74, 0); + alignment1114436928->addShape(76, 0); + alignment1114436928->addShape(50, 0); + alignment1114436928->addShape(88, 0); + alignment1114436928->addShape(92, 0); + alignment1114436928->addShape(98, 0); + ccs.push_back(alignment1114436928); + + AlignmentConstraint *alignment1114369232 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114369232->addShape(96, 0); + alignment1114369232->addShape(95, 0); + alignment1114369232->addShape(99, 0); + alignment1114369232->addShape(54, 0); + ccs.push_back(alignment1114369232); + + AlignmentConstraint *alignment1114369456 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114369456->addShape(100, 0); + ccs.push_back(alignment1114369456); + + AlignmentConstraint *alignment1114369616 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114369616->addShape(81, 0); + alignment1114369616->addShape(101, 0); + alignment1114369616->addShape(69, 0); + alignment1114369616->addShape(79, 0); + alignment1114369616->addShape(64, 0); + alignment1114369616->addShape(47, 0); + alignment1114369616->addShape(84, 0); + ccs.push_back(alignment1114369616); + + AlignmentConstraint *alignment1114437392 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114437392->addShape(104, 0); + ccs.push_back(alignment1114437392); + + AlignmentConstraint *alignment1100848528 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1100848528->addShape(102, 0); + alignment1100848528->addShape(105, 0); + ccs.push_back(alignment1100848528); + + AlignmentConstraint *alignment1100848752 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1100848752->addShape(106, 0); + ccs.push_back(alignment1100848752); + + AlignmentConstraint *alignment1100848880 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1100848880->addShape(107, 0); + ccs.push_back(alignment1100848880); + + AlignmentConstraint *alignment1100849040 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1100849040->addShape(18, 0); + alignment1100849040->addShape(93, 0); + alignment1100849040->addShape(108, 0); + ccs.push_back(alignment1100849040); + + SeparationConstraint *separation1100849264 = new SeparationConstraint(vpsc::YDIM, alignment1114431104, alignment1114433696, 30.1667, false); + ccs.push_back(separation1100849264); + + SeparationConstraint *separation1100849360 = new SeparationConstraint(vpsc::YDIM, alignment1114433696, alignment1114374576, 8.33333, false); + ccs.push_back(separation1100849360); + + SeparationConstraint *separation1100849536 = new SeparationConstraint(vpsc::YDIM, alignment1114374576, alignment1114431328, 18.3333, false); + ccs.push_back(separation1100849536); + + SeparationConstraint *separation1100849712 = new SeparationConstraint(vpsc::YDIM, alignment1114431328, alignment1114374736, 6.66667, false); + ccs.push_back(separation1100849712); + + SeparationConstraint *separation1100849888 = new SeparationConstraint(vpsc::YDIM, alignment1114374736, alignment1114374096, 3, false); + ccs.push_back(separation1100849888); + + SeparationConstraint *separation1100850064 = new SeparationConstraint(vpsc::YDIM, alignment1114374096, alignment1114374256, 3, false); + ccs.push_back(separation1100850064); + + SeparationConstraint *separation1100850240 = new SeparationConstraint(vpsc::YDIM, alignment1114374256, alignment1114374416, 23, false); + ccs.push_back(separation1100850240); + + SeparationConstraint *separation1100850416 = new SeparationConstraint(vpsc::YDIM, alignment1114374416, alignment1114433360, 11.6, false); + ccs.push_back(separation1100850416); + + SeparationConstraint *separation1100850592 = new SeparationConstraint(vpsc::YDIM, alignment1114433360, alignment1114373936, 9.4, false); + ccs.push_back(separation1100850592); + + SeparationConstraint *separation1100850768 = new SeparationConstraint(vpsc::YDIM, alignment1114373936, alignment1100849040, 18.6667, false); + ccs.push_back(separation1100850768); + + SeparationConstraint *separation1100850944 = new SeparationConstraint(vpsc::YDIM, alignment1100849040, alignment1114375216, 14.6667, false); + ccs.push_back(separation1100850944); + + SeparationConstraint *separation1100851120 = new SeparationConstraint(vpsc::YDIM, alignment1114375216, alignment1114375488, 19.6667, false); + ccs.push_back(separation1100851120); + + SeparationConstraint *separation1100851296 = new SeparationConstraint(vpsc::YDIM, alignment1114375488, alignment1114375056, 32, false); + ccs.push_back(separation1100851296); + + SeparationConstraint *separation1100851472 = new SeparationConstraint(vpsc::YDIM, alignment1114375056, alignment1114432688, 10.8, false); + ccs.push_back(separation1100851472); + + SeparationConstraint *separation1100851648 = new SeparationConstraint(vpsc::YDIM, alignment1114432688, alignment1114369456, 26.2, false); + ccs.push_back(separation1100851648); + + SeparationConstraint *separation1100851824 = new SeparationConstraint(vpsc::YDIM, alignment1114369456, alignment1114375840, 7.5, false); + ccs.push_back(separation1100851824); + + SeparationConstraint *separation1100852000 = new SeparationConstraint(vpsc::YDIM, alignment1114375840, alignment1114374896, 15.5, false); + ccs.push_back(separation1100852000); + + SeparationConstraint *separation1100852176 = new SeparationConstraint(vpsc::YDIM, alignment1114374896, alignment1114433920, 18.4, false); + ccs.push_back(separation1100852176); + + SeparationConstraint *separation1100852352 = new SeparationConstraint(vpsc::YDIM, alignment1114433920, alignment1114431760, 4.6, false); + ccs.push_back(separation1100852352); + + SeparationConstraint *separation1100852528 = new SeparationConstraint(vpsc::YDIM, alignment1114431760, alignment1114429984, 25, false); + ccs.push_back(separation1100852528); + + SeparationConstraint *separation1100852704 = new SeparationConstraint(vpsc::YDIM, alignment1114429984, alignment1114431568, 4.5, false); + ccs.push_back(separation1100852704); + + SeparationConstraint *separation1100852880 = new SeparationConstraint(vpsc::YDIM, alignment1114431568, alignment1114375616, 3.5, false); + ccs.push_back(separation1100852880); + + SeparationConstraint *separation1100853056 = new SeparationConstraint(vpsc::YDIM, alignment1114375616, alignment1114430752, 8, false); + ccs.push_back(separation1100853056); + + SeparationConstraint *separation1100853232 = new SeparationConstraint(vpsc::YDIM, alignment1114430752, alignment1114430112, 29, false); + ccs.push_back(separation1100853232); + + SeparationConstraint *separation1100853408 = new SeparationConstraint(vpsc::YDIM, alignment1114430112, alignment1114369616, 10.1429, false); + ccs.push_back(separation1100853408); + + SeparationConstraint *separation1100853584 = new SeparationConstraint(vpsc::YDIM, alignment1114369616, alignment1114433040, 24.8571, false); + ccs.push_back(separation1100853584); + + SeparationConstraint *separation1100853760 = new SeparationConstraint(vpsc::YDIM, alignment1114433040, alignment1114437392, 14, false); + ccs.push_back(separation1100853760); + + SeparationConstraint *separation1100853936 = new SeparationConstraint(vpsc::YDIM, alignment1114437392, alignment1114430976, 4, false); + ccs.push_back(separation1100853936); + + SeparationConstraint *separation1100854112 = new SeparationConstraint(vpsc::YDIM, alignment1114430976, alignment1114434272, 6.5, false); + ccs.push_back(separation1100854112); + + SeparationConstraint *separation1100854288 = new SeparationConstraint(vpsc::YDIM, alignment1114434272, alignment1114433200, 9.5, false); + ccs.push_back(separation1100854288); + + SeparationConstraint *separation1100854464 = new SeparationConstraint(vpsc::YDIM, alignment1114433200, alignment1100848528, 25, false); + ccs.push_back(separation1100854464); + + SeparationConstraint *separation1100854640 = new SeparationConstraint(vpsc::YDIM, alignment1100848528, alignment1114434496, 9.42857, false); + ccs.push_back(separation1100854640); + + SeparationConstraint *separation1100854816 = new SeparationConstraint(vpsc::YDIM, alignment1114434496, alignment1100848880, 23.5714, false); + ccs.push_back(separation1100854816); + + SeparationConstraint *separation1100854992 = new SeparationConstraint(vpsc::YDIM, alignment1100848880, alignment1100848752, 43, false); + ccs.push_back(separation1100854992); + + SeparationConstraint *separation1100855168 = new SeparationConstraint(vpsc::YDIM, alignment1100848752, alignment1114369232, 8.25, false); + ccs.push_back(separation1100855168); + + SeparationConstraint *separation1100855344 = new SeparationConstraint(vpsc::YDIM, alignment1114369232, alignment1114430592, 33.75, false); + ccs.push_back(separation1100855344); + + SeparationConstraint *separation1100855520 = new SeparationConstraint(vpsc::YDIM, alignment1114430592, alignment1114436928, 36.3636, false); + ccs.push_back(separation1100855520); + + SeparationConstraint *separation1100855696 = new SeparationConstraint(vpsc::YDIM, alignment1114436928, alignment1114432048, 54.1364, false); + ccs.push_back(separation1100855696); + + SeparationConstraint *separation1100855872 = new SeparationConstraint(vpsc::YDIM, alignment1114432048, alignment1114430272, 40.5, false); + ccs.push_back(separation1100855872); + + SeparationConstraint *separation1100856048 = new SeparationConstraint(vpsc::YDIM, alignment1114430272, alignment1114430432, 25, false); + ccs.push_back(separation1100856048); + + SeparationConstraint *separation1100856224 = new SeparationConstraint(vpsc::YDIM, alignment1114430432, alignment1114432464, 17, false); + ccs.push_back(separation1100856224); + + SeparationConstraint *separation1100856400 = new SeparationConstraint(vpsc::YDIM, alignment1114432464, alignment1114431888, 33, false); + ccs.push_back(separation1100856400); + + AlignmentConstraint *alignment1100856576 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100856576->addShape(0, 0); + alignment1100856576->addShape(109, 0); + ccs.push_back(alignment1100856576); + + SeparationConstraint *separation1100856800 = new SeparationConstraint(vpsc::YDIM, 0, 109, 50, true); + ccs.push_back(separation1100856800); + + AlignmentConstraint *alignment1100856944 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100856944->addShape(2, 0); + alignment1100856944->addShape(110, 0); + ccs.push_back(alignment1100856944); + + SeparationConstraint *separation1100857168 = new SeparationConstraint(vpsc::YDIM, 2, 110, -50, true); + ccs.push_back(separation1100857168); + + AlignmentConstraint *alignment1100857312 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100857312->addShape(3, 0); + alignment1100857312->addShape(111, 0); + ccs.push_back(alignment1100857312); + + SeparationConstraint *separation1100857536 = new SeparationConstraint(vpsc::YDIM, 3, 111, -50, true); + ccs.push_back(separation1100857536); + + AlignmentConstraint *alignment1100857680 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1100857680->addShape(4, 0); + alignment1100857680->addShape(112, 0); + ccs.push_back(alignment1100857680); + + SeparationConstraint *separation1100857904 = new SeparationConstraint(vpsc::XDIM, 4, 112, -62, true); + ccs.push_back(separation1100857904); + + AlignmentConstraint *alignment1100858048 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1100858048->addShape(5, 0); + alignment1100858048->addShape(113, 0); + ccs.push_back(alignment1100858048); + + SeparationConstraint *separation1100858272 = new SeparationConstraint(vpsc::XDIM, 5, 113, 62, true); + ccs.push_back(separation1100858272); + + AlignmentConstraint *alignment1100858416 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100858416->addShape(6, 0); + alignment1100858416->addShape(114, 0); + ccs.push_back(alignment1100858416); + + SeparationConstraint *separation1100858640 = new SeparationConstraint(vpsc::YDIM, 6, 114, -50, true); + ccs.push_back(separation1100858640); + + AlignmentConstraint *alignment1100858784 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100858784->addShape(7, 0); + alignment1100858784->addShape(115, 0); + ccs.push_back(alignment1100858784); + + SeparationConstraint *separation1100859008 = new SeparationConstraint(vpsc::YDIM, 7, 115, -50, true); + ccs.push_back(separation1100859008); + + AlignmentConstraint *alignment1100859152 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100859152->addShape(8, 0); + alignment1100859152->addShape(116, 0); + ccs.push_back(alignment1100859152); + + SeparationConstraint *separation1100859376 = new SeparationConstraint(vpsc::YDIM, 8, 116, -50, true); + ccs.push_back(separation1100859376); + + AlignmentConstraint *alignment1100859520 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100859520->addShape(9, 0); + alignment1100859520->addShape(117, 0); + ccs.push_back(alignment1100859520); + + SeparationConstraint *separation1100859744 = new SeparationConstraint(vpsc::YDIM, 9, 117, -50, true); + ccs.push_back(separation1100859744); + + AlignmentConstraint *alignment1100859888 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100859888->addShape(10, 0); + alignment1100859888->addShape(118, 0); + ccs.push_back(alignment1100859888); + + SeparationConstraint *separation1100860112 = new SeparationConstraint(vpsc::YDIM, 10, 118, 50, true); + ccs.push_back(separation1100860112); + + AlignmentConstraint *alignment1100860256 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100860256->addShape(11, 0); + alignment1100860256->addShape(119, 0); + ccs.push_back(alignment1100860256); + + SeparationConstraint *separation1100860480 = new SeparationConstraint(vpsc::YDIM, 11, 119, -50, true); + ccs.push_back(separation1100860480); + + AlignmentConstraint *alignment1100860624 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100860624->addShape(12, 0); + alignment1100860624->addShape(120, 0); + ccs.push_back(alignment1100860624); + + SeparationConstraint *separation1100860848 = new SeparationConstraint(vpsc::YDIM, 12, 120, -50, true); + ccs.push_back(separation1100860848); + + AlignmentConstraint *alignment1100860992 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100860992->addShape(13, 0); + alignment1100860992->addShape(121, 0); + ccs.push_back(alignment1100860992); + + SeparationConstraint *separation1100861216 = new SeparationConstraint(vpsc::YDIM, 13, 121, -50, true); + ccs.push_back(separation1100861216); + + AlignmentConstraint *alignment1100861360 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100861360->addShape(14, 0); + alignment1100861360->addShape(122, 0); + ccs.push_back(alignment1100861360); + + SeparationConstraint *separation1100861584 = new SeparationConstraint(vpsc::YDIM, 14, 122, -50, true); + ccs.push_back(separation1100861584); + + AlignmentConstraint *alignment1100861728 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100861728->addShape(15, 0); + alignment1100861728->addShape(123, 0); + ccs.push_back(alignment1100861728); + + SeparationConstraint *separation1100861952 = new SeparationConstraint(vpsc::YDIM, 15, 123, -50, true); + ccs.push_back(separation1100861952); + + AlignmentConstraint *alignment1100862096 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1100862096->addShape(16, 0); + alignment1100862096->addShape(124, 0); + ccs.push_back(alignment1100862096); + + SeparationConstraint *separation1100862320 = new SeparationConstraint(vpsc::XDIM, 16, 124, -62, true); + ccs.push_back(separation1100862320); + + AlignmentConstraint *alignment1100862464 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1100862464->addShape(17, 0); + alignment1100862464->addShape(125, 0); + ccs.push_back(alignment1100862464); + + SeparationConstraint *separation1100862688 = new SeparationConstraint(vpsc::XDIM, 17, 125, 62, true); + ccs.push_back(separation1100862688); + + AlignmentConstraint *alignment1100862832 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1100862832->addShape(18, 0); + alignment1100862832->addShape(126, 0); + ccs.push_back(alignment1100862832); + + SeparationConstraint *separation1100863056 = new SeparationConstraint(vpsc::XDIM, 18, 126, 62, true); + ccs.push_back(separation1100863056); + + AlignmentConstraint *alignment1100863200 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100863200->addShape(19, 0); + alignment1100863200->addShape(127, 0); + ccs.push_back(alignment1100863200); + + SeparationConstraint *separation1100863424 = new SeparationConstraint(vpsc::YDIM, 19, 127, 50, true); + ccs.push_back(separation1100863424); + + AlignmentConstraint *alignment1100863568 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1100863568->addShape(20, 0); + alignment1100863568->addShape(128, 0); + ccs.push_back(alignment1100863568); + + SeparationConstraint *separation1100863792 = new SeparationConstraint(vpsc::XDIM, 20, 128, 62, true); + ccs.push_back(separation1100863792); + + AlignmentConstraint *alignment1100863936 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100863936->addShape(21, 0); + alignment1100863936->addShape(129, 0); + ccs.push_back(alignment1100863936); + + SeparationConstraint *separation1100864160 = new SeparationConstraint(vpsc::YDIM, 21, 129, -50, true); + ccs.push_back(separation1100864160); + + AlignmentConstraint *alignment1100864304 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100864304->addShape(22, 0); + alignment1100864304->addShape(130, 0); + ccs.push_back(alignment1100864304); + + SeparationConstraint *separation1100864528 = new SeparationConstraint(vpsc::YDIM, 22, 130, -50, true); + ccs.push_back(separation1100864528); + + AlignmentConstraint *alignment1100864672 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100864672->addShape(24, 0); + alignment1100864672->addShape(131, 0); + ccs.push_back(alignment1100864672); + + SeparationConstraint *separation1100864896 = new SeparationConstraint(vpsc::YDIM, 24, 131, -50, true); + ccs.push_back(separation1100864896); + + AlignmentConstraint *alignment1100865040 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100865040->addShape(25, 0); + alignment1100865040->addShape(132, 0); + ccs.push_back(alignment1100865040); + + SeparationConstraint *separation1100865264 = new SeparationConstraint(vpsc::YDIM, 25, 132, -50, true); + ccs.push_back(separation1100865264); + + AlignmentConstraint *alignment1100865408 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1100865408->addShape(26, 0); + alignment1100865408->addShape(133, 0); + ccs.push_back(alignment1100865408); + + SeparationConstraint *separation1100865632 = new SeparationConstraint(vpsc::XDIM, 26, 133, -62, true); + ccs.push_back(separation1100865632); + + AlignmentConstraint *alignment1100865776 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1100865776->addShape(27, 0); + alignment1100865776->addShape(134, 0); + ccs.push_back(alignment1100865776); + + SeparationConstraint *separation1100866000 = new SeparationConstraint(vpsc::XDIM, 27, 134, 62, true); + ccs.push_back(separation1100866000); + + AlignmentConstraint *alignment1100866144 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1100866144->addShape(28, 0); + alignment1100866144->addShape(135, 0); + ccs.push_back(alignment1100866144); + + SeparationConstraint *separation1100866368 = new SeparationConstraint(vpsc::XDIM, 28, 135, 62, true); + ccs.push_back(separation1100866368); + + AlignmentConstraint *alignment1100866512 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1100866512->addShape(29, 0); + alignment1100866512->addShape(136, 0); + ccs.push_back(alignment1100866512); + + SeparationConstraint *separation1100866736 = new SeparationConstraint(vpsc::XDIM, 29, 136, 62, true); + ccs.push_back(separation1100866736); + + AlignmentConstraint *alignment1100866880 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1100866880->addShape(30, 0); + alignment1100866880->addShape(137, 0); + ccs.push_back(alignment1100866880); + + SeparationConstraint *separation1100867104 = new SeparationConstraint(vpsc::XDIM, 30, 137, 62, true); + ccs.push_back(separation1100867104); + + AlignmentConstraint *alignment1100867248 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1100867248->addShape(31, 0); + alignment1100867248->addShape(138, 0); + ccs.push_back(alignment1100867248); + + SeparationConstraint *separation1100867472 = new SeparationConstraint(vpsc::XDIM, 31, 138, 62, true); + ccs.push_back(separation1100867472); + + AlignmentConstraint *alignment1100867616 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100867616->addShape(32, 0); + alignment1100867616->addShape(139, 0); + ccs.push_back(alignment1100867616); + + SeparationConstraint *separation1100867840 = new SeparationConstraint(vpsc::YDIM, 32, 139, -50, true); + ccs.push_back(separation1100867840); + + AlignmentConstraint *alignment1100867984 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100867984->addShape(33, 0); + alignment1100867984->addShape(140, 0); + ccs.push_back(alignment1100867984); + + SeparationConstraint *separation1100868208 = new SeparationConstraint(vpsc::YDIM, 33, 140, 50, true); + ccs.push_back(separation1100868208); + + AlignmentConstraint *alignment1100868352 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100868352->addShape(34, 0); + alignment1100868352->addShape(141, 0); + ccs.push_back(alignment1100868352); + + SeparationConstraint *separation1100868576 = new SeparationConstraint(vpsc::YDIM, 34, 141, -50, true); + ccs.push_back(separation1100868576); + + AlignmentConstraint *alignment1100868720 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1100868720->addShape(35, 0); + alignment1100868720->addShape(142, 0); + ccs.push_back(alignment1100868720); + + SeparationConstraint *separation1100868944 = new SeparationConstraint(vpsc::XDIM, 35, 142, 62, true); + ccs.push_back(separation1100868944); + + AlignmentConstraint *alignment1100869088 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1100869088->addShape(36, 0); + alignment1100869088->addShape(143, 0); + ccs.push_back(alignment1100869088); + + SeparationConstraint *separation1100869312 = new SeparationConstraint(vpsc::XDIM, 36, 143, 62, true); + ccs.push_back(separation1100869312); + + AlignmentConstraint *alignment1100869456 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100869456->addShape(39, 0); + alignment1100869456->addShape(144, 0); + ccs.push_back(alignment1100869456); + + SeparationConstraint *separation1100869680 = new SeparationConstraint(vpsc::YDIM, 39, 144, -50, true); + ccs.push_back(separation1100869680); + + AlignmentConstraint *alignment1100869824 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100869824->addShape(40, 0); + alignment1100869824->addShape(145, 0); + ccs.push_back(alignment1100869824); + + SeparationConstraint *separation1100870048 = new SeparationConstraint(vpsc::YDIM, 40, 145, -50, true); + ccs.push_back(separation1100870048); + + AlignmentConstraint *alignment1100870192 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1100870192->addShape(41, 0); + alignment1100870192->addShape(146, 0); + ccs.push_back(alignment1100870192); + + SeparationConstraint *separation1100870416 = new SeparationConstraint(vpsc::XDIM, 41, 146, 62, true); + ccs.push_back(separation1100870416); + + AlignmentConstraint *alignment1100870560 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100870560->addShape(42, 0); + alignment1100870560->addShape(147, 0); + ccs.push_back(alignment1100870560); + + SeparationConstraint *separation1100870784 = new SeparationConstraint(vpsc::YDIM, 42, 147, -50, true); + ccs.push_back(separation1100870784); + + AlignmentConstraint *alignment1114434864 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1114434864->addShape(43, 0); + alignment1114434864->addShape(148, 0); + ccs.push_back(alignment1114434864); + + SeparationConstraint *separation1114435088 = new SeparationConstraint(vpsc::YDIM, 43, 148, -50, true); + ccs.push_back(separation1114435088); + + AlignmentConstraint *alignment1114435232 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1114435232->addShape(44, 0); + alignment1114435232->addShape(149, 0); + ccs.push_back(alignment1114435232); + + SeparationConstraint *separation1114435456 = new SeparationConstraint(vpsc::XDIM, 44, 149, -62, true); + ccs.push_back(separation1114435456); + + AlignmentConstraint *alignment1114435600 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1114435600->addShape(47, 0); + alignment1114435600->addShape(150, 0); + ccs.push_back(alignment1114435600); + + SeparationConstraint *separation1114435824 = new SeparationConstraint(vpsc::YDIM, 47, 150, -50, true); + ccs.push_back(separation1114435824); + + AlignmentConstraint *alignment1114435968 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1114435968->addShape(48, 0); + alignment1114435968->addShape(151, 0); + ccs.push_back(alignment1114435968); + + SeparationConstraint *separation1114436192 = new SeparationConstraint(vpsc::YDIM, 48, 151, -50, true); + ccs.push_back(separation1114436192); + + AlignmentConstraint *alignment1114436336 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1114436336->addShape(49, 0); + alignment1114436336->addShape(152, 0); + ccs.push_back(alignment1114436336); + + SeparationConstraint *separation1114436560 = new SeparationConstraint(vpsc::YDIM, 49, 152, -50, true); + ccs.push_back(separation1114436560); + + AlignmentConstraint *alignment1114436704 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1114436704->addShape(50, 0); + alignment1114436704->addShape(153, 0); + ccs.push_back(alignment1114436704); + + SeparationConstraint *separation1100875040 = new SeparationConstraint(vpsc::YDIM, 50, 153, -50, true); + ccs.push_back(separation1100875040); + + AlignmentConstraint *alignment1100875184 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1100875184->addShape(51, 0); + alignment1100875184->addShape(154, 0); + ccs.push_back(alignment1100875184); + + SeparationConstraint *separation1100875408 = new SeparationConstraint(vpsc::XDIM, 51, 154, 62, true); + ccs.push_back(separation1100875408); + + AlignmentConstraint *alignment1100875552 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1100875552->addShape(52, 0); + alignment1100875552->addShape(155, 0); + ccs.push_back(alignment1100875552); + + SeparationConstraint *separation1100875776 = new SeparationConstraint(vpsc::XDIM, 52, 155, 62, true); + ccs.push_back(separation1100875776); + + AlignmentConstraint *alignment1100875920 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100875920->addShape(53, 0); + alignment1100875920->addShape(156, 0); + ccs.push_back(alignment1100875920); + + SeparationConstraint *separation1100876144 = new SeparationConstraint(vpsc::YDIM, 53, 156, -50, true); + ccs.push_back(separation1100876144); + + AlignmentConstraint *alignment1100876288 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1100876288->addShape(54, 0); + alignment1100876288->addShape(157, 0); + ccs.push_back(alignment1100876288); + + SeparationConstraint *separation1100876512 = new SeparationConstraint(vpsc::XDIM, 54, 157, 62, true); + ccs.push_back(separation1100876512); + + AlignmentConstraint *alignment1100876656 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1100876656->addShape(104, 0); + alignment1100876656->addShape(158, 0); + ccs.push_back(alignment1100876656); + + SeparationConstraint *separation1100876880 = new SeparationConstraint(vpsc::XDIM, 104, 158, 62, true); + ccs.push_back(separation1100876880); + + AlignmentConstraint *alignment1100877024 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment1100877024->addShape(107, 0); + alignment1100877024->addShape(159, 0); + ccs.push_back(alignment1100877024); + + SeparationConstraint *separation1100877248 = new SeparationConstraint(vpsc::XDIM, 107, 159, 62, true); + ccs.push_back(separation1100877248); + + AlignmentConstraint *alignment1100877392 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment1100877392->addShape(108, 0); + alignment1100877392->addShape(160, 0); + ccs.push_back(alignment1100877392); + + SeparationConstraint *separation1100877616 = new SeparationConstraint(vpsc::YDIM, 108, 160, -50, true); + ccs.push_back(separation1100877616); + + ConstrainedFDLayout alg(rs, es, defaultEdgeLength); + alg.setAvoidNodeOverlaps(true); + RootCluster *cluster1100877760 = new RootCluster(); + cluster1100877760->addChildNode(0); + cluster1100877760->addChildNode(2); + cluster1100877760->addChildNode(3); + cluster1100877760->addChildNode(4); + cluster1100877760->addChildNode(5); + cluster1100877760->addChildNode(6); + cluster1100877760->addChildNode(7); + cluster1100877760->addChildNode(8); + cluster1100877760->addChildNode(9); + cluster1100877760->addChildNode(10); + cluster1100877760->addChildNode(11); + cluster1100877760->addChildNode(12); + cluster1100877760->addChildNode(13); + cluster1100877760->addChildNode(14); + cluster1100877760->addChildNode(15); + cluster1100877760->addChildNode(16); + cluster1100877760->addChildNode(17); + cluster1100877760->addChildNode(18); + cluster1100877760->addChildNode(19); + cluster1100877760->addChildNode(20); + cluster1100877760->addChildNode(21); + cluster1100877760->addChildNode(22); + cluster1100877760->addChildNode(23); + cluster1100877760->addChildNode(24); + cluster1100877760->addChildNode(25); + cluster1100877760->addChildNode(26); + cluster1100877760->addChildNode(27); + cluster1100877760->addChildNode(28); + cluster1100877760->addChildNode(29); + cluster1100877760->addChildNode(30); + cluster1100877760->addChildNode(31); + cluster1100877760->addChildNode(32); + cluster1100877760->addChildNode(33); + cluster1100877760->addChildNode(34); + cluster1100877760->addChildNode(35); + cluster1100877760->addChildNode(36); + cluster1100877760->addChildNode(39); + cluster1100877760->addChildNode(40); + cluster1100877760->addChildNode(41); + cluster1100877760->addChildNode(42); + cluster1100877760->addChildNode(43); + cluster1100877760->addChildNode(44); + cluster1100877760->addChildNode(47); + cluster1100877760->addChildNode(48); + cluster1100877760->addChildNode(49); + cluster1100877760->addChildNode(50); + cluster1100877760->addChildNode(51); + cluster1100877760->addChildNode(52); + cluster1100877760->addChildNode(53); + cluster1100877760->addChildNode(54); + cluster1100877760->addChildNode(55); + cluster1100877760->addChildNode(56); + cluster1100877760->addChildNode(57); + cluster1100877760->addChildNode(58); + cluster1100877760->addChildNode(59); + cluster1100877760->addChildNode(60); + cluster1100877760->addChildNode(61); + cluster1100877760->addChildNode(62); + cluster1100877760->addChildNode(63); + cluster1100877760->addChildNode(64); + cluster1100877760->addChildNode(65); + cluster1100877760->addChildNode(66); + cluster1100877760->addChildNode(67); + cluster1100877760->addChildNode(68); + cluster1100877760->addChildNode(69); + cluster1100877760->addChildNode(70); + cluster1100877760->addChildNode(71); + cluster1100877760->addChildNode(72); + cluster1100877760->addChildNode(73); + cluster1100877760->addChildNode(74); + cluster1100877760->addChildNode(75); + cluster1100877760->addChildNode(76); + cluster1100877760->addChildNode(77); + cluster1100877760->addChildNode(78); + cluster1100877760->addChildNode(79); + cluster1100877760->addChildNode(80); + cluster1100877760->addChildNode(81); + cluster1100877760->addChildNode(82); + cluster1100877760->addChildNode(83); + cluster1100877760->addChildNode(84); + cluster1100877760->addChildNode(85); + cluster1100877760->addChildNode(86); + cluster1100877760->addChildNode(87); + cluster1100877760->addChildNode(88); + cluster1100877760->addChildNode(89); + cluster1100877760->addChildNode(90); + cluster1100877760->addChildNode(91); + cluster1100877760->addChildNode(92); + cluster1100877760->addChildNode(93); + cluster1100877760->addChildNode(94); + cluster1100877760->addChildNode(95); + cluster1100877760->addChildNode(96); + cluster1100877760->addChildNode(97); + cluster1100877760->addChildNode(98); + cluster1100877760->addChildNode(99); + cluster1100877760->addChildNode(100); + cluster1100877760->addChildNode(101); + cluster1100877760->addChildNode(102); + cluster1100877760->addChildNode(104); + cluster1100877760->addChildNode(105); + cluster1100877760->addChildNode(106); + cluster1100877760->addChildNode(107); + cluster1100877760->addChildNode(108); + cluster1100877760->addChildNode(109); + cluster1100877760->addChildNode(110); + cluster1100877760->addChildNode(111); + cluster1100877760->addChildNode(112); + cluster1100877760->addChildNode(113); + cluster1100877760->addChildNode(114); + cluster1100877760->addChildNode(115); + cluster1100877760->addChildNode(116); + cluster1100877760->addChildNode(117); + cluster1100877760->addChildNode(118); + cluster1100877760->addChildNode(119); + cluster1100877760->addChildNode(120); + cluster1100877760->addChildNode(121); + cluster1100877760->addChildNode(122); + cluster1100877760->addChildNode(123); + cluster1100877760->addChildNode(124); + cluster1100877760->addChildNode(125); + cluster1100877760->addChildNode(126); + cluster1100877760->addChildNode(127); + cluster1100877760->addChildNode(128); + cluster1100877760->addChildNode(129); + cluster1100877760->addChildNode(130); + cluster1100877760->addChildNode(131); + cluster1100877760->addChildNode(132); + cluster1100877760->addChildNode(133); + cluster1100877760->addChildNode(134); + cluster1100877760->addChildNode(135); + cluster1100877760->addChildNode(136); + cluster1100877760->addChildNode(137); + cluster1100877760->addChildNode(138); + cluster1100877760->addChildNode(139); + cluster1100877760->addChildNode(140); + cluster1100877760->addChildNode(141); + cluster1100877760->addChildNode(142); + cluster1100877760->addChildNode(143); + cluster1100877760->addChildNode(144); + cluster1100877760->addChildNode(145); + cluster1100877760->addChildNode(146); + cluster1100877760->addChildNode(147); + cluster1100877760->addChildNode(148); + cluster1100877760->addChildNode(149); + cluster1100877760->addChildNode(150); + cluster1100877760->addChildNode(151); + cluster1100877760->addChildNode(152); + cluster1100877760->addChildNode(153); + cluster1100877760->addChildNode(154); + cluster1100877760->addChildNode(155); + cluster1100877760->addChildNode(156); + cluster1100877760->addChildNode(157); + cluster1100877760->addChildNode(158); + cluster1100877760->addChildNode(159); + cluster1100877760->addChildNode(160); + RectangularCluster *cluster1100878032 = new RectangularCluster(); + cluster1100878032->addChildNode(161); + cluster1100877760->addChildCluster(cluster1100878032); + RectangularCluster *cluster1100878416 = new RectangularCluster(); + cluster1100878416->addChildNode(162); + cluster1100877760->addChildCluster(cluster1100878416); + RectangularCluster *cluster1100878800 = new RectangularCluster(); + cluster1100878800->addChildNode(163); + cluster1100877760->addChildCluster(cluster1100878800); + RectangularCluster *cluster1100879168 = new RectangularCluster(); + cluster1100877760->addChildCluster(cluster1100879168); + RectangularCluster *cluster1100879488 = new RectangularCluster(); + cluster1100879488->addChildNode(164); + cluster1100879488->addChildNode(165); + cluster1100879488->addChildNode(166); + cluster1100879488->addChildNode(167); + cluster1100877760->addChildCluster(cluster1100879488); + RectangularCluster *cluster1100879920 = new RectangularCluster(); + cluster1100879920->addChildNode(168); + cluster1100877760->addChildCluster(cluster1100879920); + alg.setClusterHierarchy(cluster1100877760); + alg.setConstraints(ccs); + alg.makeFeasible(); + alg.run(); + alg.outputInstanceToSVG("test-StillOverlap02"); + alg.freeAssociatedObjects(); + return 0; +}; diff --git a/src/3rdparty/adaptagrams/libcola/tests/boundary.cpp b/src/3rdparty/adaptagrams/libcola/tests/boundary.cpp new file mode 100644 index 0000000..18e962d --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/boundary.cpp @@ -0,0 +1,121 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + +/** \file boundary.cpp + * + * a clustered graph using libtopology to preserve the cluster boundary. + */ +/* +* Authors: +* Tim Dwyer <tgdwyer@gmail.com> +*/ +#include <iostream> +#include <iomanip> +#include <fstream> + +#include <vector> +#include <valarray> +#include <algorithm> +#include <float.h> +#include "graphlayouttest.h" +#include <libtopology/topology_graph.h> +#include <libproject/project.h> +using namespace std; +using namespace topology; + +Node* addNode( Nodes& vs, vpsc::Rectangle* r) { + Node *v = new Node(vs.size(), r); + vs.push_back(v); + return v; +} +void addToPath(EdgePoints& ps, Node *v, EdgePoint::RectIntersect i) { + ps.push_back(new EdgePoint(v,i)); +} +struct SetDesiredPos : public PreIteration { + SetDesiredPos(Locks& locks) : PreIteration(locks) {} +}; +struct Test : TestConvergence { + Test(const double d,const unsigned i,topology::Nodes& vs, topology::Edges& es,const string fname) : TestConvergence(d,i), vs(vs), es(es), fname(fname) {} + bool operator()(const double new_stress, valarray<double> & X, valarray<double> & Y) { + bool converged= TestConvergence::operator()(new_stress,X,Y); + if(converged) { + cerr << "stress="<<new_stress<<" iteration="<<iterations<<endl; + stringstream ss; + ss << fname << "-" << setfill('0') << setw(3) << iterations << ".svg"; + cerr << "writing file: " << ss.str() << endl; + writeFile(vs,es,ss.str()); + } + return converged; + } + double lastStress; + topology::Nodes& vs; + topology::Edges& es; + const string fname; +}; +void clusterBoundary() { + vector<cola::Edge> es; + vector<vpsc::Rectangle*> rs; + rs.push_back(new vpsc::Rectangle(395,449,155,189)); + rs.push_back(new vpsc::Rectangle(309,363,155,189)); + double idealLength=60; + // set up topology graph + topology::Nodes vs; + for(vector<Rectangle*>::iterator i = rs.begin(); i!=rs.end();++i) { + addNode(vs,*i); + } + Edges tes; + EdgePoints ps; + addToPath(ps,vs[1],EdgePoint::BL); + addToPath(ps,vs[0],EdgePoint::BR); + addToPath(ps,vs[0],EdgePoint::TR); + addToPath(ps,vs[1],EdgePoint::TL); + ps.push_back(ps[0]); + tes.push_back(new topology::Edge(idealLength, ps)); + + writeFile(vs,tes,"boundary-000.svg"); + + Locks locks; + locks.push_back(Lock(0,rs[0]->getCentreX(), rs[0]->getCentreY()+10)); + locks.push_back(Lock(1,rs[1]->getCentreX(), rs[1]->getCentreY())); + SetDesiredPos preIteration(locks); + + Test test(0.00001,100,vs,tes,"boundary"); + cola::ConstrainedFDLayout alg(rs,es,idealLength,nullptr,test,&preIteration); + + alg.setTopology(&vs,&tes); + alg.run(true,true); + double finalStress=alg.computeStress(); + printf("finalStress=%f\n",finalStress); + + //assert(finalStress<1e-5); + for_each(rs.begin(),rs.end(),cola::delete_object()); + for_each(tes.begin(),tes.end(),cola::delete_object()); + for_each(vs.begin(),vs.end(),cola::delete_object()); +} +int main() { + clusterBoundary(); + return 0; +} +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4:textwidth=80 : diff --git a/src/3rdparty/adaptagrams/libcola/tests/connected_components.cpp b/src/3rdparty/adaptagrams/libcola/tests/connected_components.cpp new file mode 100644 index 0000000..d5df479 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/connected_components.cpp @@ -0,0 +1,69 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + +#include <iostream> +#include <vector> +#include <set> +#include <libvpsc/rectangle.h> +#include <libcola/cola.h> +#include <libcola/connected_components.h> +#include "graphlayouttest.h" + +using namespace std; +using namespace cola; + +int main() { + const unsigned V = 7; + unsigned c1[]={0,1,2,3}; + set<unsigned> expected_c1(c1,c1+4); + unsigned c2[]={4,5,6}; + set<unsigned> expected_c2(c2,c2+3); + + Edge edge_array[] = { Edge(0, 1), Edge(1, 2), Edge(3, 2), Edge(1, 3), + Edge(4, 5), Edge(5, 6), Edge(6, 4) }; + const std::size_t E = sizeof(edge_array) / sizeof(Edge); + vector<Edge> es(edge_array,edge_array+E); + vector<Component*> cs; + vpsc::Rectangles rs; + double width=100,height=100; + for(unsigned i=0;i<V;i++) { + double x=getRand(width), y=getRand(height); + rs.push_back(new vpsc::Rectangle(x,x+5,y,y+5)); + } + connectedComponents(rs,es,cs); + set<unsigned> result_c1(cs[0]->node_ids.begin(),cs[0]->node_ids.end()); + set<unsigned> result_c2(cs[1]->node_ids.begin(),cs[1]->node_ids.end()); + assert(expected_c1==result_c1); + assert(expected_c2==result_c2); + for(unsigned i=0;i<cs.size();i++) { + printf("Component %d:\n",i); + for(unsigned j=0;j<cs[i]->edges.size();j++) { + Edge& e=cs[i]->edges[j]; + printf("(%d,%d) ",e.first,e.second); + } + cout << endl; + } + return 0; +} diff --git a/src/3rdparty/adaptagrams/libcola/tests/constrained.cpp b/src/3rdparty/adaptagrams/libcola/tests/constrained.cpp new file mode 100644 index 0000000..20215f7 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/constrained.cpp @@ -0,0 +1,99 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + +/** \file constrained.cpp + * + * runs constraint layout on a small graph. nodes 0 and 3 are constrained + * to a vertical line + * + * + * Authors: + * Tim Dwyer <tgdwyer@gmail.com> + */ +#include <iostream> + +#include <vector> +#include <algorithm> +#include <float.h> +#include <libcola/cola.h> +#include <libcola/output_svg.h> +inline double getRand(double range) { + return range*rand()/RAND_MAX; +} + +using namespace std; +using namespace cola; +/** +* \brief Determines when to terminate layout of a particular graph based +* on a given relative tolerance. +*/ +int main() { + + const unsigned V = 4; + typedef pair < unsigned, unsigned >Edge; + Edge edge_array[] = { Edge(0, 1), Edge(1, 2), Edge(2, 3), Edge(1, 3) }; + unsigned E = sizeof(edge_array) / sizeof(Edge); + vector<Edge> es(edge_array,edge_array+E); + double width=100; + double height=100; + vector<vpsc::Rectangle*> rs; + for(unsigned i=0;i<V;i++) { + double x=getRand(width), y=getRand(height); + rs.push_back(new vpsc::Rectangle(x,x+5,y,y+5)); + } + CompoundConstraints ccs; + AlignmentConstraint ac(vpsc::XDIM); + ccs.push_back(&ac); + ac.addShape(0,0); + ac.addShape(3,0); + // apply steepest descent layout + ConstrainedFDLayout alg2(rs,es,width/2); + alg2.setConstraints(ccs); + alg2.run(); + assert(alg2.computeStress()<0.0013); + // the following pair of nodes should line-up + assert(fabs(rs[0]->getCentreX()-rs[3]->getCentreX())<0.001); + // reset rectangles to random positions + for(unsigned i=0;i<V;i++) { + double x=getRand(width), y=getRand(height); + rs[i]->moveCentre(x,y); + } + // apply scaled majorization layout + ConstrainedMajorizationLayout alg(rs,es,nullptr,width/2); + alg.setConstraints(&ccs); + alg.setScaling(true); + alg.run(); + // the following pair of nodes should line-up + assert(fabs(rs[0]->getCentreX()-rs[3]->getCentreX())<0.001); + cout<<rs[0]->getCentreX()<<","<<rs[3]->getCentreX()<<endl; + OutputFile output(rs,es,nullptr,"constrained.svg"); + output.rects=true; + output.generate(); + + for(unsigned i=0;i<V;i++) { + delete rs[i]; + } + return 0; +} diff --git a/src/3rdparty/adaptagrams/libcola/tests/containment.cpp b/src/3rdparty/adaptagrams/libcola/tests/containment.cpp new file mode 100644 index 0000000..488700e --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/containment.cpp @@ -0,0 +1,89 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + +/** \file containment.cpp + * + * simple test of clustered graph layout + * + * Authors: + * Tim Dwyer <tgdwyer@gmail.com> + */ +#include <iostream> + +#include <map> +#include <vector> +#include <algorithm> +#include <float.h> +#include <iomanip> +#include <libcola/cola.h> +#include <libcola/output_svg.h> +#include "graphlayouttest.h" + +using namespace cola; +using namespace std; + +vector<vpsc::Rectangle*> rs; +vector<Edge> es; +RectangularCluster rc, rd; +RootCluster root; +unsigned iteration=0; + +int main() { + + const unsigned V = 5; + typedef pair < unsigned, unsigned >Edge; + Edge edge_array[] = { Edge(0, 1), Edge(1, 2), Edge(2, 3), Edge(3, 4) }; + const std::size_t E = sizeof(edge_array) / sizeof(Edge); + es.resize(E); + copy(edge_array,edge_array+E,es.begin()); + double width=100; + double height=100; + for(unsigned i=0;i<V;i++) { + double x=getRand(width), y=getRand(height); + rs.push_back(new vpsc::Rectangle(x,x+20,y,y+15)); + } + + const unsigned c[]={0,4}, d[]={1,2,3}; + unsigned nc=sizeof(c)/sizeof(unsigned), nd=sizeof(d)/sizeof(unsigned); + CheckProgress test(0.0001,100); + ConstrainedMajorizationLayout alg(rs,es,&root,30,nullptr,test); + alg.setScaling(true); + rc.nodes.resize(nc); + copy(c,c+nc,rc.nodes.begin()); + rd.nodes.resize(nd); + copy(d,d+nd,rd.nodes.begin()); + root.clusters.push_back(&rc); + root.clusters.push_back(&rd); + alg.run(); + alg.setAvoidOverlaps(); + alg.run(); + OutputFile of(rs,es,&root,"containment.svg",false,true); + of.generate(); + for(unsigned i=0;i<V;i++) { + delete rs[i]; + } + return 0; +} +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4:textwidth=99 : diff --git a/src/3rdparty/adaptagrams/libcola/tests/containment2.cpp b/src/3rdparty/adaptagrams/libcola/tests/containment2.cpp new file mode 100644 index 0000000..d499ffc --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/containment2.cpp @@ -0,0 +1,157 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + +/** \file + * Interface between Inkscape code (SPItem) and graphlayout functions. + * Authors: + * Tim Dwyer <tgdwyer@gmail.com> + */ +#include <iostream> + +#include <map> +#include <vector> +#include <algorithm> +#include <float.h> +#include <iomanip> +#include <libcola/cola.h> +#include <libcola/output_svg.h> +#include "graphlayouttest.h" + +using namespace cola; +using namespace std; + +vector<vpsc::Rectangle*> rs; +vector<Edge> es; +RootCluster root; +unsigned iteration=0; + +/** +* \brief Determines when to terminate layout of a particular graph based +* on a given relative tolerance. +*/ +int main() { + + const unsigned V = 19; + const char* labels[]={ + "Hamza Alghamdi", + "Nawaf Alhazmi", + "Marwan Al-Shehhi", + "Mohand Alshehri", + "Ahmed Alghamdi", + "Saeed Alghamdi", + "Salem Alhazmi", + "Hani Hanjour", + "Mohamed Atta", + "Ziad Jarrah", + "Ahmed Al Haznawi", + "Fayez Ahmed", + "Ahmed Alnami", + "Khalid Al-Mihdhar", + "Majed Moqed", + "Abdul Aziz Al-Omari", + "Waleed Alshehri", + "Wail Alshehri", + "Satam Suqami"}; + + typedef pair < unsigned, unsigned >Edge; + Edge edge_array[] = { + Edge(0,1), Edge(0,3), Edge(0,4), Edge(0,5), Edge(0,10), + Edge(1,5), Edge(1,6), Edge(1,7), Edge(1,12), Edge(1,13), + Edge(2,8), Edge(2,9), Edge(2,11), Edge(2,15), + Edge(3,11), + Edge(5,10), Edge(5,12), + Edge(7,13), Edge(7,14), + Edge(8,9), Edge(8,15), + Edge(9,10), + Edge(15,16), + Edge(16,17), Edge(16,18), + Edge(17,18) + }; + double g=10; + CompoundConstraints scy; + scy.push_back(new SeparationConstraint(0,10,g)); + scy.push_back(new SeparationConstraint(0,3,g)); + scy.push_back(new SeparationConstraint(0,4,g)); + scy.push_back(new SeparationConstraint(0,12,g)); + scy.push_back(new SeparationConstraint(0,5,g)); + scy.push_back(new SeparationConstraint(1,12,g)); + scy.push_back(new SeparationConstraint(1,5,g)); + scy.push_back(new SeparationConstraint(1,13,g)); + scy.push_back(new SeparationConstraint(1,6,g)); + scy.push_back(new SeparationConstraint(1,7,g)); + scy.push_back(new SeparationConstraint(2,8,g)); + scy.push_back(new SeparationConstraint(2,9,g)); + scy.push_back(new SeparationConstraint(2,15,g)); + scy.push_back(new SeparationConstraint(2,11,g)); + scy.push_back(new SeparationConstraint(5,12,g)); + scy.push_back(new SeparationConstraint(7,13,g)); + scy.push_back(new SeparationConstraint(7,14,g)); + scy.push_back(new SeparationConstraint(16,17,g)); + scy.push_back(new SeparationConstraint(16,18,g)); + const std::size_t E = sizeof(edge_array) / sizeof(Edge); + es.resize(E); + copy(edge_array,edge_array+E,es.begin()); + double width=100; + double height=100; + for(unsigned i=0;i<V;i++) { + double x=getRand(width), y=getRand(height); + rs.push_back(new vpsc::Rectangle(x,x+17,y,y+10)); + } + + RectangularCluster c; + c.nodes.push_back(0); + c.nodes.push_back(1); + RectangularCluster d; + d.nodes.push_back(3); + d.nodes.push_back(11); + RectangularCluster e; + e.nodes.push_back(8); + e.nodes.push_back(9); + e.nodes.push_back(10); + e.nodes.push_back(15); + e.nodes.push_back(16); + RectangularCluster f; + f.nodes.push_back(17); + f.nodes.push_back(18); + root.clusters.push_back(&c); + root.clusters.push_back(&d); + root.clusters.push_back(&e); + root.clusters.push_back(&f); + OutputFile of(rs,es,&root,"containment2.svg",true,true); + //of.setLabels(V,labels); + CheckProgress test(0.0001,100); + ConstrainedMajorizationLayout alg(rs,es,&root,30,nullptr,test); + alg.setScaling(false); + //alg.setYSeparationConstraints(&scy); + //alg.run(); + alg.setAvoidOverlaps(); + alg.run(); + of.generate(); + for(unsigned i=0;i<V;i++) { + delete rs[i]; + } + return 0; +} +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4:textwidth=99 : diff --git a/src/3rdparty/adaptagrams/libcola/tests/convex_hull.cpp b/src/3rdparty/adaptagrams/libcola/tests/convex_hull.cpp new file mode 100644 index 0000000..38b6629 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/convex_hull.cpp @@ -0,0 +1,180 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + +/** + * Really basic regression test of convex hull implementation + * declared in libcola/convex_hull.h + */ +#include <valarray> +#include <algorithm> +#include <libcola/convex_hull.h> +#include "graphlayouttest.h" + +#include <string> +#include <iostream> +#include <cairomm/context.h> +#include <cairomm/surface.h> + +/* M_PI is defined in math.h in the case of Microsoft Visual C++ */ +#if defined(_MSC_VER) +#define _USE_MATH_DEFINES +#include <math.h> +#endif +using namespace std; + +typedef vector<unsigned> Hull; +/** + * generates a random set of n points in X and Y. + */ +void randTest(unsigned n, valarray<double>& X, valarray<double>& Y) { + X.resize(n); + Y.resize(n); + srand(time(nullptr)); + for(unsigned i=0;i<n;i++) { + X[i]=getRand(1.); + Y[i]=getRand(1.); + } +} +/** + * generates a set of 8 points (actually the vertices of two rectangles) + * which lineup horizontally. The expected hull are the lower-left and + * top-left corners of the left rectangle and the top-right/lower-right + * corners of the right rectangle. + */ +void tworects(valarray<double>& X, valarray<double>& Y, Hull& expectedHull) { + const unsigned n=8; + X.resize(n); + Y.resize(n); + X[0]=330.011898, Y[0]=203.250425; + X[1]=330.011898, Y[1]=237.250425; + X[2]=276.011898, Y[2]=237.250425; + X[3]=276.011898, Y[3]=203.250425; + X[4]=459.998300, Y[4]=203.250425; + X[5]=459.998300, Y[5]=237.250425; + X[6]=405.998300, Y[6]=237.250425; + X[7]=405.998300, Y[7]=203.250425; + unsigned hull[]={3,4,5,2}; + unsigned m=sizeof(hull)/sizeof(unsigned); + expectedHull.resize(m); + copy(hull,hull+m,expectedHull.begin()); +} + +int drawCairo(const string& fname, + const valarray<double>& X, const valarray<double>& Y, + const Hull& hull); + +int main(int argc, char** argv) { + valarray<double> X, Y; + Hull h,expectedHull; + tworects(X,Y,expectedHull); + hull::convex(X,Y,h); + printf("hull size=%d\n",h.size()); + pair<Hull::iterator,Hull::iterator> r + =mismatch(h.begin(),h.end(),expectedHull.begin()); + assert(r.first==h.end()); + drawCairo("convex_tworects.svg",X,Y,h); + + randTest(20,X,Y); + hull::convex(X,Y,h); + drawCairo("convex_hull_random.svg",X,Y,h); + return 0; +} + +/***********CAIRO CODE***************************************************/ +double width = 600; +double height = 400; +double border=10; +void dot(Cairo::RefPtr<Cairo::Context> & cr, double x, double y) { + cr->arc(x, y, + 2., 0.0, 2.0 * M_PI); + cr->stroke(); +} + +double xcoord(double x) { + return border+x*width; +} +double ycoord(double y) { + return border+y*height; +} +int drawCairo(const string& fname, + const valarray<double>& Xin, const valarray<double>& Yin, + const Hull& hull) { +#ifdef CAIRO_HAS_SVG_SURFACE + unsigned n=Xin.size(); + assert(Yin.size()==n); + + // normalise coords to range 0-1 + valarray<double> X=Xin, Y=Yin; + X-=X.min(); + Y-=Y.min(); + X/=X.max(); + Y/=Y.max(); + + Cairo::RefPtr<Cairo::SvgSurface> surface = + Cairo::SvgSurface::create(fname, width+2*border, height+2*border); + + Cairo::RefPtr<Cairo::Context> cr = Cairo::Context::create(surface); + + cr->save(); // save the state of the context + cr->set_source_rgba(0.0, 0.0, 0.0, 0.7); + // draw a circle at each coordinate + for(unsigned i=0;i<n;i++) { + dot(cr,xcoord(X[i]),ycoord(Y[i])); + } + + cr->set_source_rgba(0.0, 0.0, 0.0, 0.3); + cr->move_to(xcoord(X[hull[0]]),ycoord(Y[hull[0]])); + for(unsigned i=1;i<hull.size();i++) { + cr->line_to(xcoord(X[hull[i]]),ycoord(Y[hull[i]])); + } + cr->line_to(xcoord(X[hull[0]]),ycoord(Y[hull[0]])); + cr->stroke(); + cr->set_source_rgba(0.0, 0.0, 0.0, 1.); + for(vector<unsigned>::const_iterator i=hull.begin();i!=hull.end();++i) { + unsigned j=*i; + stringstream ss; + ss<<j; + printf("p[%d]=(%f,%f)\n",j,X[j],Y[j]); + cr->move_to(xcoord(X[j]),ycoord(Y[j])); + cr->show_text(ss.str()); + cr->stroke(); + } + cr->restore(); + + cr->show_page(); + + cout << "Wrote SVG file \"" << fname << "\"" << endl; + return 0; + +#else + + cout << "You must compile cairo with SVG support for this example to work." + << endl; + return 1; + +#endif + +} +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4 : diff --git a/src/3rdparty/adaptagrams/libcola/tests/cycle_detector.cpp b/src/3rdparty/adaptagrams/libcola/tests/cycle_detector.cpp new file mode 100644 index 0000000..3b9a0a4 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/cycle_detector.cpp @@ -0,0 +1,386 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + +#include <iostream> +#include <vector> +#include <assert.h> +#include <libcola/cola.h> +#include <libcola/cycle_detector.h> +#include "graphlayouttest.h" + +using namespace std; +using namespace cola; +using namespace cycle_detector; +using vpsc::Rectangle; + +int main() { + CycleDetector *cd; + Edges case_a, case_b, case_c, case_d, case_e, case_f, case_g; + + CyclicEdges *cycles = nullptr; + vector<Rectangle *> rs; + unsigned V; + + // create case A + // case A consists of a basic graph where the start point is a source + cout << endl << "ENTERING CASE A" << endl; + V = 5; + case_a.push_back(Edge(0, 1)); + case_a.push_back(Edge(1, 2)); + case_a.push_back(Edge(2, 3)); + case_a.push_back(Edge(3, 4)); + case_a.push_back(Edge(4, 1)); + + // detect the cycles + cd = new CycleDetector(V, &case_a); + cycles = cd->detect_cycles(); + + if (cycles != nullptr) { + cout << "cycles->size(): " << cycles->size() << endl; + for (unsigned i = 0; i < case_a.size(); i++) { + // print out the cycles + if ((*cycles)[i]) cout << "Cyclic edge found: (" << case_a[i].first << ", " << case_a[i].second << ")" << endl; + } + + cout << endl; + + // output a picture + rs.push_back(new Rectangle(10,10+5,10,10+5)); + rs.push_back(new Rectangle(30,30+5,30,30+5)); + rs.push_back(new Rectangle(30,30+5,60,60+5)); + rs.push_back(new Rectangle(65,65+5,60,60+5)); + rs.push_back(new Rectangle(65,65+5,30,30+5)); + + assert(rs.size() == V); + + output_svg(rs, case_a, "cycle_detector_case_a.svg", false, true, cycles); + for (unsigned i = 0; i < rs.size(); i++) { delete rs[i]; } + rs.clear(); + delete cycles; + } + else { + cout << "No cycles found" << endl; + } + + // create case B + // case B is the same graph of case A but with more elements + cout << endl << "ENTERING CASE B" << endl; + V = 7; + case_b.push_back(Edge(0, 1)); + case_b.push_back(Edge(1, 2)); + case_b.push_back(Edge(2, 3)); + case_b.push_back(Edge(3, 4)); + case_b.push_back(Edge(4, 1)); + case_b.push_back(Edge(5, 2)); + case_b.push_back(Edge(6, 5)); + + // detect the cycles + cd->mod_graph(V, &case_b); + cycles = cd->detect_cycles(); + + if (cycles != nullptr) { + cout << "cycles->size(): " << cycles->size() << endl; + for (unsigned i = 0; i < case_b.size(); i++) { + // print out the cycles + if ((*cycles)[i]) cout << "Cyclic edge found: (" << case_b[i].first << ", " << case_b[i].second << ")" << endl; + } + + cout << endl; + + // output a picture + rs.push_back(new Rectangle(10,10+5,10,10+5)); + rs.push_back(new Rectangle(30,30+5,30,30+5)); + rs.push_back(new Rectangle(30,30+5,60,60+5)); + rs.push_back(new Rectangle(65,65+5,60,60+5)); + rs.push_back(new Rectangle(65,65+5,30,30+5)); + rs.push_back(new Rectangle(30,30+5,90,90+5)); + rs.push_back(new Rectangle(65,65+5,90,90+5)); + + assert(rs.size() == V); + + output_svg(rs, case_b, "cycle_detector_case_b.svg", false, true, cycles); + for (unsigned i = 0; i < rs.size(); i++) { delete rs[i]; } + rs.clear(); + delete cycles; + } + + // create case C + // case C is a more complicated graph with nested cycles + cout << endl << "ENTERING CASE C" << endl; + V = 14; + case_c.push_back(Edge(0, 1)); + case_c.push_back(Edge(0, 5)); + case_c.push_back(Edge(0, 6)); + case_c.push_back(Edge(2, 0)); + case_c.push_back(Edge(3, 5)); + case_c.push_back(Edge(4, 3)); + case_c.push_back(Edge(5, 4)); + case_c.push_back(Edge(5, 13)); + case_c.push_back(Edge(6, 2)); + case_c.push_back(Edge(6, 9)); + case_c.push_back(Edge(7, 6)); + case_c.push_back(Edge(8, 7)); + case_c.push_back(Edge(9, 10)); + case_c.push_back(Edge(9, 11)); + case_c.push_back(Edge(9, 12)); + case_c.push_back(Edge(10, 6)); + case_c.push_back(Edge(12, 10)); + case_c.push_back(Edge(13, 4)); + + // detect the cycles + //cd = new CycleDetector(V, &case_c); + cd->mod_graph(V, &case_c); + cycles = cd->detect_cycles(); + if (cycles != nullptr) { + cout << "cycles->size(): " << cycles->size() << endl; + for (unsigned i = 0; i < case_c.size(); i++) { + // print out the cycles + if ((*cycles)[i]) cout << "Cyclic edge found: (" << case_c[i].first << ", " << case_c[i].second << ")" << endl; + } + + cout << endl; + + // output a picture + rs.push_back(new Rectangle(10,10+5,10,10+5)); // node 0 + rs.push_back(new Rectangle(20,20+5,40,40+5)); // node 1 + rs.push_back(new Rectangle(40,40+5,30,30+5)); // node 2 + rs.push_back(new Rectangle(30,30+5,60,60+5)); // node 3 + rs.push_back(new Rectangle(60,60+5,60,60+5)); // node 4 + rs.push_back(new Rectangle(10,10+5,90,90+5)); // node 5 + rs.push_back(new Rectangle(80,80+5,15,15+5)); // node 6 + rs.push_back(new Rectangle(110,110+5,15,15+5)); // node 7 + rs.push_back(new Rectangle(140,140+5,15,15+5)); // node 8 + rs.push_back(new Rectangle(110,110+5,60,60+5)); // node 9 + rs.push_back(new Rectangle(100,100+5,85,85+5)); // node 10 + rs.push_back(new Rectangle(140,140+5,50,50+5)); // node 11 + rs.push_back(new Rectangle(140,140+5,70,70+5)); // node 12 + rs.push_back(new Rectangle(45,45+5,90,90+5)); // node 13 + + assert(rs.size() == V); + + output_svg(rs, case_c, "cycle_detector_case_c.svg", false, true, cycles); + for(int i = 0; i < V; i++) { delete rs[i]; } + rs.clear(); + delete cycles; + } + + // create case D + // case D consists of the same graph as case A but with a different starting location + cout << endl << "ENTERING CASE D" << endl; + V = 5; + case_d.push_back(Edge(0, 1)); + case_d.push_back(Edge(1, 2)); + case_d.push_back(Edge(2, 3)); + case_d.push_back(Edge(3, 0)); + case_d.push_back(Edge(4, 1)); + + // detect the cycles + cd->mod_graph(V, &case_d); + cycles = cd->detect_cycles(); + + if (cycles != nullptr) { + cout << "cycles->size(): " << cycles->size() << endl; + for (unsigned i = 0; i < case_d.size(); i++) { + // print out the cycles + if ((*cycles)[i]) cout << "Cyclic edge found: (" << case_d[i].first << ", " << case_d[i].second << ")" << endl; + } + + cout << endl; + + // output a picture + rs.push_back(new Rectangle(65,65+5,60,60+5)); + rs.push_back(new Rectangle(65,65+5,30,30+5)); + rs.push_back(new Rectangle(30,30+5,30,30+5)); + rs.push_back(new Rectangle(30,30+5,60,60+5)); + rs.push_back(new Rectangle(10,10+5,10,10+5)); + + assert(rs.size() == V); + + output_svg(rs, case_d, "cycle_detector_case_d.svg", false, true, cycles); + for (unsigned i = 0; i < rs.size(); i++) { delete rs[i]; } + rs.clear(); + delete cycles; + } + else { + cout << "No cycles found" << endl; + } + + // create case E + // case E is a reordering of case C + cout << endl << "ENTERING CASE E" << endl; + V = 14; + case_e.push_back(Edge(0, 6)); + case_e.push_back(Edge(0, 9)); + case_e.push_back(Edge(1, 4)); + case_e.push_back(Edge(3, 10)); + case_e.push_back(Edge(4, 3)); + case_e.push_back(Edge(5, 0)); + case_e.push_back(Edge(6, 7)); + case_e.push_back(Edge(7, 0)); + case_e.push_back(Edge(7, 2)); + case_e.push_back(Edge(7, 10)); + case_e.push_back(Edge(8, 5)); + case_e.push_back(Edge(9, 12)); + case_e.push_back(Edge(9, 11)); + case_e.push_back(Edge(9, 13)); + case_e.push_back(Edge(10, 1)); + case_e.push_back(Edge(10, 4)); + case_e.push_back(Edge(12, 0)); + case_e.push_back(Edge(11, 12)); + + // detect the cycles + cd->mod_graph(V, &case_e); + cycles = cd->detect_cycles(); + if (cycles != nullptr) { + cout << "cycles->size(): " << cycles->size() << endl; + for (unsigned i = 0; i < case_e.size(); i++) { + // print out the cycles + if ((*cycles)[i]) cout << "Cyclic edge found: (" << case_e[i].first << ", " << case_e[i].second << ")" << endl; + } + + cout << endl; + + // output a picture + rs.push_back(new Rectangle(80,80+5,15,15+5)); // node 6 + rs.push_back(new Rectangle(45,45+5,90,90+5)); // node 13 + rs.push_back(new Rectangle(20,20+5,40,40+5)); // node 1 + rs.push_back(new Rectangle(30,30+5,60,60+5)); // node 3 + rs.push_back(new Rectangle(60,60+5,60,60+5)); // node 4 + rs.push_back(new Rectangle(110,110+5,15,15+5)); // node 7 + rs.push_back(new Rectangle(40,40+5,30,30+5)); // node 2 + rs.push_back(new Rectangle(10,10+5,10,10+5)); // node 0 + rs.push_back(new Rectangle(140,140+5,15,15+5)); // node 8 + rs.push_back(new Rectangle(110,110+5,60,60+5)); // node 9 + rs.push_back(new Rectangle(10,10+5,90,90+5)); // node 5 + rs.push_back(new Rectangle(140,140+5,70,70+5)); // node 12 + rs.push_back(new Rectangle(100,100+5,85,85+5)); // node 10 + rs.push_back(new Rectangle(140,140+5,50,50+5)); // node 11 + + assert(rs.size() == V); + + output_svg(rs, case_e, "cycle_detector_case_e.svg", false, true, cycles); + for(int i = 0; i < V; i++) { delete rs[i]; } + rs.clear(); + delete cycles; + } + + // create case F + // case F consists of the same graph with sinks + cout << endl << "ENTERING CASE F" << endl; + V = 3; + case_f.push_back(Edge(0, 1)); + case_f.push_back(Edge(0, 2)); + case_f.push_back(Edge(1, 2)); + + // detect the cycles + cd->mod_graph(V, &case_f); + cycles = cd->detect_cycles(); + + if (cycles != nullptr) { + // output a picture + rs.push_back(new Rectangle(10,10+5,10,10+5)); + rs.push_back(new Rectangle(40,40+5,30,30+5)); + rs.push_back(new Rectangle(15,15+5,60,60+5)); + + assert(rs.size() == V); + + output_svg(rs, case_f, "cycle_detector_case_f.svg", false, true, cycles); + for (unsigned i = 0; i < rs.size(); i++) { delete rs[i]; } + rs.clear(); + + cout << "No cycles found" << endl; + } + + // This tests the cycle detectors ability to cycle through a chain of cyclic ancestors + cout << endl << "ENTERING CYCLIC ANCESTOR TEST" << endl; + Node a(1), b(2), c(3), d(4), e(5), f(6); + // set up the chain + f.cyclicAncestor = &e; + e.cyclicAncestor = &d; + d.cyclicAncestor = &c; + c.cyclicAncestor = &b; + b.cyclicAncestor = &a; + a.cyclicAncestor = &a; + + Node *ca = cd->get_highest_ca(&f); + if (ca != nullptr) { cout << "Highest cyclic ancestor found at vertex(" << ca->id << ")" << endl; } + + // create case G + // case G hows the ability to find nested cycles and to reassign cyclic ancestors + cout << endl << "ENTERING CASE G" << endl; + V = 7; + case_g.push_back(Edge(0, 1)); + case_g.push_back(Edge(1, 2)); + case_g.push_back(Edge(2, 3)); + case_g.push_back(Edge(3, 4)); + case_g.push_back(Edge(4, 5)); + case_g.push_back(Edge(5, 6)); + case_g.push_back(Edge(6, 5)); + case_g.push_back(Edge(5, 4)); + case_g.push_back(Edge(4, 3)); + case_g.push_back(Edge(3, 2)); + case_g.push_back(Edge(2, 1)); + case_g.push_back(Edge(1, 0)); + case_g.push_back(Edge(0, 6)); + + // detect the cycles + cd->mod_graph(V, &case_g); + cycles = cd->detect_cycles(); + + if (cycles != nullptr) { + cout << "cycles->size(): " << cycles->size() << endl; + for (unsigned i = 0; i < case_g.size(); i++) { + // print out the cycles + if ((*cycles)[i]) cout << "Cyclic edge found: (" << case_g[i].first << ", " << case_g[i].second << ")" << endl; + } + + cout << endl; + + // output a picture + cout << "No picture generated" << endl; + + /*rs.push_back(new Rectangle(50,50+5,10,10+5)); + rs.push_back(new Rectangle(50,50+5,30,30+5)); + rs.push_back(new Rectangle(50,50+5,60,60+5)); + rs.push_back(new Rectangle(10,10+5,70,70+5)); + rs.push_back(new Rectangle(50,50+5,100,100+5)); + rs.push_back(new Rectangle(10,10+5,40,40+5)); + + assert(rs.size() == V); + + output_svg(rs, case_a, "cycle_detector_case_g.svg", false, true, cycles); + for (unsigned i = 0; i < rs.size(); i++) { delete rs[i]; } + rs.clear();*/ + delete cycles; + } + else { + cout << "No cycles found" << endl; + } + + // END TEST + delete cd; + + return 0; +} diff --git a/src/3rdparty/adaptagrams/libcola/tests/data/1138_bus.txt b/src/3rdparty/adaptagrams/libcola/tests/data/1138_bus.txt new file mode 100644 index 0000000..fb63ec3 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/data/1138_bus.txt @@ -0,0 +1,1458 @@ +4 0 +562 0 +9 1 +562 1 +10 2 +33 2 +34 2 +103 2 +474 2 +6 3 +26 3 +100 3 +101 3 +102 3 +8 4 +6 5 +36 5 +97 5 +102 5 +36 6 +100 6 +101 6 +102 6 +25 7 +34 7 +723 7 +9 8 +103 8 +103 9 +11 10 +37 10 +565 10 +33 12 +103 12 +412 13 +15 14 +16 14 +17 14 +18 14 +410 14 +20 19 +36 19 +101 19 +21 20 +22 20 +23 20 +24 20 +34 25 +27 26 +28 26 +29 26 +100 26 +31 30 +99 30 +99 31 +99 32 +103 33 +552 33 +103 34 +709 34 +710 35 +101 36 +38 37 +97 37 +411 37 +98 38 +40 39 +42 39 +44 39 +41 40 +43 40 +145 42 +485 43 +48 44 +47 45 +47 46 +53 47 +505 47 +49 48 +52 48 +50 49 +51 49 +124 51 +53 52 +54 52 +424 53 +444 53 +446 53 +62 55 +65 56 +69 57 +66 58 +67 59 +129 60 +128 61 +63 62 +64 62 +70 63 +130 63 +225 63 +1094 64 +66 65 +67 65 +73 65 +182 65 +225 65 +67 66 +68 66 +73 67 +89 67 +200 67 +69 68 +181 69 +195 69 +1062 69 +1064 69 +1073 69 +71 70 +72 71 +120 71 +74 73 +75 73 +77 73 +79 73 +118 73 +203 74 +809 74 +917 74 +76 75 +77 75 +126 75 +1049 76 +78 77 +451 77 +415 78 +416 78 +453 78 +80 79 +446 79 +451 79 +447 80 +449 80 +463 80 +93 81 +93 82 +94 83 +86 84 +125 84 +86 85 +240 85 +250 85 +252 85 +266 85 +268 85 +282 85 +290 85 +292 85 +293 85 +301 85 +314 85 +87 86 +104 88 +114 88 +90 89 +91 90 +107 90 +114 90 +115 90 +92 91 +93 92 +251 92 +263 92 +270 92 +287 92 +291 92 +292 92 +293 92 +321 92 +322 92 +323 92 +324 92 +325 92 +95 93 +263 93 +317 93 +324 93 +96 94 +261 94 +267 94 +299 94 +144 95 +703 95 +704 95 +267 96 +412 98 +724 99 +731 99 +101 100 +102 100 +102 101 +477 102 +105 104 +108 104 +107 106 +109 107 +1028 108 +110 109 +327 109 +366 109 +369 109 +366 110 +367 110 +700 110 +112 111 +369 111 +685 111 +113 112 +114 112 +689 112 +1008 113 +116 115 +125 115 +118 117 +122 118 +120 119 +121 120 +503 120 +122 121 +123 121 +124 122 +124 123 +126 123 +125 124 +128 124 +545 124 +128 125 +127 126 +132 129 +172 129 +212 129 +131 130 +132 130 +135 130 +143 131 +741 131 +133 132 +135 134 +138 134 +739 134 +140 135 +138 136 +140 136 +760 136 +140 137 +876 137 +881 137 +139 138 +828 139 +829 139 +257 141 +365 141 +143 142 +742 142 +744 142 +825 142 +826 143 +317 144 +702 144 +146 145 +147 146 +165 148 +172 149 +174 150 +179 151 +182 152 +206 153 +197 154 +212 155 +218 156 +225 157 +181 158 +204 158 +171 159 +232 159 +221 160 +742 160 +162 161 +168 161 +208 161 +222 161 +231 161 +185 162 +200 162 +226 162 +165 163 +165 164 +166 164 +174 164 +193 164 +191 165 +200 165 +217 165 +174 166 +179 167 +208 167 +186 168 +187 169 +193 169 +177 170 +216 170 +172 171 +221 171 +754 171 +183 172 +210 173 +215 173 +178 174 +176 175 +177 175 +206 175 +206 176 +213 177 +216 177 +202 178 +208 179 +182 180 +182 181 +204 181 +220 181 +183 182 +200 182 +225 182 +192 183 +212 183 +186 184 +186 185 +217 185 +187 186 +205 186 +208 186 +210 188 +215 188 +198 189 +194 190 +196 190 +197 190 +210 190 +198 191 +217 191 +219 191 +197 192 +198 192 +207 192 +215 193 +210 194 +211 196 +200 199 +201 199 +217 200 +202 201 +220 204 +215 205 +207 206 +223 206 +214 209 +216 209 +217 209 +211 210 +503 212 +216 213 +217 215 +219 218 +229 218 +221 220 +224 220 +224 221 +232 221 +742 221 +231 222 +1025 223 +227 226 +228 227 +230 227 +231 227 +231 230 +235 233 +306 233 +235 234 +242 234 +269 234 +271 234 +297 234 +298 234 +285 235 +260 236 +286 236 +308 236 +365 236 +701 236 +238 237 +269 237 +269 238 +280 238 +258 239 +241 240 +245 240 +252 240 +256 240 +265 240 +274 240 +278 240 +288 240 +290 240 +291 240 +292 240 +293 240 +298 240 +309 240 +320 240 +326 240 +243 241 +244 241 +271 243 +297 244 +309 245 +247 246 +254 246 +254 247 +281 248 +256 249 +262 249 +288 249 +316 249 +266 250 +309 251 +312 251 +254 253 +284 253 +257 254 +259 254 +262 254 +289 255 +316 255 +320 255 +260 257 +326 257 +277 258 +288 259 +267 261 +275 261 +313 261 +310 263 +275 264 +299 264 +306 265 +281 266 +283 266 +301 266 +269 267 +300 267 +283 268 +274 269 +278 269 +279 269 +317 269 +319 269 +273 272 +302 272 +314 272 +311 273 +284 276 +288 276 +308 277 +291 282 +290 287 +297 294 +296 295 +298 296 +695 299 +313 300 +311 302 +304 303 +314 303 +328 303 +314 304 +321 305 +322 307 +325 310 +314 311 +315 314 +318 314 +322 314 +321 315 +703 317 +328 318 +324 323 +334 329 +335 330 +336 331 +349 332 +349 333 +336 334 +336 335 +337 336 +338 336 +339 336 +339 337 +339 338 +340 339 +341 339 +341 340 +342 341 +343 341 +344 341 +369 341 +345 342 +345 343 +345 344 +346 345 +348 345 +366 345 +347 346 +348 347 +349 348 +365 350 +352 351 +407 351 +408 351 +362 352 +381 352 +381 353 +382 353 +374 354 +382 355 +397 355 +393 356 +394 356 +478 357 +473 358 +714 359 +478 360 +479 360 +402 361 +713 361 +363 362 +364 362 +372 362 +373 362 +387 362 +394 362 +406 362 +473 362 +698 365 +367 366 +371 366 +370 368 +371 370 +375 374 +376 374 +377 374 +378 374 +379 374 +380 374 +388 374 +403 374 +383 382 +384 382 +385 382 +386 382 +391 382 +388 387 +389 387 +390 387 +394 387 +400 387 +404 387 +394 391 +473 392 +478 392 +394 393 +397 394 +398 394 +404 394 +405 394 +406 394 +473 394 +405 395 +715 395 +716 395 +715 396 +716 396 +472 399 +401 400 +713 400 +408 403 +478 405 +482 405 +715 405 +716 405 +410 409 +411 409 +730 409 +475 410 +476 410 +485 410 +412 411 +477 411 +708 411 +723 411 +430 413 +432 413 +431 414 +432 414 +432 415 +461 415 +432 416 +461 416 +418 417 +544 417 +420 419 +421 419 +469 419 +424 422 +515 422 +465 423 +515 423 +425 424 +426 424 +465 424 +436 425 +518 425 +428 427 +429 427 +430 427 +431 427 +433 432 +509 432 +563 432 +509 434 +533 435 +437 436 +438 436 +440 436 +457 436 +439 438 +459 438 +441 440 +443 442 +469 442 +505 442 +515 442 +457 443 +445 444 +446 444 +448 446 +536 446 +463 447 +449 448 +450 449 +452 451 +454 453 +456 455 +563 455 +458 457 +459 457 +460 459 +462 461 +464 463 +544 463 +967 464 +466 465 +543 467 +542 468 +471 470 +477 470 +480 470 +491 470 +706 470 +707 470 +473 472 +709 474 +723 474 +481 475 +477 476 +707 477 +708 477 +479 478 +713 478 +725 478 +483 480 +484 480 +490 480 +491 480 +732 480 +482 481 +708 483 +732 483 +490 484 +730 485 +490 486 +490 487 +491 488 +491 489 +491 490 +733 490 +706 491 +706 492 +504 493 +512 494 +520 495 +521 496 +522 497 +499 498 +818 498 +913 498 +501 500 +504 500 +506 500 +520 500 +530 500 +535 500 +606 501 +608 501 +612 501 +936 501 +506 502 +512 502 +552 502 +504 503 +520 504 +525 504 +577 504 +507 506 +508 506 +514 506 +520 506 +521 506 +546 506 +618 507 +638 507 +780 507 +510 508 +514 508 +519 508 +533 508 +519 509 +913 510 +925 510 +519 511 +513 512 +539 512 +789 513 +794 513 +515 514 +516 514 +517 514 +535 514 +546 514 +992 516 +994 516 +956 518 +966 518 +521 520 +522 521 +581 522 +769 522 +778 522 +801 522 +532 523 +984 523 +1000 523 +567 524 +526 525 +530 525 +920 526 +932 526 +1067 526 +1072 526 +1073 526 +1123 526 +528 527 +808 527 +818 527 +577 529 +582 529 +779 529 +796 529 +802 529 +531 530 +533 530 +553 531 +646 531 +651 531 +662 531 +667 531 +671 531 +672 531 +676 531 +907 531 +911 531 +917 531 +1046 531 +534 533 +535 533 +541 533 +884 534 +536 535 +537 535 +538 535 +541 535 +808 537 +913 537 +947 537 +952 537 +963 537 +799 539 +542 540 +542 541 +544 541 +545 541 +543 542 +550 547 +562 548 +565 549 +551 550 +554 550 +565 550 +557 551 +559 551 +560 552 +709 552 +573 553 +908 553 +555 554 +556 554 +563 554 +565 554 +558 555 +578 555 +620 555 +902 555 +557 556 +978 557 +979 557 +985 557 +988 557 +990 557 +997 557 +999 557 +578 558 +979 559 +561 560 +565 560 +562 561 +566 562 +566 564 +566 565 +772 567 +794 567 +784 568 +578 569 +775 570 +782 571 +795 572 +580 574 +581 575 +783 575 +785 576 +801 576 +1089 576 +779 577 +579 578 +781 578 +782 578 +894 578 +926 578 +586 579 +775 580 +795 580 +796 580 +798 580 +779 582 +802 582 +584 583 +1067 583 +606 584 +612 584 +658 584 +596 585 +597 586 +613 586 +594 587 +596 587 +590 588 +594 589 +615 589 +600 590 +610 591 +603 592 +599 593 +596 595 +602 595 +606 595 +1104 598 +600 599 +781 599 +601 600 +632 600 +639 601 +603 602 +604 602 +1091 602 +611 603 +614 603 +606 604 +609 605 +609 607 +1100 607 +1067 608 +614 610 +1122 616 +628 617 +638 617 +619 618 +631 619 +623 620 +1060 620 +624 621 +640 621 +638 622 +641 622 +637 623 +634 624 +633 625 +634 625 +638 626 +630 627 +641 627 +636 628 +642 628 +630 629 +634 629 +795 629 +633 631 +640 631 +635 634 +1093 635 +651 643 +661 643 +649 644 +1059 644 +663 645 +1050 645 +1040 646 +677 647 +1041 647 +671 648 +1054 648 +652 649 +669 650 +1044 650 +652 651 +662 651 +665 651 +667 651 +675 651 +1053 651 +1047 652 +676 653 +1056 653 +656 654 +664 654 +677 655 +1054 656 +670 657 +671 657 +676 658 +1049 659 +1057 659 +676 660 +671 661 +1055 663 +681 664 +680 665 +1050 666 +678 668 +1057 668 +1120 669 +678 670 +672 671 +681 671 +1048 671 +1049 671 +1051 671 +1057 671 +1120 671 +674 673 +1045 673 +1049 674 +1042 675 +677 676 +1040 676 +1058 676 +1046 679 +1056 679 +1052 680 +688 682 +688 683 +690 684 +686 685 +687 685 +688 687 +693 687 +698 687 +699 687 +701 687 +692 688 +690 689 +693 689 +696 689 +691 690 +694 690 +694 692 +694 693 +697 696 +699 698 +706 705 +725 706 +708 707 +723 710 +733 710 +713 711 +713 712 +714 713 +733 713 +716 715 +723 717 +723 718 +723 719 +723 720 +723 721 +723 722 +724 723 +733 723 +727 726 +730 726 +730 727 +729 728 +730 728 +730 729 +742 734 +741 735 +742 736 +741 737 +743 738 +740 739 +741 739 +743 739 +748 740 +758 740 +742 741 +745 742 +755 743 +745 744 +747 746 +757 746 +756 747 +752 748 +750 749 +758 749 +756 751 +761 751 +756 753 +764 753 +763 754 +756 755 +760 759 +765 760 +766 760 +762 761 +767 765 +768 767 +771 767 +822 769 +771 770 +773 772 +794 772 +800 772 +801 772 +775 774 +780 774 +780 775 +795 775 +796 775 +1126 775 +792 776 +794 776 +799 776 +778 777 +779 778 +786 778 +796 779 +948 779 +782 781 +801 783 +785 784 +787 784 +795 784 +796 784 +801 784 +1127 785 +948 786 +788 787 +795 787 +1131 787 +1093 788 +790 789 +794 789 +798 791 +1109 791 +793 792 +824 792 +794 793 +799 793 +798 795 +797 796 +802 796 +804 796 +1118 796 +1113 797 +1136 801 +803 802 +1137 804 +820 805 +886 806 +896 807 +919 808 +810 809 +917 809 +908 811 +884 812 +939 812 +1121 812 +814 813 +908 813 +917 813 +816 815 +926 815 +817 816 +906 816 +819 818 +887 820 +896 820 +920 820 +879 821 +884 821 +934 821 +824 823 +836 827 +837 827 +873 827 +832 828 +838 828 +832 829 +839 829 +840 830 +868 830 +841 831 +868 831 +842 832 +843 833 +873 833 +844 834 +861 834 +845 835 +868 835 +858 837 +859 837 +847 846 +872 847 +853 848 +862 848 +863 848 +854 849 +872 849 +855 850 +857 850 +856 851 +868 851 +875 852 +872 857 +860 859 +862 861 +868 862 +864 863 +868 863 +868 865 +876 865 +877 866 +868 867 +870 867 +876 867 +869 868 +870 869 +876 869 +881 871 +881 872 +877 873 +875 874 +881 874 +877 876 +882 876 +881 878 +881 880 +936 883 +1122 883 +913 884 +917 884 +894 885 +926 885 +936 885 +895 886 +896 886 +923 887 +916 888 +890 889 +907 889 +916 889 +892 891 +898 891 +926 891 +920 893 +935 893 +1125 893 +1124 894 +896 895 +912 896 +916 896 +943 896 +913 897 +925 897 +899 898 +907 898 +912 900 +1128 900 +905 901 +986 902 +904 903 +938 903 +943 903 +921 905 +938 905 +922 906 +911 907 +916 907 +926 907 +909 908 +911 910 +934 913 +937 913 +962 913 +925 914 +990 915 +917 916 +929 916 +918 917 +1129 917 +939 918 +922 920 +923 920 +926 920 +932 920 +936 920 +929 921 +1132 921 +924 923 +927 926 +936 926 +928 927 +936 927 +930 929 +948 931 +933 932 +941 932 +946 934 +936 935 +1133 935 +953 939 +953 940 +943 942 +960 944 +964 945 +951 947 +954 947 +956 947 +957 947 +963 947 +950 949 +954 949 +955 949 +964 950 +968 950 +974 950 +959 951 +954 952 +958 953 +957 956 +966 956 +972 956 +972 959 +961 960 +962 960 +967 960 +965 961 +971 962 +967 964 +968 964 +970 965 +969 968 +971 970 +982 973 +976 975 +988 975 +1000 975 +988 977 +982 978 +981 980 +983 980 +997 980 +985 982 +986 984 +988 984 +998 986 +992 987 +994 987 +989 988 +991 990 +993 992 +996 994 +997 994 +996 995 +997 996 +1026 1001 +1034 1002 +1031 1003 +1038 1004 +1006 1005 +1012 1005 +1018 1005 +1020 1005 +1029 1005 +1034 1005 +1022 1007 +1009 1008 +1017 1008 +1018 1008 +1020 1008 +1021 1008 +1039 1008 +1039 1010 +1039 1011 +1022 1012 +1028 1012 +1029 1012 +1036 1012 +1037 1012 +1038 1012 +1038 1013 +1028 1014 +1023 1015 +1033 1015 +1028 1016 +1032 1018 +1020 1019 +1023 1022 +1024 1022 +1026 1022 +1033 1023 +1027 1024 +1026 1025 +1027 1026 +1034 1026 +1030 1029 +1033 1031 +1035 1031 +1035 1034 +1049 1042 +1049 1043 +1052 1043 +1046 1044 +1057 1045 +1053 1048 +1050 1049 +1051 1049 +1055 1050 +1055 1054 +1057 1054 +1060 1058 +1071 1061 +1084 1061 +1073 1062 +1074 1063 +1086 1063 +1076 1064 +1079 1064 +1067 1065 +1070 1066 +1068 1067 +1091 1067 +1085 1068 +1076 1069 +1112 1069 +1087 1070 +1074 1071 +1073 1072 +1074 1073 +1080 1073 +1085 1073 +1081 1074 +1076 1075 +1077 1076 +1079 1076 +1087 1076 +1094 1076 +1083 1077 +1084 1077 +1116 1078 +1086 1082 +1105 1088 +1111 1088 +1090 1089 +1092 1090 +1107 1090 +1097 1092 +1095 1094 +1099 1094 +1104 1094 +1112 1094 +1102 1095 +1106 1095 +1111 1095 +1099 1096 +1098 1097 +1100 1099 +1119 1100 +1111 1101 +1117 1103 +1118 1103 +1108 1105 +1113 1109 +1118 1110 +1114 1113 +1115 1113 +1119 1116 +1135 1121 +1134 1123 +1134 1128 +1135 1130 diff --git a/src/3rdparty/adaptagrams/libcola/tests/data/uetzNetworkGSC-all.gml b/src/3rdparty/adaptagrams/libcola/tests/data/uetzNetworkGSC-all.gml new file mode 100644 index 0000000..99c4053 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/data/uetzNetworkGSC-all.gml @@ -0,0 +1,26139 @@ +graph [ + directed 1 + node [ + id 1 + pajek_id 1 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1294.0522048684777 + y 1122.6497967871214 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 2 + pajek_id 2 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2055.718178872795 + y 1059.2791761907554 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 3 + pajek_id 3 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1256.6354129633914 + y 1695.6123461841953 + w 20.0 + h 20.0 + fill "#FFFF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 4 + pajek_id 4 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1184.7211808078375 + y 935.8910996786233 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 5 + pajek_id 5 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2298.0954772536134 + y 1437.502173559352 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 6 + pajek_id 6 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1897.6814785435922 + y 550.7159507323732 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 7 + pajek_id 7 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1901.322129497895 + y 1044.3438487090452 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 8 + pajek_id 8 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2780.868057459027 + y 880.0661109912785 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 9 + pajek_id 9 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1538.3317441868267 + y 1411.5744527134639 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 10 + pajek_id 10 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 396.0152636117873 + y 1131.0468905861571 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 11 + pajek_id 11 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2807.6418756553476 + y 1965.421804479885 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 12 + pajek_id 12 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1483.7207919217562 + y 1613.0999970511837 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 13 + pajek_id 13 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 254.92863023355244 + y 592.4142543364859 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 14 + pajek_id 14 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2356.3555481078492 + y 762.7982298395269 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 15 + pajek_id 15 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 358.86149369612554 + y 718.6522617063977 + w 20.0 + h 20.0 + fill "#FFFF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 16 + pajek_id 16 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1989.7728584457432 + y 593.5406100260483 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 17 + pajek_id 17 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1176.0589697518428 + y 274.6599182522517 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 18 + pajek_id 18 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 815.4286293876028 + y 1519.2372285089286 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 19 + pajek_id 19 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1292.8058349907271 + y 1534.9166231756176 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 20 + pajek_id 20 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1712.1139015143726 + y 1743.9840389531971 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 21 + pajek_id 21 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1159.0926195442978 + y 60.0 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 22 + pajek_id 22 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1698.8281996861965 + y 938.1788913033595 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 23 + pajek_id 23 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2117.1960623698105 + y 377.3080137329175 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 24 + pajek_id 24 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1988.5172976949088 + y 1626.9118171301184 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 25 + pajek_id 25 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1951.0677192239534 + y 1227.8213042650113 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 26 + pajek_id 26 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1209.2907663600151 + y 571.9488583740487 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 27 + pajek_id 27 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1553.217522639471 + y 514.0779699887444 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 28 + pajek_id 28 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1216.2131040787344 + y 1306.3244872331861 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 29 + pajek_id 29 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2495.910234238144 + y 1509.2542926345884 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 30 + pajek_id 30 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2589.368846133916 + y 902.4410855851487 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 31 + pajek_id 31 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1900.4466132863522 + y 960.4878587369396 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 32 + pajek_id 32 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1480.404193494587 + y 503.45364906241434 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 33 + pajek_id 33 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1786.4697371577445 + y 2321.7848119927116 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 34 + pajek_id 34 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1609.213005284541 + y 1590.2108893694465 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 35 + pajek_id 35 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 600.5008950141041 + y 1277.5609673161835 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 36 + pajek_id 36 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 60.0 + y 768.8625017780407 + w 20.0 + h 20.0 + fill "#FFFF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 37 + pajek_id 37 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 382.9141452731493 + y 1259.7726277058914 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 38 + pajek_id 38 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 687.2063369120657 + y 1082.3933671094655 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 39 + pajek_id 39 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1027.5033292569951 + y 1088.9830040963775 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 40 + pajek_id 40 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1632.4747876484166 + y 710.5037615118014 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 41 + pajek_id 41 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 748.4550588733631 + y 1062.8651339361004 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 42 + pajek_id 42 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 963.8979533416527 + y 1723.250139029375 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 43 + pajek_id 43 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1411.3947986828978 + y 1157.8550891438708 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 44 + pajek_id 44 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2648.6214914664592 + y 360.6532255567197 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 45 + pajek_id 45 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1012.524198351514 + y 1566.9080651878785 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 46 + pajek_id 46 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1673.0588337518445 + y 1520.3103374282064 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 47 + pajek_id 47 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2292.062233641057 + y 807.7075902196876 + w 20.0 + h 20.0 + fill "#FFFF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 48 + pajek_id 48 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2077.483685032171 + y 1214.6266410102694 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 49 + pajek_id 49 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1250.7982377330313 + y 984.2480480318932 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 50 + pajek_id 50 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 826.5624689443126 + y 1458.2342219655006 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 51 + pajek_id 51 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1043.503156998524 + y 1914.4120411204835 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 52 + pajek_id 52 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1097.4841298080655 + y 608.9543419822743 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 53 + pajek_id 53 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1151.8669553096083 + y 1688.783506135614 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 54 + pajek_id 54 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1100.1774339936296 + y 449.9360013393336 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 55 + pajek_id 55 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1797.1270429940496 + y 517.7947984237063 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 56 + pajek_id 56 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1958.7774891972645 + y 951.067065374911 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 57 + pajek_id 57 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1320.7173946510097 + y 666.953428346941 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 58 + pajek_id 58 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 409.511718757674 + y 754.8270051102944 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 59 + pajek_id 59 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 456.52944375010406 + y 1644.5489937771122 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 60 + pajek_id 60 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1650.4029796871373 + y 1281.9794653489726 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 61 + pajek_id 61 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2203.5059215970086 + y 1103.986465771347 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 62 + pajek_id 62 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1648.5790338469196 + y 1619.5713910478498 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 63 + pajek_id 63 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1441.449939123268 + y 278.4421140050705 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 64 + pajek_id 64 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1646.3755592037082 + y 1867.8552090742746 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 65 + pajek_id 65 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1690.4064173252282 + y 1106.6596200585911 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 66 + pajek_id 66 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1375.2079396723311 + y 1567.1239230162141 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 67 + pajek_id 67 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1381.6936762897983 + y 930.9429010096588 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 68 + pajek_id 68 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2246.515691754706 + y 1228.672822112808 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 69 + pajek_id 69 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2513.1221976499774 + y 2123.5607442911432 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 70 + pajek_id 70 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 325.1248018822786 + y 1301.1300387216584 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 71 + pajek_id 71 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 905.4567507395766 + y 1635.3403866013616 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 72 + pajek_id 72 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1409.3758774490468 + y 2445.8494772528247 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 73 + pajek_id 73 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 270.55209645867626 + y 1976.484880612065 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 74 + pajek_id 74 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1846.104723102188 + y 2357.13888536703 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 75 + pajek_id 75 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1931.8467589445268 + y 1416.3573716456167 + w 20.0 + h 20.0 + fill "#FFFF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 76 + pajek_id 76 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 219.41564456563447 + y 351.74606877700694 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 77 + pajek_id 77 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1574.267945560331 + y 994.005057804803 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 78 + pajek_id 78 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2258.765897434142 + y 975.7865089151361 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 79 + pajek_id 79 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1003.0168039671166 + y 818.3149905376152 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 80 + pajek_id 80 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2162.351384651877 + y 639.3742942428671 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 81 + pajek_id 81 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1175.3498984884113 + y 205.4073989675603 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 82 + pajek_id 82 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1025.8732247508035 + y 146.60499318409438 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 83 + pajek_id 83 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 784.8316721743003 + y 739.8886774008013 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 84 + pajek_id 84 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2358.3905436512314 + y 1757.8833117002607 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 85 + pajek_id 85 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 187.0231231288874 + y 464.9030131392583 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 86 + pajek_id 86 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1680.1684155817545 + y 989.3992861143759 + w 20.0 + h 20.0 + fill "#FFFF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 87 + pajek_id 87 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1592.5433115122046 + y 1133.073079548351 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 88 + pajek_id 88 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 984.0210982272379 + y 1907.6496174273066 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 89 + pajek_id 89 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1908.2544551347682 + y 1953.0395792102486 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 90 + pajek_id 90 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1760.6396933740039 + y 454.1561397683437 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 91 + pajek_id 91 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1510.4214829476575 + y 255.4247158499462 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 92 + pajek_id 92 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2156.911158437812 + y 1737.2936541047445 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 93 + pajek_id 93 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2330.4433111549088 + y 1066.919264412134 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 94 + pajek_id 94 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1489.0049739638976 + y 1102.8420420131365 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 95 + pajek_id 95 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1381.821327085725 + y 1425.799958792195 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 96 + pajek_id 96 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2026.5031721150344 + y 1195.03677714938 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 97 + pajek_id 97 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1566.5985533781122 + y 2134.591986800821 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 98 + pajek_id 98 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1866.8579043433465 + y 496.54994132044186 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 99 + pajek_id 99 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1709.8596572466934 + y 1537.0985557194695 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 100 + pajek_id 100 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1058.888749291412 + y 1423.3219452240978 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 101 + pajek_id 101 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1026.841049144297 + y 1526.2197338662158 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 102 + pajek_id 102 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1234.128325564796 + y 1058.423971642138 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 103 + pajek_id 103 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2269.604004829725 + y 1961.2578434564753 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 104 + pajek_id 104 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1204.604308471341 + y 331.2782608195139 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 105 + pajek_id 105 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1456.5954783621391 + y 2393.969680005851 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 106 + pajek_id 106 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1030.6221217055054 + y 1655.7105879228054 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 107 + pajek_id 107 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1825.2038903621162 + y 1764.5225692398108 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 108 + pajek_id 108 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 855.344393246044 + y 1581.4397578617163 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 109 + pajek_id 109 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2290.109859607357 + y 1866.4142704202714 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 110 + pajek_id 110 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2016.9300946422195 + y 1800.0828289087844 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 111 + pajek_id 111 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2311.298477488912 + y 1203.9224047333146 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 112 + pajek_id 112 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2173.9918013172064 + y 1358.97529576786 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 113 + pajek_id 113 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 402.8249532029572 + y 2005.0535234158124 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 114 + pajek_id 114 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1370.447752295795 + y 1698.544524957459 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 115 + pajek_id 115 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 824.5410187470699 + y 2203.3482170965663 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 116 + pajek_id 116 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1899.5312814624624 + y 341.64788217907767 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 117 + pajek_id 117 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1275.5334231652173 + y 435.5539332588777 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 118 + pajek_id 118 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1799.057369842763 + y 898.644722551811 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 119 + pajek_id 119 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 936.3882990544396 + y 542.1677084693897 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 120 + pajek_id 120 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2035.2157086365958 + y 549.5503878259726 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 121 + pajek_id 121 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2306.5008116638155 + y 2172.8922465255055 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 122 + pajek_id 122 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 794.0600584680333 + y 1767.0092661358444 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 123 + pajek_id 123 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 967.8528471899847 + y 1305.606206649742 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 124 + pajek_id 124 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2478.6497152538377 + y 1203.6776389496872 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 125 + pajek_id 125 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1997.321116636319 + y 2192.367195588601 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 126 + pajek_id 126 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1177.3434085029842 + y 778.6424846605535 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 127 + pajek_id 127 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1585.5048018331465 + y 1455.2573996761384 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 128 + pajek_id 128 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 472.28484900676176 + y 718.0672675218485 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 129 + pajek_id 129 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 794.0849295823707 + y 1371.6459663216558 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 130 + pajek_id 130 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2008.8851806591924 + y 1293.0028606195688 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 131 + pajek_id 131 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1441.295381525302 + y 564.6073812973832 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 132 + pajek_id 132 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1861.1042483735764 + y 1523.2486386191717 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 133 + pajek_id 133 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 957.7655245033009 + y 114.39870152004505 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 134 + pajek_id 134 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1961.9942877269461 + y 124.43728726767961 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 135 + pajek_id 135 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2317.512327717449 + y 924.258173136443 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 136 + pajek_id 136 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1800.1506277595804 + y 2261.975902475042 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 137 + pajek_id 137 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 595.234814691012 + y 1025.317899636531 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 138 + pajek_id 138 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 964.840641154222 + y 247.01750927240698 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 139 + pajek_id 139 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 588.9999815953205 + y 2079.3235704527674 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 140 + pajek_id 140 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2110.3560493557006 + y 505.8109983485984 + w 20.0 + h 20.0 + fill "#FFFF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 141 + pajek_id 141 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1399.3112848730054 + y 1227.804800096851 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 142 + pajek_id 142 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1334.1378233999883 + y 1813.8827309253875 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 143 + pajek_id 143 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1805.918047276415 + y 624.9341989045439 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 144 + pajek_id 144 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1467.2887831794974 + y 1491.092756875548 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 145 + pajek_id 145 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1369.2679808531936 + y 1127.5618294352796 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 146 + pajek_id 146 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2025.2400562476682 + y 1570.3163109170114 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 147 + pajek_id 147 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2055.8364822532835 + y 684.3901430356791 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 148 + pajek_id 148 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2458.5244327113796 + y 1391.3830145494958 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 149 + pajek_id 149 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1552.825479830451 + y 1252.8654366828728 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 150 + pajek_id 150 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2642.703200490143 + y 873.2840758651536 + w 20.0 + h 20.0 + fill "#FFFF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 151 + pajek_id 151 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2493.621315614442 + y 1057.6778103427564 + w 20.0 + h 20.0 + fill "#FFFF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 152 + pajek_id 152 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2048.524265153669 + y 2396.6375817898183 + w 20.0 + h 20.0 + fill "#FFFF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 153 + pajek_id 153 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1295.8980767195865 + y 1281.8240646387455 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 154 + pajek_id 154 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 948.0256773985192 + y 874.4275219392624 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 155 + pajek_id 155 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1060.558142370161 + y 2121.7015632861817 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 156 + pajek_id 156 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1588.0692311325395 + y 2419.735277431223 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 157 + pajek_id 157 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1399.2208755506806 + y 668.8198477332975 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 158 + pajek_id 158 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1580.2791211407448 + y 894.9665199234698 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 159 + pajek_id 159 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1585.445364428028 + y 1518.9113878761736 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 160 + pajek_id 160 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2149.623427593962 + y 1585.663447804202 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 161 + pajek_id 161 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1073.2288913412556 + y 1374.5854206557112 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 162 + pajek_id 162 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 493.61694579516404 + y 1365.494793302807 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 163 + pajek_id 163 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1286.2369050296045 + y 1067.3473338636227 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 164 + pajek_id 164 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 927.1316689881887 + y 1385.503225606381 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 165 + pajek_id 165 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2193.2522202024475 + y 1206.1206658070653 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 166 + pajek_id 166 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 772.1411120215096 + y 1970.8119423759322 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 167 + pajek_id 167 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1145.792529275603 + y 1177.4939749954644 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 168 + pajek_id 168 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 782.4194952141179 + y 2042.5751921467117 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 169 + pajek_id 169 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1254.116200428233 + y 2594.759114678682 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 170 + pajek_id 170 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2678.2734809510507 + y 2096.8291622390625 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 171 + pajek_id 171 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2400.4372550336543 + y 1652.7179946898918 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 172 + pajek_id 172 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1386.2112759254533 + y 1638.7948048718672 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 173 + pajek_id 173 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 943.8883491218697 + y 1073.7919591358736 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 174 + pajek_id 174 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1179.1603874552718 + y 1122.3817446803446 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 175 + pajek_id 175 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2233.8795632906877 + y 1527.7817714192893 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 176 + pajek_id 176 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2163.4669644146798 + y 1260.955553479491 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 177 + pajek_id 177 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1869.4250586602952 + y 2472.448020780895 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 178 + pajek_id 178 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1112.7457233061032 + y 1329.0846670907608 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 179 + pajek_id 179 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1118.8056866951574 + y 852.6869706221119 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 180 + pajek_id 180 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1307.2508861643091 + y 2462.7701746985686 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 181 + pajek_id 181 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1380.5745060829129 + y 1076.2706855348051 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 182 + pajek_id 182 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2036.4065621255 + y 2529.571297575046 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 183 + pajek_id 183 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1074.9510652351762 + y 801.3658771409633 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 184 + pajek_id 184 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 255.45722686156626 + y 1805.532111761012 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 185 + pajek_id 185 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2342.5052901155595 + y 1982.0954207181567 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 186 + pajek_id 186 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1178.1746215798703 + y 871.8443836872366 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 187 + pajek_id 187 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1537.0518689637947 + y 1540.5124880929002 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 188 + pajek_id 188 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1236.2077456256104 + y 1534.272658840872 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 189 + pajek_id 189 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1621.2397812102838 + y 1400.4425940981625 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 190 + pajek_id 190 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 766.3905805597286 + y 886.402470142523 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 191 + pajek_id 191 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2168.7884396974873 + y 550.016818013951 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 192 + pajek_id 192 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 993.9061877291988 + y 1029.772643432917 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 193 + pajek_id 193 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 463.0359831362713 + y 1022.0861273460611 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 194 + pajek_id 194 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 639.0038131671084 + y 555.7612618656989 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 195 + pajek_id 195 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1814.9683409976778 + y 2445.753076164031 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 196 + pajek_id 196 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1686.4439166148054 + y 1938.4699461276296 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 197 + pajek_id 197 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 930.0951591923147 + y 1241.663890087508 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 198 + pajek_id 198 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 520.2346633262122 + y 1199.2357895089199 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 199 + pajek_id 199 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1971.6382604373562 + y 343.1014653785635 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 200 + pajek_id 200 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2027.0179357401762 + y 1349.107156613678 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 201 + pajek_id 201 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2087.081528540994 + y 802.4499939958602 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 202 + pajek_id 202 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 625.0171226735023 + y 1914.7856839077308 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 203 + pajek_id 203 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1899.9652173985933 + y 2072.1438307043504 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 204 + pajek_id 204 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1606.0783659797662 + y 1837.1508274695605 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 205 + pajek_id 205 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 901.3919870421247 + y 1513.1982896128998 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 206 + pajek_id 206 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2538.1638433893568 + y 1616.7551606942914 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 207 + pajek_id 207 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1866.691494571614 + y 2114.4934954074397 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 208 + pajek_id 208 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1028.2574487173333 + y 973.0790458888064 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 209 + pajek_id 209 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1753.7616445481387 + y 928.4269154425315 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 210 + pajek_id 210 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 434.8320641528154 + y 900.7941512774352 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 211 + pajek_id 211 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1197.692612238198 + y 1656.3283202472192 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 212 + pajek_id 212 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2262.872473159019 + y 855.5192882246674 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 213 + pajek_id 213 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2005.7033668568552 + y 1687.3129033516693 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 214 + pajek_id 214 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2005.4330911080656 + y 1248.6067376996575 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 215 + pajek_id 215 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1497.6387156758587 + y 409.988817350047 + w 20.0 + h 20.0 + fill "#FFFF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 216 + pajek_id 216 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1511.6499513985573 + y 2019.1033155888222 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 217 + pajek_id 217 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1832.9845660337855 + y 1594.9330492361391 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 218 + pajek_id 218 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2124.163466904739 + y 1121.7594517130105 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 219 + pajek_id 219 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2114.0594425877107 + y 879.072087899176 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 220 + pajek_id 220 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2060.685078868419 + y 1835.1973884802942 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 221 + pajek_id 221 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2250.360824827312 + y 908.8247250753682 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 222 + pajek_id 222 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1619.44524541997 + y 1208.958636465997 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 223 + pajek_id 223 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1420.5578431824722 + y 1022.1078286320392 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 224 + pajek_id 224 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1804.5906551872706 + y 1356.7859367888193 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 225 + pajek_id 225 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1182.3901258139676 + y 1078.275091742608 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 226 + pajek_id 226 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 939.5649257137159 + y 750.6386331311932 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 227 + pajek_id 227 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1227.5697565955718 + y 1194.722525770867 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 228 + pajek_id 228 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1677.315636418083 + y 818.1002681824733 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 229 + pajek_id 229 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1969.8218697907696 + y 2124.400924405766 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 230 + pajek_id 230 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1346.0361911089835 + y 591.0926251849802 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 231 + pajek_id 231 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1937.4480655403545 + y 1484.3086656977262 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 232 + pajek_id 232 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 913.1080893674856 + y 2448.9010701058382 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 233 + pajek_id 233 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 980.1355123328368 + y 2143.0193206720637 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 234 + pajek_id 234 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2468.507735819624 + y 680.6867726745393 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 235 + pajek_id 235 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 961.6345650781091 + y 965.0860824711237 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 236 + pajek_id 236 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 492.09673495414074 + y 284.8975707321614 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 237 + pajek_id 237 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1446.3792419244076 + y 1813.9029462286976 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 238 + pajek_id 238 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1813.9462106455926 + y 947.4822230702299 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 239 + pajek_id 239 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1428.5911518460912 + y 1609.8340596280282 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 240 + pajek_id 240 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1005.3650634855937 + y 882.2530156601648 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 241 + pajek_id 241 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1970.4155162426391 + y 1125.8976010185038 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 242 + pajek_id 242 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 240.57076448405542 + y 1473.723263945339 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 243 + pajek_id 243 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2046.1993784054494 + y 950.6121816835345 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 244 + pajek_id 244 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2808.307733786458 + y 1514.739154198832 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 245 + pajek_id 245 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1882.8938446652257 + y 1459.0281000095843 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 246 + pajek_id 246 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1723.9114037847546 + y 2365.644132764209 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 247 + pajek_id 247 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1936.717394034969 + y 1594.3192138208242 + w 20.0 + h 20.0 + fill "#FFFF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 248 + pajek_id 248 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1971.7509493535508 + y 1179.4845850946012 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 249 + pajek_id 249 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1058.6250365444143 + y 859.7134012319751 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 250 + pajek_id 250 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1875.0949016123318 + y 2018.8968281970356 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 251 + pajek_id 251 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 802.2218018782783 + y 830.0503347776802 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 252 + pajek_id 252 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 813.0528123889172 + y 1656.3453211681867 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 253 + pajek_id 253 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1273.6722755380645 + y 562.4903627029978 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 254 + pajek_id 254 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 738.6225904711797 + y 1832.437257453023 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 255 + pajek_id 255 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2123.755229836545 + y 2672.877537298277 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 256 + pajek_id 256 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 766.238178017943 + y 627.4085851267696 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 257 + pajek_id 257 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1129.8317234871274 + y 1757.6767114954823 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 258 + pajek_id 258 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2009.7762232303267 + y 2041.0971651622217 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 259 + pajek_id 259 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1736.9465300050063 + y 1793.4455313056224 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 260 + pajek_id 260 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 648.0899197694613 + y 1133.071910642336 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 261 + pajek_id 261 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2673.608535682633 + y 1969.3166527926637 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 262 + pajek_id 262 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1190.4241821550581 + y 1456.8778384709221 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 263 + pajek_id 263 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1773.3304812765168 + y 1171.6981943217245 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 264 + pajek_id 264 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2455.8689870091684 + y 1698.2588839027976 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 265 + pajek_id 265 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1572.4184904317372 + y 1079.9405584556314 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 266 + pajek_id 266 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 930.5993117411441 + y 932.4301787306301 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 267 + pajek_id 267 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1241.016109181929 + y 1641.851386078472 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 268 + pajek_id 268 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1778.3112226979574 + y 1527.5198182466306 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 269 + pajek_id 269 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1997.6945206439827 + y 1435.167335502786 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 270 + pajek_id 270 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2928.2834579168007 + y 1108.202244706911 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 271 + pajek_id 271 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1549.1458457473145 + y 592.3498910478805 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 272 + pajek_id 272 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2567.1609182049815 + y 349.9728983492399 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 273 + pajek_id 273 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1790.3664691634244 + y 2391.926302478362 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 274 + pajek_id 274 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1156.9233946634465 + y 1363.0451223083915 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 275 + pajek_id 275 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 856.1024353157368 + y 2058.0580043741106 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 276 + pajek_id 276 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2007.3448524911623 + y 955.2249749444019 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 277 + pajek_id 277 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1867.826843063508 + y 1168.1178614284738 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 278 + pajek_id 278 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1849.7065836818551 + y 1931.1333235795955 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 279 + pajek_id 279 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1260.0763722109286 + y 655.2169595822215 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 280 + pajek_id 280 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1899.1104082490497 + y 1614.8129891919102 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 281 + pajek_id 281 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2378.43114046961 + y 2184.529789498435 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 282 + pajek_id 282 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2040.929028434561 + y 2329.0083925520726 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 283 + pajek_id 283 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1329.822091272441 + y 817.7805081038614 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 284 + pajek_id 284 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1916.5095601095395 + y 1315.8369929397447 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 285 + pajek_id 285 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1540.8732018426379 + y 1757.2830276053164 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 286 + pajek_id 286 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1497.5518877310492 + y 2332.209587716714 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 287 + pajek_id 287 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1820.876610989953 + y 1705.7800792711614 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 288 + pajek_id 288 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2053.621424690008 + y 137.4950984709352 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 289 + pajek_id 289 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2288.638168809773 + y 1661.1373438648448 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 290 + pajek_id 290 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2521.628031511117 + y 1112.8442155271284 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 291 + pajek_id 291 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2621.075261275747 + y 1040.7003954194217 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 292 + pajek_id 292 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1489.7226658046911 + y 1212.598420726727 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 293 + pajek_id 293 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1344.039251806568 + y 765.4921416388333 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 294 + pajek_id 294 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2783.106085646018 + y 1011.1576483698651 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 295 + pajek_id 295 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 666.034857878941 + y 1196.1544941612838 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 296 + pajek_id 296 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1069.4593629564115 + y 1627.9059240200613 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 297 + pajek_id 297 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1798.2247140891636 + y 1428.1375539568382 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 298 + pajek_id 298 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1934.1343683875075 + y 2404.2315045912405 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 299 + pajek_id 299 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2699.851785344458 + y 427.8558563028148 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 300 + pajek_id 300 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 834.2031874852718 + y 250.70469068286297 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 301 + pajek_id 301 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1004.0710874574961 + y 1280.167160042513 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 302 + pajek_id 302 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1750.4516583745296 + y 1471.2162955489407 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 303 + pajek_id 303 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2401.7820655598725 + y 2272.1863557268275 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 304 + pajek_id 304 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1814.6823768957051 + y 2071.5062836539637 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 305 + pajek_id 305 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2520.536274654057 + y 992.8636618688267 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 306 + pajek_id 306 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2265.0881548319567 + y 2065.5837863656484 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 307 + pajek_id 307 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1257.8172960656739 + y 803.4108171125971 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 308 + pajek_id 308 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 776.7856178664061 + y 1694.4563434703907 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 309 + pajek_id 309 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1440.886631358504 + y 1532.750033969016 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 310 + pajek_id 310 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1989.010230552772 + y 259.2322753906619 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 311 + pajek_id 311 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 793.6486929322533 + y 1180.108345062422 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 312 + pajek_id 312 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1917.539646877893 + y 2281.8557999514537 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 313 + pajek_id 313 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 867.9822424379655 + y 1709.027298137467 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 314 + pajek_id 314 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1484.2011650524655 + y 1345.1479429348788 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 315 + pajek_id 315 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1076.084829910138 + y 996.0235144558553 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 316 + pajek_id 316 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1693.090850412172 + y 2090.5966253636116 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 317 + pajek_id 317 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2037.1290633056465 + y 369.80076511683393 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 318 + pajek_id 318 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1007.8277192737382 + y 1754.1325273022699 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 319 + pajek_id 319 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2172.028629136008 + y 1461.0364064098994 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 320 + pajek_id 320 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2257.1227609527 + y 1310.8862977736107 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 321 + pajek_id 321 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1300.745991888025 + y 2187.297908294803 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 322 + pajek_id 322 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2204.6686322693918 + y 1410.994870895594 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 323 + pajek_id 323 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 864.8355633586339 + y 1982.7204827008345 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 324 + pajek_id 324 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 800.0003105548103 + y 1923.7791435231852 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 325 + pajek_id 325 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1024.7502660900132 + y 1366.1758015615299 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 326 + pajek_id 326 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2050.7149391093694 + y 1257.3982758996383 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 327 + pajek_id 327 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 960.7821525481202 + y 1584.4968382633942 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 328 + pajek_id 328 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1124.4061711877166 + y 1046.726994002646 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 329 + pajek_id 329 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1108.4893044148541 + y 1194.3431578903087 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 330 + pajek_id 330 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1100.133655193655 + y 1137.6918022343907 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 331 + pajek_id 331 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1760.6862781934046 + y 1320.6513715309195 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 332 + pajek_id 332 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1200.2523322538245 + y 1002.7964728390644 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 333 + pajek_id 333 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1181.4892595539825 + y 1225.6989123360675 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 334 + pajek_id 334 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1868.4127438749463 + y 1117.6967188028786 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 335 + pajek_id 335 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2168.6794851454647 + y 1162.2427344452735 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 336 + pajek_id 336 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1920.9638225147678 + y 876.5150707247215 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 337 + pajek_id 337 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2920.808088394186 + y 892.3685934633982 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 338 + pajek_id 338 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1645.909927183584 + y 1471.9956590731072 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 339 + pajek_id 339 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1447.1109049135396 + y 1746.1534799232427 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 340 + pajek_id 340 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1303.087697302223 + y 1599.75182872408 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 341 + pajek_id 341 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1404.1964183968635 + y 1732.988309973422 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 342 + pajek_id 342 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 188.7586938483705 + y 732.4710661793797 + w 20.0 + h 20.0 + fill "#FFFF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 343 + pajek_id 343 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 237.5145668340565 + y 798.209667685809 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 344 + pajek_id 344 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 655.6090365411286 + y 768.8237020380398 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 345 + pajek_id 345 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1239.593772491194 + y 142.24994629451373 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 346 + pajek_id 346 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 668.4582174721975 + y 1570.710895937615 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 347 + pajek_id 347 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 704.1732692312117 + y 1623.8128247520694 + w 20.0 + h 20.0 + fill "#FFFF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 348 + pajek_id 348 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1806.5024342076917 + y 1845.9002776470725 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 349 + pajek_id 349 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1572.0491307665409 + y 1632.2321415433307 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 350 + pajek_id 350 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2170.491596866099 + y 252.15493902189132 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 351 + pajek_id 351 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2236.6106720779644 + y 313.9614539100346 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 352 + pajek_id 352 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1956.787709026074 + y 478.6286472297293 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 353 + pajek_id 353 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1521.6247356278914 + y 651.1377056441239 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 354 + pajek_id 354 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2673.4749982408534 + y 1517.3687949519558 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 355 + pajek_id 355 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2462.8285772682266 + y 853.132399611773 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 356 + pajek_id 356 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2723.74809870115 + y 928.6302426931661 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 357 + pajek_id 357 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1370.7051182886262 + y 1487.7369332080375 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 358 + pajek_id 358 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 468.7736750192556 + y 1245.6923887724063 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 359 + pajek_id 359 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 769.1240346507418 + y 1297.5083732935518 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 360 + pajek_id 360 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1281.6747231335723 + y 1222.571355135779 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 361 + pajek_id 361 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2579.810673602955 + y 486.0242869026378 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 362 + pajek_id 362 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1625.153907135859 + y 1657.7991036276171 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 363 + pajek_id 363 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1685.4668204197178 + y 1675.1432793501972 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 364 + pajek_id 364 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1649.065379741583 + y 1710.3631889761837 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 365 + pajek_id 365 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1735.2434575622904 + y 1652.0103910358575 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 366 + pajek_id 366 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1546.6380216667462 + y 1660.4291808801559 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 367 + pajek_id 367 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1592.959070056042 + y 1701.930864398132 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 368 + pajek_id 368 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2000.4352383965368 + y 1758.4816008564803 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 369 + pajek_id 369 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1468.5107210693257 + y 1274.5523522286858 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 370 + pajek_id 370 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1343.841518355971 + y 868.6992458482348 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 371 + pajek_id 371 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 956.4416724575727 + y 1542.5109738519532 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 372 + pajek_id 372 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1033.5848153857899 + y 2047.0346481519837 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 373 + pajek_id 373 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1145.9845954789732 + y 2010.3598901708774 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 374 + pajek_id 374 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 966.9695596108811 + y 2038.5494954424362 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 375 + pajek_id 375 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1101.5378289239488 + y 2056.772094668872 + w 20.0 + h 20.0 + fill "#FFFF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 376 + pajek_id 376 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1015.5518645355227 + y 498.21676713384437 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 377 + pajek_id 377 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1108.5018026732564 + y 1836.2444968902573 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 378 + pajek_id 378 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1050.8064474323255 + y 1820.5838099325315 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 379 + pajek_id 379 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1022.4653344068506 + y 1715.6126995231655 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 380 + pajek_id 380 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 973.3911705488091 + y 1656.6045446044554 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 381 + pajek_id 381 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 980.1312729019277 + y 1790.1875755402975 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 382 + pajek_id 382 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1165.9502913921285 + y 1848.0553893620186 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 383 + pajek_id 383 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1847.4512820966625 + y 997.8047505299883 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 384 + pajek_id 384 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1834.8709235195802 + y 1082.3420824375842 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 385 + pajek_id 385 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1926.272882956845 + y 1130.2140856000237 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 386 + pajek_id 386 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2019.5057069987238 + y 1083.2924715168538 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 387 + pajek_id 387 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 340.467937490798 + y 1722.2588619668122 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 388 + pajek_id 388 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 613.237652883032 + y 1579.9427905965279 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 389 + pajek_id 389 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1655.1932187894404 + y 1782.2310536598284 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 390 + pajek_id 390 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1637.2667690847445 + y 952.3525949687174 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 391 + pajek_id 391 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2630.804204930251 + y 2213.7673865428937 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 392 + pajek_id 392 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1080.8078508715175 + y 1570.3664421378583 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 393 + pajek_id 393 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2234.068836486567 + y 1160.6502978141489 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 394 + pajek_id 394 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1086.7948765031201 + y 76.91119774421213 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 395 + pajek_id 395 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2461.9112093928975 + y 1766.6838415805391 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 396 + pajek_id 396 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 113.1199288710568 + y 369.28510273478156 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 397 + pajek_id 397 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1776.1814775671203 + y 1971.90651207382 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 398 + pajek_id 398 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1707.0558465571435 + y 1296.0087781780164 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 399 + pajek_id 399 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1417.7718529314445 + y 1350.7244506853776 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 400 + pajek_id 400 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2125.52060844245 + y 1048.4849048770884 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 401 + pajek_id 401 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1552.3770468848625 + y 2260.559438155617 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 402 + pajek_id 402 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1874.1651337345234 + y 1245.0945400298474 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 403 + pajek_id 403 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1256.6383628219503 + y 1450.7738470869801 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 404 + pajek_id 404 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2259.967596935999 + y 2120.7466929344328 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 405 + pajek_id 405 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2500.5496931980915 + y 1966.736685021926 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 406 + pajek_id 406 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2347.7927648395157 + y 2091.6701739856917 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 407 + pajek_id 407 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2392.889146581768 + y 2044.8922015795006 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 408 + pajek_id 408 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2417.761515347872 + y 1975.5515523680338 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 409 + pajek_id 409 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1793.9182626491624 + y 1627.666690778881 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 410 + pajek_id 410 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 719.1430254147674 + y 1486.956454607635 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 411 + pajek_id 411 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 724.2454716778103 + y 1551.3831943720716 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 412 + pajek_id 412 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2447.6879968351877 + y 1876.5514180960204 + w 20.0 + h 20.0 + fill "#FFFF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 413 + pajek_id 413 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2091.9643045079483 + y 1974.8640522416667 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 414 + pajek_id 414 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2028.15537010984 + y 1956.056476995101 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 415 + pajek_id 415 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1984.2252245737018 + y 1908.623346940285 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 416 + pajek_id 416 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2119.7472033124163 + y 1865.6311815257598 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 417 + pajek_id 417 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2130.68571853772 + y 1928.6302578749373 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 418 + pajek_id 418 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2122.510896875806 + y 1780.9007711280406 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 419 + pajek_id 419 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2066.857133577992 + y 1911.002176703526 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 420 + pajek_id 420 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2174.073650971839 + y 1808.4465867530826 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 421 + pajek_id 421 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2173.188445315479 + y 1879.1912761247552 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 422 + pajek_id 422 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2445.130066970032 + y 1152.7800567449078 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 423 + pajek_id 423 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2355.4692035510784 + y 1402.5903362442382 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 424 + pajek_id 424 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2415.2373515095965 + y 1088.9498827129119 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 425 + pajek_id 425 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2039.5995058528129 + y 1430.5751740405808 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 426 + pajek_id 426 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 322.6815092460105 + y 2116.2903817807914 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 427 + pajek_id 427 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 268.5119994462548 + y 2056.087634484369 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 428 + pajek_id 428 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1146.757825786496 + y 364.2656095233129 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 429 + pajek_id 429 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1489.2719624004453 + y 693.8971583258162 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 430 + pajek_id 430 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1827.8677422310066 + y 766.7899007728367 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 431 + pajek_id 431 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1798.3747778112622 + y 1215.8365936661658 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 432 + pajek_id 432 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 804.3580561584004 + y 501.9583186324991 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 433 + pajek_id 433 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 849.2647555481542 + y 434.2847659573615 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 434 + pajek_id 434 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2328.3994872753374 + y 2321.663189777115 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 435 + pajek_id 435 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 618.9825732416654 + y 1813.9348120438804 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 436 + pajek_id 436 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 700.4298252161705 + y 1333.1902810428091 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 437 + pajek_id 437 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1395.7113829826137 + y 1284.9840905117753 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 438 + pajek_id 438 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2630.3138122865585 + y 1172.8988923967477 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 439 + pajek_id 439 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2615.848167339149 + y 1246.8020908359208 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 440 + pajek_id 440 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 469.43123730699017 + y 854.8438020056724 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 441 + pajek_id 441 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2116.96992696925 + y 1379.4358280316942 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 442 + pajek_id 442 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2081.349871481623 + y 1329.7245666590386 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 443 + pajek_id 443 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2424.702556920728 + y 768.839004481539 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 444 + pajek_id 444 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 890.6313761901736 + y 115.79231393666316 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 445 + pajek_id 445 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 857.1356243649586 + y 174.88311586144653 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 446 + pajek_id 446 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 512.8629774244184 + y 2201.527945647691 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 447 + pajek_id 447 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 677.7488039882435 + y 1909.537866326766 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 448 + pajek_id 448 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1338.956871819991 + y 1010.8829829830978 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 449 + pajek_id 449 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1324.088243934198 + y 1729.0798093126218 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 450 + pajek_id 450 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1724.263819989563 + y 504.51288018417335 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 451 + pajek_id 451 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1910.6105654550115 + y 630.6123921072538 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 452 + pajek_id 452 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1710.4548801725487 + y 647.7553354187357 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 453 + pajek_id 453 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1702.9391298385015 + y 563.411307161135 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 454 + pajek_id 454 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1826.116078147204 + y 450.3392482519506 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 455 + pajek_id 455 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2011.5270490887758 + y 760.825852289636 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 456 + pajek_id 456 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2101.9753242282413 + y 581.5866515110404 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 457 + pajek_id 457 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2603.3686351996375 + y 1409.84659720882 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 458 + pajek_id 458 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2438.056345618056 + y 1523.7553993407314 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 459 + pajek_id 459 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2331.6849268576207 + y 1134.766411504912 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 460 + pajek_id 460 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1059.0576214306932 + y 2264.1041145319637 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 461 + pajek_id 461 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1458.141237363875 + y 755.4394205573406 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 462 + pajek_id 462 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 424.1436855406298 + y 1477.224543730106 + w 20.0 + h 20.0 + fill "#FFFF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 463 + pajek_id 463 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 378.7154942468852 + y 1401.5037756061158 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 464 + pajek_id 464 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 314.0529479996145 + y 1373.0410118674613 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 465 + pajek_id 465 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 353.0119560198315 + y 1455.904690398989 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 466 + pajek_id 466 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 834.3766918623855 + y 1291.1793247114124 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 467 + pajek_id 467 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 893.5300096467302 + y 1847.377115763661 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 468 + pajek_id 468 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 716.2809799836317 + y 2178.244847004791 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 469 + pajek_id 469 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2541.4812097684 + y 2043.553501917624 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 470 + pajek_id 470 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1119.6037534804425 + y 1102.2487155380616 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 471 + pajek_id 471 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1007.8554543482325 + y 1148.2192014655018 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 472 + pajek_id 472 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2355.376017232971 + y 1455.616264520982 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 473 + pajek_id 473 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2394.6586276164862 + y 1491.7526626843892 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 474 + pajek_id 474 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2248.1811205504373 + y 1647.7634009017388 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 475 + pajek_id 475 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2337.1166010827837 + y 1520.6716608448314 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 476 + pajek_id 476 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2420.759607231811 + y 1589.229118968443 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 477 + pajek_id 477 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2314.5533268916042 + y 1604.0297855841632 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 478 + pajek_id 478 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2364.2202931300694 + y 1575.671922904723 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 479 + pajek_id 479 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2194.5964587031503 + y 1638.225011658421 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 480 + pajek_id 480 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1065.4992788010986 + y 1464.6555423148318 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 481 + pajek_id 481 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 968.0925172159282 + y 1354.4290172504502 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 482 + pajek_id 482 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1126.8845029318243 + y 1435.5731026238109 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 483 + pajek_id 483 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1213.8500385478933 + y 1383.2655755080937 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 484 + pajek_id 484 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1391.466199058675 + y 2589.0242705868145 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 485 + pajek_id 485 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1324.9339892036385 + y 2618.7726752706 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 486 + pajek_id 486 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1447.1572287025065 + y 927.5802766521502 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 487 + pajek_id 487 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2147.787079263979 + y 2593.4264109946484 + w 20.0 + h 20.0 + fill "#FFFF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 488 + pajek_id 488 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2020.4864930201384 + y 2667.000204943657 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 489 + pajek_id 489 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2455.283559589994 + y 2086.657483037342 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 490 + pajek_id 490 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1682.851876497575 + y 1583.6120931079872 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 491 + pajek_id 491 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1161.1187083008704 + y 1611.7393863381692 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 492 + pajek_id 492 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1041.2626018954427 + y 1598.954971993218 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 493 + pajek_id 493 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2297.354570397635 + y 534.3652679637769 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 494 + pajek_id 494 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 526.5370388426392 + y 485.54459385039985 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 495 + pajek_id 495 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 560.2941765427282 + y 402.56083072436417 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 496 + pajek_id 496 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 377.08394387788996 + y 1333.3317088869094 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 497 + pajek_id 497 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 489.3047686961877 + y 1939.8674034964001 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 498 + pajek_id 498 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 527.233322511409 + y 2017.0516767470162 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 499 + pajek_id 499 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1605.5668452162006 + y 1992.166283565707 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 500 + pajek_id 500 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1546.0840293799524 + y 1955.4015275314973 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 501 + pajek_id 501 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2656.759269426316 + y 1685.5061982513696 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 502 + pajek_id 502 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1728.2354096255438 + y 1051.4437767810607 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 503 + pajek_id 503 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 317.98253615853616 + y 835.2488823603016 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 504 + pajek_id 504 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1227.6068253899532 + y 1819.6331253463359 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 505 + pajek_id 505 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1574.3747014862265 + y 289.21933118032086 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 506 + pajek_id 506 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1436.7167412577667 + y 2136.3809474284844 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 507 + pajek_id 507 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1928.2290848617536 + y 1695.8756254197222 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 508 + pajek_id 508 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2229.8166656736694 + y 1842.5176093374575 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 509 + pajek_id 509 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2191.4931676161536 + y 1969.3723460631686 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 510 + pajek_id 510 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2404.7934790895088 + y 917.1422166878989 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 511 + pajek_id 511 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2395.2429436891007 + y 834.027810518057 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 512 + pajek_id 512 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1638.416583359785 + y 1075.9248111470263 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 513 + pajek_id 513 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1117.2425662770952 + y 945.1325831390579 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 514 + pajek_id 514 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1071.8339051492999 + y 667.2084929230319 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 515 + pajek_id 515 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2080.1550476846883 + y 2248.7722822540536 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 516 + pajek_id 516 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 941.7035591125789 + y 2315.12355349285 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 517 + pajek_id 517 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 864.0401900606075 + y 854.7476458360196 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 518 + pajek_id 518 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1451.1619559522182 + y 1947.3205327227465 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 519 + pajek_id 519 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1481.5993172162407 + y 1688.7490679204407 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 520 + pajek_id 520 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 132.29183753554184 + y 1549.9709751408773 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 521 + pajek_id 521 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 201.92596700389458 + y 1601.853692109065 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 522 + pajek_id 522 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2153.1192264901847 + y 822.9210553334786 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 523 + pajek_id 523 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 640.2772506993291 + y 1675.9420021748028 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 524 + pajek_id 524 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1320.8511741047305 + y 408.77871976114494 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 525 + pajek_id 525 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2213.924926553872 + y 2763.501088516637 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 526 + pajek_id 526 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2074.4442713188187 + y 2170.28081217305 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 527 + pajek_id 527 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1907.281150461828 + y 1756.8956641399836 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 528 + pajek_id 528 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2125.030039415664 + y 2128.3283642176266 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 529 + pajek_id 529 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1748.248950250427 + y 1911.7557662270228 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 530 + pajek_id 530 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1150.8356799670266 + y 1544.1121345992892 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 531 + pajek_id 531 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1477.1689178603895 + y 1147.0096180737971 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 532 + pajek_id 532 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1458.9597650345672 + y 1060.9858986563445 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 533 + pajek_id 533 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1495.8280010142782 + y 989.2245050486312 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 534 + pajek_id 534 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 784.4777027529236 + y 948.7566853266054 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 535 + pajek_id 535 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2110.665526987148 + y 1497.723078348779 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 536 + pajek_id 536 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 3038.33263338064 + y 1192.8113918381189 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 537 + pajek_id 537 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1603.7304792610369 + y 454.1950074099879 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 538 + pajek_id 538 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1801.2035133048555 + y 2119.4411185171184 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 539 + pajek_id 539 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1950.4501795255455 + y 2049.3079413070072 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 540 + pajek_id 540 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1757.897607156828 + y 2049.7669278996045 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 541 + pajek_id 541 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1854.7360726993138 + y 1393.7369312635797 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 542 + pajek_id 542 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1415.8484373759234 + y 1900.9653905466644 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 543 + pajek_id 543 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1497.5005911357582 + y 2480.683702039123 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 544 + pajek_id 544 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 719.9288183455253 + y 236.78163159716667 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 545 + pajek_id 545 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2509.6237885742785 + y 2373.522488677848 + w 20.0 + h 20.0 + fill "#FF3333" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 546 + pajek_id 546 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2436.169862983399 + y 2416.0522801899683 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 547 + pajek_id 547 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 647.1888372458554 + y 1741.9224475898036 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 548 + pajek_id 548 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 681.8502532202343 + y 1799.6304470782582 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 549 + pajek_id 549 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1985.5267000858494 + y 2369.7344325668428 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 550 + pajek_id 550 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1991.106100021963 + y 2440.329057425812 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 551 + pajek_id 551 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1931.1619344063192 + y 2470.578249185151 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 552 + pajek_id 552 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1875.3109201344084 + y 2408.7968384052087 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 553 + pajek_id 553 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1587.9274187718331 + y 1318.0146867000844 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 554 + pajek_id 554 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 930.2559142741628 + y 1891.3731392078669 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 555 + pajek_id 555 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1227.5755919224916 + y 2306.541693351298 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 556 + pajek_id 556 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1304.4750058932211 + y 2321.289347146842 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 557 + pajek_id 557 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 2217.1358311583554 + y 1273.7535975697697 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + node [ + id 558 + pajek_id 558 + label "" + labelgraphics [ + anchor "c" + fontName "Tahoma" + alignment "left" + fontSize 13 + fontStyle "plain" + color "#000000" + type "text" + ] + graphics [ + x 1066.387215640596 + y 1714.3761855178568 + w 20.0 + h 20.0 + fill "#00FF00" + outline "#000000" + frameThickness 3.0 + rounding 5.0 + gradient 0.0 + type "oval" + ] + ] + edge [ + id 1 + source 1 + target 87 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 2 + source 1 + target 223 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 3 + source 1 + target 266 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 4 + source 1 + target 328 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 5 + source 1 + target 329 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 6 + source 1 + target 330 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 7 + source 1 + target 331 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 8 + source 1 + target 332 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 9 + source 1 + target 333 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 10 + source 2 + target 334 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 11 + source 2 + target 335 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 12 + source 3 + target 172 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 13 + source 3 + target 188 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 14 + source 3 + target 257 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 15 + source 4 + target 225 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 16 + source 5 + target 175 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 17 + source 6 + target 143 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 18 + source 7 + target 118 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 19 + source 7 + target 284 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 20 + source 7 + target 336 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 21 + source 8 + target 30 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 22 + source 8 + target 337 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 23 + source 9 + target 338 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 24 + source 10 + target 198 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 25 + source 11 + target 261 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 26 + source 12 + target 66 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 27 + source 12 + target 114 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 28 + source 12 + target 144 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 29 + source 12 + target 189 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 30 + source 12 + target 237 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 31 + source 12 + target 239 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 32 + source 12 + target 267 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 33 + source 12 + target 268 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 34 + source 12 + target 339 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 35 + source 12 + target 340 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 36 + source 12 + target 341 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 37 + source 13 + target 15 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 38 + source 13 + target 85 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 39 + source 14 + target 212 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 40 + source 15 + target 342 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 41 + source 15 + target 343 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 42 + source 15 + target 344 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 43 + source 16 + target 143 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 44 + source 16 + target 191 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 45 + source 17 + target 54 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 46 + source 17 + target 345 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 47 + source 18 + target 100 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 48 + source 18 + target 346 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 49 + source 18 + target 347 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 50 + source 19 + target 267 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 51 + source 20 + target 348 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 52 + source 20 + target 349 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 53 + source 21 + target 81 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 54 + source 22 + target 65 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 55 + source 23 + target 140 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 56 + source 23 + target 350 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 57 + source 23 + target 351 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 58 + source 23 + target 352 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 59 + source 24 + target 217 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 60 + source 25 + target 284 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 61 + source 26 + target 119 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 62 + source 26 + target 353 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 63 + source 27 + target 353 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 64 + source 28 + target 178 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 65 + source 29 + target 148 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 66 + source 29 + target 175 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 67 + source 29 + target 206 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 68 + source 29 + target 354 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 69 + source 30 + target 212 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 70 + source 30 + target 294 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 71 + source 30 + target 355 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 72 + source 30 + target 356 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 73 + source 31 + target 334 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 74 + source 32 + target 353 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 75 + source 33 + target 312 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 76 + source 34 + target 217 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 77 + source 34 + target 220 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 78 + source 34 + target 262 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 79 + source 34 + target 357 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 80 + source 35 + target 358 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 81 + source 35 + target 359 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 82 + source 36 + target 342 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 83 + source 37 + target 162 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 84 + source 38 + target 311 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 85 + source 39 + target 174 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 86 + source 40 + target 228 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 87 + source 41 + target 311 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 88 + source 42 + target 53 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 89 + source 43 + target 265 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 90 + source 43 + target 360 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 91 + source 44 + target 361 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 92 + source 45 + target 53 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 93 + source 46 + target 118 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 94 + source 46 + target 285 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 95 + source 46 + target 362 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 96 + source 46 + target 363 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 97 + source 46 + target 364 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 98 + source 46 + target 365 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 99 + source 46 + target 366 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 100 + source 46 + target 367 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 101 + source 46 + target 368 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 102 + source 46 + target 369 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 103 + source 47 + target 78 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 104 + source 48 + target 284 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 105 + source 49 + target 167 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 106 + source 49 + target 370 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 107 + source 50 + target 371 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 108 + source 51 + target 155 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 109 + source 51 + target 233 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 110 + source 51 + target 325 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 111 + source 51 + target 372 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 112 + source 51 + target 373 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 113 + source 51 + target 374 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 114 + source 51 + target 375 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 115 + source 52 + target 126 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 116 + source 52 + target 376 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 117 + source 53 + target 62 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 118 + source 53 + target 66 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 119 + source 53 + target 371 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 120 + source 53 + target 377 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 121 + source 53 + target 378 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 122 + source 53 + target 379 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 123 + source 53 + target 380 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 124 + source 53 + target 381 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 125 + source 53 + target 382 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 126 + source 54 + target 126 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 127 + source 54 + target 138 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 128 + source 55 + target 143 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 129 + source 56 + target 147 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 130 + source 56 + target 383 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 131 + source 56 + target 384 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 132 + source 56 + target 385 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 133 + source 56 + target 386 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 134 + source 57 + target 283 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 135 + source 58 + target 210 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 136 + source 59 + target 387 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 137 + source 59 + target 388 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 138 + source 60 + target 189 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 139 + source 61 + target 93 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 140 + source 61 + target 326 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 141 + source 62 + target 110 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 142 + source 62 + target 265 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 143 + source 62 + target 278 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 144 + source 62 + target 338 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 145 + source 62 + target 389 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 146 + source 63 + target 215 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 147 + source 64 + target 97 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 148 + source 64 + target 99 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 149 + source 65 + target 158 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 150 + source 65 + target 222 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 151 + source 65 + target 297 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 152 + source 65 + target 390 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 153 + source 66 + target 127 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 154 + source 66 + target 340 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 155 + source 67 + target 181 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 156 + source 68 + target 326 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 157 + source 69 + target 185 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 158 + source 69 + target 391 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 159 + source 70 + target 162 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 160 + source 71 + target 327 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 161 + source 71 + target 392 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 162 + source 72 + target 286 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 163 + source 73 + target 113 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 164 + source 74 + target 312 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 165 + source 75 + target 247 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 166 + source 75 + target 284 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 167 + source 75 + target 302 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 168 + source 75 + target 326 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 169 + source 76 + target 85 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 170 + source 77 + target 87 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 171 + source 78 + target 393 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 172 + source 79 + target 315 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 173 + source 80 + target 147 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 174 + source 81 + target 117 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 175 + source 81 + target 394 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 176 + source 82 + target 138 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 177 + source 83 + target 194 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 178 + source 83 + target 235 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 179 + source 84 + target 171 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 180 + source 84 + target 395 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 181 + source 85 + target 396 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 182 + source 86 + target 209 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 183 + source 87 + target 118 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 184 + source 87 + target 145 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 185 + source 87 + target 284 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 186 + source 87 + target 369 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 187 + source 88 + target 318 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 188 + source 89 + target 397 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 189 + source 90 + target 143 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 190 + source 91 + target 215 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 191 + source 92 + target 110 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 192 + source 93 + target 111 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 193 + source 94 + target 126 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 194 + source 94 + target 302 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 195 + source 95 + target 392 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 196 + source 95 + target 398 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 197 + source 95 + target 399 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 198 + source 96 + target 111 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 199 + source 96 + target 284 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 200 + source 96 + target 398 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 201 + source 96 + target 400 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 202 + source 97 + target 286 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 203 + source 97 + target 401 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 204 + source 98 + target 143 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 205 + source 99 + target 204 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 206 + source 99 + target 222 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 207 + source 99 + target 402 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 208 + source 100 + target 129 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 209 + source 100 + target 227 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 210 + source 100 + target 340 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 211 + source 100 + target 403 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 212 + source 101 + target 318 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 213 + source 101 + target 325 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 214 + source 102 + target 227 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 215 + source 103 + target 121 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 216 + source 103 + target 280 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 217 + source 103 + target 404 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 218 + source 103 + target 405 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 219 + source 103 + target 406 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 220 + source 103 + target 407 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 221 + source 103 + target 408 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 222 + source 104 + target 117 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 223 + source 105 + target 156 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 224 + source 106 + target 188 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 225 + source 106 + target 252 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 226 + source 106 + target 257 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 227 + source 106 + target 318 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 228 + source 107 + target 409 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 229 + source 108 + target 267 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 230 + source 108 + target 388 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 231 + source 108 + target 410 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 232 + source 108 + target 411 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 233 + source 109 + target 220 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 234 + source 109 + target 412 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 235 + source 110 + target 217 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 236 + source 110 + target 278 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 237 + source 110 + target 289 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 238 + source 110 + target 413 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 239 + source 110 + target 414 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 240 + source 110 + target 415 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 241 + source 110 + target 416 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 242 + source 110 + target 417 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 243 + source 110 + target 418 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 244 + source 110 + target 419 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 245 + source 110 + target 420 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 246 + source 110 + target 421 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 247 + source 111 + target 422 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 248 + source 111 + target 423 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 249 + source 111 + target 424 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 250 + source 112 + target 425 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 251 + source 113 + target 202 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 252 + source 113 + target 426 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 253 + source 113 + target 427 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 254 + source 114 + target 142 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 255 + source 114 + target 239 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 256 + source 115 + target 275 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 257 + source 116 + target 352 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 258 + source 117 + target 253 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 259 + source 117 + target 428 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 260 + source 117 + target 429 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 261 + source 118 + target 143 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 262 + source 118 + target 212 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 263 + source 118 + target 276 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 264 + source 118 + target 352 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 265 + source 118 + target 353 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 266 + source 118 + target 429 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 267 + source 118 + target 430 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 268 + source 118 + target 431 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 269 + source 119 + target 256 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 270 + source 119 + target 432 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 271 + source 119 + target 433 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 272 + source 120 + target 147 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 273 + source 121 + target 434 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 274 + source 122 + target 202 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 275 + source 122 + target 392 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 276 + source 122 + target 435 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 277 + source 123 + target 129 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 278 + source 123 + target 436 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 279 + source 123 + target 437 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 280 + source 124 + target 393 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 281 + source 124 + target 438 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 282 + source 124 + target 439 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 283 + source 125 + target 258 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 284 + source 126 + target 235 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 285 + source 127 + target 141 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 286 + source 127 + target 217 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 287 + source 127 + target 239 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 288 + source 127 + target 284 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 289 + source 127 + target 309 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 290 + source 128 + target 440 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 291 + source 129 + target 162 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 292 + source 130 + target 263 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 293 + source 130 + target 320 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 294 + source 130 + target 441 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 295 + source 130 + target 442 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 296 + source 131 + target 429 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 297 + source 132 + target 302 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 298 + source 133 + target 138 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 299 + source 134 + target 310 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 300 + source 135 + target 234 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 301 + source 135 + target 326 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 302 + source 135 + target 443 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 303 + source 136 + target 312 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 304 + source 137 + target 210 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 305 + source 137 + target 311 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 306 + source 138 + target 300 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 307 + source 138 + target 444 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 308 + source 138 + target 445 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 309 + source 139 + target 446 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 310 + source 139 + target 447 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 311 + source 140 + target 147 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 312 + source 141 + target 227 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 313 + source 141 + target 448 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 314 + source 142 + target 237 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 315 + source 142 + target 239 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 316 + source 142 + target 267 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 317 + source 142 + target 321 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 318 + source 142 + target 339 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 319 + source 142 + target 340 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 320 + source 142 + target 341 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 321 + source 142 + target 449 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 322 + source 143 + target 228 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 323 + source 143 + target 450 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 324 + source 143 + target 451 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 325 + source 143 + target 452 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 326 + source 143 + target 453 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 327 + source 143 + target 454 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 328 + source 144 + target 239 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 329 + source 145 + target 174 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 330 + source 146 + target 220 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 331 + source 146 + target 284 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 332 + source 147 + target 455 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 333 + source 147 + target 456 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 334 + source 148 + target 320 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 335 + source 148 + target 457 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 336 + source 148 + target 458 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 337 + source 149 + target 314 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 338 + source 150 + target 305 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 339 + source 151 + target 291 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 340 + source 151 + target 459 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 341 + source 152 + target 312 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 342 + source 153 + target 188 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 343 + source 153 + target 448 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 344 + source 154 + target 315 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 345 + source 155 + target 460 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 346 + source 156 + target 246 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 347 + source 157 + target 461 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 348 + source 158 + target 461 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 349 + source 159 + target 349 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 350 + source 160 + target 175 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 351 + source 161 + target 357 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 352 + source 161 + target 359 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 353 + source 162 + target 436 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 354 + source 162 + target 462 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 355 + source 162 + target 463 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 356 + source 162 + target 464 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 357 + source 162 + target 465 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 358 + source 163 + target 227 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 359 + source 164 + target 262 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 360 + source 164 + target 359 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 361 + source 164 + target 466 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 362 + source 165 + target 326 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 363 + source 166 + target 467 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 364 + source 167 + target 325 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 365 + source 168 + target 467 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 366 + source 168 + target 468 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 367 + source 169 + target 180 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 368 + source 170 + target 469 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 369 + source 171 + target 175 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 370 + source 171 + target 206 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 371 + source 171 + target 395 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 372 + source 172 + target 187 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 373 + source 173 + target 470 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 374 + source 174 + target 266 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 375 + source 174 + target 369 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 376 + source 174 + target 471 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 377 + source 175 + target 280 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 378 + source 175 + target 331 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 379 + source 175 + target 458 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 380 + source 175 + target 472 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 381 + source 175 + target 473 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 382 + source 175 + target 474 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 383 + source 175 + target 475 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 384 + source 175 + target 476 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 385 + source 175 + target 477 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 386 + source 175 + target 478 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 387 + source 175 + target 479 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 388 + source 176 + target 326 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 389 + source 177 + target 312 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 390 + source 178 + target 225 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 391 + source 178 + target 227 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 392 + source 178 + target 296 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 393 + source 178 + target 480 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 394 + source 178 + target 481 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 395 + source 178 + target 482 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 396 + source 178 + target 483 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 397 + source 179 + target 315 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 398 + source 180 + target 321 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 399 + source 180 + target 484 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 400 + source 180 + target 485 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 401 + source 181 + target 222 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 402 + source 181 + target 225 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 403 + source 181 + target 227 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 404 + source 181 + target 486 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 405 + source 182 + target 255 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 406 + source 182 + target 312 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 407 + source 182 + target 487 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 408 + source 182 + target 488 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 409 + source 183 + target 315 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 410 + source 184 + target 387 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 411 + source 185 + target 306 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 412 + source 185 + target 368 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 413 + source 185 + target 469 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 414 + source 185 + target 489 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 415 + source 186 + target 315 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 416 + source 187 + target 302 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 417 + source 187 + target 357 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 418 + source 187 + target 490 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 419 + source 188 + target 280 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 420 + source 188 + target 467 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 421 + source 188 + target 470 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 422 + source 188 + target 491 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 423 + source 188 + target 492 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 424 + source 189 + target 239 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 425 + source 189 + target 334 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 426 + source 190 + target 266 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 427 + source 191 + target 493 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 428 + source 192 + target 470 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 429 + source 193 + target 198 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 430 + source 193 + target 440 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 431 + source 194 + target 494 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 432 + source 194 + target 495 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 433 + source 195 + target 312 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 434 + source 196 + target 259 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 435 + source 197 + target 325 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 436 + source 198 + target 359 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 437 + source 198 + target 496 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 438 + source 199 + target 352 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 439 + source 200 + target 284 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 440 + source 201 + target 243 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 441 + source 202 + target 467 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 442 + source 202 + target 497 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 443 + source 202 + target 498 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 444 + source 203 + target 278 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 445 + source 204 + target 216 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 446 + source 204 + target 259 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 447 + source 204 + target 499 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 448 + source 204 + target 500 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 449 + source 205 + target 492 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 450 + source 206 + target 458 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 451 + source 206 + target 476 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 452 + source 206 + target 501 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 453 + source 207 + target 278 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 454 + source 208 + target 470 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 455 + source 209 + target 502 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 456 + source 210 + target 503 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 457 + source 211 + target 296 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 458 + source 211 + target 403 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 459 + source 211 + target 504 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 460 + source 212 + target 355 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 461 + source 213 + target 280 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 462 + source 214 + target 284 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 463 + source 215 + target 429 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 464 + source 215 + target 505 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 465 + source 216 + target 506 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 466 + source 217 + target 231 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 467 + source 217 + target 245 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 468 + source 217 + target 507 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 469 + source 218 + target 326 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 470 + source 219 + target 243 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 471 + source 219 + target 276 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 472 + source 220 + target 258 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 473 + source 220 + target 306 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 474 + source 220 + target 508 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 475 + source 220 + target 509 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 476 + source 221 + target 276 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 477 + source 221 + target 510 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 478 + source 221 + target 511 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 479 + source 222 + target 502 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 480 + source 222 + target 512 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 481 + source 223 + target 265 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 482 + source 224 + target 302 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 483 + source 225 + target 315 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 484 + source 225 + target 513 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 485 + source 226 + target 266 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 486 + source 226 + target 514 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 487 + source 227 + target 315 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 488 + source 227 + target 437 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 489 + source 228 + target 265 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 490 + source 229 + target 258 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 491 + source 229 + target 278 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 492 + source 229 + target 515 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 493 + source 230 + target 293 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 494 + source 231 + target 284 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 495 + source 232 + target 516 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 496 + source 233 + target 516 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 497 + source 234 + target 361 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 498 + source 235 + target 325 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 499 + source 235 + target 517 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 500 + source 236 + target 495 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 501 + source 237 + target 518 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 502 + source 238 + target 502 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 503 + source 239 + target 267 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 504 + source 239 + target 339 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 505 + source 239 + target 340 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 506 + source 239 + target 341 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 507 + source 239 + target 349 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 508 + source 239 + target 449 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 509 + source 239 + target 519 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 510 + source 240 + target 315 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 511 + source 241 + target 284 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 512 + source 242 + target 496 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 513 + source 242 + target 520 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 514 + source 242 + target 521 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 515 + source 243 + target 402 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 516 + source 243 + target 522 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 517 + source 244 + target 354 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 518 + source 245 + target 284 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 519 + source 246 + target 312 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 520 + source 247 + target 284 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 521 + source 247 + target 302 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 522 + source 247 + target 312 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 523 + source 247 + target 326 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 524 + source 248 + target 284 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 525 + source 249 + target 315 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 526 + source 250 + target 397 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 527 + source 251 + target 266 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 528 + source 252 + target 523 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 529 + source 253 + target 307 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 530 + source 253 + target 524 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 531 + source 254 + target 308 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 532 + source 255 + target 525 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 533 + source 256 + target 344 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 534 + source 257 + target 318 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 535 + source 258 + target 312 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 536 + source 258 + target 526 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 537 + source 258 + target 527 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 538 + source 258 + target 528 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 539 + source 259 + target 302 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 540 + source 259 + target 397 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 541 + source 259 + target 529 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 542 + source 260 + target 311 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 543 + source 261 + target 405 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 544 + source 262 + target 301 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 545 + source 262 + target 392 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 546 + source 262 + target 530 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 547 + source 263 + target 265 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 548 + source 264 + target 289 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 549 + source 265 + target 429 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 550 + source 265 + target 531 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 551 + source 265 + target 532 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 552 + source 265 + target 533 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 553 + source 266 + target 344 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 554 + source 266 + target 534 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 555 + source 267 + target 340 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 556 + source 268 + target 425 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 557 + source 269 + target 284 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 558 + source 269 + target 535 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 559 + source 270 + target 294 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 560 + source 270 + target 536 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 561 + source 271 + target 461 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 562 + source 271 + target 537 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 563 + source 272 + target 361 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 564 + source 273 + target 312 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 565 + source 274 + target 325 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 566 + source 274 + target 403 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 567 + source 275 + target 467 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 568 + source 276 + target 334 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 569 + source 277 + target 431 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 570 + source 278 + target 287 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 571 + source 278 + target 538 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 572 + source 278 + target 539 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 573 + source 278 + target 540 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 574 + source 279 + target 429 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 575 + source 279 + target 514 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 576 + source 280 + target 284 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 577 + source 281 + target 306 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 578 + source 282 + target 312 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 579 + source 283 + target 448 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 580 + source 284 + target 393 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 581 + source 284 + target 425 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 582 + source 284 + target 431 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 583 + source 284 + target 437 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 584 + source 284 + target 442 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 585 + source 284 + target 459 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 586 + source 284 + target 541 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 587 + source 285 + target 542 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 588 + source 286 + target 543 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 589 + source 287 + target 302 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 590 + source 288 + target 310 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 591 + source 289 + target 423 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 592 + source 290 + target 291 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 593 + source 290 + target 459 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 594 + source 291 + target 305 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 595 + source 292 + target 437 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 596 + source 293 + target 448 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 597 + source 294 + target 356 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 598 + source 295 + target 311 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 599 + source 296 + target 467 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 600 + source 297 + target 527 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 601 + source 298 + target 312 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 602 + source 299 + target 361 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 603 + source 300 + target 544 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 604 + source 301 + target 311 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 605 + source 302 + target 409 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 606 + source 302 + target 431 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 607 + source 302 + target 541 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 608 + source 303 + target 306 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 609 + source 303 + target 545 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 610 + source 303 + target 546 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 611 + source 304 + target 397 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 612 + source 305 + target 459 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 613 + source 306 + target 509 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 614 + source 307 + target 461 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 615 + source 307 + target 470 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 616 + source 308 + target 325 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 617 + source 308 + target 447 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 618 + source 308 + target 547 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 619 + source 308 + target 548 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 620 + source 309 + target 340 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 621 + source 310 + target 352 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 622 + source 311 + target 325 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 623 + source 312 + target 549 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 624 + source 312 + target 550 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 625 + source 312 + target 551 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 626 + source 312 + target 552 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 627 + source 313 + target 327 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 628 + source 314 + target 325 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 629 + source 314 + target 326 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 630 + source 314 + target 403 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 631 + source 314 + target 553 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 632 + source 315 + target 325 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 633 + source 316 + target 397 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 634 + source 317 + target 352 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 635 + source 318 + target 492 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 636 + source 318 + target 554 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 637 + source 319 + target 425 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 638 + source 320 + target 335 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 639 + source 321 + target 555 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 640 + source 321 + target 556 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 641 + source 322 + target 425 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 642 + source 323 + target 467 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 643 + source 324 + target 467 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 644 + source 325 + target 327 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 645 + source 326 + target 557 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] + edge [ + id 646 + source 327 + target 558 + pajek [ + dir 0.0 + weight 1.0 + ] + graphics [ + fill "#000000" + outline "#000000" + frameThickness 1.0 + rounding 5.0 + gradient 0.0 + arrow "none" + thickness 1.0 + ] + ] +] diff --git a/src/3rdparty/adaptagrams/libcola/tests/gml_graph.cpp b/src/3rdparty/adaptagrams/libcola/tests/gml_graph.cpp new file mode 100644 index 0000000..6a280cf --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/gml_graph.cpp @@ -0,0 +1,257 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + +#include <fstream> +#include <iostream> +#include <string> +#include <sstream> +#include <boost/regex.hpp> +#include "graphlayouttest.h" + +using namespace std; +using namespace cola; + +typedef map<unsigned,unsigned> NodeIdMap; +typedef map<string,list<unsigned> > Partitions; + +Edge readEdge(ifstream &f) { + string l; + int indent=1; + unsigned source, target; + boost::regex sourceRE(".*source\\s+(\\d+).*"); + boost::regex targetRE(".*target\\s+(\\d+).*"); + boost::smatch matches; + while(!getline(f,l).eof()) { + if(boost::regex_match(l,matches,sourceRE)) { + std::istringstream i(matches[1]); + i>>source; + } + if(boost::regex_match(l,matches,targetRE)) { + std::istringstream i(matches[1]); + i>>target; + } + if(l.find("[")!=string::npos) { + indent++; + } + if(l.find("]")!=string::npos) { + indent--; + if(indent==0) { + return make_pair(source,target); + } + } + } + cerr << "Incomplete edge definition!" << endl; + return make_pair(0,0); +} + +unsigned readNode(ifstream &f, NodeIdMap &nodeIdMap, + Partitions &partitions) { + static unsigned nodeCtr=0; + int indent=1; + string l; + boost::regex idRE("\\s*id\\s+(\\d+).*"); + boost::regex fillRE(".*fill\\s+\"#(.+)\".*"); + boost::smatch matches; + unsigned id; + while(!getline(f,l).eof()) { + if(boost::regex_match(l,matches,idRE)) { + std::istringstream i(matches[1]); + i>>id; + nodeIdMap[id]=nodeCtr++; + } + if(boost::regex_match(l,matches,fillRE)) { + string partition(matches[1]); + Partitions::iterator i=partitions.find(partition); + partitions[partition].push_back(nodeIdMap[id]); + } + if(l.find("[")!=string::npos) { + indent++; + } + if(l.find("]")!=string::npos) { + indent--; + if(indent==0) { + return nodeCtr; + } + } + } + cerr << "Incomplete node definition!" << endl; + return 0; +} + +struct PostIteration : TestConvergence { + PostIteration(vector<vpsc::Rectangle*> &rs, vector<list<unsigned> > &ps, vector<double> &bs, const double d,const unsigned i) : TestConvergence(d,i), rs(rs), ps(ps), bs(bs) {} + bool operator()(const double new_stress, valarray<double> & X, valarray<double> & Y) { + static int iterations=0; + unsigned n=X.size(); + double centreX=0,centreY=0; + for(unsigned i=0;i<n;i++) { + centreX+=X[i]; + centreY+=Y[i]; + } + centreX/=(double)n; + centreY/=(double)n; + //printf("centre=(%f,%f)\n",centreX,centreY); + for(unsigned i=0;i<ps.size();i++) { + for(list<unsigned>::iterator v=ps[i].begin();v!=ps[i].end();v++) { + double dx=X[*v]-centreX, dy=Y[*v]-centreY; + double l=sqrt(dx*dx+dy*dy); + if(i>0) { + double r=bs[i-1]+10; + if(l<r) { + double dx1=dx*(r/l), dy1=dy*(r/l); + X[*v]=centreX+dx1; + Y[*v]=centreY+dy1; + } + } + if(i<ps.size()-1) { + double r=bs[i]-10; + if(l>r) { + double dx1=dx*(r/l), dy1=dy*(r/l); + X[*v]=centreX+dx1; + Y[*v]=centreY+dy1; + } + } + } + } + for(unsigned i=0;i<rs.size();i++) { + rs[i]->moveCentre(X[i],Y[i]); + } + cout << iterations++ << ":stress="<<new_stress<<endl; + return TestConvergence::operator()(new_stress,X,Y); + } + vector<vpsc::Rectangle*> &rs; + vector<list<unsigned> > &ps; + vector<double> &bs; +}; +int main() { + //const char *fname="data/test.gml"; + string fname("data/uetzNetworkGSC-all.gml"); + ifstream f(fname.c_str()); + if(!f.is_open()) { + cout << "Error opening file: " << fname << endl; + exit(1); + } + unsigned V = 0; + double defaultEdgeLength=40; + vector<Edge> es; + CompoundConstraints cx,cy; + NodeIdMap nodeIdMap; + Partitions partitions; + string l; + boost::regex nodeRE(".*node\\s+\\[.*"); + boost::regex edgeRE(".*edge\\s+\\[.*"); + while(!getline(f,l).eof()) { + if(boost::regex_match(l,nodeRE)) { + V=readNode(f,nodeIdMap,partitions); + } + if(boost::regex_match(l,edgeRE)) { + pair<unsigned,unsigned> e=readEdge(f); + unsigned start=nodeIdMap[e.first]; + unsigned end=nodeIdMap[e.second]; + //printf("edge (%d,%d)\n",start,end); + es.push_back(make_pair(start,end)); + //cy.push_back( + //new SeparationConstraint(start,end,defaultEdgeLength/3)); + } + } + assert(V==nodeIdMap.size()); + /* + unsigned p1=V++; + unsigned p2=V++; + // red at the top + list<unsigned> &p=partitions[string("FF3333")]; + //double cgap=defaultEdgeLength/3; + double cgap=0; + for(list<unsigned>::iterator j=p.begin();j!=p.end();j++) { + cy.push_back( + new SeparationConstraint(*j,p1,cgap)); + } + // yellow in the middle + p=partitions[string("FFFF00")]; + for(list<unsigned>::iterator j=p.begin();j!=p.end();j++) { + cy.push_back( + new SeparationConstraint(p1,*j,cgap)); + cy.push_back( + new SeparationConstraint(*j,p2,cgap)); + } + // green at the bottom + p=partitions[string("00FF00")]; + for(list<unsigned>::iterator j=p.begin();j!=p.end();j++) { + cy.push_back( + new SeparationConstraint(p2,*j,cgap)); + } + */ + cout << "V="<<V<<endl; + double width=1000; + double height=1000; + vector<vpsc::Rectangle*> rs; + cout << "|V|=" << V << endl; + //srand(time(nullptr)); + for(unsigned i=0;i<V;i++) { + double x=getRand(width), y=getRand(height); + rs.push_back(new vpsc::Rectangle(x,x+1,y,y+1)); + } + vector<list<unsigned> > ps; + ps.push_back(partitions[string("FF3333")]); + ps.push_back(partitions[string("FFFF00")]); + ps.push_back(partitions[string("00FF00")]); + vector<double> bs; + bs.push_back(80); + bs.push_back(120); + PostIteration test(rs,ps,bs,0.0001,200); + ConstrainedMajorizationLayout alg(rs,es,nullptr,defaultEdgeLength,nullptr,test); + //ConstrainedFDLayout alg(rs,es,nullptr,defaultEdgeLength,nullptr,test); + //alg.setConstrainedLayout(true); + //alg.setScaling(true); + //alg.setXConstraints(&cx); + //alg.setYConstraints(&cy); + alg.run(); + /* + vector<ColourRGBA> colours(V); + list<unsigned> &p=partitions[string("FF3333")]; + for(list<unsigned>::iterator i=p.begin();i!=p.end();i++) { + //colours[*i]=ColourRGBA(1.,0,0.3,1.); + colours[*i]=ColourRGBA(0,0,0,1.); + } + p=partitions[string("FFFF00")]; + for(list<unsigned>::iterator i=p.begin();i!=p.end();i++) { + //colours[*i]=ColourRGBA((unsigned)255,162,99,255); + colours[*i]=ColourRGBA(0,0,0,1.); + } + p=partitions[string("00FF00")]; + for(list<unsigned>::iterator i=p.begin();i!=p.end();i++) { + //colours[*i]=ColourRGBA((unsigned)24,157,0,255); + colours[*i]=ColourRGBA(0,0,0,1.); + } + */ + OutputFile of(rs,es,nullptr,"gml_graph-constrained.svg",false,true); + //of.colours=&colours; + of.generate(); + for(unsigned i=0;i<V;i++) { + delete rs[i]; + } + return 0; +} +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4:textwidth=99 : diff --git a/src/3rdparty/adaptagrams/libcola/tests/graphlayouttest.h b/src/3rdparty/adaptagrams/libcola/tests/graphlayouttest.h new file mode 100644 index 0000000..2cc51e7 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/graphlayouttest.h @@ -0,0 +1,275 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + +#include <sstream> +#include <ctime> + +#include <libvpsc/rectangle.h> +#include <libcola/cola.h> +#include <libtopology/topology_graph.h> +#include <libcola/output_svg.h> + +inline double getRand(double range) { + return range*rand()/RAND_MAX; +} + +namespace DFS { +using namespace std; +using namespace cola; +struct Node { + unsigned id; + bool visited; + typedef vector<Node*> PNodes; + PNodes neighbours; + void visit(vector<unsigned> &order) { + visited=true; + unsigned mid=neighbours.size()/2; + for(unsigned i=0;i<mid;i++) { + if(!neighbours[i]->visited) { + neighbours[i]->visit(order); + } + } + order.push_back(id); + for(unsigned i=mid;i<neighbours.size();i++) { + if(!neighbours[i]->visited) { + neighbours[i]->visit(order); + } + } + } + void visit_leaves(vector<unsigned> &order) { + unsigned mid=neighbours.size()/2; + Node *v; + for(unsigned i=0;i<mid;i++) { + v=neighbours[i]; + if(v->neighbours.size()==0) { + order.push_back(v->id); + } + } + order.push_back(id); + for(unsigned i=mid;i<neighbours.size();i++) { + v=neighbours[i]; + if(v->neighbours.size()==0) { + order.push_back(v->id); + } + } + } +}; + +struct Graph { + typedef vector<Edge> Edges; + typedef vector<Node> Nodes; + Nodes nodes; + vector<unsigned> order; + vector<vector<unsigned> > leaves; + Graph(unsigned n,vector<Edge> &edges) { + nodes.resize(n); + order.resize(0); + leaves.resize(n); + for(Edges::iterator i=edges.begin();i!=edges.end();i++) { + nodes[i->first].neighbours.push_back(&nodes[i->second]); + } + for(unsigned i=0;i<nodes.size();i++) { + nodes[i].id=i; + nodes[i].visited=false; + } + for(Nodes::iterator i=nodes.begin();i!=nodes.end();i++) { + if(!i->visited) { + i->visit(order); + } + } + for(unsigned i=0;i<nodes.size();i++) { + leaves[i].resize(0); + nodes[i].visit_leaves(leaves[i]); + } + assert(order.size()==nodes.size()); + } +}; +} // namespace DFS +using namespace cola; +using namespace std; +struct CheckProgress : TestConvergence { + CheckProgress(const double d,const unsigned i) : TestConvergence(d,i) {} + bool operator()(const double new_stress, valarray<double> & X, valarray<double> & Y) { + cout << "stress="<<new_stress<<" iteration="<<iterations<<endl; + return TestConvergence::operator()(new_stress,X,Y); + } +}; + +enum SolverType { CG, UGP, SGP, IP }; +void run_test( + vector<pair<double,double> > const &startpos, + vector<Edge> const &es, + const double defaultEdgeLength, + CompoundConstraints &ccs, + const SolverType s, + const bool constrained, + const char *fname, + const char *testdesc) { + vector<vpsc::Rectangle*> rs; + unsigned V=startpos.size(); + cout << "|V|=" << V << endl; + //srand(time(nullptr)); + for(unsigned i=0;i<V;i++) { + double x=startpos[i].first, y=startpos[i].second; + rs.push_back(new vpsc::Rectangle(x,x+1,y,y+1)); + } + CheckProgress test(0.001,100); + clock_t starttime=clock(); + ConstrainedMajorizationLayout alg(rs,es,nullptr,defaultEdgeLength, + StandardEdgeLengths,&test); + switch(s) { + cout << "Solver: "; + case SGP: + cout << "Scaled GP" << endl; + alg.setConstrainedLayout(true); + alg.setScaling(true); + break; + case UGP: + cout << "Unscaled GP" << endl; + alg.setConstrainedLayout(true); + alg.setScaling(false); + break; + case CG: + cout << "Conjugate Gradient" << endl; + alg.setConstrainedLayout(false); + break; + case IP: + cout << "Interior Point" << endl; + alg.setExternalSolver(true); + alg.setConstrainedLayout(true); + break; + } + if(!constrained) { + cout << "Unconstrained layout" << endl; + } else { + cout << "Constrained layout" << endl; + printf("|CompoundConstraints|=%u\n",(unsigned)ccs.size()); + alg.setConstraints(&ccs); + } + alg.run(); + double t=double(clock()-starttime)/double(CLOCKS_PER_SEC); + ostringstream ss; + ss << fname << "_" << V << "_" << testdesc << ".svg"; + + cout<<ss.str()<<" Time="<<t<<endl; + OutputFile of(rs,es,nullptr,ss.str().c_str(),false,true); + of.generate(); + for(unsigned i=0;i<V;i++) { + delete rs[i]; + } +} +void writeFile(const topology::Nodes& vs, const topology::Edges& es, const string& outputFileName) { + const unsigned n=vs.size(); + vector<cola::Edge> cedges; + + for(unsigned i=0;i<es.size();i++) { + cedges.push_back(make_pair(1,2)); + } + + vector<straightener::Route*> routes; + for(topology::Edges::const_iterator e=es.begin();e!=es.end();++e) { + routes.push_back((*e)->getRoute()); + } + + vector<string> labels(n); + for(unsigned i=0;i<n;++i) { + stringstream ss; + ss << i; + labels[i]=ss.str(); + } + + vector<vpsc::Rectangle*> rs; + for(topology::Nodes::const_iterator i=vs.begin();i!=vs.end();++i) { + rs.push_back((*i)->rect); + } + OutputFile of(rs,cedges,nullptr,outputFileName,true,false); + of.setLabels(labels); + of.routes=&routes; + of.generate(); + + for_each(routes.begin(),routes.end(),delete_object()); +} + +void writeDunnartFile(const topology::Nodes& vs, const vector<std::pair<unsigned int, unsigned int> >& es, const string& outputFileName) { + FILE *fp = fopen(outputFileName.c_str(), "w"); + assert (fp != nullptr); + + fprintf(fp, "<svg xmlns:dunnart=\"http://www.csse.monash.edu.au/~mwybrow/dunnart.dtd\">\n"); + for(unsigned int i = 0; i < vs.size(); ++i) { + vpsc::Rectangle *rect = vs[i]->rect; + + int id = i + 1; + fprintf(fp, "<rect id=\"%d\" dunnart:label=\"\" dunnart:width=\"20\" " + "dunnart:height=\"20\" dunnart:xPos=\"%f\" " + "dunnart:yPos=\"%f\" dunnart:type=\"rect\" />\n", id, + rect->getCentreX(), rect->getCentreY()); + } + + for(unsigned int i = 0; i < es.size(); ++i) { + const std::pair<unsigned int, unsigned int>& edge = es[i]; + + int id = i + 1 + vs.size(); + fprintf(fp, "<path id=\"%d\" dunnart:srcID=\"%d\" " + "dunnart:srcFlags=\"544\" dunnart:dstID=\"%d\" " + "dunnart:dstFlags=\"544\" dunnart:directed=\"1\" " + "dunnart:type=\"connAvoidPoly\" />\n", id, + edge.first + 1, edge.second + 1); + } + + fprintf(fp, "</svg>\n"); + + fclose(fp); + +#if 0 + for(unsigned i=0;i<es.size();i++) { + cedges.push_back(make_pair(1,2)); + } + + vector<straightener::Route*> routes; + for(topology::Edges::const_iterator e=es.begin();e!=es.end();++e) { + routes.push_back((*e)->getRoute()); + } + + vector<string> labels(n); + for(unsigned i=0;i<n;++i) { + stringstream ss; + ss << i; + labels[i]=ss.str(); + } + + vector<vpsc::Rectangle*> rs; + for(topology::Nodes::const_iterator i=vs.begin();i!=vs.end();++i) { + rs.push_back((*i)->rect); + } + OutputFile of(rs,cedges,nullptr,outputFileName,true,false); + of.setLabels(labels); + of.routes=&routes; + of.generate(); + + for_each(routes.begin(),routes.end(),delete_object()); +#endif +} + +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4: diff --git a/src/3rdparty/adaptagrams/libcola/tests/initialOverlap.cpp b/src/3rdparty/adaptagrams/libcola/tests/initialOverlap.cpp new file mode 100644 index 0000000..4f0a8bf --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/initialOverlap.cpp @@ -0,0 +1,168 @@ +// Check that rectangles that start at same position don't get stuck on top of each other +// during force-directed layout. +#include <vector> +#include <utility> +#include "libcola/cola.h" +#include "libcola/pseudorandom.h" + +using namespace cola; + +int main(void) { + CompoundConstraints ccs; + std::vector<Edge> es; + EdgeLengths eLengths; + double defaultEdgeLength=1; + std::vector<vpsc::Rectangle*> rs; + vpsc::Rectangle *rect = nullptr; + + rect = new vpsc::Rectangle(0, 100, 0, 60); + rs.push_back(rect); + + rect = new vpsc::Rectangle(0, 100, 0, 60); + rs.push_back(rect); + + rect = new vpsc::Rectangle(0, 100, 0, 60); + rs.push_back(rect); + + rect = new vpsc::Rectangle(0, 20, 0, 20); + rs.push_back(rect); + + rect = new vpsc::Rectangle(0, 60, 0, 60); + rs.push_back(rect); + + rect = new vpsc::Rectangle(0, 60, 0, 60); + rs.push_back(rect); + + rect = new vpsc::Rectangle(0, 60, 0, 60); + rs.push_back(rect); + + rect = new vpsc::Rectangle(0, 60, 0, 60); + rs.push_back(rect); + + rect = new vpsc::Rectangle(0, 20, 0, 20); + rs.push_back(rect); + + rect = new vpsc::Rectangle(0, 60, 0, 60); + rs.push_back(rect); + + rect = new vpsc::Rectangle(0, 60, 0, 60); + rs.push_back(rect); + + rect = new vpsc::Rectangle(0, 20, 0, 20); + rs.push_back(rect); + + rect = new vpsc::Rectangle(0, 100, 0, 60); + rs.push_back(rect); + + rect = new vpsc::Rectangle(0, 20, 0, 20); + rs.push_back(rect); + + rect = new vpsc::Rectangle(0, 20, 0, 20); + rs.push_back(rect); + + rect = new vpsc::Rectangle(0, 60, 0, 60); + rs.push_back(rect); + + rect = new vpsc::Rectangle(0, 60, 0, 60); + rs.push_back(rect); + + rect = new vpsc::Rectangle(0, 60, 0, 60); + rs.push_back(rect); + + rect = new vpsc::Rectangle(0, 60, 0, 60); + rs.push_back(rect); + + rect = new vpsc::Rectangle(0, 100, 0, 60); + rs.push_back(rect); + + rect = new vpsc::Rectangle(0, 100, 0, 60); + rs.push_back(rect); + + rect = new vpsc::Rectangle(0, 100, 0, 60); + rs.push_back(rect); + + rect = new vpsc::Rectangle(0, 100, 0, 60); + rs.push_back(rect); + + rect = new vpsc::Rectangle(0, 100, 0, 60); + rs.push_back(rect); + + es.push_back(std::make_pair(0, 3)); + es.push_back(std::make_pair(1, 3)); + es.push_back(std::make_pair(2, 3)); + es.push_back(std::make_pair(2, 8)); + es.push_back(std::make_pair(2, 11)); + es.push_back(std::make_pair(3, 4)); + es.push_back(std::make_pair(3, 5)); + es.push_back(std::make_pair(6, 8)); + es.push_back(std::make_pair(7, 8)); + es.push_back(std::make_pair(8, 22)); + es.push_back(std::make_pair(8, 23)); + es.push_back(std::make_pair(9, 11)); + es.push_back(std::make_pair(10, 11)); + es.push_back(std::make_pair(11, 12)); + es.push_back(std::make_pair(11, 23)); + es.push_back(std::make_pair(12, 13)); + es.push_back(std::make_pair(12, 14)); + es.push_back(std::make_pair(13, 17)); + es.push_back(std::make_pair(13, 18)); + es.push_back(std::make_pair(13, 19)); + es.push_back(std::make_pair(13, 20)); + es.push_back(std::make_pair(14, 15)); + es.push_back(std::make_pair(14, 16)); + es.push_back(std::make_pair(14, 20)); + es.push_back(std::make_pair(14, 21)); + + eLengths.resize(25); + eLengths[0] = 100; + eLengths[1] = 100; + eLengths[2] = 100; + eLengths[3] = 100; + eLengths[4] = 100; + eLengths[5] = 100; + eLengths[6] = 100; + eLengths[7] = 100; + eLengths[8] = 100; + eLengths[9] = 100; + eLengths[10] = 100; + eLengths[11] = 100; + eLengths[12] = 100; + eLengths[13] = 100; + eLengths[14] = 100; + eLengths[15] = 100; + eLengths[16] = 100; + eLengths[17] = 100; + eLengths[18] = 100; + eLengths[19] = 100; + eLengths[20] = 100; + eLengths[21] = 100; + eLengths[22] = 100; + eLengths[23] = 100; + eLengths[24] = 100; + + ConstrainedFDLayout alg(rs, es, defaultEdgeLength, eLengths); + alg.run(); + //alg.outputInstanceToSVG("initialOverlap"); + + bool overlaps = false; + + for (size_t i = 0; i < rs.size(); ++i) + { + for (size_t j = i + 1; j < rs.size(); ++j) + { + overlaps |= ((rs[i]->overlapD(0, rs[j]) > 0) && (rs[i]->overlapD(1, rs[j]) > 0)); + if (overlaps) + { + break; + } + } + if (overlaps) + { + break; + } + } + + alg.freeAssociatedObjects(); + + return (overlaps) ? 1 : 0; +}; diff --git a/src/3rdparty/adaptagrams/libcola/tests/invalid.cpp b/src/3rdparty/adaptagrams/libcola/tests/invalid.cpp new file mode 100644 index 0000000..175a6b7 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/invalid.cpp @@ -0,0 +1,80 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + + +/** \file + * Interface between Inkscape code (SPItem) and graphlayout functions. + * + * Authors: + * Tim Dwyer <tgdwyer@gmail.com> + */ +#include <iostream> + +#include <vector> +#include <algorithm> +#include <float.h> +#include <libcola/cola.h> +//#include <libvspc/exceptions.h> +#include <libvpsc/constraint.h> +#include "graphlayouttest.h" + +using namespace std; +using namespace cola; +int main() { + + const unsigned V = 2; + typedef pair < unsigned, unsigned >Edge; + Edge edge_array[] = { Edge(0, 1) }; + unsigned E = sizeof(edge_array) / sizeof(Edge); + vector<Edge> es(edge_array,edge_array+E); + double width=100; + double height=100; + vector<vpsc::Rectangle*> rs; + for(unsigned i=0;i<V;i++) { + double x=getRand(width), y=getRand(height); + rs.push_back(new vpsc::Rectangle(x,x+5,y,y+5)); + } + ConstrainedFDLayout alg(rs, es, width/2); + CompoundConstraints ccs; + AlignmentConstraint ac(vpsc::YDIM); + ccs.push_back(&ac); + ac.addShape(0,0); + ac.addShape(5,0); + alg.setConstraints(ccs); + try { + alg.run(); + } catch (cola::InvalidVariableIndexException& e) { + cerr << e.what() << endl; + return 0; + } + //assert(fabs(rs[0]->getCentreX()-rs[3]->getCentreX())<0.001); + cout<<rs[0]->getCentreX()<<","<<rs[1]->getCentreX()<<endl; + //output_svg(rs,es,"unsatisfiable.svg"); + for(unsigned i=0;i<V;i++) { + delete rs[i]; + } + return 1; +} +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4:textwidth=99 : diff --git a/src/3rdparty/adaptagrams/libcola/tests/large_graph.cpp b/src/3rdparty/adaptagrams/libcola/tests/large_graph.cpp new file mode 100644 index 0000000..a236991 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/large_graph.cpp @@ -0,0 +1,144 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + +// Loads a graph from a text file, generates constraints for each edge requiring them +// to point downwards, and proceeds to produce a layout using libcola. +// The input file format is 2 numeric node labels per line separated by a space, +// each pair representing a directed edge. Node labels are simply used as array +// offsets so they should start from 0. +// The graph should be connected. +// Default input file is the matrix market 1138_bus graph. +// Running times: +// no constraints - steepest descent solver: 149 seconds +// no constraints - mosek: 49.47 seconds +// no constraints - conjugate gradient solver: 12.2 seconds +// dir-edge constraints - mosek: 214.2 seconds +// +// V=1138 +#include<iostream> +#include<iomanip> +#include<fstream> +#include<vector> +#include<valarray> +#include <libvpsc/linesegment.h> +#include "graphlayouttest.h" + +using namespace std; +using namespace cola; + +int countCrossings(vpsc::Rectangles& rs, vector<cola::Edge>& es) { + int crossings=0; + for(unsigned i=0;i<es.size()-1;++i) { + for(unsigned j=i+1;j<es.size();++j) { + Edge e1=es[i], e2=es[j]; + Rectangle *e1a=rs[e1.first], + *e1b=rs[e1.second], + *e2a=rs[e2.first], + *e2b=rs[e2.second]; + linesegment::LineSegment s1( + linesegment::Vector(e1a->getCentreX(),e1a->getCentreY()), + linesegment::Vector(e1b->getCentreX(),e1b->getCentreY())); + linesegment::LineSegment s2( + linesegment::Vector(e2a->getCentreX(),e2a->getCentreY()), + linesegment::Vector(e2b->getCentreX(),e2b->getCentreY())); + linesegment::Vector point; + if(s1.Intersect(s2,point)==linesegment::LineSegment::INTERSECTING) { + ++crossings; + } + } + } + return crossings; +} +int main() { + const char *fname="data/1138_bus.txt"; //"data/dg_850.txt"; + ifstream f(fname); + if(!f.is_open()) { + cout << "Error opening file: " << fname << endl; + exit(1); + } + string startlabel, endlabel; + unsigned V = 0; + double defaultEdgeLength=40; + vector<Edge> es; + CompoundConstraints cx,cy; + while(!getline(f,startlabel,' ').eof()) { + getline(f,endlabel); + unsigned start = atoi(startlabel.c_str()), + end = atoi(endlabel.c_str()); + es.push_back(make_pair(start,end)); + cy.push_back( + new SeparationConstraint(end,start,defaultEdgeLength/3)); + V=max(V,max(start,end)); + } + V++; + /* + DFS::Graph dfs(V,es); + for(unsigned i=1;i<dfs.order.size();i++) { + cx.push_back( + new SeparationConstraint(dfs.order[i-1],dfs.order[i],0)); + } + */ + cout << "V="<<V<<endl; + double width=1000; + double height=1000; + vector<pair<double,double> > startpos(V); + //srand(time(nullptr)); + for(unsigned i=0;i<V;i++) { + double x=getRand(width), y=getRand(height); + startpos[i]=make_pair(x,y); + } + //const char *testname="large_graph"; + //run_test(startpos,es,defaultEdgeLength,cx,cy,CG,false,testname,"cg"); + //run_test(startpos,es,defaultEdgeLength,cx,cy,IP,false,testname,"ip"); + //run_test(startpos,es,defaultEdgeLength,cx,cy,UGP,false,testname,"ugp"); + //run_test(startpos,es,defaultEdgeLength,cx,cy,SGP,false,testname,"sgp"); + //run_test(startpos,es,defaultEdgeLength,cx,cy,IP,true,testname,"cip"); + //run_test(startpos,es,defaultEdgeLength,cx,cy,UGP,true,testname,"cugp"); + //run_test(startpos,es,defaultEdgeLength,cx,cy,SGP,true,testname,"csgp"); + vector<vpsc::Rectangle*> rs; + for(unsigned i=0;i<V;i++) { + double x=getRand(width), y=getRand(height); + rs.push_back(new vpsc::Rectangle(x,x+5,y,y+5)); + } + cout<<"Initial crossings="<<countCrossings(rs,es)<<endl; + CheckProgress test(0.0001,200); + ConstrainedMajorizationLayout alg(rs,es,nullptr,defaultEdgeLength,nullptr,test); + alg.setYConstraints(&cy); + alg.run(); + cout<<"Majorization crossings="<<countCrossings(rs,es)<<endl; + OutputFile output1(rs,es,nullptr,"large_graph-majorization.pdf"); + output1.generate(); + ConstrainedFDLayout alg2(rs,es,defaultEdgeLength,nullptr,test); + alg2.setYConstraints(&cy); + alg2.run(); + cout<<"PStress crossings="<<countCrossings(rs,es)<<endl; + OutputFile output(rs,es,nullptr,"large_graph.pdf"); + output.generate(); + for(unsigned i=0;i<V;i++) { + delete rs[i]; + } + return 0; +} +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4:textwidth=99 : diff --git a/src/3rdparty/adaptagrams/libcola/tests/makefeasible.cpp b/src/3rdparty/adaptagrams/libcola/tests/makefeasible.cpp new file mode 100644 index 0000000..4bfb082 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/makefeasible.cpp @@ -0,0 +1,368 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + +#include <iostream> +#include <vector> +#include <cmath> +#include <time.h> +#include <valarray> +#include <fstream> +#include <sstream> + +#include <libavoid/libavoid.h> +#include <libavoid/router.h> + +#include "graphlayouttest.h" + +using namespace std; +using namespace cola; +using namespace vpsc; + +/* +// |V|=12, |E|=23 +static const unsigned DAGDEPTH = 3; +static const unsigned BRANCHFACTOR = 3; +static const double EXTRAEDGEPROB = 0.5; +*/ +/* +// |V|=26, |E|=61 +static const unsigned DAGDEPTH = 3; +static const unsigned BRANCHFACTOR = 4; +static const double EXTRAEDGEPROB = 0.1; +*/ + +/* +// |V|=62, |E|=85 +static const unsigned DAGDEPTH = 4; +static const unsigned BRANCHFACTOR = 4; +static const double EXTRAEDGEPROB = 0.01; +*/ +/* +// |V|=131, |E|=166 +static const unsigned DAGDEPTH = 5; +static const unsigned BRANCHFACTOR = 4; +static const double EXTRAEDGEPROB = 0.005; +*/ + +static const unsigned DAGDEPTH = 6; +static const unsigned BRANCHFACTOR = 4; +static const double EXTRAEDGEPROB = 0.002; +/* +// |V|=343, |E|=487 +seed=1208390913; +static const unsigned DAGDEPTH = 6; +static const unsigned BRANCHFACTOR = 4; +static const double EXTRAEDGEPROB = 0.002; +*/ + +void makeEdge(unsigned u, unsigned v, + vector<Edge> &edges, CompoundConstraints &ccs) { + edges.push_back(make_pair(u,v)); + ccs.push_back(new SeparationConstraint(vpsc::YDIM, u,v,5)); +} +vector<Edge> random_dag(unsigned depth, unsigned maxbranch, unsigned &V, + CompoundConstraints &ccs) { + printf("DAG depth=%d\nmaxbranch=%d\nextraedgeprob%f\n",depth,maxbranch,EXTRAEDGEPROB); + vector<Edge> edges; + unsigned lstart=0, lend=1; + V=0; + for(unsigned i=0;i<depth;i++) { + for(unsigned j=lstart;j<lend;j++) { + //makeEdge(j,++V,edges,cy); + //makeEdge(j,++V,edges,cy); + for(unsigned k=0;k<maxbranch;k++) { + double r=(double)rand()/(double)RAND_MAX; + if(r < 0.5) { + makeEdge(j,++V,edges,ccs); + } + } + } + lstart=lend; + lend=V+1; + } + V++; + /* + DFS::Graph dfs(V,edges); + for(unsigned i=1;i<dfs.order.size();i++) { + cx.push_back( + new SeparationConstraint(dfs.order[i-1],dfs.order[i],0.5)); + } + */ + for(unsigned i=0;i<V;++i) { + for(unsigned j=i+1;j<V;++j) { + double r=(double)rand()/(double)RAND_MAX; + if(r < EXTRAEDGEPROB) { + makeEdge(i,j,edges,ccs); + } + } + } + /* + for(unsigned i=0;i<dfs.leaves.size();i++) { + for(unsigned j=1;j<dfs.leaves[i].size();j++) { + cx.push_back( new SeparationConstraint(dfs.leaves[i][j-1],dfs.leaves[i][j],10)); + } + } + */ + return edges; +} +void removeoverlaps(vpsc::Rectangles &rs, bool bothaxes) { + double xBorder=0, yBorder=0; + static const double EXTRA_GAP=1e-5; + unsigned n=rs.size(); + try { + // The extra gap avoids numerical imprecision problems + Rectangle::setXBorder(xBorder+EXTRA_GAP); + Rectangle::setYBorder(yBorder+EXTRA_GAP); + vpsc::Variables vs(n); + unsigned i=0; + for(Variables::iterator v=vs.begin();v!=vs.end();++v,++i) { + *v=new Variable(i,0,1); + } + vpsc::Constraints cs; + vpsc::generateXConstraints(rs,vs,cs,bothaxes); + vpsc::IncSolver vpsc_x(vs,cs); + vpsc_x.solve(); + vpsc::Rectangles::iterator r=rs.begin(); + for(Variables::iterator v=vs.begin();v!=vs.end();++v,++r) { + assert((*v)->finalPosition==(*v)->finalPosition); + (*r)->moveCentreX((*v)->finalPosition); + } + assert(r==rs.end()); + for_each(cs.begin(),cs.end(),vpsc::delete_object()); + cs.clear(); + if(bothaxes) { + // Removing the extra gap here ensures things that were moved to be adjacent to one another above are not considered overlapping + Rectangle::setXBorder(Rectangle::xBorder-EXTRA_GAP); + vpsc::generateYConstraints(rs,vs,cs); + vpsc::IncSolver vpsc_y(vs,cs); + vpsc_y.solve(); + r=rs.begin(); + for(Variables::iterator v=vs.begin();v!=vs.end();++v,++r) { + (*r)->moveCentreY((*v)->finalPosition); + } + for_each(cs.begin(),cs.end(),vpsc::delete_object()); + cs.clear(); + Rectangle::setYBorder(Rectangle::yBorder-EXTRA_GAP); + vpsc::generateXConstraints(rs,vs,cs,false); + vpsc::IncSolver vpsc_x2(vs,cs); + vpsc_x2.solve(); + r=rs.begin(); + for(Variables::iterator v=vs.begin();v!=vs.end();++v,++r) { + (*r)->moveCentreX((*v)->finalPosition); + } + for_each(cs.begin(),cs.end(),vpsc::delete_object()); + } + for_each(vs.begin(),vs.end(),vpsc::delete_object()); + } catch (char *str) { + std::cerr<<str<<std::endl; + for(vpsc::Rectangles::iterator r=rs.begin();r!=rs.end();++r) { + std::cerr << **r <<std::endl; + } + } + Rectangle::setXBorder(xBorder); + Rectangle::setYBorder(yBorder); +} +/* +void writeTextFile(vector<cola::Edge>& edges) { + ofstream outfile("new.txt",ofstream::binary); + for(vector<cola::Edge>::iterator e=edges.begin();e!=edges.end();++e) { + outfile<<"node"<<e->first<<",node"<<e->second<<endl; + } + outfile.close(); +} +*/ +/* + * Make feasible: + * - remove overlaps between rectangular boundaries of nodes/clusters + * (respecting structural constraints) + * - perform routing (preserve previous topology using rubber banding) + */ +void makeFeasible(vpsc::Rectangles& rs, vector<cola::Edge>& edges, + std::vector<topology::Edge*>& routes, + std::vector<topology::Node*>& topologyNodes, double defaultEdgeLength) { + printf("Removing overlaps...\n"); + removeoverlaps(rs,false); + printf("done.\n"); + printf("Running libavoid to compute routes...\n"); + clock_t libavoidstarttime=clock(); + // find feasible routes for edges + Avoid::Router *router = new Avoid::Router(Avoid::PolyLineRouting); + // Use rotational sweep for point visibility + router->UseLeesAlgorithm = true; + // Don't use invisibility graph. + router->InvisibilityGrph = false; + double g=0; // make shape that libavoid sees slightly smaller + for(unsigned i=0;i<rs.size();++i) { + vpsc::Rectangle* r=rs[i]; + double x=r->getMinX()+g; + double X=r->getMaxX()-g; + double y=r->getMinY()+g; + double Y=r->getMaxY()-g; + // Create the ShapeRef: + Avoid::Polygon shapePoly(4); + // AntiClockwise! + shapePoly.ps[0] = Avoid::Point(X,y); + shapePoly.ps[1] = Avoid::Point(X,Y); + shapePoly.ps[2] = Avoid::Point(x,Y); + shapePoly.ps[3] = Avoid::Point(x,y); + //if(i==4||i==13||i==9) { + //printf("rect[%d]:{%f,%f,%f,%f}\n",i,x,y,X,Y); + //} + unsigned int shapeID = i + 1; + Avoid::ShapeRef *shapeRef = new Avoid::ShapeRef(router, shapePoly, + shapeID); + // ShapeRef constructor makes a copy of polygon so we can free it: + router->addShape(shapeRef); + } + for(unsigned i=0;i<edges.size();++i) { + cola::Edge e=edges[i]; + Avoid::ConnRef *connRef; + unsigned int connID = i + rs.size() + 1; + Rectangle* r0=rs[e.first], *r1=rs[e.second]; + Avoid::Point srcPt(r0->getCentreX(),r0->getCentreY()); + Avoid::Point dstPt(r1->getCentreX(),r1->getCentreY()); + connRef = new Avoid::ConnRef(router, srcPt, dstPt, connID); + router->processTransaction(); + const Avoid::Polygon& route = connRef->route(); + vector<topology::EdgePoint*> eps; + eps.push_back( new topology::EdgePoint( topologyNodes[e.first], + topology::EdgePoint::CENTRE)); + for(size_t j=1;j+1<route.size();j++) { + const Avoid::Point& p = route.ps[j]; + const unsigned nodeID=p.id-1; + topology::Node* node=topologyNodes[nodeID]; + topology::EdgePoint::RectIntersect ri; + switch(p.vn) { + case 0: ri=topology::EdgePoint::BR; + break; + case 1: ri=topology::EdgePoint::TR; + break; + case 2: ri=topology::EdgePoint::TL; + break; + case 3: ri=topology::EdgePoint::BL; + break; + default: ri=topology::EdgePoint::CENTRE; + } + eps.push_back(new topology::EdgePoint(node,ri)); + } + eps.push_back(new topology::EdgePoint(topologyNodes[e.second], + topology::EdgePoint::CENTRE)); + topology::Edge* edgeRoute=new topology::Edge(i,defaultEdgeLength, eps); + edgeRoute->assertConvexBends(); + routes.push_back(edgeRoute); + + } + writeFile(topologyNodes,routes,"beautify0.svg"); + assert(topology::assertNoSegmentRectIntersection(topologyNodes,routes)); + double libavoidtime=double(clock()-libavoidstarttime)/double(CLOCKS_PER_SEC); + cout << "done. Libavoid ran in " << libavoidtime << " seconds" << endl; + delete router; +} +int main() { + unsigned V; + CompoundConstraints ccs; + + int seed = time(nullptr); + //seed=1207906420; + //seed=1207920674; + //seed=1207982613; + //seed=1207984219; + seed=1207984299; + //seed=1207984743; + //seed=1207985027; // very short edge which seems to cause problems + //seed=1207986026; // error if we don't check neighbour is actually on scanline when determining visibility when generating straight constraints + //seed=1207991731; + //seed=1208303930; + //seed=1208304508; + //seed=1208316284; + //seed=1208319019; + //seed=1208321702; + printf("random seed=%d\n",seed); + srand(seed); + vector<Edge> es = random_dag(DAGDEPTH,BRANCHFACTOR,V,ccs); + double defaultEdgeLength=40; + + cout << "V="<<V<<endl; + cout << "E="<<es.size()<<endl; + double width=700; + double height=700; + vector<pair<double,double> > startpos(V); + for(unsigned i=0;i<V;i++) { + double x=getRand(width), y=getRand(height); + startpos[i]=make_pair(x,y); + } + vector<vpsc::Rectangle*> rs; + vector<topology::Node*> topologyNodes; + vector<topology::Edge*> routes; + for(unsigned i=0;i<V;i++) { + double x=getRand(width), y=getRand(height); + vpsc::Rectangle* r =new vpsc::Rectangle(x,x+30,y,y+10); + rs.push_back(r); + topologyNodes.push_back(new topology::Node(i,r)); + } + CheckProgress test(0.01,100); + clock_t unconstrainedstarttime=clock(); + //writeTextFile(es); + es.clear(); + ConstrainedFDLayout alg2(rs,es,defaultEdgeLength,nullptr,test); + //alg2.setConstraints(&ccs); + + alg2.makeFeasible(true); + alg2.run(); + + alg2.outputInstanceToSVG(); +#if 0 + double totaltime=0; + double unconstrainedtime=double(clock()-unconstrainedstarttime)/double(CLOCKS_PER_SEC); + totaltime+=unconstrainedstarttime; + cout<<"unconstrained layout ran in "<<unconstrainedtime<<" seconds"<<endl; + clock_t makefeasiblestarttime=clock(); + makeFeasible(rs,es,routes,topologyNodes,defaultEdgeLength); + double makefeasibletime=double(clock()-makefeasiblestarttime)/double(CLOCKS_PER_SEC); + totaltime+=makefeasibletime; + cout<<"makefeasible ran in "<<makefeasibletime<<" seconds"<<endl; + clock_t beautifystarttime=clock(); + test.reset(); + alg2.setTopology(&topologyNodes, &routes); + writeFile(topologyNodes,routes,"beautify1.svg"); + std::stringstream dunnartfile; + dunnartfile << "v" << V << "e" << (int) es.size() << ".svg"; + writeDunnartFile(topologyNodes,es,dunnartfile.str().c_str()); + + alg2.run(); + double beautifytime=double(clock()-beautifystarttime)/double(CLOCKS_PER_SEC); + totaltime+=beautifytime; + cout<<"beautify ran in "<<beautifytime<<" seconds"<<endl; + cout<<"TOTAL="<<totaltime<<endl; + cout <<"---------------------------------------------"<< endl; + cout <<V<<" & "<<es.size()<<" & "<<unconstrainedtime<<" & "<<makefeasibletime<<" & "<<beautifytime<<" & "<<totaltime<<" \\\\ % Seed: "<< seed <<endl; + writeFile(topologyNodes,routes,"beautify2.svg"); +#endif + for(unsigned i=0;i<V;i++) { + delete rs[i]; + } + return 0; +} +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4:textwidth=99 : diff --git a/src/3rdparty/adaptagrams/libcola/tests/makefeasible02.cpp b/src/3rdparty/adaptagrams/libcola/tests/makefeasible02.cpp new file mode 100755 index 0000000..82d55b7 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/makefeasible02.cpp @@ -0,0 +1,932 @@ +#include <vector> +#include "libcola/cola.h" +using namespace cola; +int main(void) { + CompoundConstraints ccs; + std::vector<Edge> es; + double defaultEdgeLength=40; + std::vector<vpsc::Rectangle*> rs; + vpsc::Rectangle *rect = nullptr; + + rect = new vpsc::Rectangle(252, 272, 930, 950); + rs.push_back(rect); + + rect = new vpsc::Rectangle(109, 129, 898, 918); + rs.push_back(rect); + + rect = new vpsc::Rectangle(252, 272, 951, 971); + rs.push_back(rect); + + rect = new vpsc::Rectangle(99, 139, 931, 971); + rs.push_back(rect); + + rect = new vpsc::Rectangle(593, 665, 212.5, 459.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(398, 518, 52, 96); + rs.push_back(rect); + + rect = new vpsc::Rectangle(341, 361, 899, 919); + rs.push_back(rect); + + rect = new vpsc::Rectangle(450, 470, 930, 950); + rs.push_back(rect); + + rect = new vpsc::Rectangle(402, 422, 930, 950); + rs.push_back(rect); + + rect = new vpsc::Rectangle(394, 414, 861, 881); + rs.push_back(rect); + + rect = new vpsc::Rectangle(394, 414, 840, 860); + rs.push_back(rect); + + rect = new vpsc::Rectangle(282, 302, 852, 872); + rs.push_back(rect); + + rect = new vpsc::Rectangle(173, 193, 852, 872); + rs.push_back(rect); + + rect = new vpsc::Rectangle(521, 541, 851, 871); + rs.push_back(rect); + + rect = new vpsc::Rectangle(313, 401, 739, 783); + rs.push_back(rect); + + rect = new vpsc::Rectangle(446, 466, 757, 777); + rs.push_back(rect); + + rect = new vpsc::Rectangle(446, 466, 688, 708); + rs.push_back(rect); + + rect = new vpsc::Rectangle(447, 467, 616, 636); + rs.push_back(rect); + + rect = new vpsc::Rectangle(421, 441, 471, 491); + rs.push_back(rect); + + rect = new vpsc::Rectangle(196.5, 359.5, 575, 619); + rs.push_back(rect); + + rect = new vpsc::Rectangle(366, 386, 437, 457); + rs.push_back(rect); + + rect = new vpsc::Rectangle(446, 466, 391, 411); + rs.push_back(rect); + + rect = new vpsc::Rectangle(446, 466, 325, 345); + rs.push_back(rect); + + rect = new vpsc::Rectangle(393, 413, 325, 345); + rs.push_back(rect); + + rect = new vpsc::Rectangle(515, 535, 182, 202); + rs.push_back(rect); + + rect = new vpsc::Rectangle(446, 466, 255, 275); + rs.push_back(rect); + + rect = new vpsc::Rectangle(446, 466, 160, 180); + rs.push_back(rect); + + rect = new vpsc::Rectangle(366, 386, 289, 309); + rs.push_back(rect); + + rect = new vpsc::Rectangle(211, 231, 270, 290); + rs.push_back(rect); + + rect = new vpsc::Rectangle(211, 231, 289, 309); + rs.push_back(rect); + + rect = new vpsc::Rectangle(320, 340, 256, 276); + rs.push_back(rect); + + rect = new vpsc::Rectangle(270, 290, 256, 276); + rs.push_back(rect); + + rect = new vpsc::Rectangle(144, 164, 251, 271); + rs.push_back(rect); + + rect = new vpsc::Rectangle(211, 231, 214, 234); + rs.push_back(rect); + + rect = new vpsc::Rectangle(211, 231, 195, 215); + rs.push_back(rect); + + rect = new vpsc::Rectangle(279, 299, 173, 193); + rs.push_back(rect); + + rect = new vpsc::Rectangle(306, 326, 141, 161); + rs.push_back(rect); + + rect = new vpsc::Rectangle(306, 326, 120, 140); + rs.push_back(rect); + + rect = new vpsc::Rectangle(34.5, 295.5, 39.5, 74.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(225, 245, 895, 915); + rs.push_back(rect); + + rect = new vpsc::Rectangle(446, 466, 543, 563); + rs.push_back(rect); + + rect = new vpsc::Rectangle(211, 231, 233, 253); + rs.push_back(rect); + + rect = new vpsc::Rectangle(211, 231, 308, 328); + rs.push_back(rect); + + rect = new vpsc::Rectangle(144, 164, 347, 367); + rs.push_back(rect); + + rect = new vpsc::Rectangle(144, 164, 373, 393); + rs.push_back(rect); + + rect = new vpsc::Rectangle(254, 274, 346, 366); + rs.push_back(rect); + + rect = new vpsc::Rectangle(254, 274, 372, 392); + rs.push_back(rect); + + rect = new vpsc::Rectangle(554, 594, 173, 213); + rs.push_back(rect); + + rect = new vpsc::Rectangle(436, 476, 121, 161); + rs.push_back(rect); + + rect = new vpsc::Rectangle(436, 476, 642, 682); + rs.push_back(rect); + + rect = new vpsc::Rectangle(134, 174, 206, 246); + rs.push_back(rect); + + rect = new vpsc::Rectangle(134, 174, 279, 319); + rs.push_back(rect); + + rect = new vpsc::Rectangle(285, 325, 426, 466); + rs.push_back(rect); + + rect = new vpsc::Rectangle(285, 325, 279, 319); + rs.push_back(rect); + + rect = new vpsc::Rectangle(436, 476, 208, 248); + rs.push_back(rect); + + rect = new vpsc::Rectangle(436, 476, 281, 321); + rs.push_back(rect); + + rect = new vpsc::Rectangle(436, 476, 714, 754); + rs.push_back(rect); + + rect = new vpsc::Rectangle(436, 476, 570, 610); + rs.push_back(rect); + + rect = new vpsc::Rectangle(436, 476, 498, 538); + rs.push_back(rect); + + rect = new vpsc::Rectangle(580, 620, 841, 881); + rs.push_back(rect); + + rect = new vpsc::Rectangle(267, 307, 884, 924); + rs.push_back(rect); + + rect = new vpsc::Rectangle(503, 543, 931, 971); + rs.push_back(rect); + + rect = new vpsc::Rectangle(436, 476, 841, 881); + rs.push_back(rect); + + rect = new vpsc::Rectangle(331, 371, 841, 881); + rs.push_back(rect); + + rect = new vpsc::Rectangle(331, 371, 798, 838); + rs.push_back(rect); + + rect = new vpsc::Rectangle(99, 139, 841, 881); + rs.push_back(rect); + + rect = new vpsc::Rectangle(331, 371, 931, 971); + rs.push_back(rect); + + rect = new vpsc::Rectangle(218, 258, 841, 881); + rs.push_back(rect); + + rect = new vpsc::Rectangle(165, 205, 884, 924); + rs.push_back(rect); + + rect = new vpsc::Rectangle(436, 476, 351, 391); + rs.push_back(rect); + + rect = new vpsc::Rectangle(85, 125, 336, 376); + rs.push_back(rect); + + rect = new vpsc::Rectangle(192, 232, 336, 376); + rs.push_back(rect); + + rect = new vpsc::Rectangle(192, 232, 362, 402); + rs.push_back(rect); + + rect = new vpsc::Rectangle(85, 125, 362, 402); + rs.push_back(rect); + + rect = new vpsc::Rectangle(20.5, 77.5, 716, 880); + rs.push_back(rect); + + rect = new vpsc::Rectangle(167, 187, 713, 733); + rs.push_back(rect); + + rect = new vpsc::Rectangle(99, 139, 714, 754); + rs.push_back(rect); + + rect = new vpsc::Rectangle(402, 422, 951, 971); + rs.push_back(rect); + + rect = new vpsc::Rectangle(167, 187, 734, 754); + rs.push_back(rect); + + rect = new vpsc::Rectangle(450, 470, 951, 971); + rs.push_back(rect); + + rect = new vpsc::Rectangle(532.5, 669.5, 899.5, 934.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(471, 491, 471, 491); + rs.push_back(rect); + + rect = new vpsc::Rectangle(545, 565, 512, 532); + rs.push_back(rect); + + rect = new vpsc::Rectangle(518, 538, 531, 551); + rs.push_back(rect); + + rect = new vpsc::Rectangle(252, 272, 782, 802); + rs.push_back(rect); + + rect = new vpsc::Rectangle(495, 515, 512, 532); + rs.push_back(rect); + + rect = new vpsc::Rectangle(351, 391, 534, 574); + rs.push_back(rect); + + rect = new vpsc::Rectangle(400, 420, 573, 593); + rs.push_back(rect); + + rect = new vpsc::Rectangle(401, 421, 509, 529); + rs.push_back(rect); + + rect = new vpsc::Rectangle(436, 476, 426, 466); + rs.push_back(rect); + + rect = new vpsc::Rectangle(234, 290, 970, 1010); + rs.push_back(rect); + + rect = new vpsc::Rectangle(29, 85, 888, 928); + rs.push_back(rect); + + rect = new vpsc::Rectangle(234, 290, 991, 1031); + rs.push_back(rect); + + rect = new vpsc::Rectangle(261, 317, 889, 929); + rs.push_back(rect); + + rect = new vpsc::Rectangle(432, 488, 870, 910); + rs.push_back(rect); + + rect = new vpsc::Rectangle(384, 440, 970, 1010); + rs.push_back(rect); + + rect = new vpsc::Rectangle(314, 370, 851, 891); + rs.push_back(rect); + + rect = new vpsc::Rectangle(438, 494, 830, 870); + rs.push_back(rect); + + rect = new vpsc::Rectangle(202, 258, 842, 882); + rs.push_back(rect); + + rect = new vpsc::Rectangle(155, 211, 792, 832); + rs.push_back(rect); + + rect = new vpsc::Rectangle(503, 559, 791, 831); + rs.push_back(rect); + + rect = new vpsc::Rectangle(490, 546, 747, 787); + rs.push_back(rect); + + rect = new vpsc::Rectangle(366, 422, 678, 718); + rs.push_back(rect); + + rect = new vpsc::Rectangle(367, 423, 606, 646); + rs.push_back(rect); + + rect = new vpsc::Rectangle(341, 397, 461, 501); + rs.push_back(rect); + + rect = new vpsc::Rectangle(348, 404, 377, 417); + rs.push_back(rect); + + rect = new vpsc::Rectangle(490, 546, 381, 421); + rs.push_back(rect); + + rect = new vpsc::Rectangle(490, 546, 315, 355); + rs.push_back(rect); + + rect = new vpsc::Rectangle(375, 431, 365, 405); + rs.push_back(rect); + + rect = new vpsc::Rectangle(497, 553, 122, 162); + rs.push_back(rect); + + rect = new vpsc::Rectangle(490, 546, 245, 285); + rs.push_back(rect); + + rect = new vpsc::Rectangle(366, 422, 150, 190); + rs.push_back(rect); + + rect = new vpsc::Rectangle(348, 404, 229, 269); + rs.push_back(rect); + + rect = new vpsc::Rectangle(193, 249, 210, 250); + rs.push_back(rect); + + rect = new vpsc::Rectangle(193, 249, 229, 269); + rs.push_back(rect); + + rect = new vpsc::Rectangle(364, 420, 246, 286); + rs.push_back(rect); + + rect = new vpsc::Rectangle(190, 246, 246, 286); + rs.push_back(rect); + + rect = new vpsc::Rectangle(64, 120, 241, 281); + rs.push_back(rect); + + rect = new vpsc::Rectangle(193, 249, 154, 194); + rs.push_back(rect); + + rect = new vpsc::Rectangle(193, 249, 135, 175); + rs.push_back(rect); + + rect = new vpsc::Rectangle(261, 317, 213, 253); + rs.push_back(rect); + + rect = new vpsc::Rectangle(288, 344, 81, 121); + rs.push_back(rect); + + rect = new vpsc::Rectangle(288, 344, 160, 200); + rs.push_back(rect); + + rect = new vpsc::Rectangle(207, 263, 835, 875); + rs.push_back(rect); + + rect = new vpsc::Rectangle(366, 422, 533, 573); + rs.push_back(rect); + + rect = new vpsc::Rectangle(193, 249, 173, 213); + rs.push_back(rect); + + rect = new vpsc::Rectangle(193, 249, 248, 288); + rs.push_back(rect); + + rect = new vpsc::Rectangle(126, 182, 287, 327); + rs.push_back(rect); + + rect = new vpsc::Rectangle(126, 182, 413, 453); + rs.push_back(rect); + + rect = new vpsc::Rectangle(236, 292, 286, 326); + rs.push_back(rect); + + rect = new vpsc::Rectangle(236, 292, 412, 452); + rs.push_back(rect); + + rect = new vpsc::Rectangle(149, 205, 653, 693); + rs.push_back(rect); + + rect = new vpsc::Rectangle(384, 440, 891, 931); + rs.push_back(rect); + + rect = new vpsc::Rectangle(149, 205, 674, 714); + rs.push_back(rect); + + rect = new vpsc::Rectangle(432, 488, 991, 1031); + rs.push_back(rect); + + rect = new vpsc::Rectangle(515, 571, 461, 501); + rs.push_back(rect); + + rect = new vpsc::Rectangle(527, 583, 452, 492); + rs.push_back(rect); + + rect = new vpsc::Rectangle(500, 556, 571, 611); + rs.push_back(rect); + + rect = new vpsc::Rectangle(234, 290, 722, 762); + rs.push_back(rect); + + rect = new vpsc::Rectangle(539, 595, 502, 542); + rs.push_back(rect); + + rect = new vpsc::Rectangle(382, 438, 613, 653); + rs.push_back(rect); + + rect = new vpsc::Rectangle(383, 439, 449, 489); + rs.push_back(rect); + +#if 1 + AlignmentConstraint *alignment2424608 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment2424608->addShape(0, 0); + alignment2424608->addShape(2, 0); + alignment2424608->addShape(45, 0); + alignment2424608->addShape(46, 0); + alignment2424608->addShape(84, 0); + alignment2424608->addShape(90, 0); + alignment2424608->addShape(92, 0); + alignment2424608->addShape(129, 0); + alignment2424608->addShape(130, 0); + alignment2424608->addShape(138, 0); + ccs.push_back(alignment2424608); + AlignmentConstraint *alignment2424744 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment2424744->addShape(1, 0); + alignment2424744->addShape(3, 0); + alignment2424744->addShape(65, 0); + alignment2424744->addShape(76, 0); + ccs.push_back(alignment2424744); + AlignmentConstraint *alignment1216038856 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216038856->addShape(4, 0); + ccs.push_back(alignment1216038856); + AlignmentConstraint *alignment1216038920 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216038920->addShape(5, 0); + alignment1216038920->addShape(7, 0); + alignment1216038920->addShape(15, 0); + alignment1216038920->addShape(16, 0); + alignment1216038920->addShape(17, 0); + alignment1216038920->addShape(21, 0); + alignment1216038920->addShape(22, 0); + alignment1216038920->addShape(25, 0); + alignment1216038920->addShape(26, 0); + alignment1216038920->addShape(40, 0); + alignment1216038920->addShape(48, 0); + alignment1216038920->addShape(49, 0); + alignment1216038920->addShape(54, 0); + alignment1216038920->addShape(55, 0); + alignment1216038920->addShape(56, 0); + alignment1216038920->addShape(57, 0); + alignment1216038920->addShape(58, 0); + alignment1216038920->addShape(62, 0); + alignment1216038920->addShape(69, 0); + alignment1216038920->addShape(79, 0); + alignment1216038920->addShape(89, 0); + alignment1216038920->addShape(94, 0); + alignment1216038920->addShape(134, 0); + ccs.push_back(alignment1216038920); + AlignmentConstraint *alignment1216038984 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216038984->addShape(6, 0); + alignment1216038984->addShape(63, 0); + alignment1216038984->addShape(64, 0); + alignment1216038984->addShape(66, 0); + ccs.push_back(alignment1216038984); + AlignmentConstraint *alignment1216039048 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216039048->addShape(8, 0); + alignment1216039048->addShape(77, 0); + alignment1216039048->addShape(87, 0); + alignment1216039048->addShape(88, 0); + alignment1216039048->addShape(95, 0); + alignment1216039048->addShape(132, 0); + alignment1216039048->addShape(140, 0); + alignment1216039048->addShape(141, 0); + ccs.push_back(alignment1216039048); + AlignmentConstraint *alignment1216039112 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216039112->addShape(9, 0); + alignment1216039112->addShape(10, 0); + alignment1216039112->addShape(23, 0); + alignment1216039112->addShape(108, 0); + ccs.push_back(alignment1216039112); + AlignmentConstraint *alignment1216039176 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216039176->addShape(11, 0); + alignment1216039176->addShape(35, 0); + alignment1216039176->addShape(60, 0); + alignment1216039176->addShape(93, 0); + alignment1216039176->addShape(120, 0); + ccs.push_back(alignment1216039176); + AlignmentConstraint *alignment1216039240 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216039240->addShape(12, 0); + alignment1216039240->addShape(68, 0); + alignment1216039240->addShape(99, 0); + ccs.push_back(alignment1216039240); + AlignmentConstraint *alignment1216039304 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216039304->addShape(13, 0); + alignment1216039304->addShape(83, 0); + alignment1216039304->addShape(100, 0); + alignment1216039304->addShape(137, 0); + ccs.push_back(alignment1216039304); + AlignmentConstraint *alignment1216040464 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216040464->addShape(14, 0); + ccs.push_back(alignment1216040464); + AlignmentConstraint *alignment1216040528 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216040528->addShape(18, 0); + ccs.push_back(alignment1216040528); + AlignmentConstraint *alignment1216040592 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216040592->addShape(19, 0); + alignment1216040592->addShape(31, 0); + ccs.push_back(alignment1216040592); + AlignmentConstraint *alignment1216040656 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216040656->addShape(20, 0); + alignment1216040656->addShape(27, 0); + alignment1216040656->addShape(86, 0); + alignment1216040656->addShape(105, 0); + alignment1216040656->addShape(112, 0); + ccs.push_back(alignment1216040656); + AlignmentConstraint *alignment1216040720 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216040720->addShape(24, 0); + alignment1216040720->addShape(61, 0); + alignment1216040720->addShape(109, 0); + ccs.push_back(alignment1216040720); + AlignmentConstraint *alignment1216040784 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216040784->addShape(28, 0); + alignment1216040784->addShape(29, 0); + alignment1216040784->addShape(33, 0); + alignment1216040784->addShape(34, 0); + alignment1216040784->addShape(41, 0); + alignment1216040784->addShape(42, 0); + alignment1216040784->addShape(113, 0); + alignment1216040784->addShape(114, 0); + alignment1216040784->addShape(116, 0); + alignment1216040784->addShape(118, 0); + alignment1216040784->addShape(119, 0); + alignment1216040784->addShape(125, 0); + alignment1216040784->addShape(126, 0); + ccs.push_back(alignment1216040784); + AlignmentConstraint *alignment1216034032 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216034032->addShape(30, 0); + ccs.push_back(alignment1216034032); + AlignmentConstraint *alignment1216035736 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216035736->addShape(32, 0); + alignment1216035736->addShape(43, 0); + alignment1216035736->addShape(44, 0); + alignment1216035736->addShape(50, 0); + alignment1216035736->addShape(51, 0); + alignment1216035736->addShape(127, 0); + alignment1216035736->addShape(128, 0); + ccs.push_back(alignment1216035736); + AlignmentConstraint *alignment1216035800 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216035800->addShape(36, 0); + alignment1216035800->addShape(37, 0); + alignment1216035800->addShape(121, 0); + alignment1216035800->addShape(122, 0); + ccs.push_back(alignment1216035800); + AlignmentConstraint *alignment1216035864 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216035864->addShape(38, 0); + ccs.push_back(alignment1216035864); + AlignmentConstraint *alignment1216035928 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216035928->addShape(39, 0); + alignment1216035928->addShape(67, 0); + alignment1216035928->addShape(98, 0); + alignment1216035928->addShape(123, 0); + ccs.push_back(alignment1216035928); + AlignmentConstraint *alignment1216035992 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216035992->addShape(47, 0); + ccs.push_back(alignment1216035992); + AlignmentConstraint *alignment1216036056 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216036056->addShape(52, 0); + alignment1216036056->addShape(53, 0); + ccs.push_back(alignment1216036056); + AlignmentConstraint *alignment1216036120 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216036120->addShape(59, 0); + alignment1216036120->addShape(80, 0); + ccs.push_back(alignment1216036120); + AlignmentConstraint *alignment1216036184 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216036184->addShape(70, 0); + alignment1216036184->addShape(73, 0); + ccs.push_back(alignment1216036184); + AlignmentConstraint *alignment1216036248 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216036248->addShape(71, 0); + alignment1216036248->addShape(72, 0); + ccs.push_back(alignment1216036248); + AlignmentConstraint *alignment1216036312 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216036312->addShape(74, 0); + ccs.push_back(alignment1216036312); + AlignmentConstraint *alignment1216036376 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216036376->addShape(75, 0); + alignment1216036376->addShape(78, 0); + alignment1216036376->addShape(131, 0); + alignment1216036376->addShape(133, 0); + ccs.push_back(alignment1216036376); + AlignmentConstraint *alignment1216036440 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216036440->addShape(81, 0); + ccs.push_back(alignment1216036440); + AlignmentConstraint *alignment1216036504 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216036504->addShape(82, 0); + alignment1216036504->addShape(136, 0); + ccs.push_back(alignment1216036504); + AlignmentConstraint *alignment1216036568 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216036568->addShape(85, 0); + ccs.push_back(alignment1216036568); + AlignmentConstraint *alignment1216036632 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216036632->addShape(91, 0); + ccs.push_back(alignment1216036632); + AlignmentConstraint *alignment1216034712 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216034712->addShape(96, 0); + ccs.push_back(alignment1216034712); + AlignmentConstraint *alignment1216034776 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216034776->addShape(97, 0); + ccs.push_back(alignment1216034776); + AlignmentConstraint *alignment1216034840 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216034840->addShape(101, 0); + alignment1216034840->addShape(106, 0); + alignment1216034840->addShape(107, 0); + alignment1216034840->addShape(110, 0); + ccs.push_back(alignment1216034840); + AlignmentConstraint *alignment1216034904 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216034904->addShape(102, 0); + alignment1216034904->addShape(103, 0); + alignment1216034904->addShape(111, 0); + alignment1216034904->addShape(115, 0); + alignment1216034904->addShape(124, 0); + ccs.push_back(alignment1216034904); + AlignmentConstraint *alignment1216034968 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216034968->addShape(104, 0); + ccs.push_back(alignment1216034968); + AlignmentConstraint *alignment1216035032 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216035032->addShape(117, 0); + ccs.push_back(alignment1216035032); + AlignmentConstraint *alignment1216035096 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216035096->addShape(135, 0); + ccs.push_back(alignment1216035096); + AlignmentConstraint *alignment1216035160 = new AlignmentConstraint((vpsc::Dim) 0, 0); + alignment1216035160->addShape(139, 0); + ccs.push_back(alignment1216035160); +#endif + +#if 1 + AlignmentConstraint *alignment1216035224 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216035224->addShape(0, 0); + alignment1216035224->addShape(7, 0); + alignment1216035224->addShape(8, 0); + ccs.push_back(alignment1216035224); + AlignmentConstraint *alignment1216035288 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216035288->addShape(1, 0); + alignment1216035288->addShape(6, 0); + alignment1216035288->addShape(39, 0); + alignment1216035288->addShape(60, 0); + alignment1216035288->addShape(68, 0); + alignment1216035288->addShape(91, 0); + alignment1216035288->addShape(93, 0); + alignment1216035288->addShape(132, 0); + ccs.push_back(alignment1216035288); + AlignmentConstraint *alignment1216035352 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216035352->addShape(2, 0); + alignment1216035352->addShape(77, 0); + alignment1216035352->addShape(79, 0); + ccs.push_back(alignment1216035352); + AlignmentConstraint *alignment1216035416 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216035416->addShape(3, 0); + alignment1216035416->addShape(61, 0); + alignment1216035416->addShape(66, 0); + ccs.push_back(alignment1216035416); + AlignmentConstraint *alignment1216035480 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216035480->addShape(4, 0); + alignment1216035480->addShape(22, 0); + alignment1216035480->addShape(23, 0); + alignment1216035480->addShape(107, 0); + ccs.push_back(alignment1216035480); + AlignmentConstraint *alignment1216035544 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216035544->addShape(5, 0); + ccs.push_back(alignment1216035544); + AlignmentConstraint *alignment1216035608 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216035608->addShape(9, 0); + alignment1216035608->addShape(96, 0); + ccs.push_back(alignment1216035608); + AlignmentConstraint *alignment1216042672 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216042672->addShape(10, 0); + alignment1216042672->addShape(97, 0); + alignment1216042672->addShape(123, 0); + ccs.push_back(alignment1216042672); + AlignmentConstraint *alignment1216042736 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216042736->addShape(11, 0); + alignment1216042736->addShape(12, 0); + alignment1216042736->addShape(13, 0); + alignment1216042736->addShape(59, 0); + alignment1216042736->addShape(62, 0); + alignment1216042736->addShape(63, 0); + alignment1216042736->addShape(65, 0); + alignment1216042736->addShape(67, 0); + alignment1216042736->addShape(98, 0); + ccs.push_back(alignment1216042736); + AlignmentConstraint *alignment1216042800 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216042800->addShape(14, 0); + ccs.push_back(alignment1216042800); + AlignmentConstraint *alignment1216042864 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216042864->addShape(15, 0); + alignment1216042864->addShape(101, 0); + ccs.push_back(alignment1216042864); + AlignmentConstraint *alignment1216042928 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216042928->addShape(16, 0); + alignment1216042928->addShape(102, 0); + alignment1216042928->addShape(133, 0); + ccs.push_back(alignment1216042928); + AlignmentConstraint *alignment1216042992 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216042992->addShape(17, 0); + alignment1216042992->addShape(103, 0); + ccs.push_back(alignment1216042992); + AlignmentConstraint *alignment1216043056 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216043056->addShape(18, 0); + alignment1216043056->addShape(81, 0); + alignment1216043056->addShape(104, 0); + alignment1216043056->addShape(135, 0); + ccs.push_back(alignment1216043056); + AlignmentConstraint *alignment1216043120 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216043120->addShape(19, 0); + ccs.push_back(alignment1216043120); + AlignmentConstraint *alignment1216043184 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216043184->addShape(20, 0); + alignment1216043184->addShape(52, 0); + alignment1216043184->addShape(89, 0); + ccs.push_back(alignment1216043184); + AlignmentConstraint *alignment1216043248 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216043248->addShape(21, 0); + alignment1216043248->addShape(105, 0); + alignment1216043248->addShape(106, 0); + ccs.push_back(alignment1216043248); + AlignmentConstraint *alignment1216043312 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216043312->addShape(24, 0); + alignment1216043312->addShape(47, 0); + alignment1216043312->addShape(125, 0); + ccs.push_back(alignment1216043312); + AlignmentConstraint *alignment1216043376 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216043376->addShape(25, 0); + alignment1216043376->addShape(30, 0); + alignment1216043376->addShape(31, 0); + alignment1216043376->addShape(32, 0); + alignment1216043376->addShape(110, 0); + alignment1216043376->addShape(115, 0); + alignment1216043376->addShape(116, 0); + alignment1216043376->addShape(117, 0); + alignment1216043376->addShape(126, 0); + ccs.push_back(alignment1216043376); + AlignmentConstraint *alignment1216043440 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216043440->addShape(26, 0); + alignment1216043440->addShape(111, 0); + alignment1216043440->addShape(118, 0); + ccs.push_back(alignment1216043440); + AlignmentConstraint *alignment1216043504 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216043504->addShape(27, 0); + alignment1216043504->addShape(29, 0); + alignment1216043504->addShape(51, 0); + alignment1216043504->addShape(53, 0); + alignment1216043504->addShape(55, 0); + ccs.push_back(alignment1216043504); + AlignmentConstraint *alignment1216043568 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216043568->addShape(28, 0); + ccs.push_back(alignment1216043568); + AlignmentConstraint *alignment1216043632 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216043632->addShape(33, 0); + alignment1216043632->addShape(50, 0); + alignment1216043632->addShape(54, 0); + ccs.push_back(alignment1216043632); + AlignmentConstraint *alignment1216043696 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216043696->addShape(34, 0); + ccs.push_back(alignment1216043696); + AlignmentConstraint *alignment1216043760 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216043760->addShape(35, 0); + alignment1216043760->addShape(122, 0); + ccs.push_back(alignment1216043760); + AlignmentConstraint *alignment1216043824 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216043824->addShape(36, 0); + alignment1216043824->addShape(119, 0); + ccs.push_back(alignment1216043824); + AlignmentConstraint *alignment1216043888 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216043888->addShape(37, 0); + ccs.push_back(alignment1216043888); + AlignmentConstraint *alignment1216043952 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216043952->addShape(38, 0); + ccs.push_back(alignment1216043952); + AlignmentConstraint *alignment1216044016 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216044016->addShape(40, 0); + alignment1216044016->addShape(86, 0); + alignment1216044016->addShape(124, 0); + ccs.push_back(alignment1216044016); + AlignmentConstraint *alignment1216044080 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216044080->addShape(41, 0); + ccs.push_back(alignment1216044080); + AlignmentConstraint *alignment1216044144 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216044144->addShape(42, 0); + ccs.push_back(alignment1216044144); + AlignmentConstraint *alignment1216044208 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216044208->addShape(43, 0); + alignment1216044208->addShape(45, 0); + alignment1216044208->addShape(70, 0); + alignment1216044208->addShape(71, 0); + ccs.push_back(alignment1216044208); + AlignmentConstraint *alignment1216044272 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216044272->addShape(44, 0); + alignment1216044272->addShape(46, 0); + alignment1216044272->addShape(72, 0); + alignment1216044272->addShape(73, 0); + alignment1216044272->addShape(108, 0); + ccs.push_back(alignment1216044272); + AlignmentConstraint *alignment1216044336 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216044336->addShape(48, 0); + alignment1216044336->addShape(109, 0); + ccs.push_back(alignment1216044336); + AlignmentConstraint *alignment1216044400 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216044400->addShape(49, 0); + ccs.push_back(alignment1216044400); + AlignmentConstraint *alignment1216044464 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216044464->addShape(56, 0); + alignment1216044464->addShape(76, 0); + ccs.push_back(alignment1216044464); + AlignmentConstraint *alignment1216044528 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216044528->addShape(57, 0); + alignment1216044528->addShape(137, 0); + ccs.push_back(alignment1216044528); + AlignmentConstraint *alignment1216044592 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216044592->addShape(58, 0); + alignment1216044592->addShape(82, 0); + alignment1216044592->addShape(85, 0); + alignment1216044592->addShape(88, 0); + alignment1216044592->addShape(139, 0); + ccs.push_back(alignment1216044592); + AlignmentConstraint *alignment1216021552 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216021552->addShape(64, 0); + ccs.push_back(alignment1216021552); + AlignmentConstraint *alignment1216021616 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216021616->addShape(69, 0); + ccs.push_back(alignment1216021616); + AlignmentConstraint *alignment1216021680 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216021680->addShape(74, 0); + ccs.push_back(alignment1216021680); + AlignmentConstraint *alignment1216021744 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216021744->addShape(75, 0); + ccs.push_back(alignment1216021744); + AlignmentConstraint *alignment1216021808 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216021808->addShape(78, 0); + alignment1216021808->addShape(138, 0); + ccs.push_back(alignment1216021808); + AlignmentConstraint *alignment1216021872 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216021872->addShape(80, 0); + ccs.push_back(alignment1216021872); + AlignmentConstraint *alignment1216021936 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216021936->addShape(83, 0); + ccs.push_back(alignment1216021936); + AlignmentConstraint *alignment1216022000 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216022000->addShape(84, 0); + ccs.push_back(alignment1216022000); + AlignmentConstraint *alignment1216022064 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216022064->addShape(87, 0); + ccs.push_back(alignment1216022064); + AlignmentConstraint *alignment1216022128 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216022128->addShape(90, 0); + alignment1216022128->addShape(95, 0); + ccs.push_back(alignment1216022128); + AlignmentConstraint *alignment1216022192 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216022192->addShape(92, 0); + alignment1216022192->addShape(134, 0); + ccs.push_back(alignment1216022192); + AlignmentConstraint *alignment1216022256 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216022256->addShape(94, 0); + ccs.push_back(alignment1216022256); + AlignmentConstraint *alignment1216022320 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216022320->addShape(99, 0); + alignment1216022320->addShape(100, 0); + ccs.push_back(alignment1216022320); + AlignmentConstraint *alignment1216022384 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216022384->addShape(112, 0); + alignment1216022384->addShape(114, 0); + ccs.push_back(alignment1216022384); + AlignmentConstraint *alignment1216022448 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216022448->addShape(113, 0); + alignment1216022448->addShape(120, 0); + ccs.push_back(alignment1216022448); + AlignmentConstraint *alignment1216022512 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216022512->addShape(121, 0); + ccs.push_back(alignment1216022512); + AlignmentConstraint *alignment1216022576 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216022576->addShape(127, 0); + alignment1216022576->addShape(129, 0); + ccs.push_back(alignment1216022576); + AlignmentConstraint *alignment1216022640 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216022640->addShape(128, 0); + alignment1216022640->addShape(130, 0); + ccs.push_back(alignment1216022640); + AlignmentConstraint *alignment1216022704 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216022704->addShape(131, 0); + ccs.push_back(alignment1216022704); + AlignmentConstraint *alignment1216022768 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216022768->addShape(136, 0); + alignment1216022768->addShape(141, 0); + ccs.push_back(alignment1216022768); + AlignmentConstraint *alignment1216022832 = new AlignmentConstraint((vpsc::Dim) 1, 0); + alignment1216022832->addShape(140, 0); + ccs.push_back(alignment1216022832); +#endif + + ConstrainedFDLayout alg(rs, es, defaultEdgeLength); + alg.setAvoidNodeOverlaps(true); + alg.setConstraints(ccs); + alg.makeFeasible(); + alg.outputInstanceToSVG(); + //alg.run(); + return 0; +}; diff --git a/src/3rdparty/adaptagrams/libcola/tests/makemovie.sh b/src/3rdparty/adaptagrams/libcola/tests/makemovie.sh new file mode 100644 index 0000000..cd571f9 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/makemovie.sh @@ -0,0 +1,10 @@ +pattern=containment +width=200 +height=260 +rm ${pattern}*.pdf +for file in ${pattern}*.svg +do + echo adding $file... + inkscape -w$width -h$height -A ${file%.svg}.pdf $file 2> /dev/null +done +convert -page ${width}x${height} -delay 15 ${pattern}*.pdf $pattern.gif diff --git a/src/3rdparty/adaptagrams/libcola/tests/max_acyclic_subgraph.cpp b/src/3rdparty/adaptagrams/libcola/tests/max_acyclic_subgraph.cpp new file mode 100644 index 0000000..cb2eb38 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/max_acyclic_subgraph.cpp @@ -0,0 +1,346 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + +#include <iostream> +#include <vector> +#include <assert.h> +#include <libcola/cola.h> +#include <libcola/max_acyclic_subgraph.h> +#include "graphlayouttest.h" + +using namespace std; +using namespace cola; +using vpsc::Rectangle; + +int main() { + MaxAcyclicSubgraph *mas; + Edges case_a, case_b, case_c, case_d, case_e, case_f; + Edges *subgraph = nullptr; + + vector<Rectangle *> rs; + unsigned V; + + // create case A + // case A consists of a basic graph where the start point is a source + cout << endl << "ENTERING CASE A" << endl; + V = 5; + case_a.push_back(Edge(0, 1)); + case_a.push_back(Edge(1, 2)); + case_a.push_back(Edge(2, 3)); + case_a.push_back(Edge(3, 4)); + case_a.push_back(Edge(4, 1)); + + // detect the subgraph + mas = new MaxAcyclicSubgraph(V, &case_a); + subgraph = mas->find_subgraph(); + + if (subgraph != nullptr) { + cout << "subgraph->size(): " << subgraph->size() << endl; + cout << "Ea: "; + for (unsigned i = 0; i < subgraph->size(); i++) { + // print out the subgraph + cout << "(" << (*subgraph)[i].first << ", " << (*subgraph)[i].second << ") "; + } + + cout << endl; + + // output a picture + rs.push_back(new Rectangle(10,10+5,10,10+5)); + rs.push_back(new Rectangle(30,30+5,30,30+5)); + rs.push_back(new Rectangle(30,30+5,60,60+5)); + rs.push_back(new Rectangle(65,65+5,60,60+5)); + rs.push_back(new Rectangle(65,65+5,30,30+5)); + + assert(rs.size() == V); + + output_svg(rs, case_a, "mas_case_a.svg", false, true, subgraph); + for (unsigned i = 0; i < rs.size(); i++) { delete rs[i]; } + rs.clear(); + + delete subgraph; + } + else { + cout << "No subgraph found" << endl; + } + + // create case B + // case B is the same graph of case A but with more elements + cout << endl << "ENTERING CASE B" << endl; + V = 7; + case_b.push_back(Edge(0, 1)); + case_b.push_back(Edge(1, 2)); + case_b.push_back(Edge(2, 3)); + case_b.push_back(Edge(3, 4)); + case_b.push_back(Edge(4, 1)); + case_b.push_back(Edge(5, 2)); + case_b.push_back(Edge(6, 5)); + + // detect the subgraph + mas->mod_graph(V, &case_b); + subgraph = mas->find_subgraph(); + + if (subgraph != nullptr) { + cout << "subgraph->size(): " << subgraph->size() << endl; + cout << "Ea: "; + for (unsigned i = 0; i < subgraph->size(); i++) { + // print out the subgraph + cout << "(" << (*subgraph)[i].first << ", " << (*subgraph)[i].second << ") "; + } + + cout << endl; + + // output a picture + rs.push_back(new Rectangle(10,10+5,10,10+5)); + rs.push_back(new Rectangle(30,30+5,30,30+5)); + rs.push_back(new Rectangle(30,30+5,60,60+5)); + rs.push_back(new Rectangle(65,65+5,60,60+5)); + rs.push_back(new Rectangle(65,65+5,30,30+5)); + rs.push_back(new Rectangle(30,30+5,90,90+5)); + rs.push_back(new Rectangle(65,65+5,90,90+5)); + + assert(rs.size() == V); + + output_svg(rs, case_b, "mas_case_b.svg", false, true, subgraph); + for (unsigned i = 0; i < rs.size(); i++) { delete rs[i]; } + rs.clear(); + + delete subgraph; + } + else { + cout << "No subgraph found" << endl; + } + + // create case C + // case C is a more complicated graph with nested subgraph + cout << endl << "ENTERING CASE C" << endl; + V = 14; + case_c.push_back(Edge(0, 1)); + case_c.push_back(Edge(0, 5)); + case_c.push_back(Edge(0, 6)); + case_c.push_back(Edge(2, 0)); + case_c.push_back(Edge(3, 5)); + case_c.push_back(Edge(4, 3)); + case_c.push_back(Edge(5, 4)); + case_c.push_back(Edge(5, 13)); + case_c.push_back(Edge(6, 2)); + case_c.push_back(Edge(6, 9)); + case_c.push_back(Edge(7, 6)); + case_c.push_back(Edge(8, 7)); + case_c.push_back(Edge(9, 10)); + case_c.push_back(Edge(9, 11)); + case_c.push_back(Edge(9, 12)); + case_c.push_back(Edge(10, 6)); + case_c.push_back(Edge(12, 10)); + case_c.push_back(Edge(13, 4)); + + // detect the subgraph + mas->mod_graph(V, &case_c); + subgraph = mas->find_subgraph(); + + if (subgraph != nullptr) { + cout << "subgraph->size(): " << subgraph->size() << endl; + cout << "Ea: "; + for (unsigned i = 0; i < subgraph->size(); i++) { + // print out the subgraph + cout << "(" << (*subgraph)[i].first << ", " << (*subgraph)[i].second << ") "; + } + + cout << endl; + + // output a picture + rs.push_back(new Rectangle(10,10+5,10,10+5)); // node 0 + rs.push_back(new Rectangle(20,20+5,40,40+5)); // node 1 + rs.push_back(new Rectangle(40,40+5,30,30+5)); // node 2 + rs.push_back(new Rectangle(30,30+5,60,60+5)); // node 3 + rs.push_back(new Rectangle(60,60+5,60,60+5)); // node 4 + rs.push_back(new Rectangle(10,10+5,90,90+5)); // node 5 + rs.push_back(new Rectangle(80,80+5,15,15+5)); // node 6 + rs.push_back(new Rectangle(110,110+5,15,15+5)); // node 7 + rs.push_back(new Rectangle(140,140+5,15,15+5)); // node 8 + rs.push_back(new Rectangle(110,110+5,60,60+5)); // node 9 + rs.push_back(new Rectangle(100,100+5,85,85+5)); // node 10 + rs.push_back(new Rectangle(140,140+5,50,50+5)); // node 11 + rs.push_back(new Rectangle(140,140+5,70,70+5)); // node 12 + rs.push_back(new Rectangle(45,45+5,90,90+5)); // node 13 + + assert(rs.size() == V); + + output_svg(rs, case_c, "mas_case_c.svg", false, true, subgraph); + for(int i = 0; i < V; i++) { delete rs[i]; } + rs.clear(); + delete subgraph; + } + else { + cout << "No subgraph found" << endl; + } + + // create case D + // case D consists of the same graph as case A but with a different starting location + cout << endl << "ENTERING CASE D" << endl; + V = 5; + case_d.push_back(Edge(0, 1)); + case_d.push_back(Edge(1, 2)); + case_d.push_back(Edge(2, 3)); + case_d.push_back(Edge(3, 0)); + case_d.push_back(Edge(4, 1)); + + // detect the subgraph + mas->mod_graph(V, &case_d); + subgraph = mas->find_subgraph(); + + if (subgraph != nullptr) { + cout << "subgraph->size(): " << subgraph->size() << endl; + cout << "Ea: "; + for (unsigned i = 0; i < subgraph->size(); i++) { + // print out the subgraph + cout << "(" << (*subgraph)[i].first << ", " << (*subgraph)[i].second << ") "; + } + + cout << endl; + + // output a picture + rs.push_back(new Rectangle(65,65+5,60,60+5)); + rs.push_back(new Rectangle(65,65+5,30,30+5)); + rs.push_back(new Rectangle(30,30+5,30,30+5)); + rs.push_back(new Rectangle(30,30+5,60,60+5)); + rs.push_back(new Rectangle(10,10+5,10,10+5)); + + assert(rs.size() == V); + + output_svg(rs, case_d, "mas_case_d.svg", false, true, subgraph); + for (unsigned i = 0; i < rs.size(); i++) { delete rs[i]; } + rs.clear(); + delete subgraph; + } + else { + cout << "No subgraph found" << endl; + } + + // create case E + // case E is a reordering of case C + cout << endl << "ENTERING CASE E" << endl; + V = 14; + case_e.push_back(Edge(0, 6)); + case_e.push_back(Edge(0, 9)); + case_e.push_back(Edge(1, 4)); + case_e.push_back(Edge(3, 10)); + case_e.push_back(Edge(4, 3)); + case_e.push_back(Edge(5, 0)); + case_e.push_back(Edge(6, 7)); + case_e.push_back(Edge(7, 0)); + case_e.push_back(Edge(7, 2)); + case_e.push_back(Edge(7, 10)); + case_e.push_back(Edge(8, 5)); + case_e.push_back(Edge(9, 12)); + case_e.push_back(Edge(9, 11)); + case_e.push_back(Edge(9, 13)); + case_e.push_back(Edge(10, 1)); + case_e.push_back(Edge(10, 4)); + case_e.push_back(Edge(12, 0)); + case_e.push_back(Edge(11, 12)); + + // detect the subgraph + mas->mod_graph(V, &case_e); + subgraph = mas->find_subgraph(); + if (subgraph != nullptr) { + cout << "subgraph->size(): " << subgraph->size() << endl; + cout << "Ea: "; + for (unsigned i = 0; i < subgraph->size(); i++) { + // print out the subgraph + cout << "(" << (*subgraph)[i].first << ", " << (*subgraph)[i].second << ") "; + } + + cout << endl; + + // output a picture + rs.push_back(new Rectangle(80,80+5,15,15+5)); // node 6 + rs.push_back(new Rectangle(45,45+5,90,90+5)); // node 13 + rs.push_back(new Rectangle(20,20+5,40,40+5)); // node 1 + rs.push_back(new Rectangle(30,30+5,60,60+5)); // node 3 + rs.push_back(new Rectangle(60,60+5,60,60+5)); // node 4 + rs.push_back(new Rectangle(110,110+5,15,15+5)); // node 7 + rs.push_back(new Rectangle(40,40+5,30,30+5)); // node 2 + rs.push_back(new Rectangle(10,10+5,10,10+5)); // node 0 + rs.push_back(new Rectangle(140,140+5,15,15+5)); // node 8 + rs.push_back(new Rectangle(110,110+5,60,60+5)); // node 9 + rs.push_back(new Rectangle(10,10+5,90,90+5)); // node 5 + rs.push_back(new Rectangle(140,140+5,70,70+5)); // node 12 + rs.push_back(new Rectangle(100,100+5,85,85+5)); // node 10 + rs.push_back(new Rectangle(140,140+5,50,50+5)); // node 11 + + assert(rs.size() == V); + + output_svg(rs, case_e, "mas_case_e.svg", false, true, subgraph); + for(int i = 0; i < V; i++) { delete rs[i]; } + rs.clear(); + delete subgraph; + } + else { + cout << "No subgraph found" << endl; + } + + // create case F + // case F consists of the same graph with sinks + cout << endl << "ENTERING CASE F" << endl; + V = 3; + case_f.push_back(Edge(0, 1)); + case_f.push_back(Edge(0, 2)); + case_f.push_back(Edge(1, 2)); + + // detect the subgraph + mas->mod_graph(V, &case_f); + subgraph = mas->find_subgraph(); + + if (subgraph != nullptr) { + cout << "subgraph->size(): " << subgraph->size() << endl; + cout << "Ea: "; + for (unsigned i = 0; i < subgraph->size(); i++) { + // print out the subgraph + cout << "(" << (*subgraph)[i].first << ", " << (*subgraph)[i].second << ") "; + } + + cout << endl; + + // output a picture + rs.push_back(new Rectangle(10,10+5,10,10+5)); + rs.push_back(new Rectangle(40,40+5,30,30+5)); + rs.push_back(new Rectangle(15,15+5,60,60+5)); + + assert(rs.size() == V); + + output_svg(rs, case_f, "mas_case_f.svg", false, true, subgraph); + for (unsigned i = 0; i < rs.size(); i++) { delete rs[i]; } + rs.clear(); + delete subgraph; + } + else { + cout << "No subgraph found" << endl; + } + + // END TEST + delete mas; + + return 0; +} diff --git a/src/3rdparty/adaptagrams/libcola/tests/overlappingClusters01.cpp b/src/3rdparty/adaptagrams/libcola/tests/overlappingClusters01.cpp new file mode 100644 index 0000000..6031c71 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/overlappingClusters01.cpp @@ -0,0 +1,333 @@ +// Based on debug file from Christoph Daniel Schulze +// cgraph_3_after_layout.svg +#include <vector> +#include <utility> +#include "libcola/cola.h" +using namespace cola; +int main(void) { + CompoundConstraints ccs; + std::vector<Edge> es; + EdgeLengths eLengths; + double defaultEdgeLength=50; + std::vector<vpsc::Rectangle*> rs; + vpsc::Rectangle *rect = nullptr; + + rect = new vpsc::Rectangle(245.517, 247.517, 279.574, 281.574); + rs.push_back(rect); + + rect = new vpsc::Rectangle(222.742, 224.742, 318.708, 320.708); + rs.push_back(rect); + + rect = new vpsc::Rectangle(460.345, 462.345, 716.936, 718.936); + rs.push_back(rect); + + rect = new vpsc::Rectangle(607.846, 609.846, 665.496, 667.496); + rs.push_back(rect); + + rect = new vpsc::Rectangle(640.191, 642.191, 637.391, 639.391); + rs.push_back(rect); + + rect = new vpsc::Rectangle(743.519, 745.519, 865.48, 867.48); + rs.push_back(rect); + + rect = new vpsc::Rectangle(807.112, 809.112, 759.798, 761.798); + rs.push_back(rect); + + rect = new vpsc::Rectangle(807.112, 809.112, 699.132, 701.132); + rs.push_back(rect); + + rect = new vpsc::Rectangle(121.997, 123.997, 221.049, 223.049); + rs.push_back(rect); + + rect = new vpsc::Rectangle(224.354, 226.354, 80, 82); + rs.push_back(rect); + + rect = new vpsc::Rectangle(448.583, 450.583, 517.722, 519.722); + rs.push_back(rect); + + rect = new vpsc::Rectangle(460.345, 462.345, 639.516, 641.516); + rs.push_back(rect); + + rect = new vpsc::Rectangle(607.846, 609.846, 583.991, 585.991); + rs.push_back(rect); + + rect = new vpsc::Rectangle(607.846, 609.846, 684.476, 686.476); + rs.push_back(rect); + + rect = new vpsc::Rectangle(625.623, 627.623, 602.774, 604.774); + rs.push_back(rect); + + rect = new vpsc::Rectangle(289.325, 291.325, 455.243, 457.243); + rs.push_back(rect); + + rect = new vpsc::Rectangle(207.785, 209.785, 222.762, 224.762); + rs.push_back(rect); + + rect = new vpsc::Rectangle(159.658, 161.658, 254.197, 256.197); + rs.push_back(rect); + + rect = new vpsc::Rectangle(650.816, 652.816, 809.48, 811.48); + rs.push_back(rect); + + rect = new vpsc::Rectangle(685.012, 687.012, 795.932, 797.932); + rs.push_back(rect); + + rect = new vpsc::Rectangle(751.112, 753.112, 643.132, 645.132); + rs.push_back(rect); + + rect = new vpsc::Rectangle(751.112, 753.112, 608.903, 610.903); + rs.push_back(rect); + + rect = new vpsc::Rectangle(320.184, 322.184, 377.132, 379.132); + rs.push_back(rect); + + rect = new vpsc::Rectangle(336.233, 338.233, 382.124, 384.124); + rs.push_back(rect); + + rect = new vpsc::Rectangle(153.571, 155.571, 391.657, 393.657); + rs.push_back(rect); + + rect = new vpsc::Rectangle(405.396, 407.396, 745.874, 747.874); + rs.push_back(rect); + + rect = new vpsc::Rectangle(460.345, 462.345, 727.442, 729.442); + rs.push_back(rect); + + rect = new vpsc::Rectangle(551.846, 553.846, 527.991, 529.991); + rs.push_back(rect); + + rect = new vpsc::Rectangle(669.714, 671.714, 583.991, 585.991); + rs.push_back(rect); + + rect = new vpsc::Rectangle(171.168, 221.168, 258.197, 308.197); + rs.push_back(rect); + + rect = new vpsc::Rectangle(110.328, 160.328, 266.708, 316.708); + rs.push_back(rect); + + rect = new vpsc::Rectangle(217.18, 267.18, 109.481, 159.481); + rs.push_back(rect); + + rect = new vpsc::Rectangle(632.075, 682.075, 858.531, 908.531); + rs.push_back(rect); + + rect = new vpsc::Rectangle(689.012, 739.012, 813.48, 863.48); + rs.push_back(rect); + + rect = new vpsc::Rectangle(755.112, 805.112, 647.132, 697.132); + rs.push_back(rect); + + rect = new vpsc::Rectangle(786.403, 836.403, 560.258, 610.258); + rs.push_back(rect); + + rect = new vpsc::Rectangle(261.651, 311.651, 247.06, 297.06); + rs.push_back(rect); + + rect = new vpsc::Rectangle(304.164, 354.164, 322.708, 372.708); + rs.push_back(rect); + + rect = new vpsc::Rectangle(70, 120, 325.132, 375.132); + rs.push_back(rect); + + rect = new vpsc::Rectangle(353.92, 403.92, 770.169, 820.169); + rs.push_back(rect); + + rect = new vpsc::Rectangle(464.345, 514.345, 749.874, 799.874); + rs.push_back(rect); + + rect = new vpsc::Rectangle(555.846, 605.846, 531.991, 581.991); + rs.push_back(rect); + + rect = new vpsc::Rectangle(696.038, 746.038, 531.991, 581.991); + rs.push_back(rect); + + es.push_back(std::make_pair(0, 1)); + es.push_back(std::make_pair(0, 22)); + es.push_back(std::make_pair(1, 23)); + es.push_back(std::make_pair(1, 24)); + es.push_back(std::make_pair(2, 3)); + es.push_back(std::make_pair(2, 25)); + es.push_back(std::make_pair(3, 4)); + es.push_back(std::make_pair(3, 26)); + es.push_back(std::make_pair(3, 27)); + es.push_back(std::make_pair(4, 28)); + es.push_back(std::make_pair(5, 6)); + es.push_back(std::make_pair(5, 18)); + es.push_back(std::make_pair(6, 7)); + es.push_back(std::make_pair(6, 19)); + es.push_back(std::make_pair(6, 20)); + es.push_back(std::make_pair(7, 21)); + es.push_back(std::make_pair(8, 17)); + es.push_back(std::make_pair(9, 31)); + es.push_back(std::make_pair(10, 11)); + es.push_back(std::make_pair(10, 12)); + es.push_back(std::make_pair(10, 13)); + es.push_back(std::make_pair(10, 14)); + es.push_back(std::make_pair(10, 15)); + es.push_back(std::make_pair(10, 22)); + es.push_back(std::make_pair(10, 23)); + es.push_back(std::make_pair(11, 12)); + es.push_back(std::make_pair(11, 25)); + es.push_back(std::make_pair(11, 26)); + es.push_back(std::make_pair(12, 27)); + es.push_back(std::make_pair(12, 28)); + es.push_back(std::make_pair(13, 14)); + es.push_back(std::make_pair(13, 18)); + es.push_back(std::make_pair(13, 19)); + es.push_back(std::make_pair(14, 20)); + es.push_back(std::make_pair(14, 21)); + es.push_back(std::make_pair(15, 24)); + es.push_back(std::make_pair(16, 17)); + es.push_back(std::make_pair(16, 36)); + es.push_back(std::make_pair(17, 29)); + es.push_back(std::make_pair(17, 30)); + es.push_back(std::make_pair(18, 32)); + es.push_back(std::make_pair(19, 33)); + es.push_back(std::make_pair(20, 34)); + es.push_back(std::make_pair(21, 35)); + es.push_back(std::make_pair(22, 36)); + es.push_back(std::make_pair(23, 37)); + es.push_back(std::make_pair(24, 38)); + es.push_back(std::make_pair(25, 39)); + es.push_back(std::make_pair(26, 40)); + es.push_back(std::make_pair(27, 41)); + es.push_back(std::make_pair(28, 42)); + es.push_back(std::make_pair(31, 36)); + es.push_back(std::make_pair(32, 33)); + es.push_back(std::make_pair(34, 35)); + es.push_back(std::make_pair(36, 37)); + es.push_back(std::make_pair(39, 40)); + es.push_back(std::make_pair(41, 42)); + + double padding = 6; + ConstrainedFDLayout alg(rs, es, defaultEdgeLength, eLengths); + alg.setAvoidNodeOverlaps(true); + RootCluster *cluster140389150311456 = new RootCluster(); + cluster140389150311456->addChildNode(0); + cluster140389150311456->addChildNode(1); + cluster140389150311456->addChildNode(2); + cluster140389150311456->addChildNode(3); + cluster140389150311456->addChildNode(4); + cluster140389150311456->addChildNode(5); + cluster140389150311456->addChildNode(6); + cluster140389150311456->addChildNode(7); + cluster140389150311456->addChildNode(8); + cluster140389150311456->addChildNode(9); + cluster140389150311456->addChildNode(10); + cluster140389150311456->addChildNode(11); + cluster140389150311456->addChildNode(12); + cluster140389150311456->addChildNode(13); + cluster140389150311456->addChildNode(14); + cluster140389150311456->addChildNode(15); + cluster140389150311456->addChildNode(16); + cluster140389150311456->addChildNode(17); + cluster140389150311456->addChildNode(18); + cluster140389150311456->addChildNode(19); + cluster140389150311456->addChildNode(20); + cluster140389150311456->addChildNode(21); + cluster140389150311456->addChildNode(22); + cluster140389150311456->addChildNode(23); + cluster140389150311456->addChildNode(24); + cluster140389150311456->addChildNode(25); + cluster140389150311456->addChildNode(26); + cluster140389150311456->addChildNode(27); + cluster140389150311456->addChildNode(28); + RectangularCluster *cluster140389152494880 = new RectangularCluster(); + cluster140389152494880->setPadding(padding); + cluster140389152494880->addChildNode(36); + cluster140389150311456->addChildCluster(cluster140389152494880); + RectangularCluster *cluster140389150048048 = new RectangularCluster(); + cluster140389150048048->setPadding(padding); + cluster140389150048048->addChildNode(38); + cluster140389150048048->addChildNode(37); + cluster140389150311456->addChildCluster(cluster140389150048048); + RectangularCluster *cluster140389150180400 = new RectangularCluster(); + cluster140389150180400->setPadding(padding); + cluster140389150180400->addChildNode(30); + cluster140389150180400->addChildNode(29); + cluster140389150311456->addChildCluster(cluster140389150180400); + RectangularCluster *cluster140389150298288 = new RectangularCluster(); + cluster140389150298288->setPadding(padding); + cluster140389150298288->addChildNode(39); + cluster140389150311456->addChildCluster(cluster140389150298288); + RectangularCluster *cluster140389150179600 = new RectangularCluster(); + cluster140389150179600->setPadding(padding); + cluster140389150179600->addChildNode(41); + cluster140389150179600->addChildNode(40); + cluster140389150311456->addChildCluster(cluster140389150179600); + RectangularCluster *cluster140389150131760 = new RectangularCluster(); + cluster140389150131760->setPadding(padding); + cluster140389150131760->addChildNode(42); + cluster140389150311456->addChildCluster(cluster140389150131760); + RectangularCluster *cluster140389150091712 = new RectangularCluster(); + cluster140389150091712->setPadding(padding); + cluster140389150091712->addChildNode(32); + cluster140389150311456->addChildCluster(cluster140389150091712); + RectangularCluster *cluster140389152581264 = new RectangularCluster(); + cluster140389152581264->setPadding(padding); + cluster140389152581264->addChildNode(34); + cluster140389152581264->addChildNode(33); + cluster140389150311456->addChildCluster(cluster140389152581264); + RectangularCluster *cluster140389144224352 = new RectangularCluster(); + cluster140389144224352->setPadding(padding); + cluster140389144224352->addChildNode(35); + cluster140389150311456->addChildCluster(cluster140389144224352); + RectangularCluster *cluster140389144198304 = new RectangularCluster(); + cluster140389144198304->setPadding(padding); + cluster140389144198304->addChildNode(30); + cluster140389144198304->addChildNode(29); + cluster140389150311456->addChildCluster(cluster140389144198304); + RectangularCluster *cluster140389144177184 = new RectangularCluster(); + cluster140389144177184->setPadding(padding); + cluster140389144177184->addChildNode(31); + cluster140389150311456->addChildCluster(cluster140389144177184); + RectangularCluster *cluster140389144168944 = new RectangularCluster(); + cluster140389144168944->setPadding(padding); + cluster140389144168944->addChildNode(36); + cluster140389144168944->addChildNode(37); + cluster140389150311456->addChildCluster(cluster140389144168944); + RectangularCluster *cluster140389144228288 = new RectangularCluster(); + cluster140389144228288->setPadding(padding); + cluster140389144228288->addChildNode(39); + cluster140389144228288->addChildNode(40); + cluster140389150311456->addChildCluster(cluster140389144228288); + RectangularCluster *cluster140389144244064 = new RectangularCluster(); + cluster140389144228288->setPadding(padding); + cluster140389144244064->addChildNode(42); + cluster140389144244064->addChildNode(41); + cluster140389150311456->addChildCluster(cluster140389144244064); + RectangularCluster *cluster140389144206000 = new RectangularCluster(); + cluster140389144206000->setPadding(padding); + cluster140389144206000->addChildNode(32); + cluster140389144206000->addChildNode(33); + cluster140389150311456->addChildCluster(cluster140389144206000); + RectangularCluster *cluster140389144175920 = new RectangularCluster(); + cluster140389144175920->setPadding(padding); + cluster140389144175920->addChildNode(35); + cluster140389144175920->addChildNode(34); + cluster140389150311456->addChildCluster(cluster140389144175920); + RectangularCluster *cluster140389144214752 = new RectangularCluster(); + cluster140389144214752->setPadding(padding); + cluster140389144214752->addChildNode(38); + cluster140389150311456->addChildCluster(cluster140389144214752); + alg.setClusterHierarchy(cluster140389150311456); + alg.setConstraints(ccs); + + UnsatisfiableConstraintInfos unsatisfiableX, unsatisfiableY; + alg.setUnsatisfiableConstraintInfo(&unsatisfiableX, &unsatisfiableY); + + //alg.makeFeasible(); + alg.run(); + //alg.outputInstanceToSVG("overlappingClusters01"); + + for (size_t i = 0; i < unsatisfiableX.size(); ++i) + { + printf("%s\n", unsatisfiableX[i]->toString().c_str()); + } + for (size_t i = 0; i < unsatisfiableY.size(); ++i) + { + printf("%s\n", unsatisfiableY[i]->toString().c_str()); + } + alg.freeAssociatedObjects(); + return (unsatisfiableX.empty() && unsatisfiableY.empty()) ? 0 : 1; +}; diff --git a/src/3rdparty/adaptagrams/libcola/tests/overlappingClusters02.cpp b/src/3rdparty/adaptagrams/libcola/tests/overlappingClusters02.cpp new file mode 100644 index 0000000..a6bdaf2 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/overlappingClusters02.cpp @@ -0,0 +1,100 @@ +// Based on Euler Diagram generation example discussed with Aidan Delaney. +// +// B +// +-----------------------------+ +// A | 2 C | +// +-----------+----------------+ +---+ | +// | | 1 | | 0 | | +// | | | +---+ | +// | 3 +----------------+------------+ +// | | +// | | 4 +// +----------------------------+ +// + +#include <vector> +#include <utility> +#include <cstdlib> +#include "libcola/cola.h" +using namespace cola; +int main(void) { + CompoundConstraints ccs; + std::vector<Edge> es; + EdgeLengths eLengths; + double defaultEdgeLength=10; + std::vector<vpsc::Rectangle*> rs; + vpsc::Rectangle *rect = nullptr; + + double width = 5; + double height = 5; + double pos = 0; + + size_t nodes = 5; + for (size_t i = 0; i < nodes; ++i) + { + rect = new vpsc::Rectangle(pos, pos +width, pos, pos +height); + rs.push_back(rect); + + // XXX randomness is needed because COLA doesn't currently untangle + // the graph properly if all the nodes begin at the same position. + pos += (rand() % 10) - 5; + } + + // Euler dual graph (optional) + es.push_back(std::make_pair(2, 4)); + es.push_back(std::make_pair(3, 4)); + es.push_back(std::make_pair(1, 3)); + es.push_back(std::make_pair(2, 1)); + es.push_back(std::make_pair(2, 0)); + + // Padding around the inside of clusters. + double padding = 3; + + ConstrainedFDLayout alg(rs, es, defaultEdgeLength, eLengths); + alg.setAvoidNodeOverlaps(true); + RootCluster *rootCluster = new RootCluster(); + + // A contains 1, 3 + RectangularCluster *clusterA = new RectangularCluster(); + clusterA->setPadding(padding); + clusterA->addChildNode(1); + clusterA->addChildNode(3); + + // C contains 0 + RectangularCluster *clusterC = new RectangularCluster(); + clusterC->setPadding(padding); + clusterC->addChildNode(0); + + // B contains 1, 2, C + RectangularCluster *clusterB = new RectangularCluster(); + clusterB->setPadding(padding); + clusterB->addChildNode(1); + clusterB->addChildNode(2); + clusterB->addChildCluster(clusterC); + + // node 4 is in the empty set. + + rootCluster->addChildCluster(clusterA); + rootCluster->addChildCluster(clusterB); + + alg.setConstraints(ccs); + + UnsatisfiableConstraintInfos unsatisfiableX, unsatisfiableY; + alg.setUnsatisfiableConstraintInfo(&unsatisfiableX, &unsatisfiableY); + + alg.setClusterHierarchy(rootCluster); + //alg.makeFeasible(); + alg.run(); + alg.outputInstanceToSVG("overlappingClusters02"); + + for (size_t i = 0; i < unsatisfiableX.size(); ++i) + { + printf("%s\n", unsatisfiableX[i]->toString().c_str()); + } + for (size_t i = 0; i < unsatisfiableY.size(); ++i) + { + printf("%s\n", unsatisfiableY[i]->toString().c_str()); + } + alg.freeAssociatedObjects(); + return (unsatisfiableX.empty() && unsatisfiableY.empty()) ? 0 : 1; +}; diff --git a/src/3rdparty/adaptagrams/libcola/tests/overlappingClusters04.cpp b/src/3rdparty/adaptagrams/libcola/tests/overlappingClusters04.cpp new file mode 100644 index 0000000..45a06ff --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/overlappingClusters04.cpp @@ -0,0 +1,61 @@ +// From Aidan Delaney: a_b_ab_abc.json.svg +// Regression test for SEGFAULT caused by specifing an invalid node index 7 +// in cluster description. +#include <vector> +#include <utility> +#include "libcola/cola.h" +using namespace cola; +int main(void) { + CompoundConstraints ccs; + std::vector<Edge> es; + EdgeLengths eLengths; + double defaultEdgeLength=10; + std::vector<vpsc::Rectangle*> rs; + vpsc::Rectangle *rect = nullptr; + + rect = new vpsc::Rectangle(0, 5, 0, 5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(-2, 3, -2, 3); + rs.push_back(rect); + + rect = new vpsc::Rectangle(-1, 4, -1, 4); + rs.push_back(rect); + + rect = new vpsc::Rectangle(1, 6, 1, 6); + rs.push_back(rect); + + rect = new vpsc::Rectangle(1, 6, 1, 6); + rs.push_back(rect); + + + ConstrainedFDLayout alg(rs, es, defaultEdgeLength, eLengths); + alg.setAvoidNodeOverlaps(true); + + RootCluster *cluster33771480 = new RootCluster(); + RectangularCluster *cluster33771952 = new RectangularCluster(); + cluster33771952->setPadding(Box(2)); + cluster33771952->addChildNode(1); + cluster33771952->addChildNode(3); + cluster33771952->addChildNode(7); + cluster33771480->addChildCluster(cluster33771952); + + RectangularCluster *cluster33772496 = new RectangularCluster(); + cluster33772496->setPadding(Box(2)); + cluster33772496->addChildNode(2); + cluster33772496->addChildNode(3); + cluster33772496->addChildNode(7); + cluster33771480->addChildCluster(cluster33772496); + + RectangularCluster *cluster33773040 = new RectangularCluster(); + cluster33773040->setPadding(Box(2)); + cluster33773040->addChildNode(7); + cluster33771480->addChildCluster(cluster33773040); + + alg.setClusterHierarchy(cluster33771480); + + alg.setConstraints(ccs); + alg.makeFeasible(); + //alg.outputInstanceToSVG("overlappingCLusters04"); + alg.freeAssociatedObjects(); +}; diff --git a/src/3rdparty/adaptagrams/libcola/tests/page_bounds.cpp b/src/3rdparty/adaptagrams/libcola/tests/page_bounds.cpp new file mode 100644 index 0000000..b753cbf --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/page_bounds.cpp @@ -0,0 +1,102 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + +/** + * \file page_bounds.cpp + * + * test/example showing the use of page boundary constraints + */ +#include<iostream> +#include<vector> +#include <cmath> +#include <time.h> +#include <valarray> + +#include "graphlayouttest.h" + +vector<Edge> random_graph(unsigned n) { + vector<Edge> edges; + for(unsigned i=1;i<n;i++) { + edges.push_back(make_pair(i-1,i)); + } + for(unsigned i=0;i<n;i++) { + for(unsigned j=i+1;j<n;j++) { + double r=(double)rand()/(double)RAND_MAX; + if(r < 1./(double)n) { + edges.push_back(make_pair(i,j)); + } + } + } + + return edges; +} +int main() { + unsigned V=30; + CompoundConstraints ccs; + vector<Edge> es = random_graph(V); + double defaultEdgeLength=40; + cola::PageBoundaryConstraints* pbc = + new cola::PageBoundaryConstraints(0,200,0,200,100); + + double w=2.0, h=2.0; + for(unsigned i=0;i<V;i++) { + pbc->addShape(i, w/2, h/2); + } + ccs.push_back(pbc); + + cout << "V="<<V<<endl; + double width=1000; + double height=1000; + //srand(time(nullptr)); + vector<pair<double,double> > startpos(V); + for(unsigned i=0;i<V;i++) { + double x=getRand(width), y=getRand(height); + startpos[i]=make_pair(x,y); + } + + /*void run_test( + vector<pair<double,double> > const &startpos, + vector<Edge> const &es, + const double defaultEdgeLength, + CompoundConstraints &cx, + CompoundConstraints &cy, + const SolverType s, + const bool constrained, + const char *fname, + const char *testdesc) { + */ + +/* + run_test(startpos,es,defaultEdgeLength,cx,cy,CG,false,"random","cg"); + run_test(startpos,es,defaultEdgeLength,cx,cy,IP,false,"random", "ip"); + run_test(startpos,es,defaultEdgeLength,cx,cy,UGP,false,"random", "ugp"); + run_test(startpos,es,defaultEdgeLength,cx,cy,SGP,false,"random", "sgp"); + run_test(startpos,es,defaultEdgeLength,cx,cy,IP,true,"random", "cip"); + run_test(startpos,es,defaultEdgeLength,cx,cy,SGP,true,"random", "csgp"); + */ + run_test(startpos,es,defaultEdgeLength,ccs,UGP,true,"random", "cugp"); + return 0; +} +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4:textwidth=99 : diff --git a/src/3rdparty/adaptagrams/libcola/tests/planar.cpp b/src/3rdparty/adaptagrams/libcola/tests/planar.cpp new file mode 100644 index 0000000..f5eae9c --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/planar.cpp @@ -0,0 +1,287 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + +/** \file topology.cpp + * + * tests topology preserving layout. graph is a triangle. + * We have a fourth disconnected node starting inside the triangle. + * We give the disconnected node a desired position outside the triangle + * and begin layout. Layout should converge to near zero stress as all + * edges should be able to reach their desired lengths, and disconnected + * node should still be inside the triangle at the end. + */ +/* +* Authors: +* Tim Dwyer <tgdwyer@gmail.com> +*/ +#include <iostream> +#include <iomanip> +#include <fstream> + +#include <vector> +#include <valarray> +#include <algorithm> +#include <float.h> +#include <libcola/cola.h> +#include <libtopology/topology_graph.h> +#include "graphlayouttest.h" +using namespace std; +using namespace cola; + +struct TestCase { + topology::Nodes vs; + topology::Edges tes; + topology::EdgePoints ps; + vector<vpsc::Rectangle*> rs; + vector<Edge> es; + void addNode(double minX, double minY, double w, double h) { + vpsc::Rectangle* r = new Rectangle(minX, minX+w, minY, minY+h); + rs.push_back(r); + topology::Node *v = new topology::Node(vs.size(), r); + vs.push_back(v); + } + void addToPath(unsigned vID, topology::EdgePoint::RectIntersect i) { + ps.push_back(new topology::EdgePoint(vs[vID],i)); + } + void addEdge(double l) { + tes.push_back(new topology::Edge(l, ps)); + es.push_back(make_pair(ps[0]->node->id,ps[ps.size()-1]->node->id)); + ps.clear(); + } + ~TestCase() { + for_each(rs.begin(),rs.end(),delete_object()); + for_each(tes.begin(),tes.end(),delete_object()); + for_each(vs.begin(),vs.end(),delete_object()); + } +}; +void writeFile(const topology::Nodes& vs, const topology::Edges& es, const char *outputFileName) { + const unsigned n=vs.size(); + vector<cola::Edge> cedges; + + for(unsigned i=0;i<es.size();i++) { + cedges.push_back(make_pair(1,2)); + } + + vector<straightener::Route*> routes; + for(topology::Edges::const_iterator e=es.begin();e!=es.end();++e) { + routes.push_back((*e)->getRoute()); + } + + vector<string> labels(n); + for(unsigned i=0;i<n;++i) { + stringstream ss; + ss << i; + labels[i]=ss.str(); + } + + vector<vpsc::Rectangle*> rs; + for(topology::Nodes::const_iterator i=vs.begin();i!=vs.end();++i) { + rs.push_back((*i)->rect); + } + OutputFile of(rs,cedges,nullptr,outputFileName,true,false); + of.setLabels(labels); + of.routes=&routes; + of.generate(); + + for_each(routes.begin(),routes.end(),delete_object()); +} +struct Test : TestConvergence { + Test(const double d,const unsigned i,topology::Nodes& vs, topology::Edges& es) : TestConvergence(d,i), vs(vs), es(es) {} + bool operator()(const double new_stress, valarray<double> & X, valarray<double> & Y) { + cout << "stress="<<new_stress<<" iteration="<<iterations<<endl; + stringstream ss; + ss << "planar-" << setfill('0') << setw(3) << ++iterations << ".svg"; + writeFile(vs,es,ss.str().c_str()); + if(iterations<100) { + return false; + } + return true; + return TestConvergence::operator()(new_stress,X,Y); + } + double lastStress; + topology::Nodes& vs; + topology::Edges& es; +}; +void test() { + TestCase t; +t.addNode(144.000000,511.000000,8.000000,8.000000); +t.addNode(413.000000,155.000000,8.000000,8.000000); +t.addNode(437.000000,169.000000,8.000000,8.000000); +t.addNode(436.000000,122.000000,8.000000,8.000000); +t.addNode(460.000000,150.000000,8.000000,8.000000); +t.addNode(466.000000,178.000000,8.000000,8.000000); +t.addNode(469.000000,198.000000,8.000000,8.000000); +t.addNode(378.000000,332.000000,8.000000,8.000000); +t.addNode(368.000000,315.000000,8.000000,8.000000); +t.addNode(332.000000,341.000000,8.000000,8.000000); +t.addNode(282.000000,374.000000,8.000000,8.000000); +t.addNode(329.000000,364.000000,8.000000,8.000000); +t.addNode(346.000000,390.000000,8.000000,8.000000); +t.addNode(375.000000,402.000000,8.000000,8.000000); +t.addNode(357.000000,438.000000,8.000000,8.000000); +t.addNode(382.000000,422.000000,8.000000,8.000000); +t.addNode(453.000000,280.000000,8.000000,8.000000); +t.addNode(452.000000,258.000000,8.000000,8.000000); +t.addNode(530.000000,449.000000,8.000000,8.000000); +t.addNode(576.000000,431.000000,8.000000,8.000000); +t.addNode(577.000000,408.000000,8.000000,8.000000); +t.addNode(606.000000,438.000000,8.000000,8.000000); +t.addNode(624.000000,467.000000,8.000000,8.000000); +t.addNode(620.000000,492.000000,8.000000,8.000000); +t.addNode(681.000000,492.000000,8.000000,8.000000); +t.addNode(729.000000,528.000000,8.000000,8.000000); +t.addNode(765.000000,515.000000,8.000000,8.000000); +t.addNode(765.000000,492.000000,8.000000,8.000000); +t.addNode(858.000000,538.000000,8.000000,8.000000); +t.addNode(2.000000,544.000000,8.000000,8.000000); +t.addToPath(28,(topology::EdgePoint::RectIntersect)4); +t.addToPath(27,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(28,(topology::EdgePoint::RectIntersect)4); +t.addToPath(26,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(25,(topology::EdgePoint::RectIntersect)4); +t.addToPath(28,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(25,(topology::EdgePoint::RectIntersect)4); +t.addToPath(29,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(17,(topology::EdgePoint::RectIntersect)4); +t.addToPath(24,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(16,(topology::EdgePoint::RectIntersect)4); +//t.addToPath(20,(topology::EdgePoint::RectIntersect)1); +t.addToPath(24,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(16,(topology::EdgePoint::RectIntersect)4); +t.addToPath(7,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(24,(topology::EdgePoint::RectIntersect)4); +t.addToPath(25,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(22,(topology::EdgePoint::RectIntersect)4); +t.addToPath(24,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(22,(topology::EdgePoint::RectIntersect)4); +t.addToPath(0,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(22,(topology::EdgePoint::RectIntersect)4); +t.addToPath(23,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(22,(topology::EdgePoint::RectIntersect)4); +t.addToPath(18,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(21,(topology::EdgePoint::RectIntersect)4); +t.addToPath(20,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(20,(topology::EdgePoint::RectIntersect)4); +t.addToPath(19,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(18,(topology::EdgePoint::RectIntersect)4); +t.addToPath(20,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(18,(topology::EdgePoint::RectIntersect)4); +t.addToPath(16,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(14,(topology::EdgePoint::RectIntersect)4); +t.addToPath(18,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(13,(topology::EdgePoint::RectIntersect)4); +t.addToPath(14,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(15,(topology::EdgePoint::RectIntersect)4); +t.addToPath(14,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(12,(topology::EdgePoint::RectIntersect)4); +t.addToPath(13,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(12,(topology::EdgePoint::RectIntersect)4); +t.addToPath(10,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(11,(topology::EdgePoint::RectIntersect)4); +t.addToPath(12,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(10,(topology::EdgePoint::RectIntersect)4); +t.addToPath(11,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(9,(topology::EdgePoint::RectIntersect)4); +t.addToPath(13,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(9,(topology::EdgePoint::RectIntersect)4); +t.addToPath(10,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(6,(topology::EdgePoint::RectIntersect)4); +//t.addToPath(8,(topology::EdgePoint::RectIntersect)2); +t.addToPath(9,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(6,(topology::EdgePoint::RectIntersect)4); +t.addToPath(7,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(8,(topology::EdgePoint::RectIntersect)4); +t.addToPath(7,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(6,(topology::EdgePoint::RectIntersect)4); +t.addToPath(25,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(5,(topology::EdgePoint::RectIntersect)4); +t.addToPath(10,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(5,(topology::EdgePoint::RectIntersect)4); +t.addToPath(29,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(29,(topology::EdgePoint::RectIntersect)4); +t.addToPath(1,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(3,(topology::EdgePoint::RectIntersect)4); +t.addToPath(2,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(5,(topology::EdgePoint::RectIntersect)4); +t.addToPath(6,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(4,(topology::EdgePoint::RectIntersect)4); +t.addToPath(5,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(3,(topology::EdgePoint::RectIntersect)4); +t.addToPath(4,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); +t.addToPath(29,(topology::EdgePoint::RectIntersect)4); +//t.addToPath(1,(topology::EdgePoint::RectIntersect)2); +t.addToPath(3,(topology::EdgePoint::RectIntersect)4); +t.addEdge(70.000000); + writeFile(t.vs,t.tes,"planar-000.svg"); + Test test(0.00001,100,t.vs,t.tes); + ConstrainedFDLayout alg(t.rs,t.es,70.0,nullptr,test,nullptr); + alg.setTopology(&t.vs,&t.tes); + alg.run(true,true); + double finalStress=alg.computeStress(); + printf("finalStress=%f\n",finalStress); + + //assert(finalStress<1e-5); +} +int main() { + test(); + return 0; +} +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4:textwidth=80 : diff --git a/src/3rdparty/adaptagrams/libcola/tests/random_graph.cpp b/src/3rdparty/adaptagrams/libcola/tests/random_graph.cpp new file mode 100644 index 0000000..68e2ee1 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/random_graph.cpp @@ -0,0 +1,113 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + +#include<iostream> +#include<vector> +#include <cmath> +#include <time.h> +#include <valarray> + +#include "graphlayouttest.h" + +vector<Edge> random_graph(unsigned n) { + vector<Edge> edges; + for(unsigned i=1;i<n;i++) { + edges.push_back(make_pair(i-1,i)); + } + for(unsigned i=0;i<n;i++) { + for(unsigned j=i+1;j<n;j++) { + double r=(double)rand()/(double)RAND_MAX; + if(r < 1./(double)n) { + edges.push_back(make_pair(i,j)); + } + } + } + + return edges; +} +int main() { + unsigned V=100; + CompoundConstraints ccs; + vector<Edge> es = random_graph(V); + double defaultEdgeLength=40; + for(unsigned i=0;i<es.size();i++) { + unsigned start=es[i].first, end=es[i].second; + ccs.push_back( + new SeparationConstraint(vpsc::YDIM, start,end,-10)); + } + + cout << "V="<<V<<endl; + double width=1000; + double height=1000; + //srand(time(nullptr)); + vector<pair<double,double> > startpos(V); + for(unsigned i=0;i<V;i++) { + double x=getRand(width), y=getRand(height); + startpos[i]=make_pair(x,y); + } + + /*void run_test( + vector<pair<double,double> > const &startpos, + vector<Edge> const &es, + const double defaultEdgeLength, + CompoundConstraints &cx, + CompoundConstraints &cy, + const SolverType s, + const bool constrained, + const char *fname, + const char *testdesc) { + */ + +/* + run_test(startpos,es,defaultEdgeLength,cx,cy,CG,false,"random","cg"); + run_test(startpos,es,defaultEdgeLength,cx,cy,IP,false,"random", "ip"); + run_test(startpos,es,defaultEdgeLength,cx,cy,UGP,false,"random", "ugp"); + run_test(startpos,es,defaultEdgeLength,cx,cy,SGP,false,"random", "sgp"); + run_test(startpos,es,defaultEdgeLength,cx,cy,IP,true,"random", "cip"); + run_test(startpos,es,defaultEdgeLength,cx,cy,UGP,true,"random", "cugp"); + run_test(startpos,es,defaultEdgeLength,cx,cy,SGP,true,"random", "csgp"); + */ + vector<vpsc::Rectangle*> rs; + for(unsigned i=0;i<V;i++) { + double x=getRand(width), y=getRand(height); + rs.push_back(new vpsc::Rectangle(x,x+5,y,y+5)); + } + CheckProgress test(0.0001,200); + ConstrainedMajorizationLayout alg(rs,es,nullptr,defaultEdgeLength, + StandardEdgeLengths,&test); + //alg.setYConstraints(&cy); + alg.run(); + ConstrainedFDLayout alg2(rs,es,defaultEdgeLength, + StandardEdgeLengths, &test); + //alg2.setYConstraints(&cy); + alg2.run(); + OutputFile output(rs,es,nullptr,"random.pdf"); + output.generate(); + for(unsigned i=0;i<V;i++) { + delete rs[i]; + } + return 0; +} +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4:textwidth=99 : diff --git a/src/3rdparty/adaptagrams/libcola/tests/rectangularClusters01.cpp b/src/3rdparty/adaptagrams/libcola/tests/rectangularClusters01.cpp new file mode 100644 index 0000000..4269b3b --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/rectangularClusters01.cpp @@ -0,0 +1,1135 @@ +#include <vector>
+#include <utility>
+#include "libcola/cola.h"
+using namespace cola;
+int main(void) {
+ CompoundConstraints ccs;
+ std::vector<Edge> es;
+ EdgeLengths eLengths;
+ double defaultEdgeLength=1;
+ std::vector<vpsc::Rectangle*> rs;
+ vpsc::Rectangle *rect = nullptr;
+
+ rect = new vpsc::Rectangle(56.4457, 117.446, 954.77, 1043.77);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(119.446, 127.446, 992.02, 1000.02);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(119.446, 127.446, 1004.27, 1012.27);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(119.446, 127.446, 1016.52, 1024.52);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(46.4457, 54.4457, 1004.27, 1012.27);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(2165.45, 2239.45, 976.562, 1065.56);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(2155.45, 2163.45, 1026.06, 1034.06);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(-106.554, 6.44565, 955.683, 1044.68);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(8.44565, 16.4457, 1005.18, 1013.18);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(331.446, 412.446, 1015.55, 1104.55);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(414.446, 422.446, 1065.05, 1073.05);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(356.112, 364.112, 1106.55, 1114.55);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(339.779, 347.779, 1106.55, 1114.55);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(321.446, 329.446, 1073.22, 1081.22);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(321.446, 329.446, 1056.88, 1064.88);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(477.446, 559.446, 948.569, 1037.57);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(561.446, 569.446, 998.069, 1006.07);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(503.946, 511.946, 1039.57, 1047.57);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(467.446, 475.446, 998.069, 1006.07);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(56.4457, 127.446, 863.77, 952.77);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(129.446, 137.446, 913.27, 921.27);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(46.4457, 54.4457, 913.27, 921.27);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(177.446, 281.446, 922.444, 1011.44);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(283.446, 291.446, 971.944, 979.944);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(167.446, 175.446, 986.644, 994.644);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(167.446, 175.446, 976.844, 984.844);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(167.446, 175.446, 967.044, 975.044);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(167.446, 175.446, 957.244, 965.244);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(331.446, 427.446, 924.551, 1013.55);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(429.446, 437.446, 974.051, 982.051);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(321.446, 329.446, 974.051, 982.051);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(609.446, 730.446, 936.692, 1025.69);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(732.446, 740.446, 971.492, 979.492);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(732.446, 740.446, 981.292, 989.292);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(732.446, 740.446, 991.092, 999.092);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(732.446, 740.446, 1000.89, 1008.89);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(599.446, 607.446, 986.192, 994.192);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(780.446, 846.446, 838.172, 932.172);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(848.446, 856.446, 890.172, 898.172);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(770.446, 778.446, 890.172, 898.172);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(780.446, 846.446, 934.172, 1028.17);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(848.446, 856.446, 986.172, 994.172);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(770.446, 778.446, 986.172, 994.172);
+ rs.push_back(rect);
+
+ // rect-43
+ rect = new vpsc::Rectangle(941.446, 1155.45, 922.958, 1025.96);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1147.45, 1155.45, 979.458, 987.458);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(941.446, 949.446, 998.358, 1006.36);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(941.446, 949.446, 985.757, 993.757);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(941.446, 949.446, 973.158, 981.158);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(941.446, 949.446, 960.558, 968.558);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(780.446, 846.446, 1030.17, 1124.17);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(848.446, 856.446, 1082.17, 1090.17);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(770.446, 778.446, 1082.17, 1090.17);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1195.45, 1263.45, 938.653, 1017.65);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1265.45, 1273.45, 983.153, 991.153);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1185.45, 1193.45, 989.653, 997.653);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1185.45, 1193.45, 976.653, 984.653);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1313.45, 1374.45, 934.988, 1013.99);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1376.45, 1384.45, 979.488, 987.488);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1303.45, 1311.45, 979.488, 987.488);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1586.45, 1660.45, 855.704, 944.704);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1576.45, 1584.45, 905.204, 913.204);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1424.45, 1536.45, 866.456, 945.456);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1538.45, 1546.45, 910.956, 918.956);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1414.45, 1422.45, 910.956, 918.956);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1445.45, 1515.45, 947.456, 1036.46);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1517.45, 1525.45, 996.956, 1004.96);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1471.95, 1479.95, 1038.46, 1046.46);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1435.45, 1443.45, 996.956, 1004.96);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1699.45, 1748.45, 970.163, 1059.16);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1750.45, 1758.45, 1019.66, 1027.66);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1689.45, 1697.45, 1027.83, 1035.83);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1689.45, 1697.45, 1011.5, 1019.5);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1811.45, 1898.45, 1010.04, 1099.04);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1900.45, 1908.45, 1059.54, 1067.54);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1801.45, 1809.45, 1067.7, 1075.7);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1801.45, 1809.45, 1051.37, 1059.37);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1699.45, 1761.45, 1061.16, 1134.16);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1763.45, 1771.45, 1102.66, 1110.66);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1689.45, 1697.45, 1102.66, 1110.66);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(2053.45, 2115.45, 985.999, 1080);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(2117.45, 2125.45, 1038, 1046);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(2080.11, 2088.11, 1082, 1090);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(2062.78, 2070.78, 1082, 1090);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(2043.45, 2051.45, 1038, 1046);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1948.45, 2003.45, 996.147, 1090.15);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(2005.45, 2013.45, 1048.15, 1056.15);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1975.11, 1983.11, 1092.15, 1100.15);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1957.78, 1965.78, 1092.15, 1100.15);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1938.45, 1946.45, 1048.15, 1056.15);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1565.45, 1649.45, 951.936, 1040.94);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1651.45, 1659.45, 1001.44, 1009.44);
+ rs.push_back(rect);
+
+ rect = new vpsc::Rectangle(1555.45, 1563.45, 1001.44, 1009.44);
+ rs.push_back(rect);
+
+ es.push_back(std::make_pair(0, 1));
+ es.push_back(std::make_pair(0, 2));
+ es.push_back(std::make_pair(0, 3));
+ es.push_back(std::make_pair(0, 4));
+ es.push_back(std::make_pair(1, 26));
+ es.push_back(std::make_pair(2, 25));
+ es.push_back(std::make_pair(3, 6));
+ es.push_back(std::make_pair(3, 24));
+ es.push_back(std::make_pair(4, 8));
+ es.push_back(std::make_pair(5, 6));
+ es.push_back(std::make_pair(6, 80));
+ es.push_back(std::make_pair(7, 8));
+ es.push_back(std::make_pair(9, 10));
+ es.push_back(std::make_pair(9, 11));
+ es.push_back(std::make_pair(9, 12));
+ es.push_back(std::make_pair(9, 13));
+ es.push_back(std::make_pair(9, 14));
+ es.push_back(std::make_pair(10, 17));
+ es.push_back(std::make_pair(15, 16));
+ es.push_back(std::make_pair(15, 17));
+ es.push_back(std::make_pair(15, 18));
+ es.push_back(std::make_pair(16, 36));
+ es.push_back(std::make_pair(16, 67));
+ es.push_back(std::make_pair(18, 29));
+ es.push_back(std::make_pair(19, 20));
+ es.push_back(std::make_pair(19, 21));
+ es.push_back(std::make_pair(20, 27));
+ es.push_back(std::make_pair(22, 23));
+ es.push_back(std::make_pair(22, 24));
+ es.push_back(std::make_pair(22, 25));
+ es.push_back(std::make_pair(22, 26));
+ es.push_back(std::make_pair(22, 27));
+ es.push_back(std::make_pair(23, 30));
+ es.push_back(std::make_pair(28, 29));
+ es.push_back(std::make_pair(28, 30));
+ es.push_back(std::make_pair(31, 32));
+ es.push_back(std::make_pair(31, 33));
+ es.push_back(std::make_pair(31, 34));
+ es.push_back(std::make_pair(31, 35));
+ es.push_back(std::make_pair(31, 36));
+ es.push_back(std::make_pair(32, 39));
+ es.push_back(std::make_pair(32, 48));
+ es.push_back(std::make_pair(34, 42));
+ es.push_back(std::make_pair(35, 51));
+ es.push_back(std::make_pair(35, 54));
+ es.push_back(std::make_pair(37, 38));
+ es.push_back(std::make_pair(37, 39));
+ es.push_back(std::make_pair(38, 47));
+ es.push_back(std::make_pair(40, 41));
+ es.push_back(std::make_pair(40, 42));
+ es.push_back(std::make_pair(41, 46));
+ es.push_back(std::make_pair(43, 44));
+ es.push_back(std::make_pair(43, 45));
+ es.push_back(std::make_pair(43, 46));
+ es.push_back(std::make_pair(43, 47));
+ es.push_back(std::make_pair(43, 48));
+ es.push_back(std::make_pair(44, 55));
+ es.push_back(std::make_pair(45, 50));
+ es.push_back(std::make_pair(49, 50));
+ es.push_back(std::make_pair(49, 51));
+ es.push_back(std::make_pair(52, 53));
+ es.push_back(std::make_pair(52, 54));
+ es.push_back(std::make_pair(52, 55));
+ es.push_back(std::make_pair(53, 58));
+ es.push_back(std::make_pair(56, 57));
+ es.push_back(std::make_pair(56, 58));
+ es.push_back(std::make_pair(57, 63));
+ es.push_back(std::make_pair(57, 66));
+ es.push_back(std::make_pair(59, 60));
+ es.push_back(std::make_pair(60, 62));
+ es.push_back(std::make_pair(61, 62));
+ es.push_back(std::make_pair(61, 63));
+ es.push_back(std::make_pair(64, 65));
+ es.push_back(std::make_pair(64, 66));
+ es.push_back(std::make_pair(64, 67));
+ es.push_back(std::make_pair(65, 91));
+ es.push_back(std::make_pair(68, 69));
+ es.push_back(std::make_pair(68, 70));
+ es.push_back(std::make_pair(68, 71));
+ es.push_back(std::make_pair(69, 75));
+ es.push_back(std::make_pair(70, 85));
+ es.push_back(std::make_pair(71, 90));
+ es.push_back(std::make_pair(72, 73));
+ es.push_back(std::make_pair(72, 74));
+ es.push_back(std::make_pair(72, 75));
+ es.push_back(std::make_pair(73, 88));
+ es.push_back(std::make_pair(75, 77));
+ es.push_back(std::make_pair(76, 77));
+ es.push_back(std::make_pair(76, 78));
+ es.push_back(std::make_pair(79, 80));
+ es.push_back(std::make_pair(79, 81));
+ es.push_back(std::make_pair(79, 82));
+ es.push_back(std::make_pair(79, 83));
+ es.push_back(std::make_pair(83, 85));
+ es.push_back(std::make_pair(84, 85));
+ es.push_back(std::make_pair(84, 86));
+ es.push_back(std::make_pair(84, 87));
+ es.push_back(std::make_pair(84, 88));
+ es.push_back(std::make_pair(89, 90));
+ es.push_back(std::make_pair(89, 91));
+
+ eLengths.resize(100);
+ eLengths[0] = 59.6059;
+ eLengths[1] = 59.6059;
+ eLengths[2] = 59.6059;
+ eLengths[3] = 59.6059;
+ eLengths[4] = 63.5296;
+ eLengths[5] = 77.5769;
+ eLengths[6] = 65.8274;
+ eLengths[7] = 65.8274;
+ eLengths[8] = 65.8274;
+ eLengths[9] = 65.8274;
+ eLengths[10] = 65.8274;
+ eLengths[11] = 66.1651;
+ eLengths[12] = 66.1651;
+ eLengths[13] = 66.1651;
+ eLengths[14] = 62.5822;
+ eLengths[15] = 62.5822;
+ eLengths[16] = 74.0984;
+ eLengths[17] = 74.0984;
+ eLengths[18] = 74.0984;
+ eLengths[19] = 74.0984;
+ eLengths[20] = 74.0984;
+ eLengths[21] = 71.111;
+ eLengths[22] = 71.111;
+ eLengths[23] = 80.7601;
+ eLengths[24] = 80.7601;
+ eLengths[25] = 80.7601;
+ eLengths[26] = 80.7601;
+ eLengths[27] = 80.7601;
+ eLengths[28] = 63.0851;
+ eLengths[29] = 63.0851;
+ eLengths[30] = 63.0851;
+ eLengths[31] = 63.0851;
+ eLengths[32] = 115.481;
+ eLengths[33] = 115.481;
+ eLengths[34] = 115.481;
+ eLengths[35] = 115.481;
+ eLengths[36] = 115.481;
+ eLengths[37] = 63.0851;
+ eLengths[38] = 63.0851;
+ eLengths[39] = 57.7745;
+ eLengths[40] = 57.7745;
+ eLengths[41] = 57.7745;
+ eLengths[42] = 55.5618;
+ eLengths[43] = 55.5618;
+ eLengths[44] = 63.5296;
+ eLengths[45] = 74.186;
+ eLengths[46] = 74.186;
+ eLengths[47] = 62.2718;
+ eLengths[48] = 62.2718;
+ eLengths[49] = 62.2718;
+ eLengths[50] = 56.4555;
+ eLengths[51] = 56.4555;
+ eLengths[52] = 56.4555;
+ eLengths[53] = 67.8863;
+ eLengths[54] = 67.8863;
+ eLengths[55] = 67.8863;
+ eLengths[56] = 53.5447;
+ eLengths[57] = 53.5447;
+ eLengths[58] = 61.9596;
+ eLengths[59] = 61.9596;
+ eLengths[60] = 61.9596;
+ eLengths[61] = 61.9596;
+ eLengths[62] = 60.111;
+ eLengths[63] = 60.111;
+ eLengths[64] = 60.111;
+ eLengths[65] = 60.111;
+ eLengths[66] = 66.8471;
+ eLengths[67] = 66.8471;
+ eLengths[68] = 18.3712;
+ eLengths[69] = 18.3712;
+ eLengths[70] = 18.3712;
+ eLengths[71] = 18.3712;
+ eLengths[72] = 10.6066;
+ eLengths[73] = 10.6066;
+ eLengths[74] = 15;
+ eLengths[75] = 15;
+ eLengths[76] = 15;
+ eLengths[77] = 10.6066;
+ eLengths[78] = 10.6066;
+ eLengths[79] = 23.7171;
+ eLengths[80] = 30;
+ eLengths[81] = 23.7171;
+ eLengths[82] = 23.7171;
+ eLengths[83] = 25.9808;
+ eLengths[84] = 21.2132;
+ eLengths[85] = 21.2132;
+ eLengths[86] = 15;
+ eLengths[87] = 21.2132;
+ eLengths[88] = 10.6066;
+ eLengths[89] = 15;
+ eLengths[90] = 15;
+ eLengths[91] = 10.6066;
+ eLengths[92] = 10.6066;
+ eLengths[93] = 15;
+ eLengths[94] = 10.6066;
+ eLengths[95] = 15;
+ eLengths[96] = 15;
+ eLengths[97] = 15;
+ eLengths[98] = 18.3712;
+ eLengths[99] = 15;
+
+ SeparationConstraint *separation479625808 = new SeparationConstraint(vpsc::XDIM, 0, 1, 36.5, true);
+ ccs.push_back(separation479625808);
+
+ SeparationConstraint *separation479626000 = new SeparationConstraint(vpsc::YDIM, 0, 1, -3.25, true);
+ ccs.push_back(separation479626000);
+
+ SeparationConstraint *separation479625936 = new SeparationConstraint(vpsc::XDIM, 0, 2, 36.5, true);
+ ccs.push_back(separation479625936);
+
+ SeparationConstraint *separation479626128 = new SeparationConstraint(vpsc::YDIM, 0, 2, 9, true);
+ ccs.push_back(separation479626128);
+
+ SeparationConstraint *separation479626064 = new SeparationConstraint(vpsc::XDIM, 0, 3, 36.5, true);
+ ccs.push_back(separation479626064);
+
+ SeparationConstraint *separation479626256 = new SeparationConstraint(vpsc::YDIM, 0, 3, 21.25, true);
+ ccs.push_back(separation479626256);
+
+ SeparationConstraint *separation479626192 = new SeparationConstraint(vpsc::XDIM, 0, 4, -36.5, true);
+ ccs.push_back(separation479626192);
+
+ SeparationConstraint *separation479626384 = new SeparationConstraint(vpsc::YDIM, 0, 4, 9, true);
+ ccs.push_back(separation479626384);
+
+ SeparationConstraint *separation479626320 = new SeparationConstraint(vpsc::XDIM, 5, 6, -43, true);
+ ccs.push_back(separation479626320);
+
+ SeparationConstraint *separation479626512 = new SeparationConstraint(vpsc::YDIM, 5, 6, 9, true);
+ ccs.push_back(separation479626512);
+
+ SeparationConstraint *separation479626448 = new SeparationConstraint(vpsc::XDIM, 7, 8, 62.5, true);
+ ccs.push_back(separation479626448);
+
+ SeparationConstraint *separation479626640 = new SeparationConstraint(vpsc::YDIM, 7, 8, 9, true);
+ ccs.push_back(separation479626640);
+
+ SeparationConstraint *separation479626576 = new SeparationConstraint(vpsc::XDIM, 9, 10, 46.5, true);
+ ccs.push_back(separation479626576);
+
+ SeparationConstraint *separation479626768 = new SeparationConstraint(vpsc::YDIM, 9, 10, 9, true);
+ ccs.push_back(separation479626768);
+
+ SeparationConstraint *separation479626704 = new SeparationConstraint(vpsc::XDIM, 9, 11, -11.8333, true);
+ ccs.push_back(separation479626704);
+
+ SeparationConstraint *separation479626896 = new SeparationConstraint(vpsc::YDIM, 9, 11, 50.5, true);
+ ccs.push_back(separation479626896);
+
+ SeparationConstraint *separation479626832 = new SeparationConstraint(vpsc::XDIM, 9, 12, -28.1667, true);
+ ccs.push_back(separation479626832);
+
+ SeparationConstraint *separation479627024 = new SeparationConstraint(vpsc::YDIM, 9, 12, 50.5, true);
+ ccs.push_back(separation479627024);
+
+ SeparationConstraint *separation479626960 = new SeparationConstraint(vpsc::XDIM, 9, 13, -46.5, true);
+ ccs.push_back(separation479626960);
+
+ SeparationConstraint *separation479627152 = new SeparationConstraint(vpsc::YDIM, 9, 13, 17.1667, true);
+ ccs.push_back(separation479627152);
+
+ SeparationConstraint *separation479627088 = new SeparationConstraint(vpsc::XDIM, 9, 14, -46.5, true);
+ ccs.push_back(separation479627088);
+
+ SeparationConstraint *separation479627280 = new SeparationConstraint(vpsc::YDIM, 9, 14, 0.833333, true);
+ ccs.push_back(separation479627280);
+
+ SeparationConstraint *separation479627216 = new SeparationConstraint(vpsc::XDIM, 15, 16, 47, true);
+ ccs.push_back(separation479627216);
+
+ SeparationConstraint *separation479627408 = new SeparationConstraint(vpsc::YDIM, 15, 16, 9, true);
+ ccs.push_back(separation479627408);
+
+ SeparationConstraint *separation479627344 = new SeparationConstraint(vpsc::XDIM, 15, 17, -10.5, true);
+ ccs.push_back(separation479627344);
+
+ SeparationConstraint *separation479627536 = new SeparationConstraint(vpsc::YDIM, 15, 17, 50.5, true);
+ ccs.push_back(separation479627536);
+
+ SeparationConstraint *separation479627472 = new SeparationConstraint(vpsc::XDIM, 15, 18, -47, true);
+ ccs.push_back(separation479627472);
+
+ SeparationConstraint *separation479627664 = new SeparationConstraint(vpsc::YDIM, 15, 18, 9, true);
+ ccs.push_back(separation479627664);
+
+ SeparationConstraint *separation479627600 = new SeparationConstraint(vpsc::XDIM, 19, 20, 41.5, true);
+ ccs.push_back(separation479627600);
+
+ SeparationConstraint *separation479627792 = new SeparationConstraint(vpsc::YDIM, 19, 20, 9, true);
+ ccs.push_back(separation479627792);
+
+ SeparationConstraint *separation479627728 = new SeparationConstraint(vpsc::XDIM, 19, 21, -41.5, true);
+ ccs.push_back(separation479627728);
+
+ SeparationConstraint *separation479627920 = new SeparationConstraint(vpsc::YDIM, 19, 21, 9, true);
+ ccs.push_back(separation479627920);
+
+ SeparationConstraint *separation479627856 = new SeparationConstraint(vpsc::XDIM, 22, 23, 58, true);
+ ccs.push_back(separation479627856);
+
+ SeparationConstraint *separation479628048 = new SeparationConstraint(vpsc::YDIM, 22, 23, 9, true);
+ ccs.push_back(separation479628048);
+
+ SeparationConstraint *separation479627984 = new SeparationConstraint(vpsc::XDIM, 22, 24, -58, true);
+ ccs.push_back(separation479627984);
+
+ SeparationConstraint *separation479628176 = new SeparationConstraint(vpsc::YDIM, 22, 24, 23.7, true);
+ ccs.push_back(separation479628176);
+
+ SeparationConstraint *separation479628112 = new SeparationConstraint(vpsc::XDIM, 22, 25, -58, true);
+ ccs.push_back(separation479628112);
+
+ SeparationConstraint *separation479628304 = new SeparationConstraint(vpsc::YDIM, 22, 25, 13.9, true);
+ ccs.push_back(separation479628304);
+
+ SeparationConstraint *separation479628240 = new SeparationConstraint(vpsc::XDIM, 22, 26, -58, true);
+ ccs.push_back(separation479628240);
+
+ SeparationConstraint *separation479628432 = new SeparationConstraint(vpsc::YDIM, 22, 26, 4.1, true);
+ ccs.push_back(separation479628432);
+
+ SeparationConstraint *separation479628368 = new SeparationConstraint(vpsc::XDIM, 22, 27, -58, true);
+ ccs.push_back(separation479628368);
+
+ SeparationConstraint *separation479628560 = new SeparationConstraint(vpsc::YDIM, 22, 27, -5.7, true);
+ ccs.push_back(separation479628560);
+
+ SeparationConstraint *separation479628496 = new SeparationConstraint(vpsc::XDIM, 28, 29, 54, true);
+ ccs.push_back(separation479628496);
+
+ SeparationConstraint *separation479628688 = new SeparationConstraint(vpsc::YDIM, 28, 29, 9, true);
+ ccs.push_back(separation479628688);
+
+ SeparationConstraint *separation479628624 = new SeparationConstraint(vpsc::XDIM, 28, 30, -54, true);
+ ccs.push_back(separation479628624);
+
+ SeparationConstraint *separation479628816 = new SeparationConstraint(vpsc::YDIM, 28, 30, 9, true);
+ ccs.push_back(separation479628816);
+
+ SeparationConstraint *separation479628752 = new SeparationConstraint(vpsc::XDIM, 31, 32, 66.5, true);
+ ccs.push_back(separation479628752);
+
+ SeparationConstraint *separation479622736 = new SeparationConstraint(vpsc::YDIM, 31, 32, -5.7, true);
+ ccs.push_back(separation479622736);
+
+ SeparationConstraint *separation479622800 = new SeparationConstraint(vpsc::XDIM, 31, 33, 66.5, true);
+ ccs.push_back(separation479622800);
+
+ SeparationConstraint *separation479622864 = new SeparationConstraint(vpsc::YDIM, 31, 33, 4.1, true);
+ ccs.push_back(separation479622864);
+
+ SeparationConstraint *separation479622928 = new SeparationConstraint(vpsc::XDIM, 31, 34, 66.5, true);
+ ccs.push_back(separation479622928);
+
+ SeparationConstraint *separation479622992 = new SeparationConstraint(vpsc::YDIM, 31, 34, 13.9, true);
+ ccs.push_back(separation479622992);
+
+ SeparationConstraint *separation479623056 = new SeparationConstraint(vpsc::XDIM, 31, 35, 66.5, true);
+ ccs.push_back(separation479623056);
+
+ SeparationConstraint *separation479623120 = new SeparationConstraint(vpsc::YDIM, 31, 35, 23.7, true);
+ ccs.push_back(separation479623120);
+
+ SeparationConstraint *separation479623184 = new SeparationConstraint(vpsc::XDIM, 31, 36, -66.5, true);
+ ccs.push_back(separation479623184);
+
+ SeparationConstraint *separation479623248 = new SeparationConstraint(vpsc::YDIM, 31, 36, 9, true);
+ ccs.push_back(separation479623248);
+
+ SeparationConstraint *separation479623312 = new SeparationConstraint(vpsc::XDIM, 37, 38, 39, true);
+ ccs.push_back(separation479623312);
+
+ SeparationConstraint *separation479623440 = new SeparationConstraint(vpsc::YDIM, 37, 38, 9, true);
+ ccs.push_back(separation479623440);
+
+ SeparationConstraint *separation479623504 = new SeparationConstraint(vpsc::XDIM, 37, 39, -39, true);
+ ccs.push_back(separation479623504);
+
+ SeparationConstraint *separation479623568 = new SeparationConstraint(vpsc::YDIM, 37, 39, 9, true);
+ ccs.push_back(separation479623568);
+
+ SeparationConstraint *separation479623632 = new SeparationConstraint(vpsc::XDIM, 40, 41, 39, true);
+ ccs.push_back(separation479623632);
+
+ SeparationConstraint *separation479623696 = new SeparationConstraint(vpsc::YDIM, 40, 41, 9, true);
+ ccs.push_back(separation479623696);
+
+ SeparationConstraint *separation479623760 = new SeparationConstraint(vpsc::XDIM, 40, 42, -39, true);
+ ccs.push_back(separation479623760);
+
+ SeparationConstraint *separation479623888 = new SeparationConstraint(vpsc::YDIM, 40, 42, 9, true);
+ ccs.push_back(separation479623888);
+
+ SeparationConstraint *separation479623952 = new SeparationConstraint(vpsc::XDIM, 43, 44, 103, true);
+ ccs.push_back(separation479623952);
+
+ SeparationConstraint *separation479624016 = new SeparationConstraint(vpsc::YDIM, 43, 44, 9, true);
+ ccs.push_back(separation479624016);
+
+ SeparationConstraint *separation479624080 = new SeparationConstraint(vpsc::XDIM, 43, 45, -103, true);
+ ccs.push_back(separation479624080);
+
+ SeparationConstraint *separation479624144 = new SeparationConstraint(vpsc::YDIM, 43, 45, 27.9, true);
+ ccs.push_back(separation479624144);
+
+ SeparationConstraint *separation479624208 = new SeparationConstraint(vpsc::XDIM, 43, 46, -103, true);
+ ccs.push_back(separation479624208);
+
+ SeparationConstraint *separation479624272 = new SeparationConstraint(vpsc::YDIM, 43, 46, 15.3, true);
+ ccs.push_back(separation479624272);
+
+ SeparationConstraint *separation479624336 = new SeparationConstraint(vpsc::XDIM, 43, 47, -103, true);
+ ccs.push_back(separation479624336);
+
+ SeparationConstraint *separation479624400 = new SeparationConstraint(vpsc::YDIM, 43, 47, 2.7, true);
+ ccs.push_back(separation479624400);
+
+ SeparationConstraint *separation479624528 = new SeparationConstraint(vpsc::XDIM, 43, 48, -103, true);
+ ccs.push_back(separation479624528);
+
+ SeparationConstraint *separation479624592 = new SeparationConstraint(vpsc::YDIM, 43, 48, -9.9, true);
+ ccs.push_back(separation479624592);
+
+ SeparationConstraint *separation479624656 = new SeparationConstraint(vpsc::XDIM, 49, 50, 39, true);
+ ccs.push_back(separation479624656);
+
+ SeparationConstraint *separation479624720 = new SeparationConstraint(vpsc::YDIM, 49, 50, 9, true);
+ ccs.push_back(separation479624720);
+
+ SeparationConstraint *separation479624784 = new SeparationConstraint(vpsc::XDIM, 49, 51, -39, true);
+ ccs.push_back(separation479624784);
+
+ SeparationConstraint *separation479624848 = new SeparationConstraint(vpsc::YDIM, 49, 51, 9, true);
+ ccs.push_back(separation479624848);
+
+ SeparationConstraint *separation479624912 = new SeparationConstraint(vpsc::XDIM, 52, 53, 40, true);
+ ccs.push_back(separation479624912);
+
+ SeparationConstraint *separation479624976 = new SeparationConstraint(vpsc::YDIM, 52, 53, 9, true);
+ ccs.push_back(separation479624976);
+
+ SeparationConstraint *separation479625040 = new SeparationConstraint(vpsc::XDIM, 52, 54, -40, true);
+ ccs.push_back(separation479625040);
+
+ SeparationConstraint *separation479625104 = new SeparationConstraint(vpsc::YDIM, 52, 54, 15.5, true);
+ ccs.push_back(separation479625104);
+
+ SeparationConstraint *separation479625168 = new SeparationConstraint(vpsc::XDIM, 52, 55, -40, true);
+ ccs.push_back(separation479625168);
+
+ SeparationConstraint *separation479625232 = new SeparationConstraint(vpsc::YDIM, 52, 55, 2.5, true);
+ ccs.push_back(separation479625232);
+
+ SeparationConstraint *separation479625296 = new SeparationConstraint(vpsc::XDIM, 56, 57, 36.5, true);
+ ccs.push_back(separation479625296);
+
+ SeparationConstraint *separation479625360 = new SeparationConstraint(vpsc::YDIM, 56, 57, 9, true);
+ ccs.push_back(separation479625360);
+
+ SeparationConstraint *separation479625424 = new SeparationConstraint(vpsc::XDIM, 56, 58, -36.5, true);
+ ccs.push_back(separation479625424);
+
+ SeparationConstraint *separation479625552 = new SeparationConstraint(vpsc::YDIM, 56, 58, 9, true);
+ ccs.push_back(separation479625552);
+
+ SeparationConstraint *separation479625616 = new SeparationConstraint(vpsc::XDIM, 59, 60, -43, true);
+ ccs.push_back(separation479625616);
+
+ SeparationConstraint *separation479625680 = new SeparationConstraint(vpsc::YDIM, 59, 60, 9, true);
+ ccs.push_back(separation479625680);
+
+ SeparationConstraint *separation479625744 = new SeparationConstraint(vpsc::XDIM, 61, 62, 62, true);
+ ccs.push_back(separation479625744);
+
+ SeparationConstraint *separation479625488 = new SeparationConstraint(vpsc::YDIM, 61, 62, 9, true);
+ ccs.push_back(separation479625488);
+
+ SeparationConstraint *separation479624464 = new SeparationConstraint(vpsc::XDIM, 61, 63, -62, true);
+ ccs.push_back(separation479624464);
+
+ SeparationConstraint *separation479623824 = new SeparationConstraint(vpsc::YDIM, 61, 63, 9, true);
+ ccs.push_back(separation479623824);
+
+ SeparationConstraint *separation479623376 = new SeparationConstraint(vpsc::XDIM, 64, 65, 41, true);
+ ccs.push_back(separation479623376);
+
+ SeparationConstraint *separation479628944 = new SeparationConstraint(vpsc::YDIM, 64, 65, 9, true);
+ ccs.push_back(separation479628944);
+
+ SeparationConstraint *separation479628880 = new SeparationConstraint(vpsc::XDIM, 64, 66, -4.5, true);
+ ccs.push_back(separation479628880);
+
+ SeparationConstraint *separation479629008 = new SeparationConstraint(vpsc::YDIM, 64, 66, 50.5, true);
+ ccs.push_back(separation479629008);
+
+ SeparationConstraint *separation479629072 = new SeparationConstraint(vpsc::XDIM, 64, 67, -41, true);
+ ccs.push_back(separation479629072);
+
+ SeparationConstraint *separation479629136 = new SeparationConstraint(vpsc::YDIM, 64, 67, 9, true);
+ ccs.push_back(separation479629136);
+
+ SeparationConstraint *separation479629200 = new SeparationConstraint(vpsc::XDIM, 68, 69, 30.5, true);
+ ccs.push_back(separation479629200);
+
+ SeparationConstraint *separation479629264 = new SeparationConstraint(vpsc::YDIM, 68, 69, 9, true);
+ ccs.push_back(separation479629264);
+
+ SeparationConstraint *separation479629328 = new SeparationConstraint(vpsc::XDIM, 68, 70, -30.5, true);
+ ccs.push_back(separation479629328);
+
+ SeparationConstraint *separation479629392 = new SeparationConstraint(vpsc::YDIM, 68, 70, 17.1667, true);
+ ccs.push_back(separation479629392);
+
+ SeparationConstraint *separation479629456 = new SeparationConstraint(vpsc::XDIM, 68, 71, -30.5, true);
+ ccs.push_back(separation479629456);
+
+ SeparationConstraint *separation479629520 = new SeparationConstraint(vpsc::YDIM, 68, 71, 0.833333, true);
+ ccs.push_back(separation479629520);
+
+ SeparationConstraint *separation479629584 = new SeparationConstraint(vpsc::XDIM, 72, 73, 49.5, true);
+ ccs.push_back(separation479629584);
+
+ SeparationConstraint *separation479629648 = new SeparationConstraint(vpsc::YDIM, 72, 73, 9, true);
+ ccs.push_back(separation479629648);
+
+ SeparationConstraint *separation479629712 = new SeparationConstraint(vpsc::XDIM, 72, 74, -49.5, true);
+ ccs.push_back(separation479629712);
+
+ SeparationConstraint *separation479629776 = new SeparationConstraint(vpsc::YDIM, 72, 74, 17.1667, true);
+ ccs.push_back(separation479629776);
+
+ SeparationConstraint *separation479629840 = new SeparationConstraint(vpsc::XDIM, 72, 75, -49.5, true);
+ ccs.push_back(separation479629840);
+
+ SeparationConstraint *separation479629904 = new SeparationConstraint(vpsc::YDIM, 72, 75, 0.833333, true);
+ ccs.push_back(separation479629904);
+
+ SeparationConstraint *separation479629968 = new SeparationConstraint(vpsc::XDIM, 76, 77, 37, true);
+ ccs.push_back(separation479629968);
+
+ SeparationConstraint *separation479630032 = new SeparationConstraint(vpsc::YDIM, 76, 77, 9, true);
+ ccs.push_back(separation479630032);
+
+ SeparationConstraint *separation479630096 = new SeparationConstraint(vpsc::XDIM, 76, 78, -37, true);
+ ccs.push_back(separation479630096);
+
+ SeparationConstraint *separation479630160 = new SeparationConstraint(vpsc::YDIM, 76, 78, 9, true);
+ ccs.push_back(separation479630160);
+
+ SeparationConstraint *separation479630224 = new SeparationConstraint(vpsc::XDIM, 79, 80, 37, true);
+ ccs.push_back(separation479630224);
+
+ SeparationConstraint *separation479630288 = new SeparationConstraint(vpsc::YDIM, 79, 80, 9, true);
+ ccs.push_back(separation479630288);
+
+ SeparationConstraint *separation479630352 = new SeparationConstraint(vpsc::XDIM, 79, 81, -0.333334, true);
+ ccs.push_back(separation479630352);
+
+ SeparationConstraint *separation479630416 = new SeparationConstraint(vpsc::YDIM, 79, 81, 53, true);
+ ccs.push_back(separation479630416);
+
+ SeparationConstraint *separation477486176 = new SeparationConstraint(vpsc::XDIM, 79, 82, -17.6667, true);
+ ccs.push_back(separation477486176);
+
+ SeparationConstraint *separation477486240 = new SeparationConstraint(vpsc::YDIM, 79, 82, 53, true);
+ ccs.push_back(separation477486240);
+
+ SeparationConstraint *separation477486304 = new SeparationConstraint(vpsc::XDIM, 79, 83, -37, true);
+ ccs.push_back(separation477486304);
+
+ SeparationConstraint *separation477486368 = new SeparationConstraint(vpsc::YDIM, 79, 83, 9, true);
+ ccs.push_back(separation477486368);
+
+ SeparationConstraint *separation477486432 = new SeparationConstraint(vpsc::XDIM, 84, 85, 33.5, true);
+ ccs.push_back(separation477486432);
+
+ SeparationConstraint *separation477486496 = new SeparationConstraint(vpsc::YDIM, 84, 85, 9, true);
+ ccs.push_back(separation477486496);
+
+ SeparationConstraint *separation477486560 = new SeparationConstraint(vpsc::XDIM, 84, 86, 3.16667, true);
+ ccs.push_back(separation477486560);
+
+ SeparationConstraint *separation477486624 = new SeparationConstraint(vpsc::YDIM, 84, 86, 53, true);
+ ccs.push_back(separation477486624);
+
+ SeparationConstraint *separation477486688 = new SeparationConstraint(vpsc::XDIM, 84, 87, -14.1667, true);
+ ccs.push_back(separation477486688);
+
+ SeparationConstraint *separation477486752 = new SeparationConstraint(vpsc::YDIM, 84, 87, 53, true);
+ ccs.push_back(separation477486752);
+
+ SeparationConstraint *separation477486816 = new SeparationConstraint(vpsc::XDIM, 84, 88, -33.5, true);
+ ccs.push_back(separation477486816);
+
+ SeparationConstraint *separation477486880 = new SeparationConstraint(vpsc::YDIM, 84, 88, 9, true);
+ ccs.push_back(separation477486880);
+
+ SeparationConstraint *separation477486944 = new SeparationConstraint(vpsc::XDIM, 89, 90, 48, true);
+ ccs.push_back(separation477486944);
+
+ SeparationConstraint *separation477487008 = new SeparationConstraint(vpsc::YDIM, 89, 90, 9, true);
+ ccs.push_back(separation477487008);
+
+ SeparationConstraint *separation477487072 = new SeparationConstraint(vpsc::XDIM, 89, 91, -48, true);
+ ccs.push_back(separation477487072);
+
+ SeparationConstraint *separation477487136 = new SeparationConstraint(vpsc::YDIM, 89, 91, 9, true);
+ ccs.push_back(separation477487136);
+
+ SeparationConstraint *separation477487200 = new SeparationConstraint(vpsc::XDIM, 7, 0, 137, false);
+ ccs.push_back(separation477487200);
+
+ SeparationConstraint *separation477487264 = new SeparationConstraint(vpsc::XDIM, 0, 5, 118.5, false);
+ ccs.push_back(separation477487264);
+
+ SeparationConstraint *separation477487328 = new SeparationConstraint(vpsc::XDIM, 79, 5, 118, false);
+ ccs.push_back(separation477487328);
+
+ SeparationConstraint *separation477487392 = new SeparationConstraint(vpsc::XDIM, 9, 15, 146.5, false);
+ ccs.push_back(separation477487392);
+
+ SeparationConstraint *separation477487456 = new SeparationConstraint(vpsc::XDIM, 28, 15, 139, false);
+ ccs.push_back(separation477487456);
+
+ SeparationConstraint *separation477487520 = new SeparationConstraint(vpsc::XDIM, 0, 22, 142.5, false);
+ ccs.push_back(separation477487520);
+
+ SeparationConstraint *separation477487584 = new SeparationConstraint(vpsc::XDIM, 0, 22, 142.5, false);
+ ccs.push_back(separation477487584);
+
+ SeparationConstraint *separation477487648 = new SeparationConstraint(vpsc::XDIM, 0, 22, 142.5, false);
+ ccs.push_back(separation477487648);
+
+ SeparationConstraint *separation477487712 = new SeparationConstraint(vpsc::XDIM, 19, 22, 137.5, false);
+ ccs.push_back(separation477487712);
+
+ SeparationConstraint *separation477487776 = new SeparationConstraint(vpsc::XDIM, 22, 28, 150, false);
+ ccs.push_back(separation477487776);
+
+ SeparationConstraint *separation477487840 = new SeparationConstraint(vpsc::XDIM, 15, 31, 151.5, false);
+ ccs.push_back(separation477487840);
+
+ SeparationConstraint *separation477487904 = new SeparationConstraint(vpsc::XDIM, 31, 37, 143.5, false);
+ ccs.push_back(separation477487904);
+
+ SeparationConstraint *separation477487968 = new SeparationConstraint(vpsc::XDIM, 31, 40, 143.5, false);
+ ccs.push_back(separation477487968);
+
+ SeparationConstraint *separation477488032 = new SeparationConstraint(vpsc::XDIM, 31, 43, 207.5, false);
+ ccs.push_back(separation477488032);
+
+ SeparationConstraint *separation477488096 = new SeparationConstraint(vpsc::XDIM, 37, 43, 235, false);
+ ccs.push_back(separation477488096);
+
+ SeparationConstraint *separation477488160 = new SeparationConstraint(vpsc::XDIM, 40, 43, 235, false);
+ ccs.push_back(separation477488160);
+
+ SeparationConstraint *separation477488224 = new SeparationConstraint(vpsc::XDIM, 49, 43, 235, false);
+ ccs.push_back(separation477488224);
+
+ SeparationConstraint *separation477488288 = new SeparationConstraint(vpsc::XDIM, 31, 49, 143.5, false);
+ ccs.push_back(separation477488288);
+
+ SeparationConstraint *separation477488352 = new SeparationConstraint(vpsc::XDIM, 31, 52, 217.5, false);
+ ccs.push_back(separation477488352);
+
+ SeparationConstraint *separation477488416 = new SeparationConstraint(vpsc::XDIM, 43, 52, 181, false);
+ ccs.push_back(separation477488416);
+
+ SeparationConstraint *separation477488480 = new SeparationConstraint(vpsc::XDIM, 52, 56, 114.5, false);
+ ccs.push_back(separation477488480);
+
+ SeparationConstraint *separation477488544 = new SeparationConstraint(vpsc::XDIM, 61, 59, 143, false);
+ ccs.push_back(separation477488544);
+
+ SeparationConstraint *separation477488608 = new SeparationConstraint(vpsc::XDIM, 56, 61, 136.5, false);
+ ccs.push_back(separation477488608);
+
+ SeparationConstraint *separation477488672 = new SeparationConstraint(vpsc::XDIM, 15, 64, 126, false);
+ ccs.push_back(separation477488672);
+
+ SeparationConstraint *separation477488736 = new SeparationConstraint(vpsc::XDIM, 56, 64, 136.5, false);
+ ccs.push_back(separation477488736);
+
+ SeparationConstraint *separation477488800 = new SeparationConstraint(vpsc::XDIM, 89, 68, 116.5, false);
+ ccs.push_back(separation477488800);
+
+ SeparationConstraint *separation477488864 = new SeparationConstraint(vpsc::XDIM, 68, 72, 131, false);
+ ccs.push_back(separation477488864);
+
+ SeparationConstraint *separation477488928 = new SeparationConstraint(vpsc::XDIM, 76, 72, 124.5, false);
+ ccs.push_back(separation477488928);
+
+ SeparationConstraint *separation477488992 = new SeparationConstraint(vpsc::XDIM, 84, 79, 108.5, false);
+ ccs.push_back(separation477488992);
+
+ SeparationConstraint *separation477489056 = new SeparationConstraint(vpsc::XDIM, 72, 84, 121, false);
+ ccs.push_back(separation477489056);
+
+ SeparationConstraint *separation477489120 = new SeparationConstraint(vpsc::XDIM, 64, 89, 127, false);
+ ccs.push_back(separation477489120);
+
+ cola::Box margin = cola::Box(10, 30, 30, 60); //30
+ cola::Box padding = cola::Box(); // cola::Box(10, 30, 30, 60); //10
+ ConstrainedFDLayout alg(rs, es, defaultEdgeLength, eLengths);
+ RootCluster *cluster476902600 = new RootCluster();
+ cluster476902600->addChildNode(0);
+ cluster476902600->addChildNode(1);
+ cluster476902600->addChildNode(2);
+ cluster476902600->addChildNode(3);
+ cluster476902600->addChildNode(4);
+ cluster476902600->addChildNode(5);
+ cluster476902600->addChildNode(6);
+ cluster476902600->addChildNode(7);
+ cluster476902600->addChildNode(8);
+ cluster476902600->addChildNode(9);
+ cluster476902600->addChildNode(10);
+ cluster476902600->addChildNode(11);
+ cluster476902600->addChildNode(12);
+ cluster476902600->addChildNode(13);
+ cluster476902600->addChildNode(14);
+ cluster476902600->addChildNode(15);
+ cluster476902600->addChildNode(16);
+ cluster476902600->addChildNode(17);
+ cluster476902600->addChildNode(18);
+ cluster476902600->addChildNode(19);
+ cluster476902600->addChildNode(20);
+ cluster476902600->addChildNode(21);
+ cluster476902600->addChildNode(22);
+ cluster476902600->addChildNode(23);
+ cluster476902600->addChildNode(24);
+ cluster476902600->addChildNode(25);
+ cluster476902600->addChildNode(26);
+ cluster476902600->addChildNode(27);
+ cluster476902600->addChildNode(28);
+ cluster476902600->addChildNode(29);
+ cluster476902600->addChildNode(30);
+ RectangularCluster *cluster417213744 = new RectangularCluster();
+ cluster417213744->setMargin(margin);
+ cluster417213744->setPadding(padding);
+ cluster417213744->addChildNode(59);
+ cluster417213744->addChildNode(60);
+ cluster417213744->addChildNode(61);
+ cluster417213744->addChildNode(62);
+ cluster417213744->addChildNode(63);
+ cluster417213744->addChildNode(64);
+ cluster417213744->addChildNode(65);
+ cluster417213744->addChildNode(66);
+ cluster417213744->addChildNode(67);
+ cluster417213744->addChildNode(89);
+ cluster417213744->addChildNode(90);
+ cluster417213744->addChildNode(91);
+ RectangularCluster *cluster417215984 = new RectangularCluster();
+ cluster417215984->setMargin(margin);
+ cluster417215984->setPadding(padding);
+ cluster417215984->addChildNode(31);
+ cluster417215984->addChildNode(32);
+ cluster417215984->addChildNode(33);
+ cluster417215984->addChildNode(34);
+ cluster417215984->addChildNode(35);
+ cluster417215984->addChildNode(36);
+ cluster417215984->addChildNode(37);
+ cluster417215984->addChildNode(38);
+ cluster417215984->addChildNode(39);
+ cluster417215984->addChildNode(40);
+ cluster417215984->addChildNode(41);
+ cluster417215984->addChildNode(42);
+ cluster417215984->addChildNode(43);
+ cluster417215984->addChildNode(44);
+ cluster417215984->addChildNode(45);
+ cluster417215984->addChildNode(46);
+ cluster417215984->addChildNode(47);
+ cluster417215984->addChildNode(48);
+ cluster417215984->addChildNode(49);
+ cluster417215984->addChildNode(50);
+ cluster417215984->addChildNode(51);
+ cluster417215984->addChildNode(52);
+ cluster417215984->addChildNode(53);
+ cluster417215984->addChildNode(54);
+ cluster417215984->addChildNode(55);
+ cluster417215984->addChildNode(56);
+ cluster417215984->addChildNode(57);
+ cluster417215984->addChildNode(58);
+ cluster417213744->addChildCluster(cluster417215984);
+ RectangularCluster *cluster417215760 = new RectangularCluster();
+ cluster417215760->setMargin(margin);
+ cluster417215760->setPadding(padding);
+ cluster417215760->addChildNode(68);
+ cluster417215760->addChildNode(69);
+ cluster417215760->addChildNode(70);
+ cluster417215760->addChildNode(71);
+ cluster417215760->addChildNode(72);
+ cluster417215760->addChildNode(73);
+ cluster417215760->addChildNode(74);
+ cluster417215760->addChildNode(75);
+ cluster417215760->addChildNode(76);
+ cluster417215760->addChildNode(77);
+ cluster417215760->addChildNode(78);
+ cluster417215760->addChildNode(79);
+ cluster417215760->addChildNode(80);
+ cluster417215760->addChildNode(81);
+ cluster417215760->addChildNode(82);
+ cluster417215760->addChildNode(83);
+ cluster417215760->addChildNode(84);
+ cluster417215760->addChildNode(85);
+ cluster417215760->addChildNode(86);
+ cluster417215760->addChildNode(87);
+ cluster417215760->addChildNode(88);
+ cluster417213744->addChildCluster(cluster417215760);
+ cluster476902600->addChildCluster(cluster417213744);
+ alg.setClusterHierarchy(cluster476902600);
+ alg.setConstraints(ccs);
+
+ UnsatisfiableConstraintInfos unsatisfiableX, unsatisfiableY;
+ alg.setUnsatisfiableConstraintInfo(&unsatisfiableX, &unsatisfiableY);
+
+ // rect-43 and associated port rects.
+ cola::NodeIndexes nonOverlapExemptGroup;
+ nonOverlapExemptGroup.push_back(44);
+ nonOverlapExemptGroup.push_back(45);
+ nonOverlapExemptGroup.push_back(46);
+ nonOverlapExemptGroup.push_back(47);
+ nonOverlapExemptGroup.push_back(48);
+ nonOverlapExemptGroup.push_back(43);
+
+ std::vector<cola::NodeIndexes> nonOverlapExemptGroupList;
+ nonOverlapExemptGroupList.push_back(nonOverlapExemptGroup);
+ alg.setAvoidNodeOverlaps(true, nonOverlapExemptGroupList);
+
+ //alg.makeFeasible();
+ alg.run();
+ alg.outputInstanceToSVG("rectangularClusters01");
+
+ for (size_t i = 0; i < unsatisfiableX.size(); ++i)
+ {
+ printf("%s\n", unsatisfiableX[i]->toString().c_str());
+ }
+ for (size_t i = 0; i < unsatisfiableY.size(); ++i)
+ {
+ printf("%s\n", unsatisfiableY[i]->toString().c_str());
+ }
+ alg.freeAssociatedObjects();
+ return (unsatisfiableX.empty() && unsatisfiableY.empty()) ? 0 : 1;
+};
diff --git a/src/3rdparty/adaptagrams/libcola/tests/rectclustershapecontainment.cpp b/src/3rdparty/adaptagrams/libcola/tests/rectclustershapecontainment.cpp new file mode 100644 index 0000000..3c3d704 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/rectclustershapecontainment.cpp @@ -0,0 +1,2173 @@ +#include <vector> +#include "libcola/cola.h" +using namespace cola; +int main(void) { + CompoundConstraints ccs; + std::vector<Edge> es; + double defaultEdgeLength=40; + std::vector<vpsc::Rectangle*> rs; + vpsc::Rectangle *rect = nullptr; + + rect = new vpsc::Rectangle(478, 488, 399, 409); + rs.push_back(rect); + + rect = new vpsc::Rectangle(284, 294, 938, 948); + rs.push_back(rect); + + rect = new vpsc::Rectangle(141, 151, 906, 916); + rs.push_back(rect); + + rect = new vpsc::Rectangle(284, 294, 959, 969); + rs.push_back(rect); + + rect = new vpsc::Rectangle(131, 161, 938, 968); + rs.push_back(rect); + + rect = new vpsc::Rectangle(550, 762, 155.5, 522.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(430, 540, -6, 158); + rs.push_back(rect); + + rect = new vpsc::Rectangle(373, 383, 907, 917); + rs.push_back(rect); + + rect = new vpsc::Rectangle(482, 492, 938, 948); + rs.push_back(rect); + + rect = new vpsc::Rectangle(434, 444, 938, 948); + rs.push_back(rect); + + rect = new vpsc::Rectangle(426, 436, 869, 879); + rs.push_back(rect); + + rect = new vpsc::Rectangle(426, 436, 848, 858); + rs.push_back(rect); + + rect = new vpsc::Rectangle(314, 324, 860, 870); + rs.push_back(rect); + + rect = new vpsc::Rectangle(205, 215, 860, 870); + rs.push_back(rect); + + rect = new vpsc::Rectangle(553, 563, 859, 869); + rs.push_back(rect); + + rect = new vpsc::Rectangle(345, 423, 746, 780); + rs.push_back(rect); + + rect = new vpsc::Rectangle(478, 488, 765, 775); + rs.push_back(rect); + + rect = new vpsc::Rectangle(-34.5, 162.5, 723, 877); + rs.push_back(rect); + + rect = new vpsc::Rectangle(478, 488, 696, 706); + rs.push_back(rect); + + rect = new vpsc::Rectangle(478, 488, 624, 634); + rs.push_back(rect); + + rect = new vpsc::Rectangle(453, 463, 479, 489); + rs.push_back(rect); + + rect = new vpsc::Rectangle(154.5, 457.5, 574, 624); + rs.push_back(rect); + + rect = new vpsc::Rectangle(398, 408, 445, 455); + rs.push_back(rect); + + rect = new vpsc::Rectangle(453, 463, 331, 341); + rs.push_back(rect); + + rect = new vpsc::Rectangle(403, 413, 331, 341); + rs.push_back(rect); + + rect = new vpsc::Rectangle(547, 557, 191, 201); + rs.push_back(rect); + + rect = new vpsc::Rectangle(478, 488, 260, 270); + rs.push_back(rect); + + rect = new vpsc::Rectangle(478, 488, 168, 178); + rs.push_back(rect); + + rect = new vpsc::Rectangle(380, 390, 297, 307); + rs.push_back(rect); + + rect = new vpsc::Rectangle(228, 238, 286, 296); + rs.push_back(rect); + + rect = new vpsc::Rectangle(228, 238, 307, 317); + rs.push_back(rect); + + rect = new vpsc::Rectangle(352, 362, 259, 269); + rs.push_back(rect); + + rect = new vpsc::Rectangle(302, 312, 259, 269); + rs.push_back(rect); + + rect = new vpsc::Rectangle(176, 186, 259, 269); + rs.push_back(rect); + + rect = new vpsc::Rectangle(228, 238, 234, 244); + rs.push_back(rect); + + rect = new vpsc::Rectangle(228, 238, 213, 223); + rs.push_back(rect); + + rect = new vpsc::Rectangle(311, 321, 181, 191); + rs.push_back(rect); + + rect = new vpsc::Rectangle(338, 348, 149, 159); + rs.push_back(rect); + + rect = new vpsc::Rectangle(338, 348, 128, 138); + rs.push_back(rect); + + rect = new vpsc::Rectangle(40.5, 291.5, 45.5, 70.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(257, 267, 903, 913); + rs.push_back(rect); + + rect = new vpsc::Rectangle(478, 488, 551, 561); + rs.push_back(rect); + + rect = new vpsc::Rectangle(276, 286, 213, 223); + rs.push_back(rect); + + rect = new vpsc::Rectangle(276, 286, 286, 296); + rs.push_back(rect); + + rect = new vpsc::Rectangle(176, 186, 355, 365); + rs.push_back(rect); + + rect = new vpsc::Rectangle(176, 186, 381, 391); + rs.push_back(rect); + + rect = new vpsc::Rectangle(286, 296, 354, 364); + rs.push_back(rect); + + rect = new vpsc::Rectangle(286, 296, 380, 390); + rs.push_back(rect); + + rect = new vpsc::Rectangle(586, 616, 180, 210); + rs.push_back(rect); + + rect = new vpsc::Rectangle(468, 498, 128, 158); + rs.push_back(rect); + + rect = new vpsc::Rectangle(468, 498, 649, 679); + rs.push_back(rect); + + rect = new vpsc::Rectangle(166, 196, 213, 243); + rs.push_back(rect); + + rect = new vpsc::Rectangle(166, 196, 286, 316); + rs.push_back(rect); + + rect = new vpsc::Rectangle(317, 347, 433, 463); + rs.push_back(rect); + + rect = new vpsc::Rectangle(317, 347, 286, 316); + rs.push_back(rect); + + rect = new vpsc::Rectangle(468, 498, 215, 245); + rs.push_back(rect); + + rect = new vpsc::Rectangle(468, 498, 288, 318); + rs.push_back(rect); + + rect = new vpsc::Rectangle(468, 498, 721, 751); + rs.push_back(rect); + + rect = new vpsc::Rectangle(468, 498, 577, 607); + rs.push_back(rect); + + rect = new vpsc::Rectangle(468, 498, 505, 535); + rs.push_back(rect); + + rect = new vpsc::Rectangle(612, 642, 848, 878); + rs.push_back(rect); + + rect = new vpsc::Rectangle(299, 329, 891, 921); + rs.push_back(rect); + + rect = new vpsc::Rectangle(535, 565, 938, 968); + rs.push_back(rect); + + rect = new vpsc::Rectangle(468, 498, 848, 878); + rs.push_back(rect); + + rect = new vpsc::Rectangle(363, 393, 848, 878); + rs.push_back(rect); + + rect = new vpsc::Rectangle(131, 161, 848, 878); + rs.push_back(rect); + + rect = new vpsc::Rectangle(363, 393, 938, 968); + rs.push_back(rect); + + rect = new vpsc::Rectangle(250, 280, 848, 878); + rs.push_back(rect); + + rect = new vpsc::Rectangle(197, 227, 891, 921); + rs.push_back(rect); + + rect = new vpsc::Rectangle(468, 498, 358, 388); + rs.push_back(rect); + + rect = new vpsc::Rectangle(117, 147, 344, 374); + rs.push_back(rect); + + rect = new vpsc::Rectangle(224, 254, 344, 374); + rs.push_back(rect); + + rect = new vpsc::Rectangle(224, 254, 370, 400); + rs.push_back(rect); + + rect = new vpsc::Rectangle(117, 147, 370, 400); + rs.push_back(rect); + + rect = new vpsc::Rectangle(363, 393, 805, 835); + rs.push_back(rect); + + rect = new vpsc::Rectangle(181, 227, 711, 741); + rs.push_back(rect); + + rect = new vpsc::Rectangle(131, 161, 721, 751); + rs.push_back(rect); + + rect = new vpsc::Rectangle(434, 444, 959, 969); + rs.push_back(rect); + + rect = new vpsc::Rectangle(199, 209, 742, 752); + rs.push_back(rect); + + rect = new vpsc::Rectangle(482, 492, 959, 969); + rs.push_back(rect); + + rect = new vpsc::Rectangle(565.5, 692.5, 842.5, 997.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(503, 513, 479, 489); + rs.push_back(rect); + + rect = new vpsc::Rectangle(577, 587, 520, 530); + rs.push_back(rect); + + rect = new vpsc::Rectangle(550, 560, 539, 549); + rs.push_back(rect); + + rect = new vpsc::Rectangle(284, 294, 790, 800); + rs.push_back(rect); + + rect = new vpsc::Rectangle(527, 537, 520, 530); + rs.push_back(rect); + + rect = new vpsc::Rectangle(383, 413, 541, 571); + rs.push_back(rect); + + rect = new vpsc::Rectangle(432, 442, 581, 591); + rs.push_back(rect); + + rect = new vpsc::Rectangle(433, 443, 517, 527); + rs.push_back(rect); + + rect = new vpsc::Rectangle(468, 498, 433, 463); + rs.push_back(rect); + + rect = new vpsc::Rectangle(91, 101, 906, 916); + rs.push_back(rect); + + rect = new vpsc::Rectangle(503, 513, 331, 341); + rs.push_back(rect); + + rect = new vpsc::Rectangle(276, 286, 234, 244); + rs.push_back(rect); + + rect = new vpsc::Rectangle(276, 286, 307, 317); + rs.push_back(rect); + + rect = new vpsc::Rectangle(522, 568, 389, 419); + rs.push_back(rect); + + rect = new vpsc::Rectangle(266, 312, 878, 908); + rs.push_back(rect); + + rect = new vpsc::Rectangle(185, 231, 896, 926); + rs.push_back(rect); + + rect = new vpsc::Rectangle(266, 312, 899, 929); + rs.push_back(rect); + + rect = new vpsc::Rectangle(417, 463, 897, 927); + rs.push_back(rect); + + rect = new vpsc::Rectangle(464, 510, 878, 908); + rs.push_back(rect); + + rect = new vpsc::Rectangle(416, 462, 878, 908); + rs.push_back(rect); + + rect = new vpsc::Rectangle(470, 516, 859, 889); + rs.push_back(rect); + + rect = new vpsc::Rectangle(470, 516, 838, 868); + rs.push_back(rect); + + rect = new vpsc::Rectangle(358, 404, 850, 880); + rs.push_back(rect); + + rect = new vpsc::Rectangle(187, 233, 800, 830); + rs.push_back(rect); + + rect = new vpsc::Rectangle(535, 581, 799, 829); + rs.push_back(rect); + + rect = new vpsc::Rectangle(522, 568, 755, 785); + rs.push_back(rect); + + rect = new vpsc::Rectangle(522, 568, 686, 716); + rs.push_back(rect); + + rect = new vpsc::Rectangle(522, 568, 614, 644); + rs.push_back(rect); + + rect = new vpsc::Rectangle(497, 543, 469, 499); + rs.push_back(rect); + + rect = new vpsc::Rectangle(380, 426, 385, 415); + rs.push_back(rect); + + rect = new vpsc::Rectangle(497, 543, 321, 351); + rs.push_back(rect); + + rect = new vpsc::Rectangle(385, 431, 271, 301); + rs.push_back(rect); + + rect = new vpsc::Rectangle(529, 575, 131, 161); + rs.push_back(rect); + + rect = new vpsc::Rectangle(522, 568, 250, 280); + rs.push_back(rect); + + rect = new vpsc::Rectangle(522, 568, 158, 188); + rs.push_back(rect); + + rect = new vpsc::Rectangle(362, 408, 237, 267); + rs.push_back(rect); + + rect = new vpsc::Rectangle(210, 256, 226, 256); + rs.push_back(rect); + + rect = new vpsc::Rectangle(210, 256, 247, 277); + rs.push_back(rect); + + rect = new vpsc::Rectangle(396, 442, 249, 279); + rs.push_back(rect); + + rect = new vpsc::Rectangle(346, 392, 249, 279); + rs.push_back(rect); + + rect = new vpsc::Rectangle(220, 266, 249, 279); + rs.push_back(rect); + + rect = new vpsc::Rectangle(210, 256, 174, 204); + rs.push_back(rect); + + rect = new vpsc::Rectangle(210, 256, 153, 183); + rs.push_back(rect); + + rect = new vpsc::Rectangle(293, 339, 121, 151); + rs.push_back(rect); + + rect = new vpsc::Rectangle(320, 366, 89, 119); + rs.push_back(rect); + + rect = new vpsc::Rectangle(320, 366, 68, 98); + rs.push_back(rect); + + rect = new vpsc::Rectangle(239, 285, 843, 873); + rs.push_back(rect); + + rect = new vpsc::Rectangle(522, 568, 541, 571); + rs.push_back(rect); + + rect = new vpsc::Rectangle(258, 304, 153, 183); + rs.push_back(rect); + + rect = new vpsc::Rectangle(258, 304, 226, 256); + rs.push_back(rect); + + rect = new vpsc::Rectangle(158, 204, 295, 325); + rs.push_back(rect); + + rect = new vpsc::Rectangle(158, 204, 321, 351); + rs.push_back(rect); + + rect = new vpsc::Rectangle(268, 314, 294, 324); + rs.push_back(rect); + + rect = new vpsc::Rectangle(268, 314, 320, 350); + rs.push_back(rect); + + rect = new vpsc::Rectangle(416, 462, 899, 929); + rs.push_back(rect); + + rect = new vpsc::Rectangle(181, 227, 682, 712); + rs.push_back(rect); + + rect = new vpsc::Rectangle(464, 510, 899, 929); + rs.push_back(rect); + + rect = new vpsc::Rectangle(547, 593, 469, 499); + rs.push_back(rect); + + rect = new vpsc::Rectangle(559, 605, 460, 490); + rs.push_back(rect); + + rect = new vpsc::Rectangle(532, 578, 479, 509); + rs.push_back(rect); + + rect = new vpsc::Rectangle(266, 312, 730, 760); + rs.push_back(rect); + + rect = new vpsc::Rectangle(571, 617, 510, 540); + rs.push_back(rect); + + rect = new vpsc::Rectangle(414, 460, 521, 551); + rs.push_back(rect); + + rect = new vpsc::Rectangle(415, 461, 457, 487); + rs.push_back(rect); + + rect = new vpsc::Rectangle(73, 119, 846, 876); + rs.push_back(rect); + + rect = new vpsc::Rectangle(547, 593, 321, 351); + rs.push_back(rect); + + rect = new vpsc::Rectangle(258, 304, 174, 204); + rs.push_back(rect); + + rect = new vpsc::Rectangle(258, 304, 247, 277); + rs.push_back(rect); + + rect = new vpsc::Rectangle(550.5, 600.5, 304.5, 334.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(550.5, 600.5, 344.5, 374.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(621.5, 651.5, 473, 523); + rs.push_back(rect); + + rect = new vpsc::Rectangle(661.5, 691.5, 473, 523); + rs.push_back(rect); + + rect = new vpsc::Rectangle(470.5, 500.5, 108.5, 158.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(113, 163, 765.5, 795.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(113, 163, 805.5, 835.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(408, 458, 584.5, 614.5); + rs.push_back(rect); + + rect = new vpsc::Rectangle(614.5, 644.5, 843, 893); + rs.push_back(rect); + + AlignmentConstraint *alignment140664475503328 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475503328->addShape(0, 0); + alignment140664475503328->addShape(16, 0); + alignment140664475503328->addShape(18, 0); + alignment140664475503328->addShape(19, 0); + alignment140664475503328->addShape(26, 0); + alignment140664475503328->addShape(27, 0); + alignment140664475503328->addShape(41, 0); + alignment140664475503328->addShape(49, 0); + alignment140664475503328->addShape(50, 0); + alignment140664475503328->addShape(55, 0); + alignment140664475503328->addShape(56, 0); + alignment140664475503328->addShape(57, 0); + alignment140664475503328->addShape(58, 0); + alignment140664475503328->addShape(59, 0); + alignment140664475503328->addShape(63, 0); + alignment140664475503328->addShape(69, 0); + alignment140664475503328->addShape(89, 0); + ccs.push_back(alignment140664475503328); + + AlignmentConstraint *alignment140664481097440 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664481097440->addShape(1, 0); + alignment140664481097440->addShape(3, 0); + alignment140664481097440->addShape(46, 0); + alignment140664481097440->addShape(47, 0); + alignment140664481097440->addShape(84, 0); + ccs.push_back(alignment140664481097440); + + AlignmentConstraint *alignment140664483416688 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664483416688->addShape(2, 0); + alignment140664483416688->addShape(4, 0); + alignment140664483416688->addShape(65, 0); + alignment140664483416688->addShape(76, 0); + ccs.push_back(alignment140664483416688); + + AlignmentConstraint *alignment140664481096784 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664481096784->addShape(3, 0); + alignment140664481096784->addShape(46, 0); + alignment140664481096784->addShape(47, 0); + alignment140664481096784->addShape(84, 0); + ccs.push_back(alignment140664481096784); + + AlignmentConstraint *alignment140664475503952 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475503952->addShape(4, 0); + alignment140664475503952->addShape(65, 0); + alignment140664475503952->addShape(76, 0); + ccs.push_back(alignment140664475503952); + + AlignmentConstraint *alignment140664475504304 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475504304->addShape(7, 0); + alignment140664475504304->addShape(64, 0); + alignment140664475504304->addShape(66, 0); + alignment140664475504304->addShape(74, 0); + ccs.push_back(alignment140664475504304); + + AlignmentConstraint *alignment140664475504496 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475504496->addShape(8, 0); + alignment140664475504496->addShape(79, 0); + ccs.push_back(alignment140664475504496); + + AlignmentConstraint *alignment140664475504720 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475504720->addShape(9, 0); + alignment140664475504720->addShape(77, 0); + alignment140664475504720->addShape(87, 0); + alignment140664475504720->addShape(88, 0); + ccs.push_back(alignment140664475504720); + + AlignmentConstraint *alignment140664483418000 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664483418000->addShape(10, 0); + alignment140664483418000->addShape(11, 0); + ccs.push_back(alignment140664483418000); + + AlignmentConstraint *alignment140664483418368 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664483418368->addShape(11, 0); + ccs.push_back(alignment140664483418368); + + AlignmentConstraint *alignment140664483418496 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664483418496->addShape(12, 0); + ccs.push_back(alignment140664483418496); + + AlignmentConstraint *alignment140664483418656 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664483418656->addShape(13, 0); + alignment140664483418656->addShape(68, 0); + ccs.push_back(alignment140664483418656); + + AlignmentConstraint *alignment140664483418880 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664483418880->addShape(14, 0); + ccs.push_back(alignment140664483418880); + + AlignmentConstraint *alignment140664483419008 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664483419008->addShape(16, 0); + alignment140664483419008->addShape(18, 0); + alignment140664483419008->addShape(19, 0); + alignment140664483419008->addShape(26, 0); + alignment140664483419008->addShape(27, 0); + alignment140664483419008->addShape(41, 0); + alignment140664483419008->addShape(49, 0); + alignment140664483419008->addShape(50, 0); + alignment140664483419008->addShape(55, 0); + alignment140664483419008->addShape(56, 0); + alignment140664483419008->addShape(57, 0); + alignment140664483419008->addShape(58, 0); + alignment140664483419008->addShape(59, 0); + alignment140664483419008->addShape(63, 0); + alignment140664483419008->addShape(69, 0); + alignment140664483419008->addShape(89, 0); + ccs.push_back(alignment140664483419008); + + AlignmentConstraint *alignment140664476991552 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476991552->addShape(18, 0); + alignment140664476991552->addShape(19, 0); + alignment140664476991552->addShape(26, 0); + alignment140664476991552->addShape(27, 0); + alignment140664476991552->addShape(41, 0); + alignment140664476991552->addShape(49, 0); + alignment140664476991552->addShape(50, 0); + alignment140664476991552->addShape(55, 0); + alignment140664476991552->addShape(56, 0); + alignment140664476991552->addShape(57, 0); + alignment140664476991552->addShape(58, 0); + alignment140664476991552->addShape(59, 0); + alignment140664476991552->addShape(63, 0); + alignment140664476991552->addShape(69, 0); + alignment140664476991552->addShape(89, 0); + ccs.push_back(alignment140664476991552); + + AlignmentConstraint *alignment140664476992272 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476992272->addShape(19, 0); + alignment140664476992272->addShape(26, 0); + alignment140664476992272->addShape(27, 0); + alignment140664476992272->addShape(41, 0); + alignment140664476992272->addShape(49, 0); + alignment140664476992272->addShape(50, 0); + alignment140664476992272->addShape(55, 0); + alignment140664476992272->addShape(56, 0); + alignment140664476992272->addShape(57, 0); + alignment140664476992272->addShape(58, 0); + alignment140664476992272->addShape(59, 0); + alignment140664476992272->addShape(63, 0); + alignment140664476992272->addShape(69, 0); + alignment140664476992272->addShape(89, 0); + ccs.push_back(alignment140664476992272); + + AlignmentConstraint *alignment140664476992960 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476992960->addShape(20, 0); + alignment140664476992960->addShape(23, 0); + ccs.push_back(alignment140664476992960); + + AlignmentConstraint *alignment140664476993456 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476993456->addShape(22, 0); + ccs.push_back(alignment140664476993456); + + AlignmentConstraint *alignment140664476993584 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476993584->addShape(23, 0); + ccs.push_back(alignment140664476993584); + + AlignmentConstraint *alignment140664476993744 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476993744->addShape(24, 0); + ccs.push_back(alignment140664476993744); + + AlignmentConstraint *alignment140664476993904 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476993904->addShape(25, 0); + alignment140664476993904->addShape(62, 0); + ccs.push_back(alignment140664476993904); + + AlignmentConstraint *alignment140664476994128 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476994128->addShape(26, 0); + alignment140664476994128->addShape(27, 0); + alignment140664476994128->addShape(41, 0); + alignment140664476994128->addShape(49, 0); + alignment140664476994128->addShape(50, 0); + alignment140664476994128->addShape(55, 0); + alignment140664476994128->addShape(56, 0); + alignment140664476994128->addShape(57, 0); + alignment140664476994128->addShape(58, 0); + alignment140664476994128->addShape(59, 0); + alignment140664476994128->addShape(63, 0); + alignment140664476994128->addShape(69, 0); + alignment140664476994128->addShape(89, 0); + ccs.push_back(alignment140664476994128); + + AlignmentConstraint *alignment140664476994608 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476994608->addShape(27, 0); + alignment140664476994608->addShape(41, 0); + alignment140664476994608->addShape(49, 0); + alignment140664476994608->addShape(50, 0); + alignment140664476994608->addShape(55, 0); + alignment140664476994608->addShape(56, 0); + alignment140664476994608->addShape(57, 0); + alignment140664476994608->addShape(58, 0); + alignment140664476994608->addShape(59, 0); + alignment140664476994608->addShape(63, 0); + alignment140664476994608->addShape(69, 0); + alignment140664476994608->addShape(89, 0); + ccs.push_back(alignment140664476994608); + + AlignmentConstraint *alignment140664476995232 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476995232->addShape(28, 0); + ccs.push_back(alignment140664476995232); + + AlignmentConstraint *alignment140664476995392 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476995392->addShape(29, 0); + alignment140664476995392->addShape(30, 0); + alignment140664476995392->addShape(34, 0); + alignment140664476995392->addShape(35, 0); + ccs.push_back(alignment140664476995392); + + AlignmentConstraint *alignment140664476995616 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476995616->addShape(30, 0); + alignment140664476995616->addShape(34, 0); + alignment140664476995616->addShape(35, 0); + ccs.push_back(alignment140664476995616); + + AlignmentConstraint *alignment140664476995888 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476995888->addShape(31, 0); + ccs.push_back(alignment140664476995888); + + AlignmentConstraint *alignment140664476996016 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476996016->addShape(32, 0); + ccs.push_back(alignment140664476996016); + + AlignmentConstraint *alignment140664476996176 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476996176->addShape(33, 0); + alignment140664476996176->addShape(44, 0); + alignment140664476996176->addShape(45, 0); + alignment140664476996176->addShape(51, 0); + alignment140664476996176->addShape(52, 0); + ccs.push_back(alignment140664476996176); + + AlignmentConstraint *alignment140664476996480 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476996480->addShape(34, 0); + alignment140664476996480->addShape(35, 0); + ccs.push_back(alignment140664476996480); + + AlignmentConstraint *alignment140664476996704 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476996704->addShape(35, 0); + ccs.push_back(alignment140664476996704); + + AlignmentConstraint *alignment140664476996832 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476996832->addShape(36, 0); + alignment140664476996832->addShape(61, 0); + ccs.push_back(alignment140664476996832); + + AlignmentConstraint *alignment140664476997056 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476997056->addShape(37, 0); + alignment140664476997056->addShape(38, 0); + ccs.push_back(alignment140664476997056); + + AlignmentConstraint *alignment140664476993184 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476993184->addShape(38, 0); + ccs.push_back(alignment140664476993184); + + AlignmentConstraint *alignment140664476993312 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476993312->addShape(40, 0); + ccs.push_back(alignment140664476993312); + + AlignmentConstraint *alignment140664476997808 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476997808->addShape(41, 0); + alignment140664476997808->addShape(49, 0); + alignment140664476997808->addShape(50, 0); + alignment140664476997808->addShape(55, 0); + alignment140664476997808->addShape(56, 0); + alignment140664476997808->addShape(57, 0); + alignment140664476997808->addShape(58, 0); + alignment140664476997808->addShape(59, 0); + alignment140664476997808->addShape(63, 0); + alignment140664476997808->addShape(69, 0); + alignment140664476997808->addShape(89, 0); + ccs.push_back(alignment140664476997808); + + AlignmentConstraint *alignment140664476998480 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476998480->addShape(42, 0); + alignment140664476998480->addShape(43, 0); + alignment140664476998480->addShape(92, 0); + alignment140664476998480->addShape(93, 0); + ccs.push_back(alignment140664476998480); + + AlignmentConstraint *alignment140664476998704 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476998704->addShape(43, 0); + alignment140664476998704->addShape(92, 0); + alignment140664476998704->addShape(93, 0); + ccs.push_back(alignment140664476998704); + + AlignmentConstraint *alignment140664476998976 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476998976->addShape(44, 0); + alignment140664476998976->addShape(45, 0); + alignment140664476998976->addShape(51, 0); + alignment140664476998976->addShape(52, 0); + ccs.push_back(alignment140664476998976); + + AlignmentConstraint *alignment140664476999216 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476999216->addShape(45, 0); + alignment140664476999216->addShape(51, 0); + alignment140664476999216->addShape(52, 0); + ccs.push_back(alignment140664476999216); + + AlignmentConstraint *alignment140664476999488 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476999488->addShape(46, 0); + alignment140664476999488->addShape(47, 0); + alignment140664476999488->addShape(84, 0); + ccs.push_back(alignment140664476999488); + + AlignmentConstraint *alignment140664476999728 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476999728->addShape(47, 0); + alignment140664476999728->addShape(84, 0); + ccs.push_back(alignment140664476999728); + + AlignmentConstraint *alignment140664476999920 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476999920->addShape(48, 0); + ccs.push_back(alignment140664476999920); + + AlignmentConstraint *alignment140664477000048 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664477000048->addShape(49, 0); + alignment140664477000048->addShape(50, 0); + alignment140664477000048->addShape(55, 0); + alignment140664477000048->addShape(56, 0); + alignment140664477000048->addShape(57, 0); + alignment140664477000048->addShape(58, 0); + alignment140664477000048->addShape(59, 0); + alignment140664477000048->addShape(63, 0); + alignment140664477000048->addShape(69, 0); + alignment140664477000048->addShape(89, 0); + ccs.push_back(alignment140664477000048); + + AlignmentConstraint *alignment140664477000656 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664477000656->addShape(50, 0); + alignment140664477000656->addShape(55, 0); + alignment140664477000656->addShape(56, 0); + alignment140664477000656->addShape(57, 0); + alignment140664477000656->addShape(58, 0); + alignment140664477000656->addShape(59, 0); + alignment140664477000656->addShape(63, 0); + alignment140664477000656->addShape(69, 0); + alignment140664477000656->addShape(89, 0); + ccs.push_back(alignment140664477000656); + + AlignmentConstraint *alignment140664477001184 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664477001184->addShape(51, 0); + alignment140664477001184->addShape(52, 0); + ccs.push_back(alignment140664477001184); + + AlignmentConstraint *alignment140664477001408 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664477001408->addShape(52, 0); + ccs.push_back(alignment140664477001408); + + AlignmentConstraint *alignment140664477001536 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664477001536->addShape(53, 0); + alignment140664477001536->addShape(54, 0); + ccs.push_back(alignment140664477001536); + + AlignmentConstraint *alignment140664477001760 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664477001760->addShape(54, 0); + ccs.push_back(alignment140664477001760); + + AlignmentConstraint *alignment140664477001888 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664477001888->addShape(55, 0); + alignment140664477001888->addShape(56, 0); + alignment140664477001888->addShape(57, 0); + alignment140664477001888->addShape(58, 0); + alignment140664477001888->addShape(59, 0); + alignment140664477001888->addShape(63, 0); + alignment140664477001888->addShape(69, 0); + alignment140664477001888->addShape(89, 0); + ccs.push_back(alignment140664477001888); + + AlignmentConstraint *alignment140664477002240 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664477002240->addShape(56, 0); + alignment140664477002240->addShape(57, 0); + alignment140664477002240->addShape(58, 0); + alignment140664477002240->addShape(59, 0); + alignment140664477002240->addShape(63, 0); + alignment140664477002240->addShape(69, 0); + alignment140664477002240->addShape(89, 0); + ccs.push_back(alignment140664477002240); + + AlignmentConstraint *alignment140664477002640 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664477002640->addShape(57, 0); + alignment140664477002640->addShape(58, 0); + alignment140664477002640->addShape(59, 0); + alignment140664477002640->addShape(63, 0); + alignment140664477002640->addShape(69, 0); + alignment140664477002640->addShape(89, 0); + ccs.push_back(alignment140664477002640); + + AlignmentConstraint *alignment140664477003008 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664477003008->addShape(58, 0); + alignment140664477003008->addShape(59, 0); + alignment140664477003008->addShape(63, 0); + alignment140664477003008->addShape(69, 0); + alignment140664477003008->addShape(89, 0); + ccs.push_back(alignment140664477003008); + + AlignmentConstraint *alignment140664477003344 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664477003344->addShape(59, 0); + alignment140664477003344->addShape(63, 0); + alignment140664477003344->addShape(69, 0); + alignment140664477003344->addShape(89, 0); + ccs.push_back(alignment140664477003344); + + AlignmentConstraint *alignment140664477003568 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664477003568->addShape(60, 0); + ccs.push_back(alignment140664477003568); + + AlignmentConstraint *alignment140664477003728 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664477003728->addShape(61, 0); + ccs.push_back(alignment140664477003728); + + AlignmentConstraint *alignment140664477003888 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664477003888->addShape(62, 0); + ccs.push_back(alignment140664477003888); + + AlignmentConstraint *alignment140664477004048 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664477004048->addShape(63, 0); + alignment140664477004048->addShape(69, 0); + alignment140664477004048->addShape(89, 0); + ccs.push_back(alignment140664477004048); + + AlignmentConstraint *alignment140664477004320 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664477004320->addShape(64, 0); + alignment140664477004320->addShape(66, 0); + alignment140664477004320->addShape(74, 0); + ccs.push_back(alignment140664477004320); + + AlignmentConstraint *alignment140664477004560 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664477004560->addShape(65, 0); + alignment140664477004560->addShape(76, 0); + ccs.push_back(alignment140664477004560); + + AlignmentConstraint *alignment140664477004752 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664477004752->addShape(66, 0); + alignment140664477004752->addShape(74, 0); + ccs.push_back(alignment140664477004752); + + AlignmentConstraint *alignment140664477004944 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664477004944->addShape(67, 0); + ccs.push_back(alignment140664477004944); + + AlignmentConstraint *alignment140664477005072 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664477005072->addShape(68, 0); + ccs.push_back(alignment140664477005072); + + AlignmentConstraint *alignment140664477005232 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664477005232->addShape(69, 0); + alignment140664477005232->addShape(89, 0); + ccs.push_back(alignment140664477005232); + + AlignmentConstraint *alignment140664477005456 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664477005456->addShape(70, 0); + alignment140664477005456->addShape(73, 0); + ccs.push_back(alignment140664477005456); + + AlignmentConstraint *alignment140664477005648 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664477005648->addShape(71, 0); + alignment140664477005648->addShape(72, 0); + ccs.push_back(alignment140664477005648); + + AlignmentConstraint *alignment140664476997248 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476997248->addShape(72, 0); + ccs.push_back(alignment140664476997248); + + AlignmentConstraint *alignment140664476997376 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476997376->addShape(73, 0); + ccs.push_back(alignment140664476997376); + + AlignmentConstraint *alignment140664476997536 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664476997536->addShape(74, 0); + ccs.push_back(alignment140664476997536); + + AlignmentConstraint *alignment140664475640112 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475640112->addShape(76, 0); + ccs.push_back(alignment140664475640112); + + AlignmentConstraint *alignment140664475640272 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475640272->addShape(77, 0); + alignment140664475640272->addShape(87, 0); + alignment140664475640272->addShape(88, 0); + ccs.push_back(alignment140664475640272); + + AlignmentConstraint *alignment140664475640544 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475640544->addShape(78, 0); + ccs.push_back(alignment140664475640544); + + AlignmentConstraint *alignment140664475640672 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475640672->addShape(79, 0); + ccs.push_back(alignment140664475640672); + + AlignmentConstraint *alignment140664475640832 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475640832->addShape(81, 0); + alignment140664475640832->addShape(91, 0); + ccs.push_back(alignment140664475640832); + + AlignmentConstraint *alignment140664475641056 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475641056->addShape(82, 0); + ccs.push_back(alignment140664475641056); + + AlignmentConstraint *alignment140664475641184 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475641184->addShape(83, 0); + ccs.push_back(alignment140664475641184); + + AlignmentConstraint *alignment140664475641344 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475641344->addShape(84, 0); + ccs.push_back(alignment140664475641344); + + AlignmentConstraint *alignment140664475641504 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475641504->addShape(85, 0); + ccs.push_back(alignment140664475641504); + + AlignmentConstraint *alignment140664475641664 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475641664->addShape(86, 0); + ccs.push_back(alignment140664475641664); + + AlignmentConstraint *alignment140664475641824 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475641824->addShape(87, 0); + alignment140664475641824->addShape(88, 0); + ccs.push_back(alignment140664475641824); + + AlignmentConstraint *alignment140664475642048 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475642048->addShape(88, 0); + ccs.push_back(alignment140664475642048); + + AlignmentConstraint *alignment140664475642176 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475642176->addShape(89, 0); + ccs.push_back(alignment140664475642176); + + AlignmentConstraint *alignment140664475642336 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475642336->addShape(90, 0); + ccs.push_back(alignment140664475642336); + + AlignmentConstraint *alignment140664475642496 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475642496->addShape(91, 0); + ccs.push_back(alignment140664475642496); + + AlignmentConstraint *alignment140664475642656 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475642656->addShape(92, 0); + alignment140664475642656->addShape(93, 0); + ccs.push_back(alignment140664475642656); + + AlignmentConstraint *alignment140664475642880 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475642880->addShape(93, 0); + ccs.push_back(alignment140664475642880); + + SeparationConstraint *separation140664475644192 = new SeparationConstraint(vpsc::XDIM, alignment140664475642336, alignment140664476997376, 36, false); + ccs.push_back(separation140664475644192); + + SeparationConstraint *separation140664481097840 = new SeparationConstraint(vpsc::XDIM, alignment140664476997376, alignment140664475640112, 14, false); + ccs.push_back(separation140664481097840); + + SeparationConstraint *separation140664476990640 = new SeparationConstraint(vpsc::XDIM, alignment140664475640112, alignment140664477001408, 35, false); + ccs.push_back(separation140664476990640); + + SeparationConstraint *separation140664481098032 = new SeparationConstraint(vpsc::XDIM, alignment140664477001408, alignment140664475640544, 23, false); + ccs.push_back(separation140664481098032); + + SeparationConstraint *separation140664481098176 = new SeparationConstraint(vpsc::XDIM, alignment140664475640544, alignment140664483418656, 7, false); + ccs.push_back(separation140664481098176); + + SeparationConstraint *separation140664481098320 = new SeparationConstraint(vpsc::XDIM, alignment140664477005072, alignment140664476996704, 21, false); + ccs.push_back(separation140664481098320); + + SeparationConstraint *separation140664481098496 = new SeparationConstraint(vpsc::XDIM, alignment140664476996704, alignment140664476997248, 6, false); + ccs.push_back(separation140664481098496); + + SeparationConstraint *separation140664481098672 = new SeparationConstraint(vpsc::XDIM, alignment140664476997248, alignment140664476993312, 23, false); + ccs.push_back(separation140664481098672); + + SeparationConstraint *separation140664476989584 = new SeparationConstraint(vpsc::XDIM, alignment140664476993312, alignment140664477004944, 3, false); + ccs.push_back(separation140664476989584); + + SeparationConstraint *separation140664476989760 = new SeparationConstraint(vpsc::XDIM, alignment140664477004944, alignment140664475642880, 16, false); + ccs.push_back(separation140664476989760); + + SeparationConstraint *separation140664476989936 = new SeparationConstraint(vpsc::XDIM, alignment140664475642880, alignment140664475641344, 8, false); + ccs.push_back(separation140664476989936); + + SeparationConstraint *separation140664476990112 = new SeparationConstraint(vpsc::XDIM, alignment140664476999488, alignment140664476996016, 16.6667, false); + ccs.push_back(separation140664476990112); + + SeparationConstraint *separation140664476990288 = new SeparationConstraint(vpsc::XDIM, alignment140664476996016, alignment140664477003728, 7, false); + ccs.push_back(separation140664476990288); + + SeparationConstraint *separation140664476990464 = new SeparationConstraint(vpsc::XDIM, alignment140664476996832, alignment140664483418496, 4, false); + ccs.push_back(separation140664476990464); + + SeparationConstraint *separation140664475645632 = new SeparationConstraint(vpsc::XDIM, alignment140664483418496, alignment140664477001760, 13, false); + ccs.push_back(separation140664475645632); + + SeparationConstraint *separation140664475645808 = new SeparationConstraint(vpsc::XDIM, alignment140664477001760, alignment140664476993184, 11, false); + ccs.push_back(separation140664475645808); + + SeparationConstraint *separation140664475645984 = new SeparationConstraint(vpsc::XDIM, alignment140664476993184, alignment140664476995888, 14, false); + ccs.push_back(separation140664475645984); + + SeparationConstraint *separation140664475646160 = new SeparationConstraint(vpsc::XDIM, alignment140664476995888, alignment140664476997536, 21, false); + ccs.push_back(separation140664475646160); + + SeparationConstraint *separation140664475646336 = new SeparationConstraint(vpsc::XDIM, alignment140664476997536, alignment140664476995232, 7, false); + ccs.push_back(separation140664475646336); + + SeparationConstraint *separation140664475646512 = new SeparationConstraint(vpsc::XDIM, alignment140664476995232, alignment140664475641664, 13, false); + ccs.push_back(separation140664475646512); + + SeparationConstraint *separation140664475646688 = new SeparationConstraint(vpsc::XDIM, alignment140664475641664, alignment140664476993456, 5, false); + ccs.push_back(separation140664475646688); + + SeparationConstraint *separation140664475646864 = new SeparationConstraint(vpsc::XDIM, alignment140664476993456, alignment140664476993744, 5, false); + ccs.push_back(separation140664475646864); + + SeparationConstraint *separation140664475647040 = new SeparationConstraint(vpsc::XDIM, alignment140664476993744, alignment140664483418368, 23, false); + ccs.push_back(separation140664475647040); + + SeparationConstraint *separation140664475647216 = new SeparationConstraint(vpsc::XDIM, alignment140664483418368, alignment140664475641824, 6.5, false); + ccs.push_back(separation140664475647216); + + SeparationConstraint *separation140664475647392 = new SeparationConstraint(vpsc::XDIM, alignment140664475504720, alignment140664476993584, 19.75, false); + ccs.push_back(separation140664475647392); + + SeparationConstraint *separation140664475647568 = new SeparationConstraint(vpsc::XDIM, alignment140664476993584, alignment140664475642176, 25, false); + ccs.push_back(separation140664475647568); + + SeparationConstraint *separation140664475647744 = new SeparationConstraint(vpsc::XDIM, alignment140664475642176, alignment140664475640672, 4, false); + ccs.push_back(separation140664475647744); + + SeparationConstraint *separation140664475647920 = new SeparationConstraint(vpsc::XDIM, alignment140664475640672, alignment140664475642496, 21, false); + ccs.push_back(separation140664475647920); + + SeparationConstraint *separation140664475648096 = new SeparationConstraint(vpsc::XDIM, alignment140664475642496, alignment140664475641504, 24, false); + ccs.push_back(separation140664475648096); + + SeparationConstraint *separation140664475648272 = new SeparationConstraint(vpsc::XDIM, alignment140664475641504, alignment140664477003888, 18, false); + ccs.push_back(separation140664475648272); + + SeparationConstraint *separation140664475648448 = new SeparationConstraint(vpsc::XDIM, alignment140664476993904, alignment140664475641184, 4, false); + ccs.push_back(separation140664475648448); + + SeparationConstraint *separation140664475648624 = new SeparationConstraint(vpsc::XDIM, alignment140664475641184, alignment140664483418880, 3, false); + ccs.push_back(separation140664475648624); + + SeparationConstraint *separation140664475648800 = new SeparationConstraint(vpsc::XDIM, alignment140664483418880, alignment140664475641056, 24, false); + ccs.push_back(separation140664475648800); + + SeparationConstraint *separation140664475648976 = new SeparationConstraint(vpsc::XDIM, alignment140664475641056, alignment140664476999920, 19, false); + ccs.push_back(separation140664475648976); + + SeparationConstraint *separation140664475649152 = new SeparationConstraint(vpsc::XDIM, alignment140664476999920, alignment140664477003568, 26, false); + ccs.push_back(separation140664475649152); + + AlignmentConstraint *alignment140664475649328 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475649328->addShape(0, 0); + ccs.push_back(alignment140664475649328); + + AlignmentConstraint *alignment140664475649488 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475649488->addShape(1, 0); + alignment140664475649488->addShape(8, 0); + alignment140664475649488->addShape(9, 0); + ccs.push_back(alignment140664475649488); + + AlignmentConstraint *alignment140664475649760 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475649760->addShape(2, 0); + alignment140664475649760->addShape(7, 0); + alignment140664475649760->addShape(90, 0); + ccs.push_back(alignment140664475649760); + + AlignmentConstraint *alignment140664475650000 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475650000->addShape(3, 0); + alignment140664475650000->addShape(77, 0); + alignment140664475650000->addShape(79, 0); + ccs.push_back(alignment140664475650000); + + AlignmentConstraint *alignment140664475650240 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475650240->addShape(4, 0); + alignment140664475650240->addShape(62, 0); + alignment140664475650240->addShape(66, 0); + ccs.push_back(alignment140664475650240); + + AlignmentConstraint *alignment140664475650480 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475650480->addShape(7, 0); + alignment140664475650480->addShape(90, 0); + ccs.push_back(alignment140664475650480); + + AlignmentConstraint *alignment140664475650672 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475650672->addShape(8, 0); + alignment140664475650672->addShape(9, 0); + ccs.push_back(alignment140664475650672); + + AlignmentConstraint *alignment140664475650864 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475650864->addShape(9, 0); + ccs.push_back(alignment140664475650864); + + AlignmentConstraint *alignment140664475639072 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475639072->addShape(10, 0); + ccs.push_back(alignment140664475639072); + + AlignmentConstraint *alignment140664475639232 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475639232->addShape(11, 0); + ccs.push_back(alignment140664475639232); + + AlignmentConstraint *alignment140664475639392 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475639392->addShape(12, 0); + alignment140664475639392->addShape(13, 0); + alignment140664475639392->addShape(14, 0); + alignment140664475639392->addShape(60, 0); + alignment140664475639392->addShape(63, 0); + alignment140664475639392->addShape(64, 0); + alignment140664475639392->addShape(65, 0); + alignment140664475639392->addShape(67, 0); + ccs.push_back(alignment140664475639392); + + AlignmentConstraint *alignment140664475639872 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475639872->addShape(13, 0); + alignment140664475639872->addShape(14, 0); + alignment140664475639872->addShape(60, 0); + alignment140664475639872->addShape(63, 0); + alignment140664475639872->addShape(64, 0); + alignment140664475639872->addShape(65, 0); + alignment140664475639872->addShape(67, 0); + ccs.push_back(alignment140664475639872); + + AlignmentConstraint *alignment140664475653264 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475653264->addShape(14, 0); + alignment140664475653264->addShape(60, 0); + alignment140664475653264->addShape(63, 0); + alignment140664475653264->addShape(64, 0); + alignment140664475653264->addShape(65, 0); + alignment140664475653264->addShape(67, 0); + ccs.push_back(alignment140664475653264); + + AlignmentConstraint *alignment140664475653632 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475653632->addShape(16, 0); + ccs.push_back(alignment140664475653632); + + AlignmentConstraint *alignment140664475653792 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475653792->addShape(18, 0); + ccs.push_back(alignment140664475653792); + + AlignmentConstraint *alignment140664475653952 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475653952->addShape(19, 0); + ccs.push_back(alignment140664475653952); + + AlignmentConstraint *alignment140664475654112 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475654112->addShape(20, 0); + alignment140664475654112->addShape(81, 0); + ccs.push_back(alignment140664475654112); + + AlignmentConstraint *alignment140664475654336 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475654336->addShape(22, 0); + alignment140664475654336->addShape(53, 0); + alignment140664475654336->addShape(89, 0); + ccs.push_back(alignment140664475654336); + + AlignmentConstraint *alignment140664475654528 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475654528->addShape(23, 0); + alignment140664475654528->addShape(24, 0); + alignment140664475654528->addShape(91, 0); + ccs.push_back(alignment140664475654528); + + AlignmentConstraint *alignment140664475654720 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475654720->addShape(24, 0); + alignment140664475654720->addShape(91, 0); + ccs.push_back(alignment140664475654720); + + AlignmentConstraint *alignment140664475654912 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475654912->addShape(25, 0); + alignment140664475654912->addShape(48, 0); + ccs.push_back(alignment140664475654912); + + AlignmentConstraint *alignment140664475655104 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475655104->addShape(26, 0); + alignment140664475655104->addShape(31, 0); + alignment140664475655104->addShape(32, 0); + alignment140664475655104->addShape(33, 0); + ccs.push_back(alignment140664475655104); + + AlignmentConstraint *alignment140664475655344 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475655344->addShape(27, 0); + ccs.push_back(alignment140664475655344); + + AlignmentConstraint *alignment140664475655504 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475655504->addShape(28, 0); + alignment140664475655504->addShape(52, 0); + alignment140664475655504->addShape(54, 0); + alignment140664475655504->addShape(56, 0); + ccs.push_back(alignment140664475655504); + + AlignmentConstraint *alignment140664475655776 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475655776->addShape(29, 0); + alignment140664475655776->addShape(43, 0); + ccs.push_back(alignment140664475655776); + + AlignmentConstraint *alignment140664475656000 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475656000->addShape(30, 0); + alignment140664475656000->addShape(93, 0); + ccs.push_back(alignment140664475656000); + + AlignmentConstraint *alignment140664475656192 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475656192->addShape(31, 0); + alignment140664475656192->addShape(32, 0); + alignment140664475656192->addShape(33, 0); + ccs.push_back(alignment140664475656192); + + AlignmentConstraint *alignment140664475656432 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475656432->addShape(32, 0); + alignment140664475656432->addShape(33, 0); + ccs.push_back(alignment140664475656432); + + AlignmentConstraint *alignment140664475656624 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475656624->addShape(33, 0); + ccs.push_back(alignment140664475656624); + + AlignmentConstraint *alignment140664475656752 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475656752->addShape(34, 0); + alignment140664475656752->addShape(92, 0); + ccs.push_back(alignment140664475656752); + + AlignmentConstraint *alignment140664475656976 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475656976->addShape(35, 0); + alignment140664475656976->addShape(42, 0); + ccs.push_back(alignment140664475656976); + + AlignmentConstraint *alignment140664475657168 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475657168->addShape(36, 0); + ccs.push_back(alignment140664475657168); + + AlignmentConstraint *alignment140664475657296 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475657296->addShape(37, 0); + ccs.push_back(alignment140664475657296); + + AlignmentConstraint *alignment140664475657456 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475657456->addShape(38, 0); + ccs.push_back(alignment140664475657456); + + AlignmentConstraint *alignment140664475657616 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475657616->addShape(40, 0); + alignment140664475657616->addShape(61, 0); + alignment140664475657616->addShape(68, 0); + ccs.push_back(alignment140664475657616); + + AlignmentConstraint *alignment140664475657888 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475657888->addShape(41, 0); + alignment140664475657888->addShape(86, 0); + ccs.push_back(alignment140664475657888); + + AlignmentConstraint *alignment140664475658080 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475658080->addShape(42, 0); + ccs.push_back(alignment140664475658080); + + AlignmentConstraint *alignment140664475658208 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475658208->addShape(43, 0); + ccs.push_back(alignment140664475658208); + + AlignmentConstraint *alignment140664475658368 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475658368->addShape(44, 0); + alignment140664475658368->addShape(46, 0); + alignment140664475658368->addShape(70, 0); + alignment140664475658368->addShape(71, 0); + ccs.push_back(alignment140664475658368); + + AlignmentConstraint *alignment140664475658640 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475658640->addShape(45, 0); + alignment140664475658640->addShape(47, 0); + alignment140664475658640->addShape(72, 0); + alignment140664475658640->addShape(73, 0); + ccs.push_back(alignment140664475658640); + + AlignmentConstraint *alignment140664475658912 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475658912->addShape(46, 0); + alignment140664475658912->addShape(70, 0); + alignment140664475658912->addShape(71, 0); + ccs.push_back(alignment140664475658912); + + AlignmentConstraint *alignment140664475659184 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475659184->addShape(47, 0); + alignment140664475659184->addShape(72, 0); + alignment140664475659184->addShape(73, 0); + ccs.push_back(alignment140664475659184); + + AlignmentConstraint *alignment140664475659424 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475659424->addShape(48, 0); + ccs.push_back(alignment140664475659424); + + AlignmentConstraint *alignment140664475659552 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475659552->addShape(49, 0); + ccs.push_back(alignment140664475659552); + + AlignmentConstraint *alignment140664475659712 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475659712->addShape(50, 0); + ccs.push_back(alignment140664475659712); + + AlignmentConstraint *alignment140664475659872 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475659872->addShape(51, 0); + alignment140664475659872->addShape(55, 0); + ccs.push_back(alignment140664475659872); + + AlignmentConstraint *alignment140664475660096 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475660096->addShape(52, 0); + alignment140664475660096->addShape(54, 0); + alignment140664475660096->addShape(56, 0); + ccs.push_back(alignment140664475660096); + + AlignmentConstraint *alignment140664475660336 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475660336->addShape(53, 0); + alignment140664475660336->addShape(89, 0); + ccs.push_back(alignment140664475660336); + + AlignmentConstraint *alignment140664475660528 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475660528->addShape(54, 0); + alignment140664475660528->addShape(56, 0); + ccs.push_back(alignment140664475660528); + + AlignmentConstraint *alignment140664475660720 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475660720->addShape(55, 0); + ccs.push_back(alignment140664475660720); + + AlignmentConstraint *alignment140664475660848 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475660848->addShape(56, 0); + ccs.push_back(alignment140664475660848); + + AlignmentConstraint *alignment140664475661008 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475661008->addShape(57, 0); + alignment140664475661008->addShape(76, 0); + ccs.push_back(alignment140664475661008); + + AlignmentConstraint *alignment140664475661232 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475661232->addShape(58, 0); + ccs.push_back(alignment140664475661232); + + AlignmentConstraint *alignment140664475661360 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475661360->addShape(59, 0); + alignment140664475661360->addShape(88, 0); + ccs.push_back(alignment140664475661360); + + AlignmentConstraint *alignment140664475661584 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475661584->addShape(60, 0); + alignment140664475661584->addShape(63, 0); + alignment140664475661584->addShape(64, 0); + alignment140664475661584->addShape(65, 0); + alignment140664475661584->addShape(67, 0); + ccs.push_back(alignment140664475661584); + + AlignmentConstraint *alignment140664475661936 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475661936->addShape(61, 0); + alignment140664475661936->addShape(68, 0); + ccs.push_back(alignment140664475661936); + + AlignmentConstraint *alignment140664475662160 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475662160->addShape(62, 0); + alignment140664475662160->addShape(66, 0); + ccs.push_back(alignment140664475662160); + + AlignmentConstraint *alignment140664475662352 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475662352->addShape(63, 0); + alignment140664475662352->addShape(64, 0); + alignment140664475662352->addShape(65, 0); + alignment140664475662352->addShape(67, 0); + ccs.push_back(alignment140664475662352); + + AlignmentConstraint *alignment140664475662544 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475662544->addShape(64, 0); + alignment140664475662544->addShape(65, 0); + alignment140664475662544->addShape(67, 0); + ccs.push_back(alignment140664475662544); + + AlignmentConstraint *alignment140664475662816 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475662816->addShape(65, 0); + alignment140664475662816->addShape(67, 0); + ccs.push_back(alignment140664475662816); + + AlignmentConstraint *alignment140664475663008 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475663008->addShape(66, 0); + ccs.push_back(alignment140664475663008); + + AlignmentConstraint *alignment140664475663136 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475663136->addShape(67, 0); + ccs.push_back(alignment140664475663136); + + AlignmentConstraint *alignment140664475663296 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475663296->addShape(68, 0); + ccs.push_back(alignment140664475663296); + + AlignmentConstraint *alignment140664475663456 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475663456->addShape(69, 0); + ccs.push_back(alignment140664475663456); + + AlignmentConstraint *alignment140664475663616 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475663616->addShape(70, 0); + alignment140664475663616->addShape(71, 0); + ccs.push_back(alignment140664475663616); + + AlignmentConstraint *alignment140664475663840 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475663840->addShape(71, 0); + ccs.push_back(alignment140664475663840); + + AlignmentConstraint *alignment140664475663968 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475663968->addShape(72, 0); + alignment140664475663968->addShape(73, 0); + ccs.push_back(alignment140664475663968); + + AlignmentConstraint *alignment140664475664192 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475664192->addShape(73, 0); + ccs.push_back(alignment140664475664192); + + AlignmentConstraint *alignment140664475664320 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475664320->addShape(74, 0); + ccs.push_back(alignment140664475664320); + + AlignmentConstraint *alignment140664475664480 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475664480->addShape(76, 0); + ccs.push_back(alignment140664475664480); + + AlignmentConstraint *alignment140664475664640 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475664640->addShape(77, 0); + alignment140664475664640->addShape(79, 0); + ccs.push_back(alignment140664475664640); + + AlignmentConstraint *alignment140664475664864 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475664864->addShape(78, 0); + ccs.push_back(alignment140664475664864); + + AlignmentConstraint *alignment140664475664992 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475664992->addShape(79, 0); + ccs.push_back(alignment140664475664992); + + AlignmentConstraint *alignment140664475665152 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475665152->addShape(81, 0); + ccs.push_back(alignment140664475665152); + + AlignmentConstraint *alignment140664475665312 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475665312->addShape(82, 0); + alignment140664475665312->addShape(85, 0); + ccs.push_back(alignment140664475665312); + + AlignmentConstraint *alignment140664475665536 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475665536->addShape(83, 0); + ccs.push_back(alignment140664475665536); + + AlignmentConstraint *alignment140664475665664 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475665664->addShape(84, 0); + ccs.push_back(alignment140664475665664); + + AlignmentConstraint *alignment140664475665824 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475665824->addShape(85, 0); + ccs.push_back(alignment140664475665824); + + AlignmentConstraint *alignment140664475665984 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475665984->addShape(86, 0); + ccs.push_back(alignment140664475665984); + + AlignmentConstraint *alignment140664475666144 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475666144->addShape(87, 0); + ccs.push_back(alignment140664475666144); + + AlignmentConstraint *alignment140664475666304 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475666304->addShape(88, 0); + ccs.push_back(alignment140664475666304); + + AlignmentConstraint *alignment140664475666464 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475666464->addShape(89, 0); + ccs.push_back(alignment140664475666464); + + AlignmentConstraint *alignment140664475666624 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475666624->addShape(90, 0); + ccs.push_back(alignment140664475666624); + + AlignmentConstraint *alignment140664475666784 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475666784->addShape(91, 0); + ccs.push_back(alignment140664475666784); + + AlignmentConstraint *alignment140664475666944 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475666944->addShape(92, 0); + ccs.push_back(alignment140664475666944); + + AlignmentConstraint *alignment140664475667104 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475667104->addShape(93, 0); + ccs.push_back(alignment140664475667104); + + SeparationConstraint *separation140664475667264 = new SeparationConstraint(vpsc::YDIM, alignment140664475657456, alignment140664475659552, 10, false); + ccs.push_back(separation140664475667264); + + SeparationConstraint *separation140664475667440 = new SeparationConstraint(vpsc::YDIM, alignment140664475659552, alignment140664475657296, 11, false); + ccs.push_back(separation140664475667440); + + SeparationConstraint *separation140664475667616 = new SeparationConstraint(vpsc::YDIM, alignment140664475657296, alignment140664475655344, 19, false); + ccs.push_back(separation140664475667616); + + SeparationConstraint *separation140664475667792 = new SeparationConstraint(vpsc::YDIM, alignment140664475655344, alignment140664475657168, 13, false); + ccs.push_back(separation140664475667792); + + SeparationConstraint *separation140664475667968 = new SeparationConstraint(vpsc::YDIM, alignment140664475657168, alignment140664475659424, 9, false); + ccs.push_back(separation140664475667968); + + SeparationConstraint *separation140664475668144 = new SeparationConstraint(vpsc::YDIM, alignment140664475654912, alignment140664475658080, 22.5, false); + ccs.push_back(separation140664475668144); + + SeparationConstraint *separation140664475668320 = new SeparationConstraint(vpsc::YDIM, alignment140664475658080, alignment140664475659872, 11, false); + ccs.push_back(separation140664475668320); + + SeparationConstraint *separation140664475668496 = new SeparationConstraint(vpsc::YDIM, alignment140664475660720, alignment140664475666944, 9, false); + ccs.push_back(separation140664475668496); + + SeparationConstraint *separation140664475668672 = new SeparationConstraint(vpsc::YDIM, alignment140664475666944, alignment140664475656624, 25, false); + ccs.push_back(separation140664475668672); + + SeparationConstraint *separation140664475668848 = new SeparationConstraint(vpsc::YDIM, alignment140664475655104, alignment140664475658208, 26.75, false); + ccs.push_back(separation140664475668848); + + SeparationConstraint *separation140664475669024 = new SeparationConstraint(vpsc::YDIM, alignment140664475658208, alignment140664475660096, 10.6667, false); + ccs.push_back(separation140664475669024); + + SeparationConstraint *separation140664475669200 = new SeparationConstraint(vpsc::YDIM, alignment140664475660848, alignment140664475667104, 9, false); + ccs.push_back(separation140664475669200); + + SeparationConstraint *separation140664475669376 = new SeparationConstraint(vpsc::YDIM, alignment140664475667104, alignment140664475666784, 24, false); + ccs.push_back(separation140664475669376); + + SeparationConstraint *separation140664475669552 = new SeparationConstraint(vpsc::YDIM, alignment140664475666784, alignment140664475663840, 23, false); + ccs.push_back(separation140664475669552); + + SeparationConstraint *separation140664475669728 = new SeparationConstraint(vpsc::YDIM, alignment140664475658368, alignment140664475663456, 13.75, false); + ccs.push_back(separation140664475669728); + + SeparationConstraint *separation140664475669904 = new SeparationConstraint(vpsc::YDIM, alignment140664475663456, alignment140664475664192, 12, false); + ccs.push_back(separation140664475669904); + + SeparationConstraint *separation140664475670080 = new SeparationConstraint(vpsc::YDIM, alignment140664475658640, alignment140664475649328, 18.75, false); + ccs.push_back(separation140664475670080); + + SeparationConstraint *separation140664475670256 = new SeparationConstraint(vpsc::YDIM, alignment140664475649328, alignment140664475666464, 44, false); + ccs.push_back(separation140664475670256); + + SeparationConstraint *separation140664475670432 = new SeparationConstraint(vpsc::YDIM, alignment140664475654336, alignment140664475665152, 35.3333, false); + ccs.push_back(separation140664475670432); + + SeparationConstraint *separation140664475670608 = new SeparationConstraint(vpsc::YDIM, alignment140664475665152, alignment140664475661360, 37, false); + ccs.push_back(separation140664475670608); + + SeparationConstraint *separation140664475670784 = new SeparationConstraint(vpsc::YDIM, alignment140664475666304, alignment140664475665824, 3, false); + ccs.push_back(separation140664475670784); + + SeparationConstraint *separation140664475670960 = new SeparationConstraint(vpsc::YDIM, alignment140664475665824, alignment140664475665536, 19, false); + ccs.push_back(separation140664475670960); + + SeparationConstraint *separation140664475671136 = new SeparationConstraint(vpsc::YDIM, alignment140664475665536, alignment140664475665984, 12, false); + ccs.push_back(separation140664475671136); + + SeparationConstraint *separation140664475671312 = new SeparationConstraint(vpsc::YDIM, alignment140664475665984, alignment140664475666144, 30, false); + ccs.push_back(separation140664475671312); + + SeparationConstraint *separation140664475671488 = new SeparationConstraint(vpsc::YDIM, alignment140664475666144, alignment140664475661232, 6, false); + ccs.push_back(separation140664475671488); + + SeparationConstraint *separation140664475671664 = new SeparationConstraint(vpsc::YDIM, alignment140664475661232, alignment140664475653952, 37, false); + ccs.push_back(separation140664475671664); + + SeparationConstraint *separation140664475508000 = new SeparationConstraint(vpsc::YDIM, alignment140664475653952, alignment140664475659712, 35, false); + ccs.push_back(separation140664475508000); + + SeparationConstraint *separation140664475508176 = new SeparationConstraint(vpsc::YDIM, alignment140664475659712, alignment140664475653792, 37, false); + ccs.push_back(separation140664475508176); + + SeparationConstraint *separation140664475508352 = new SeparationConstraint(vpsc::YDIM, alignment140664475653792, alignment140664475664480, 35, false); + ccs.push_back(separation140664475508352); + + SeparationConstraint *separation140664475508528 = new SeparationConstraint(vpsc::YDIM, alignment140664475664480, alignment140664475664864, 11, false); + ccs.push_back(separation140664475508528); + + SeparationConstraint *separation140664475508704 = new SeparationConstraint(vpsc::YDIM, alignment140664475664864, alignment140664475653632, 23, false); + ccs.push_back(separation140664475508704); + + SeparationConstraint *separation140664475508880 = new SeparationConstraint(vpsc::YDIM, alignment140664475653632, alignment140664475665664, 25, false); + ccs.push_back(separation140664475508880); + + SeparationConstraint *separation140664475509056 = new SeparationConstraint(vpsc::YDIM, alignment140664475665664, alignment140664475664320, 25, false); + ccs.push_back(separation140664475509056); + + SeparationConstraint *separation140664475509232 = new SeparationConstraint(vpsc::YDIM, alignment140664475664320, alignment140664475639232, 33, false); + ccs.push_back(separation140664475509232); + + SeparationConstraint *separation140664475509408 = new SeparationConstraint(vpsc::YDIM, alignment140664475639232, alignment140664475663136, 10, false); + ccs.push_back(separation140664475509408); + + SeparationConstraint *separation140664475509584 = new SeparationConstraint(vpsc::YDIM, alignment140664475639392, alignment140664475639072, 10.375, false); + ccs.push_back(separation140664475509584); + + SeparationConstraint *separation140664475509760 = new SeparationConstraint(vpsc::YDIM, alignment140664475639072, alignment140664475663296, 32, false); + ccs.push_back(separation140664475509760); + + SeparationConstraint *separation140664475509936 = new SeparationConstraint(vpsc::YDIM, alignment140664475657616, alignment140664475666624, 4.33333, false); + ccs.push_back(separation140664475509936); + + SeparationConstraint *separation140664475510112 = new SeparationConstraint(vpsc::YDIM, alignment140664475650480, alignment140664475650864, 31.5, false); + ccs.push_back(separation140664475510112); + + SeparationConstraint *separation140664475510288 = new SeparationConstraint(vpsc::YDIM, alignment140664475650864, alignment140664475663008, 10, false); + ccs.push_back(separation140664475510288); + + SeparationConstraint *separation140664475510464 = new SeparationConstraint(vpsc::YDIM, alignment140664475663008, alignment140664475664992, 11, false); + ccs.push_back(separation140664475510464); + + AlignmentConstraint *alignment140664475511088 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475511088->addShape(75, 0); + alignment140664475511088->addShape(75, 0); + ccs.push_back(alignment140664475511088); + + SeparationConstraint *separation140664475511312 = new SeparationConstraint(vpsc::YDIM, 75, 75, -50, true); + ccs.push_back(separation140664475511312); + + AlignmentConstraint *alignment140664475511456 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475511456->addShape(0, 0); + alignment140664475511456->addShape(94, 0); + ccs.push_back(alignment140664475511456); + + SeparationConstraint *separation140664475511680 = new SeparationConstraint(vpsc::XDIM, 0, 94, 62, true); + ccs.push_back(separation140664475511680); + + AlignmentConstraint *alignment140664475511824 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475511824->addShape(1, 0); + alignment140664475511824->addShape(95, 0); + ccs.push_back(alignment140664475511824); + + SeparationConstraint *separation140664475512048 = new SeparationConstraint(vpsc::YDIM, 1, 95, -50, true); + ccs.push_back(separation140664475512048); + + AlignmentConstraint *alignment140664475512192 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475512192->addShape(2, 0); + alignment140664475512192->addShape(96, 0); + ccs.push_back(alignment140664475512192); + + SeparationConstraint *separation140664475512416 = new SeparationConstraint(vpsc::XDIM, 2, 96, 62, true); + ccs.push_back(separation140664475512416); + + AlignmentConstraint *alignment140664475512560 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475512560->addShape(3, 0); + alignment140664475512560->addShape(97, 0); + ccs.push_back(alignment140664475512560); + + SeparationConstraint *separation140664475512784 = new SeparationConstraint(vpsc::YDIM, 3, 97, -50, true); + ccs.push_back(separation140664475512784); + + AlignmentConstraint *alignment140664475650992 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475650992->addShape(7, 0); + alignment140664475650992->addShape(98, 0); + ccs.push_back(alignment140664475650992); + + SeparationConstraint *separation140664475651216 = new SeparationConstraint(vpsc::XDIM, 7, 98, 62, true); + ccs.push_back(separation140664475651216); + + AlignmentConstraint *alignment140664475651360 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475651360->addShape(8, 0); + alignment140664475651360->addShape(99, 0); + ccs.push_back(alignment140664475651360); + + SeparationConstraint *separation140664475651584 = new SeparationConstraint(vpsc::YDIM, 8, 99, -50, true); + ccs.push_back(separation140664475651584); + + AlignmentConstraint *alignment140664475651728 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475651728->addShape(9, 0); + alignment140664475651728->addShape(100, 0); + ccs.push_back(alignment140664475651728); + + SeparationConstraint *separation140664475651952 = new SeparationConstraint(vpsc::YDIM, 9, 100, -50, true); + ccs.push_back(separation140664475651952); + + AlignmentConstraint *alignment140664475652096 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475652096->addShape(10, 0); + alignment140664475652096->addShape(101, 0); + ccs.push_back(alignment140664475652096); + + SeparationConstraint *separation140664475652320 = new SeparationConstraint(vpsc::XDIM, 10, 101, 62, true); + ccs.push_back(separation140664475652320); + + AlignmentConstraint *alignment140664475652464 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475652464->addShape(11, 0); + alignment140664475652464->addShape(102, 0); + ccs.push_back(alignment140664475652464); + + SeparationConstraint *separation140664475652688 = new SeparationConstraint(vpsc::XDIM, 11, 102, 62, true); + ccs.push_back(separation140664475652688); + + AlignmentConstraint *alignment140664475652832 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475652832->addShape(12, 0); + alignment140664475652832->addShape(103, 0); + ccs.push_back(alignment140664475652832); + + SeparationConstraint *separation140664475517040 = new SeparationConstraint(vpsc::XDIM, 12, 103, 62, true); + ccs.push_back(separation140664475517040); + + AlignmentConstraint *alignment140664475517184 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475517184->addShape(13, 0); + alignment140664475517184->addShape(104, 0); + ccs.push_back(alignment140664475517184); + + SeparationConstraint *separation140664475517408 = new SeparationConstraint(vpsc::YDIM, 13, 104, -50, true); + ccs.push_back(separation140664475517408); + + AlignmentConstraint *alignment140664475517552 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475517552->addShape(14, 0); + alignment140664475517552->addShape(105, 0); + ccs.push_back(alignment140664475517552); + + SeparationConstraint *separation140664475517776 = new SeparationConstraint(vpsc::YDIM, 14, 105, -50, true); + ccs.push_back(separation140664475517776); + + AlignmentConstraint *alignment140664475517920 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475517920->addShape(16, 0); + alignment140664475517920->addShape(106, 0); + ccs.push_back(alignment140664475517920); + + SeparationConstraint *separation140664475518144 = new SeparationConstraint(vpsc::XDIM, 16, 106, 62, true); + ccs.push_back(separation140664475518144); + + AlignmentConstraint *alignment140664475518288 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475518288->addShape(18, 0); + alignment140664475518288->addShape(107, 0); + ccs.push_back(alignment140664475518288); + + SeparationConstraint *separation140664475518512 = new SeparationConstraint(vpsc::XDIM, 18, 107, 62, true); + ccs.push_back(separation140664475518512); + + AlignmentConstraint *alignment140664475518656 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475518656->addShape(19, 0); + alignment140664475518656->addShape(108, 0); + ccs.push_back(alignment140664475518656); + + SeparationConstraint *separation140664475518880 = new SeparationConstraint(vpsc::XDIM, 19, 108, 62, true); + ccs.push_back(separation140664475518880); + + AlignmentConstraint *alignment140664475519024 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475519024->addShape(20, 0); + alignment140664475519024->addShape(109, 0); + ccs.push_back(alignment140664475519024); + + SeparationConstraint *separation140664475519248 = new SeparationConstraint(vpsc::XDIM, 20, 109, 62, true); + ccs.push_back(separation140664475519248); + + AlignmentConstraint *alignment140664475519392 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475519392->addShape(22, 0); + alignment140664475519392->addShape(110, 0); + ccs.push_back(alignment140664475519392); + + SeparationConstraint *separation140664475519616 = new SeparationConstraint(vpsc::YDIM, 22, 110, -50, true); + ccs.push_back(separation140664475519616); + + AlignmentConstraint *alignment140664475519760 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475519760->addShape(23, 0); + alignment140664475519760->addShape(111, 0); + ccs.push_back(alignment140664475519760); + + SeparationConstraint *separation140664475519984 = new SeparationConstraint(vpsc::XDIM, 23, 111, 62, true); + ccs.push_back(separation140664475519984); + + AlignmentConstraint *alignment140664475520128 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475520128->addShape(24, 0); + alignment140664475520128->addShape(112, 0); + ccs.push_back(alignment140664475520128); + + SeparationConstraint *separation140664475520352 = new SeparationConstraint(vpsc::YDIM, 24, 112, -50, true); + ccs.push_back(separation140664475520352); + + AlignmentConstraint *alignment140664475520496 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475520496->addShape(25, 0); + alignment140664475520496->addShape(113, 0); + ccs.push_back(alignment140664475520496); + + SeparationConstraint *separation140664475520720 = new SeparationConstraint(vpsc::YDIM, 25, 113, -50, true); + ccs.push_back(separation140664475520720); + + AlignmentConstraint *alignment140664475520864 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475520864->addShape(26, 0); + alignment140664475520864->addShape(114, 0); + ccs.push_back(alignment140664475520864); + + SeparationConstraint *separation140664475521088 = new SeparationConstraint(vpsc::XDIM, 26, 114, 62, true); + ccs.push_back(separation140664475521088); + + AlignmentConstraint *alignment140664475521232 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475521232->addShape(27, 0); + alignment140664475521232->addShape(115, 0); + ccs.push_back(alignment140664475521232); + + SeparationConstraint *separation140664475521456 = new SeparationConstraint(vpsc::XDIM, 27, 115, 62, true); + ccs.push_back(separation140664475521456); + + AlignmentConstraint *alignment140664475521600 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475521600->addShape(28, 0); + alignment140664475521600->addShape(116, 0); + ccs.push_back(alignment140664475521600); + + SeparationConstraint *separation140664475521824 = new SeparationConstraint(vpsc::YDIM, 28, 116, -50, true); + ccs.push_back(separation140664475521824); + + AlignmentConstraint *alignment140664475521968 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475521968->addShape(29, 0); + alignment140664475521968->addShape(117, 0); + ccs.push_back(alignment140664475521968); + + SeparationConstraint *separation140664475522192 = new SeparationConstraint(vpsc::YDIM, 29, 117, -50, true); + ccs.push_back(separation140664475522192); + + AlignmentConstraint *alignment140664475522336 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475522336->addShape(30, 0); + alignment140664475522336->addShape(118, 0); + ccs.push_back(alignment140664475522336); + + SeparationConstraint *separation140664475522560 = new SeparationConstraint(vpsc::YDIM, 30, 118, -50, true); + ccs.push_back(separation140664475522560); + + AlignmentConstraint *alignment140664475522704 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475522704->addShape(31, 0); + alignment140664475522704->addShape(119, 0); + ccs.push_back(alignment140664475522704); + + SeparationConstraint *separation140664475522928 = new SeparationConstraint(vpsc::XDIM, 31, 119, 62, true); + ccs.push_back(separation140664475522928); + + AlignmentConstraint *alignment140664475523072 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475523072->addShape(32, 0); + alignment140664475523072->addShape(120, 0); + ccs.push_back(alignment140664475523072); + + SeparationConstraint *separation140664475523296 = new SeparationConstraint(vpsc::XDIM, 32, 120, 62, true); + ccs.push_back(separation140664475523296); + + AlignmentConstraint *alignment140664475523440 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475523440->addShape(33, 0); + alignment140664475523440->addShape(121, 0); + ccs.push_back(alignment140664475523440); + + SeparationConstraint *separation140664475523664 = new SeparationConstraint(vpsc::XDIM, 33, 121, 62, true); + ccs.push_back(separation140664475523664); + + AlignmentConstraint *alignment140664475523808 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475523808->addShape(34, 0); + alignment140664475523808->addShape(122, 0); + ccs.push_back(alignment140664475523808); + + SeparationConstraint *separation140664475524032 = new SeparationConstraint(vpsc::YDIM, 34, 122, -50, true); + ccs.push_back(separation140664475524032); + + AlignmentConstraint *alignment140664475524176 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475524176->addShape(35, 0); + alignment140664475524176->addShape(123, 0); + ccs.push_back(alignment140664475524176); + + SeparationConstraint *separation140664475524400 = new SeparationConstraint(vpsc::YDIM, 35, 123, -50, true); + ccs.push_back(separation140664475524400); + + AlignmentConstraint *alignment140664475524544 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475524544->addShape(36, 0); + alignment140664475524544->addShape(124, 0); + ccs.push_back(alignment140664475524544); + + SeparationConstraint *separation140664475524768 = new SeparationConstraint(vpsc::YDIM, 36, 124, -50, true); + ccs.push_back(separation140664475524768); + + AlignmentConstraint *alignment140664475524912 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475524912->addShape(37, 0); + alignment140664475524912->addShape(125, 0); + ccs.push_back(alignment140664475524912); + + SeparationConstraint *separation140664475525136 = new SeparationConstraint(vpsc::YDIM, 37, 125, -50, true); + ccs.push_back(separation140664475525136); + + AlignmentConstraint *alignment140664475525280 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475525280->addShape(38, 0); + alignment140664475525280->addShape(126, 0); + ccs.push_back(alignment140664475525280); + + SeparationConstraint *separation140664475525504 = new SeparationConstraint(vpsc::YDIM, 38, 126, -50, true); + ccs.push_back(separation140664475525504); + + AlignmentConstraint *alignment140664475525648 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475525648->addShape(40, 0); + alignment140664475525648->addShape(127, 0); + ccs.push_back(alignment140664475525648); + + SeparationConstraint *separation140664475525872 = new SeparationConstraint(vpsc::YDIM, 40, 127, -50, true); + ccs.push_back(separation140664475525872); + + AlignmentConstraint *alignment140664475526016 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475526016->addShape(41, 0); + alignment140664475526016->addShape(128, 0); + ccs.push_back(alignment140664475526016); + + SeparationConstraint *separation140664475526240 = new SeparationConstraint(vpsc::XDIM, 41, 128, 62, true); + ccs.push_back(separation140664475526240); + + AlignmentConstraint *alignment140664475526384 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475526384->addShape(42, 0); + alignment140664475526384->addShape(129, 0); + ccs.push_back(alignment140664475526384); + + SeparationConstraint *separation140664475526608 = new SeparationConstraint(vpsc::YDIM, 42, 129, -50, true); + ccs.push_back(separation140664475526608); + + AlignmentConstraint *alignment140664475526752 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475526752->addShape(43, 0); + alignment140664475526752->addShape(130, 0); + ccs.push_back(alignment140664475526752); + + SeparationConstraint *separation140664475526976 = new SeparationConstraint(vpsc::YDIM, 43, 130, -50, true); + ccs.push_back(separation140664475526976); + + AlignmentConstraint *alignment140664475527120 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475527120->addShape(44, 0); + alignment140664475527120->addShape(131, 0); + ccs.push_back(alignment140664475527120); + + SeparationConstraint *separation140664475527344 = new SeparationConstraint(vpsc::YDIM, 44, 131, -50, true); + ccs.push_back(separation140664475527344); + + AlignmentConstraint *alignment140664475527488 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475527488->addShape(45, 0); + alignment140664475527488->addShape(132, 0); + ccs.push_back(alignment140664475527488); + + SeparationConstraint *separation140664475527712 = new SeparationConstraint(vpsc::YDIM, 45, 132, -50, true); + ccs.push_back(separation140664475527712); + + AlignmentConstraint *alignment140664475527856 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475527856->addShape(46, 0); + alignment140664475527856->addShape(133, 0); + ccs.push_back(alignment140664475527856); + + SeparationConstraint *separation140664475528080 = new SeparationConstraint(vpsc::YDIM, 46, 133, -50, true); + ccs.push_back(separation140664475528080); + + AlignmentConstraint *alignment140664475528224 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475528224->addShape(47, 0); + alignment140664475528224->addShape(134, 0); + ccs.push_back(alignment140664475528224); + + SeparationConstraint *separation140664475528448 = new SeparationConstraint(vpsc::YDIM, 47, 134, -50, true); + ccs.push_back(separation140664475528448); + + AlignmentConstraint *alignment140664475528592 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475528592->addShape(77, 0); + alignment140664475528592->addShape(135, 0); + ccs.push_back(alignment140664475528592); + + SeparationConstraint *separation140664475528816 = new SeparationConstraint(vpsc::YDIM, 77, 135, -50, true); + ccs.push_back(separation140664475528816); + + AlignmentConstraint *alignment140664475528960 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475528960->addShape(78, 0); + alignment140664475528960->addShape(136, 0); + ccs.push_back(alignment140664475528960); + + SeparationConstraint *separation140664475529184 = new SeparationConstraint(vpsc::YDIM, 78, 136, -50, true); + ccs.push_back(separation140664475529184); + + AlignmentConstraint *alignment140664475529328 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475529328->addShape(79, 0); + alignment140664475529328->addShape(137, 0); + ccs.push_back(alignment140664475529328); + + SeparationConstraint *separation140664475529552 = new SeparationConstraint(vpsc::YDIM, 79, 137, -50, true); + ccs.push_back(separation140664475529552); + + AlignmentConstraint *alignment140664475529696 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475529696->addShape(81, 0); + alignment140664475529696->addShape(138, 0); + ccs.push_back(alignment140664475529696); + + SeparationConstraint *separation140664475529920 = new SeparationConstraint(vpsc::XDIM, 81, 138, 62, true); + ccs.push_back(separation140664475529920); + + AlignmentConstraint *alignment140664475530064 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475530064->addShape(82, 0); + alignment140664475530064->addShape(139, 0); + ccs.push_back(alignment140664475530064); + + SeparationConstraint *separation140664475530288 = new SeparationConstraint(vpsc::YDIM, 82, 139, -50, true); + ccs.push_back(separation140664475530288); + + AlignmentConstraint *alignment140664475530432 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475530432->addShape(83, 0); + alignment140664475530432->addShape(140, 0); + ccs.push_back(alignment140664475530432); + + SeparationConstraint *separation140664475530656 = new SeparationConstraint(vpsc::YDIM, 83, 140, -50, true); + ccs.push_back(separation140664475530656); + + AlignmentConstraint *alignment140664475530800 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475530800->addShape(84, 0); + alignment140664475530800->addShape(141, 0); + ccs.push_back(alignment140664475530800); + + SeparationConstraint *separation140664475531024 = new SeparationConstraint(vpsc::YDIM, 84, 141, -50, true); + ccs.push_back(separation140664475531024); + + AlignmentConstraint *alignment140664475531168 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475531168->addShape(85, 0); + alignment140664475531168->addShape(142, 0); + ccs.push_back(alignment140664475531168); + + SeparationConstraint *separation140664475531392 = new SeparationConstraint(vpsc::XDIM, 85, 142, 62, true); + ccs.push_back(separation140664475531392); + + AlignmentConstraint *alignment140664475531536 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475531536->addShape(87, 0); + alignment140664475531536->addShape(143, 0); + ccs.push_back(alignment140664475531536); + + SeparationConstraint *separation140664475531760 = new SeparationConstraint(vpsc::YDIM, 87, 143, -50, true); + ccs.push_back(separation140664475531760); + + AlignmentConstraint *alignment140664475531904 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475531904->addShape(88, 0); + alignment140664475531904->addShape(144, 0); + ccs.push_back(alignment140664475531904); + + SeparationConstraint *separation140664475532128 = new SeparationConstraint(vpsc::YDIM, 88, 144, -50, true); + ccs.push_back(separation140664475532128); + + AlignmentConstraint *alignment140664475532272 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475532272->addShape(90, 0); + alignment140664475532272->addShape(145, 0); + ccs.push_back(alignment140664475532272); + + SeparationConstraint *separation140664475532496 = new SeparationConstraint(vpsc::YDIM, 90, 145, -50, true); + ccs.push_back(separation140664475532496); + + AlignmentConstraint *alignment140664475532640 = new AlignmentConstraint(vpsc::YDIM, 0); + alignment140664475532640->addShape(91, 0); + alignment140664475532640->addShape(146, 0); + ccs.push_back(alignment140664475532640); + + SeparationConstraint *separation140664475532864 = new SeparationConstraint(vpsc::XDIM, 91, 146, 62, true); + ccs.push_back(separation140664475532864); + + AlignmentConstraint *alignment140664475533008 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475533008->addShape(92, 0); + alignment140664475533008->addShape(147, 0); + ccs.push_back(alignment140664475533008); + + SeparationConstraint *separation140664475533232 = new SeparationConstraint(vpsc::YDIM, 92, 147, -50, true); + ccs.push_back(separation140664475533232); + + AlignmentConstraint *alignment140664475533376 = new AlignmentConstraint(vpsc::XDIM, 0); + alignment140664475533376->addShape(93, 0); + alignment140664475533376->addShape(148, 0); + ccs.push_back(alignment140664475533376); + + SeparationConstraint *separation140664475533600 = new SeparationConstraint(vpsc::YDIM, 93, 148, -50, true); + ccs.push_back(separation140664475533600); + + RootCluster *cluster140664475533920 = new RootCluster(); + + RectangularCluster *cluster140664475534416 = new RectangularCluster(5); + cluster140664475534416->addChildNode(149); + cluster140664475534416->addChildNode(150); + cluster140664475534416->addChildNode(151); + cluster140664475534416->addChildNode(152); + cluster140664475533920->addChildCluster(cluster140664475534416); + + RectangularCluster *cluster140664475535040 = new RectangularCluster(6); + cluster140664475535040->addChildNode(153); + cluster140664475533920->addChildCluster(cluster140664475535040); + + RectangularCluster *cluster140664475535648 = new RectangularCluster(15); + cluster140664475533920->addChildCluster(cluster140664475535648); + + RectangularCluster *cluster140664475535952 = new RectangularCluster(17); + cluster140664475535952->addChildNode(154); + cluster140664475535952->addChildNode(155); + cluster140664475533920->addChildCluster(cluster140664475535952); + + RectangularCluster *cluster140664475536320 = new RectangularCluster(21); + cluster140664475536320->addChildNode(156); + cluster140664475533920->addChildCluster(cluster140664475536320); + + RectangularCluster *cluster140664475536720 = new RectangularCluster(39); + cluster140664475533920->addChildCluster(cluster140664475536720); + + RectangularCluster *cluster140664475537056 = new RectangularCluster(80); + cluster140664475537056->addChildNode(157); + cluster140664475533920->addChildCluster(cluster140664475537056); + + ConstrainedFDLayout alg(rs, es, defaultEdgeLength); + alg.setAvoidNodeOverlaps(true); + alg.setClusterHierarchy(cluster140664475533920); + alg.setConstraints(ccs); + alg.makeFeasible(); + + alg.outputInstanceToSVG("test-rectclustershapecontainment"); + //alg.run(); + alg.freeAssociatedObjects(); + + return 0; +}; diff --git a/src/3rdparty/adaptagrams/libcola/tests/resize.cpp b/src/3rdparty/adaptagrams/libcola/tests/resize.cpp new file mode 100644 index 0000000..97c2e9d --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/resize.cpp @@ -0,0 +1,132 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + +/** \file nodedragging.cpp + * + * tests interaction with layout and solver. We have a number of disconnected + * shapes. One shape is "dragged" through the others. Overlaps should be + * avoided. + */ +/* +* Authors: +* Tim Dwyer <tgdwyer@gmail.com> +*/ +#include <iostream> +#include <iomanip> +#include <fstream> + +#include <vector> +#include <valarray> +#include <algorithm> +#include <float.h> +#include <libcola/cola.h> +#include <libtopology/topology_graph.h> +#include <libproject/project.h> +#include "graphlayouttest.h" +using namespace std; +using namespace cola; + +string outFName="resize"; + +topology::Node* addNode( + topology::Nodes& vs, vpsc::Rectangle* r) { + topology::Node *v = new topology::Node(vs.size(), r); + vs.push_back(v); + return v; +} +void addToPath(topology::EdgePoints& ps, topology::Node *v, topology::EdgePoint::RectIntersect i) { + ps.push_back(new topology::EdgePoint(v,i)); +} +struct Test : TestConvergence { + Test(const double d,const unsigned i,topology::Nodes& vs, topology::Edges& es) : TestConvergence(d,i), vs(vs), es(es), iter(1) {} + bool operator()(const double new_stress, valarray<double> & X, valarray<double> & Y) { + bool converged = TestConvergence::operator()(new_stress,X,Y); + if(converged) { + cout << "stress="<<new_stress<<" iteration="<<iter<<endl; + stringstream ss; + ss<<outFName<<"-"<< setfill('0') << setw(3) << iter++ << ".svg"; + writeFile(vs,es,ss.str()); + } + return converged; + } + double lastStress; + topology::Nodes& vs; + topology::Edges& es; + int iter; +}; + +void resize() { +//printf( +//"tests resizing of a shape. We have a number of disconnected" +//"shapes. One shape is 'enlarged'. Overlaps should be" +//"avoided." +//"\n"); + const unsigned V = 9; + Edge edge_array[] = { Edge(0, 1), Edge(1, 2), Edge(2, 0) }; + const std::size_t E = sizeof(edge_array) / sizeof(Edge); + vector<Edge> es(edge_array,edge_array+E); + vector<vpsc::Rectangle*> rs; + const double w=54, h=34; + const double + x[]={406, 444, 474, 406, 441, 375, 408, 373, 339}, + y[]={279, 224, 179, 92, 135, 135, 179, 226, 179}; + const unsigned resizeID=6; + for(unsigned i=0;i<V;++i) { + rs.push_back(new vpsc::Rectangle(x[i],x[i]+w,y[i],y[i]+h)); + } + double idealLength=60; + // set up topology graph + topology::Nodes vs; + for(vector<Rectangle*>::iterator i = rs.begin(); i!=rs.end();++i) { + addNode(vs,*i); + } + topology::Edges tes; + writeFile(vs,tes,outFName+"-000.svg"); + + Resizes resize; + vpsc::Rectangle* r=rs[resizeID]; + resize.push_back(Resize(resizeID,r->getCentreX()-30, r->getCentreY()-30, + r->width()+60,r->height()+60)); + PreIteration preIteration(resize); + Test test(0.00001,100,vs,tes); + ConstrainedFDLayout alg(rs,es,idealLength,nullptr,test,&preIteration); + alg.setTopology(&vs,&tes); + + alg.run(true,true); + + double finalStress=alg.computeStress(); + printf("finalStress=%f\n",finalStress); + + //assert(finalStress<1e-5); + for_each(rs.begin(),rs.end(),delete_object()); + for_each(tes.begin(),tes.end(),delete_object()); + for_each(vs.begin(),vs.end(),delete_object()); +} +int main() { + resize(); + return 0; +} +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4:textwidth=80 : + diff --git a/src/3rdparty/adaptagrams/libcola/tests/runtest.sh b/src/3rdparty/adaptagrams/libcola/tests/runtest.sh new file mode 100755 index 0000000..2ee1526 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/runtest.sh @@ -0,0 +1,8 @@ +#!/bin/bash +r=0 +while [ $r == 0 ] +do + ./beautify + r=$? + echo result=$r +done diff --git a/src/3rdparty/adaptagrams/libcola/tests/scale_free.cpp b/src/3rdparty/adaptagrams/libcola/tests/scale_free.cpp new file mode 100644 index 0000000..d9c2934 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/scale_free.cpp @@ -0,0 +1,135 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + +// generates a random graph with a power-law distribution of node degrees +// the algorithm is pretty much the Barabasi-Albert model but with an extra step +// so that I can guarantee the number of nodes in the graph. +// We begin with an initial chain of m nodes. +// Then, we add new nodes, connecting them to existing nodes v with probability +// degree(v)/(sum all degrees) +// We perform an extra step, looking for disconnected nodes, connecting them +// to other nodes again with probability dependent on degree +#include<iostream> +#include<vector> +#include <cmath> +#include <time.h> +#include <valarray> + +#include "graphlayouttest.h" + +void scale_free(const unsigned n = 50) { + const unsigned m = 3; // begin with a chain of m nodes + const double g=0.08; // edge density, every time we add a node we add 1+g*rand(0-1) edges + // connecting them to existing nodes with probability based on degree + unsigned d[n]; + double defaultEdgeLength=100; + vector<Edge> es; + CompoundConstraints cx,cy; + for(unsigned i=0;i<n;i++) { + d[i]=0; + } + unsigned sumdegree=0; + for(unsigned i=1;i<m;i++) { + es.push_back(make_pair(i-1,i)); + d[i]++;d[i-1]++; + sumdegree+=2; + } + srand(3); + for(unsigned i=2;i<n;i++) { + for(unsigned j=0;j<i;j++) { + double p=(double)d[j]/(double)sumdegree; + double r=(double)rand()/(double)RAND_MAX; + if(r*p>g) { + es.push_back(make_pair(j,i)); + d[j]++;d[i]++; + sumdegree+=2; + } + } + } + for(unsigned i=0;i<n;i++) { + if(d[i]==0) { + double maxP=0; + unsigned end=0; + for(unsigned j=0;j<n;j++) { + if(j==i) continue; + double p=(double)d[j]/(double)sumdegree; + double r=(double)rand()/(double)RAND_MAX; + if(r*p>maxP) { + maxP=r*p; + end=j; + } + } + if(end>i) { + es.push_back(make_pair(i,end)); + } else { + es.push_back(make_pair(end,i)); + } + d[end]++;d[i]++; + sumdegree+=2; + } + } + valarray<double> eweights(es.size()); + sort(d,d+n); + unsigned degree=0,ctr=0; + printf("degree distribution:\n"); + for(unsigned i=0;i<n;i++) { + if(degree!=d[i]) { + if(degree!=0) printf("%d,%d\n",degree,ctr); + degree=d[i]; + ctr=0; + } + ctr++; + } + printf("%d,%d\n",degree,ctr); + for(unsigned i=0;i<es.size();i++) { + unsigned a=es[i].first, b=es[i].second; + eweights[i]=1; + cy.push_back(new SeparationConstraint(a,b,defaultEdgeLength/3)); + } + + cout << "|V|="<<n<<endl; + double width=1000; + double height=1000; + vector<pair<double,double> > startpos(n); + for(unsigned i=0;i<n;i++) { + double x=getRand(width), y=getRand(height); + startpos[i]=make_pair(x,y); + } + const char *f="scalefree"; + //run_test(startpos,es,defaultEdgeLength,cx,cy,CG,false,f,"cg"); + //run_test(startpos,es,defaultEdgeLength,cx,cy,IP,false,f,"ip"); + //run_test(startpos,es,defaultEdgeLength,cx,cy,UGP,false,f,"ugp"); + //run_test(startpos,es,defaultEdgeLength,cx,cy,SGP,false,f,"sgp"); + //run_test(startpos,es,defaultEdgeLength,cx,cy,IP,true,f,"cip"); + //run_test(startpos,es,defaultEdgeLength,cx,cy,UGP,true,f,"cugp"); + run_test(startpos,es,defaultEdgeLength,cx,cy,SGP,true,f,"csgp"); +} +int main() { + for(unsigned i=1;i<2;i++) { + scale_free(i*50); + } + return 0; +} +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4:textwidth=99 : diff --git a/src/3rdparty/adaptagrams/libcola/tests/shortest_paths.cpp b/src/3rdparty/adaptagrams/libcola/tests/shortest_paths.cpp new file mode 100644 index 0000000..617f136 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/shortest_paths.cpp @@ -0,0 +1,140 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + +#include <fstream> +#include <iostream> +#include <iomanip> +//#define TEST_AGAINST_BOOST +#ifdef TEST_AGAINST_BOOST +#include <boost/config.hpp> +#include <boost/property_map.hpp> +#include <boost/graph/adjacency_list.hpp> +#include <boost/graph/graphviz.hpp> +#include <boost/graph/johnson_all_pairs_shortest.hpp> +using namespace boost; +#endif // TEST_AGAINST_BOOST +#include <libcola/shortest_paths.h> +#include <cmath> +#include <time.h> +#include <assert.h> + +using namespace std; +// creates a (not necessarily connected random graph) with n nodes. +vector<shortest_paths::Edge> random_graph(unsigned n) { + vector<shortest_paths::Edge> edges; + for(unsigned i=0;i<n;i++) { + for(unsigned j=i+1;j<n;j++) { + double r=(double)rand()/(double)RAND_MAX; + if(r < 0.1) { + edges.push_back(make_pair(i,j)); + } + } + } + + return edges; +} +clock_t lastTime; +static void resetClock() { + lastTime=clock(); +} +static double getRunTime() { + clock_t time = clock()-lastTime; + return (double)time/(double)CLOCKS_PER_SEC; +} + +int +main(void) +{ + bool dump=false; + srand(time(0)); +#ifdef TEST_AGAINST_BOOST + typedef adjacency_list<vecS, vecS, undirectedS, no_property, + property< edge_weight_t, double, property< edge_weight2_t, double > > > Graph; + Graph g; +#endif + unsigned V = 100; + vector<shortest_paths::Edge> es = random_graph(V); + unsigned E=es.size(); + cout << " Test graph |V|="<<V<<",|E|="<<E<<endl; + valarray<double> weights(E); + for(unsigned i=0;i<E;i++) { + weights[i]=round((static_cast<double>(rand())/static_cast<double>(RAND_MAX))*10); +#ifdef TEST_AGAINST_BOOST + add_edge(es[i].first,es[i].second,weights[i],g); +#endif + } + +#ifdef TEST_AGAINST_BOOST + vector < double >d(V, (numeric_limits < double >::max)()); + typedef vector<double> weight_vec; + vector<weight_vec> D(V,weight_vec(V)); + cout<<"Running boost::johnson_all_pairs_shortest_paths..."<<endl; + resetClock(); + johnson_all_pairs_shortest_paths(g, D, distance_map(&d[0])); + cout<<" ...done, time="<<getRunTime()<<endl; +#endif + double** D1=new double*[V]; + for(unsigned i=0;i<V;i++) { + D1[i]=new double[V]; + } + cout<<"Running shortest_paths::johnsons..."<<endl; + resetClock(); + shortest_paths::johnsons(V,D1,es,weights); + cout<<" ...done, time="<<getRunTime()<<endl; + double** D2=new double*[V]; + for(unsigned i=0;i<V;i++) { + D2[i]=new double[V]; + } + cout<<"Running shortest_paths::floyd_warshall..."<<endl; + resetClock(); + shortest_paths::floyd_warshall(V,D2,es,weights); + cout<<" ...done, time="<<getRunTime()<<endl; + + for (unsigned int i = 0; i < V; ++i) { + if(dump) cout << i << " -> "; + for (unsigned int j = 0; j < V; ++j) { + if(dump) cout << setw(5) << D1[i][j]; + assert(D1[i][j]==D2[i][j]); +#ifdef TEST_AGAINST_BOOST + assert(D[i][j]==D2[i][j]); +#endif + } + if(dump) cout << endl; + } +#ifdef TEST_AGAINST_BOOST + if(dump) { + ofstream fout("figs/johnson-eg.dot"); + fout << "graph A {\n" << "node[shape=\"circle\"]\n"; + + graph_traits < Graph >::edge_iterator ei, ei_end; + for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) + fout << source(*ei, g) << " -- " << target(*ei, g) + << "[label=" << get(edge_weight, g)[*ei] << "]\n"; + + fout << "}\n"; + } +#endif + return 0; +} diff --git a/src/3rdparty/adaptagrams/libcola/tests/small_graph.cpp b/src/3rdparty/adaptagrams/libcola/tests/small_graph.cpp new file mode 100644 index 0000000..53103c9 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/small_graph.cpp @@ -0,0 +1,111 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + +// Loads a graph from a text file, generates constraints for each edge requiring them +// to point downwards, and proceeds to produce a layout using libcola. +// The input file format is 2 numeric node labels per line separated by a space, +// each pair representing a directed edge. Node labels are simply used as array +// offsets so they should start from 0. +// The graph should be connected. +// Default input file is the matrix market 1138_bus graph. +// Running times: +// no constraints - steepest descent solver: 149 seconds +// no constraints - conjugate gradient solver: 21.7 seconds +// dir-edge constraints - conj grad. solver: 155.69 seconds +#include<iostream> +#include<iomanip> +#include<fstream> +#include<vector> +#include<valarray> +#include<libcola/output_svg.h> +#include<graphlayouttest.h> + +using namespace std; +using namespace cola; + +struct CheckProgress : TestConvergence { + CheckProgress(const double d,const unsigned i) : TestConvergence(d,i) {} + bool operator()(const double new_stress, valarray<double> & X, valarray<double> & Y) { + cout << "stress="<<new_stress<<endl; + return TestConvergence::operator()(new_stress,X,Y); + } +}; +int main() { + const char *fname="data/wheel.txt"; //"data/dg_850.txt"; + ifstream f(fname); + if(!f.is_open()) { + cout << "Error opening file: " << fname << endl; + exit(1); + } + string startlabel, endlabel; + unsigned V = 0; + double defaultEdgeLength=40; + vector<Edge> es; + CompoundConstraints cy; + //CompoundConstraints cx; + while(!getline(f,startlabel,' ').eof()) { + getline(f,endlabel); + unsigned start = atoi(startlabel.c_str()), + end = atoi(endlabel.c_str()); + es.push_back(make_pair(start,end)); + //cx.push_back( + //new SeparationConstraint(start,end,defaultEdgeLength/3)); + cy.push_back( + new SeparationConstraint(start,end,defaultEdgeLength/3)); + V=max(V,max(start,end)); + } + V++; + cout << "V="<<V<<endl; + double width=1000; + double height=1000; + vector<vpsc::Rectangle*> rs; + //srand(time(nullptr)); + for(unsigned i=0;i<V;i++) { + double x=getRand(width), y=getRand(height); + rs.push_back(new vpsc::Rectangle(x,x+1,y,y+1)); + } + CheckProgress test(0.001,100); + clock_t starttime=clock(); + ConstrainedMajorizationLayout alg(rs,es,nullptr,defaultEdgeLength,nullptr,test); + bool constrained=false; + if(!constrained) { + cout << "Unconstrained layout" << endl; + alg.setConstrainedLayout(true); + alg.run(); + } else { + cout << "Constrained layout" << endl; + //alg.setXConstraints(&cx); + alg.setYConstraints(&cy); + alg.run(); + } + double t=double(clock()-starttime)/double(CLOCKS_PER_SEC); + cout<<"Time="<<t<<endl; + output_svg(rs,es,nullptr,"small_graph.svg",true); + for(unsigned i=0;i<V;i++) { + delete rs[i]; + } + return 0; +} +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4:textwidth=99 : diff --git a/src/3rdparty/adaptagrams/libcola/tests/sparse_matrix.cpp b/src/3rdparty/adaptagrams/libcola/tests/sparse_matrix.cpp new file mode 100644 index 0000000..099fcf3 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/sparse_matrix.cpp @@ -0,0 +1,88 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + +#include <map> +#include <valarray> +#include <libcola/sparse_matrix.h> +#include <boost/numeric/ublas/matrix_sparse.hpp> +#include <boost/numeric/ublas/vector.hpp> +#include <boost/numeric/ublas/io.hpp> +#include <time.h> +#include <cmath> + +using namespace boost::numeric::ublas; +int sparse_test(const unsigned n, cola::SparseMatrix::SparseMap& cm, mapped_matrix<double>& bm) { + printf("Sparse test..."); + srand(time(0)); + for (unsigned i = 0; i < n; ++ i) { + for (unsigned j = 0; j < n; ++ j) { + double r=(double)rand()/(double)RAND_MAX; + double s=(double)rand()/(double)RAND_MAX; + if(r < 0.2) { + cm[std::make_pair(i,j)] = s; + bm (i, j) = s; + } + } + } +} +int dense_test(const unsigned n, cola::SparseMatrix::SparseMap& cm, mapped_matrix<double>& bm) { + printf("Dense test..."); + for (unsigned i = 0; i < n; ++ i) { + for (unsigned j = 0; j < n; ++ j) { + bm (i, j) = n * i + j; + cm[std::make_pair(i,j)]=bm(i,j); + } + } +} + +void test(int (*generate)(const unsigned, cola::SparseMatrix::SparseMap&, mapped_matrix<double>&)) { + using std::valarray; + const unsigned n = 20; + mapped_matrix<double> bm (n, n, n * n); + cola::SparseMatrix::SparseMap cm; + generate(n,cm,bm); + vector<double> bv (n); + valarray<double> cv(n); + for (unsigned i = 0; i < n; ++ i) { + bv(i) = i; + cv[i] = i; + } + vector<double> br(n); + valarray<double> cr(n); + cola::SparseMatrix a(cm,n); + br=prod(bm,bv); + a.rightMultiply(cv,cr); + for (unsigned i = 0; i < n; ++ i) { + assert(fabs(cr[i]-br(i))<0.000001); + } + printf(" passed!\n"); +} +int main() { + test(&dense_test); + test(&sparse_test); + return 0; +} + +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4 : diff --git a/src/3rdparty/adaptagrams/libcola/tests/test_cg.cpp b/src/3rdparty/adaptagrams/libcola/tests/test_cg.cpp new file mode 100644 index 0000000..13e7d02 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/test_cg.cpp @@ -0,0 +1,164 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + +#include <stdio.h> +#include <cassert> +#include <libcola/conjugate_gradient.h> +#include <gsl/gsl_linalg.h> + +using std::valarray; + +static valarray<double> +outer_prod(valarray<double> x, valarray<double> y) { + valarray<double> result(x.size()*y.size()); + for(int j = 0; j < x.size(); j++) { + for(int i = 0; i < y.size(); i++) { + result[j*y.size() + i] = x[j]*y[i]; + } + } + return result; +} + +static double +uniform() { + return double(rand())/ RAND_MAX; +} + +static void +matrix_times_vector(valarray<double> const &matrix, /* m * n */ + valarray<double> const &vec, /* n */ + valarray<double> &result) /* m */ +{ + unsigned n = vec.size(); + unsigned m = result.size(); + assert(m*n == matrix.size()); + const double* mp = &matrix[0]; + for (unsigned i = 0; i < m; i++) { + double res = 0; + for (unsigned j = 0; j < n; j++) + res += *mp++ * vec[j]; + result[i] = res; + } +} + +static double +Linfty(valarray<double> const &vec) { + return std::max(vec.max(), -vec.min()); +} + +int +main (void) +{ + double tolerance = 1e-6; + for(int iters = 0; iters < 100; iters++) { + const unsigned N = unsigned(uniform()*40) + 1; + double A_data[N*N]; + printf("%ux%u matrix\n", N,N); + for(int r = 0; r < N; r++) { + for(int c = 0; c <= r; c++) { + A_data[r*N + c] = A_data[c*N + r] = fabs(uniform()); + } + } + + double * A_c[N]; + for(int i = 0; i < N; i++) + A_c[i] = &A_data[N*i]; + + double b_data[N]; + for(int i = 0; i < N; i++) + b_data[i] = uniform()*3; + std::valarray<double> b(b_data, N), xx(0.0, N); + std::valarray<double> A(A_data, N*N); + + conjugate_gradient(A, xx, b, N, tolerance, 2*N); + + gsl_matrix_view m + = gsl_matrix_view_array (A_data, N, N); + gsl_vector_view bgsl + = gsl_vector_view_array (b_data, N); + + gsl_vector *xgsl = gsl_vector_alloc (N); + + int s; + + gsl_permutation * p = gsl_permutation_alloc (N); + + gsl_linalg_LU_decomp (&m.matrix, p, &s); + + gsl_linalg_LU_solve (&m.matrix, p, &bgsl.vector, xgsl); + + std::valarray<double> gsl_xx(0.0, N); + for(unsigned i = 0; i < xx.size(); i++) { + gsl_xx[i] = gsl_vector_get(xgsl, i); + } + + double err = Linfty(xx - gsl_xx); + printf ("|xx-nxgsl|_infty = %g\n", err); + if(err > tolerance) { +#if 0 //dubious value + for(int r = 0; r < N; r++) { + for(int c = 0; c < N; c++) { + printf("%g ", A_data[r*N + c]); + } + printf("\n"); + } +#endif + printf("\nx njh-cg = \n"); + for(unsigned i = 0; i < xx.size(); i++) + printf("%g ", xx[i]); + printf("\nxgsl = "); + for(unsigned i = 0; i < xx.size(); i++) + printf("%g ", gsl_xx[i]); + printf("\n"); + valarray<double> result(0.0,N); + matrix_times_vector(A, xx, result); + result -= b; + printf("\nA xx -b = "); + for(unsigned i = 0; i < xx.size(); i++) + printf("%g ", result[i]); + printf("\n"); + matrix_times_vector(A, gsl_xx, result); + result -= b; + printf("\nA gsl_xx -b = "); + for(unsigned i = 0; i < xx.size(); i++) + printf("%g ", result[i]); + printf("\n"); + + printf("FAILED!!!!!!!!!!!!!!!!!!!!!!!!\n"); + exit(1); + } + } + return 0; +} +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4 diff --git a/src/3rdparty/adaptagrams/libcola/tests/topology.cpp b/src/3rdparty/adaptagrams/libcola/tests/topology.cpp new file mode 100644 index 0000000..4c94ef7 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/topology.cpp @@ -0,0 +1,177 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + +/** \file topology.cpp + * + * tests topology preserving layout. graph is a triangle. + * We have a fourth disconnected node starting inside the triangle. + * We give the disconnected node a desired position outside the triangle + * and begin layout. Layout should converge to near zero stress as all + * edges should be able to reach their desired lengths, and disconnected + * node should still be inside the triangle at the end. + * + * + * Authors: + * Tim Dwyer <tgdwyer@gmail.com> + */ +#include <iostream> +#include <iomanip> +#include <fstream> + +#include <vector> +#include <valarray> +#include <algorithm> +#include <float.h> +#include <libcola/cola.h> +#include <libtopology/topology_graph.h> +#include "graphlayouttest.h" +using namespace std; +using namespace cola; + +topology::Node* addNode( + topology::Nodes& vs, vpsc::Rectangle* r) { + topology::Node *v = new topology::Node(vs.size(), r); + vs.push_back(v); + return v; +} +void addToPath(topology::EdgePoints& ps, topology::Node *v, topology::EdgePoint::RectIntersect i) { + ps.push_back(new topology::EdgePoint(v,i)); +} +struct SetDesiredPos : public PreIteration { + SetDesiredPos(Locks& locks) : PreIteration(locks) {} + bool operator()() { + return true; + } +}; +void writeFile(const topology::Nodes& vs, const topology::Edges& es, const char *outputFileName) { + const unsigned n=vs.size(); + vector<cola::Edge> cedges; + + for(unsigned i=0;i<es.size();i++) { + cedges.push_back(make_pair(1,2)); + } + + vector<straightener::Route*> routes; + for(topology::Edges::const_iterator e=es.begin();e!=es.end();++e) { + routes.push_back((*e)->getRoute()); + } + + vector<string> labels(n); + for(unsigned i=0;i<n;++i) { + stringstream ss; + ss << i; + labels[i]=ss.str(); + } + + vector<vpsc::Rectangle*> rs; + for(topology::Nodes::const_iterator i=vs.begin();i!=vs.end();++i) { + rs.push_back((*i)->rect); + } + OutputFile of(rs,cedges,nullptr,outputFileName,true,false); + of.setLabels(labels); + of.routes=&routes; + of.generate(); + + for_each(routes.begin(),routes.end(),delete_object()); +} +struct Test : TestConvergence { + Test(const double d,const unsigned i,topology::Nodes& vs, topology::Edges& es) : TestConvergence(d,i), vs(vs), es(es) {} + bool operator()(const double new_stress, valarray<double> & X, valarray<double> & Y) { + cout << "stress="<<new_stress<<" iteration="<<iterations<<endl; + stringstream ss; + ss << "topology-" << setfill('0') << setw(3) << ++iterations << ".svg"; + writeFile(vs,es,ss.str().c_str()); + if(iterations<100) { + return false; + } + return true; + return TestConvergence::operator()(new_stress,X,Y); + } + double lastStress; + topology::Nodes& vs; + topology::Edges& es; +}; +void randomMove(int i) { + printf("We have a triangle of three connected nodes and a fourth disconnected node. We set the fourth node's desired position at a point some random direction outside the triangle.\n"); + printf("Using srand=%d\n",i); + srand(i); + const unsigned V = 4; + Edge edge_array[] = { Edge(0, 1), Edge(1, 2), Edge(2, 0) }; + const std::size_t E = sizeof(edge_array) / sizeof(Edge); + vector<Edge> es(edge_array,edge_array+E); + vector<vpsc::Rectangle*> rs; + double x[]={200,250,300,250},y[]={200,250,200,225},size=10; + for(unsigned i=0;i<V;++i) { + rs.push_back(new vpsc::Rectangle(x[i],x[i]+size,y[i],y[i]+size)); + } + double idealLength=60; + // set up topology graph + topology::Nodes vs; + for(vector<Rectangle*>::iterator i = rs.begin(); i!=rs.end();++i) { + addNode(vs,*i); + } + topology::Edges tes; + unsigned eID=0; + for(vector<Edge>::iterator e=es.begin();e!=es.end();++e, ++eID) { + topology::EdgePoints ps; + addToPath(ps,vs[e->first],topology::EdgePoint::CENTRE); + addToPath(ps,vs[e->second],topology::EdgePoint::CENTRE); + tes.push_back(new topology::Edge(eID, idealLength, ps)); + } + writeFile(vs,tes,"topology-000.svg"); + Locks locks; + // we move the 4th node somewhere outside the triangle. The triangle should be + // dragged along! + const double PI = 2.0*acos(0.0); + double angle = getRand(2.0*PI); + double dx=150*cos(angle), dy=150*sin(angle); + + double lx=rs[3]->getCentreX()+dx, + ly=rs[3]->getCentreY()+dy; + //double lx=353.886210, ly=342.789705; + locks.push_back(Lock(3,lx,ly)); + printf(" Lock: %f,%f\n",lx,ly); + SetDesiredPos preIteration(locks); + Test test(0.00001,100,vs,tes); + ConstrainedFDLayout alg(rs,es,idealLength,nullptr,test,&preIteration); + + alg.setTopology(&vs,&tes); + alg.run(true,true); + double finalStress=alg.computeStress(); + printf("finalStress=%f\n",finalStress); + + //assert(finalStress<1e-5); + for_each(rs.begin(),rs.end(),delete_object()); + for_each(tes.begin(),tes.end(),delete_object()); + for_each(vs.begin(),vs.end(),delete_object()); +} +int main() { + unsigned i=0; + for(;i<1;i++) { + randomMove(i); + } + return 0; +} +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4:textwidth=80 : diff --git a/src/3rdparty/adaptagrams/libcola/tests/trees.cpp b/src/3rdparty/adaptagrams/libcola/tests/trees.cpp new file mode 100644 index 0000000..72fb296 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/trees.cpp @@ -0,0 +1,103 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + +#include<iostream> +#include<vector> +#include <cmath> +#include <time.h> +#include <valarray> + +#include "graphlayouttest.h" + +using namespace std; +using namespace cola; + +void makeEdge(unsigned u, unsigned v, + vector<Edge> &edges, CompoundConstraints &cy) { + edges.push_back(make_pair(u,v)); + cy.push_back(new SeparationConstraint(u,v,20)); +} +vector<Edge> random_tree(unsigned depth, unsigned maxbranch, unsigned &V, + CompoundConstraints &cx, CompoundConstraints &cy) { + vector<Edge> edges; + unsigned lstart=0, lend=1; + V=0; + for(unsigned i=0;i<depth;i++) { + for(unsigned j=lstart;j<lend;j++) { + //makeEdge(j,++V,edges,cy); + //makeEdge(j,++V,edges,cy); + for(unsigned k=0;k<maxbranch;k++) { + double r=(double)rand()/(double)RAND_MAX; + if(r < 0.5) { + makeEdge(j,++V,edges,cy); + } + } + } + lstart=lend; + lend=V+1; + } + V++; + DFS::Graph dfs(V,edges); + for(unsigned i=1;i<dfs.order.size();i++) { + cx.push_back( + new SeparationConstraint(dfs.order[i-1],dfs.order[i],0.5)); + } + /* + for(unsigned i=0;i<dfs.leaves.size();i++) { + for(unsigned j=1;j<dfs.leaves[i].size();j++) { + cx.push_back( + new SeparationConstraint(dfs.leaves[i][j-1],dfs.leaves[i][j],10)); + } + } + */ + return edges; +} +int main() { + unsigned V; + CompoundConstraints cx,cy; + //srand(time(nullptr)); + srand(3); + vector<Edge> es = random_tree(7,4,V,cx,cy); + double defaultEdgeLength=40; + + cout << "V="<<V<<endl; + double width=1000; + double height=1000; + vector<pair<double,double> > startpos(V); + for(unsigned i=0;i<V;i++) { + double x=getRand(width), y=getRand(height); + startpos[i]=make_pair(x,y); + } + const char *testname="trees"; + run_test(startpos,es,defaultEdgeLength,cx,cy,CG,false,testname,"cg"); + run_test(startpos,es,defaultEdgeLength,cx,cy,IP,false,testname,"ip"); + run_test(startpos,es,defaultEdgeLength,cx,cy,SGP,false,testname,"sgp"); + run_test(startpos,es,defaultEdgeLength,cx,cy,UGP,false,testname,"ugp"); + run_test(startpos,es,defaultEdgeLength,cx,cy,IP,true,testname,"cip"); + run_test(startpos,es,defaultEdgeLength,cx,cy,SGP,true,testname,"csgp"); + run_test(startpos,es,defaultEdgeLength,cx,cy,UGP,true,testname,"cugp"); + return 0; +} +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4:textwidth=99 : diff --git a/src/3rdparty/adaptagrams/libcola/tests/unconstrained.cpp b/src/3rdparty/adaptagrams/libcola/tests/unconstrained.cpp new file mode 100644 index 0000000..f6f112b --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/unconstrained.cpp @@ -0,0 +1,71 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + +/** \file unconstrained.cpp + * + * Unconstrained graph layout test. Simple graph with 4 nodes and 4 edges, + * a triangle with a dangle. Final stress checked. + * + * + * Authors: + * Tim Dwyer <tgdwyer@gmail.com> + */ +#include <iostream> +#include <fstream> + +#include <vector> +#include <valarray> +#include <algorithm> +#include <float.h> +#include "graphlayouttest.h" +using namespace std; + +using namespace cola; +int main() { + + const unsigned V = 4; + Edge edge_array[] = { Edge(0, 1), Edge(1, 2), Edge(2, 3), Edge(1, 3) }; + const std::size_t E = sizeof(edge_array) / sizeof(Edge); + vector<Edge> es(E); + copy(edge_array,edge_array+E,es.begin()); + double width=100; + double height=100; + vector<vpsc::Rectangle*> rs; + for(unsigned i=0;i<V;i++) { + double x=getRand(width), y=getRand(height); + rs.push_back(new vpsc::Rectangle(x,x+5,y,y+5)); + } + CheckProgress test(1e-9,100); + ConstrainedFDLayout alg(rs,es,width/2,nullptr,&test); + alg.run(); + double stress = alg.computeStress(); + assert(stress < 0.0013); + OutputFile output(rs,es,nullptr,"unconstrained.svg"); + output.generate(); + for(unsigned i=0;i<V;i++) { + delete rs[i]; + } + return 0; +} diff --git a/src/3rdparty/adaptagrams/libcola/tests/unsatisfiable.cpp b/src/3rdparty/adaptagrams/libcola/tests/unsatisfiable.cpp new file mode 100644 index 0000000..4e768f7 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/unsatisfiable.cpp @@ -0,0 +1,85 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libcola - A library providing force-directed network layout using the + * stress-majorization method subject to separation constraints. + * + * Copyright (C) 2006-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file LICENSE; if not, + * write to the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * +*/ + + +/** \file + * Interface between Inkscape code (SPItem) and graphlayout functions. + * + * Authors: + * Tim Dwyer <tgdwyer@gmail.com> + */ +#include <iostream> + +#include <vector> +#include <algorithm> +#include <float.h> +#include <libcola/cola.h> +#include <libvpsc/exceptions.h> +#include <libvpsc/constraint.h> +#include "graphlayouttest.h" + +using namespace std; +using namespace cola; +int main() { + + const unsigned V = 2; + typedef pair < unsigned, unsigned >Edge; + Edge edge_array[] = { Edge(0, 1) }; + unsigned E = sizeof(edge_array) / sizeof(Edge); + vector<Edge> es(edge_array,edge_array+E); + double width=100; + double height=100; + vector<vpsc::Rectangle*> rs; + for(unsigned i=0;i<V;i++) { + double x=getRand(width), y=getRand(height); + rs.push_back(new vpsc::Rectangle(x,x+5,y,y+5)); + } + ConstrainedFDLayout alg(rs,es,width/2); + CompoundConstraints ccs; + AlignmentConstraint ac(vpsc::YDIM, 1); + ccs.push_back(&ac); + ac.addShape(0,0); + ac.addShape(1,0); + ccs.push_back(new SeparationConstraint(vpsc::YDIM, 0,1,10)); + alg.setConstraints(ccs); + try { + alg.run(); + } catch (vpsc::UnsatisfiableException& e) { + cerr << "Unsatisfiable" << endl; + for(vector<vpsc::Constraint*>::iterator i=e.path.begin(); + i!=e.path.end();i++) { + cout << **i << endl; + } + exit(1); + } + //assert(fabs(rs[0]->getCentreX()-rs[3]->getCentreX())<0.001); + cout<<rs[0]->getCentreX()<<","<<rs[1]->getCentreX()<<endl; + //output_svg(rs,es,"unsatisfiable.svg"); + for(unsigned i=0;i<V;i++) { + delete rs[i]; + } + return 0; +} +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4:textwidth=99 : diff --git a/src/3rdparty/adaptagrams/libcola/tests/view_cd_output.sh b/src/3rdparty/adaptagrams/libcola/tests/view_cd_output.sh new file mode 100755 index 0000000..cb74ae8 --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/view_cd_output.sh @@ -0,0 +1,43 @@ +#! /bin/bash + +if [ $# -lt 1 ] ; then + echo "Need case letter (eg: A) or ALL for all cases (CLEAN to delete)" + exit +else + CASE=$1 + shift +fi + +cd /home/kierans/libcola3/libcola/tests + +if [ $CASE == 'a' -o $CASE == 'A' ] ; then + inkview cycle_detector_case_a.svg +fi + +if [ $CASE == 'b' -o $CASE == 'B' ] ; then + inkview cycle_detector_case_b.svg +fi + +if [ $CASE == 'c' -o $CASE == 'C' ] ; then + inkview cycle_detector_case_c.svg +fi + +if [ $CASE == 'd' -o $CASE == 'D' ] ; then + inkview cycle_detector_case_d.svg +fi + +if [ $CASE == 'e' -o $CASE == 'E' ] ; then + inkview cycle_detector_case_e.svg +fi + +if [ $CASE == 'f' -o $CASE == 'F' ] ; then + inkview cycle_detector_case_f.svg +fi + +if [ $CASE == 'all' -o $CASE == 'ALL' ] ; then + inkview cycle_detector_case_a.svg cycle_detector_case_b.svg cycle_detector_case_c.svg cycle_detector_case_d.svg cycle_detector_case_e.svg cycle_detector_case_f.svg +fi + +if [ $CASE == 'clean' ] ; then + rm cycle_detector_case* -fv +fi diff --git a/src/3rdparty/adaptagrams/libcola/tests/view_mas_output.sh b/src/3rdparty/adaptagrams/libcola/tests/view_mas_output.sh new file mode 100755 index 0000000..11f5a8a --- /dev/null +++ b/src/3rdparty/adaptagrams/libcola/tests/view_mas_output.sh @@ -0,0 +1,43 @@ +#! /bin/bash + +if [ $# -lt 1 ] ; then + echo "Need case letter (eg: A) or ALL for all cases (CLEAN to delete)" + exit +else + CASE=$1 + shift +fi + +cd /home/kierans/libcola3/libcola/tests + +if [ $CASE == 'a' -o $CASE == 'A' ] ; then + inkview mas_case_a.svg +fi + +if [ $CASE == 'b' -o $CASE == 'B' ] ; then + inkview mas_case_b.svg +fi + +if [ $CASE == 'c' -o $CASE == 'C' ] ; then + inkview mas_case_c.svg +fi + +if [ $CASE == 'd' -o $CASE == 'D' ] ; then + inkview mas_case_d.svg +fi + +if [ $CASE == 'e' -o $CASE == 'E' ] ; then + inkview mas_case_e.svg +fi + +if [ $CASE == 'f' -o $CASE == 'F' ] ; then + inkview mas_case_f.svg +fi + +if [ $CASE == 'all' -o $CASE == 'ALL' ] ; then + inkview mas_case_a.svg mas_case_b.svg mas_case_c.svg mas_case_d.svg mas_case_e.svg mas_case_f.svg +fi + +if [ $CASE == 'clean' ] ; then + rm mas_case* -fv +fi |