In [8]:
import pandas as pd
import json
import random
import copy
In [9]:
from graphviz2drawio import graphviz2drawio
import xmltodict
import json
from dicttoxml import dicttoxml
import re
In [35]:
import pprint
In [39]:
colors = {   
    'blue': ['#e6f7ff', '#bae7ff', '#91d5ff', '#69c0ff', '#40a9ff', '#1890ff', '#096dd9', '#0050b3', '#003a8c', '#002766'],
    'cyan': ['#e6fffb', '#b5f5ec', '#87e8de', '#5cdbd3', '#36cfc9', '#13c2c2', '#08979c', '#006d75', '#00474f', '#002329'],
    'geekblue': ['#f0f5ff', '#d6e4ff', '#adc6ff', '#85a5ff', '#597ef7', '#2f54eb', '#1d39c4', '#10239e', '#061178', '#030852'],
    'gold': ['#fffbe6', '#fff1b8', '#ffe58f', '#ffd666', '#ffc53d', '#faad14', '#d48806', '#ad6800', '#874d00', '#613400'],
    'green': ['#f6ffed', '#d9f7be', '#b7eb8f', '#95de64', '#73d13d', '#52c41a', '#389e0d', '#237804', '#135200', '#092b00'],
    'lime': ['#fcffe6', '#f4ffb8', '#eaff8f', '#d3f261', '#bae637', '#a0d911', '#7cb305', '#5b8c00', '#3f6600', '#254000'],
    'magenta': ['#fff0f6', '#ffd6e7', '#ffadd2', '#ff85c0', '#f759ab', '#eb2f96', '#c41d7f', '#9e1068', '#780650', '#520339'],
    'orange': ['#fff7e6', '#ffe7ba', '#ffd591', '#ffc069', '#ffa940', '#fa8c16', '#d46b08', '#ad4e00', '#873800', '#612500'],
    'purple': ['#f9f0ff', '#efdbff', '#d3adf7', '#b37feb', '#9254de', '#722ed1', '#531dab', '#391085', '#22075e', '#120338'],
    'red': ['#fff1f0', '#ffccc7', '#ffa39e', '#ff7875', '#ff4d4f', '#f5222d', '#cf1322', '#a8071a', '#820014', '#5c0011'],
    'volcano': ['#fff2e8', '#ffd8bf', '#ffbb96', '#ff9c6e', '#ff7a45', '#fa541c', '#d4380d', '#ad2102', '#871400', '#610b00'],
    'yellow': ['#feffe6', '#ffffb8', '#fffb8f', '#fff566', '#ffec3d', '#fadb14', '#d4b106', '#ad8b00', '#876800', '#614700']
}
In [60]:
f = 4
s = 6
c_map = {k[0]: f"shape=ellipse;fillColor={colors[k[1]][f]};strokeColor={colors[k[1]][s]};perimeter=ellipsePerimeter;"
            for k in 
            [c.split(",") for c in ["running,blue", "completed,green", "waiting,gold"]]
        }
c_map.update({"none": "shape=ellipse;fillColor=#fafafa;strokeColor=#cccccc;perimeter=ellipsePerimeter;"})
json.dumps(c_map)
Out[60]:
'{"running": "shape=ellipse;fillColor=#40a9ff;strokeColor=#096dd9;perimeter=ellipsePerimeter;", "completed": "shape=ellipse;fillColor=#73d13d;strokeColor=#389e0d;perimeter=ellipsePerimeter;", "waiting": "shape=ellipse;fillColor=#ffc53d;strokeColor=#d48806;perimeter=ellipsePerimeter;", "none": "shape=ellipse;fillColor=#fafafa;strokeColor=#cccccc;perimeter=ellipsePerimeter;"}'
In [86]:
init = """
## Supply chain tracking example
## label: %mname%
# label: 
#stylename: shapeType
# styles: {"elb": "outlineConnect=0;fontColor=#232F3E;gradientColor=#945DF2;gradientDirection=north;fillColor=#5A30B5;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.elastic_load_balancing;", \\
#          "ec2": "outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.ec2;fillColor=#F58534;gradientColor=none;", \\
#          "redis": "aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/mscae/Cache_Redis_Product.svg;", \\
#          "rds": "outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.rds;fillColor=#2E73B8;gradientColor=none;", \\
#          "s3": "outlineConnect=0;fontColor=#232F3E;gradientColor=#60A337;gradientDirection=north;fillColor=#277116;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.s3;", \\
#          "user": "outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.user;fillColor=#D2D3D3;gradientColor=none;" \\
#         }
# namespace: csvimport-
# connect: {"from":"deps", "to": "mname", "style":"curved=1;endArrow=blockThin;startArrow=none;strokeColor=#999999;endFill=1;"}
# width: auto
# height: auto
# padding: 40
# ignore: id,shapeType,deps
# nodespacing: 40
# levelspacing: 40
# edgespacing: 40
# layout: horizontalflow
## layout: auto
## layout: horizontalflow, verticalflow, auto
## CSV data starts below this line
id,mname,deps,shapeType
"""
In [87]:
class Graph:
    def __init__(self):
        self.db = {} # "name: {id: name: shapeType:}"
        self.idmap = []
        self.ticks = []
    def cnode(self,name, shapeStyle="none"):
        if not name in self.db:
            myid = len(self.idmap)+1
            self.idmap.append(name)
            self.db[name] = {"id": myid, "name": name, "children": set(), "shapeStyle": shapeStyle}
    def style(self,name, val="none"):
        self.cnode(name, val)
        self.db[name]["shapeStyle"] = val
    def link(self,name=None, children=[], shapeStyle="none"):
        if "," in children: children = children.split(",")
        if "," in name: name = name.split(",")
        if not type(children) is list: children = [children]
        if not type(name) is list: name = [name]
        name = [str(i) for i in name]
        [self.cnode(x) for x in name]
        [self.cnode(x, shapeStyle) for x in children]
        for n in name:
            for c in children:
                self.db[n]["children"].add(c)
    def gennode(self,size, shapeStyle="none"):
        ret = []
        start = 1
        while len(ret) != size:
            nodeid = str(random.randint(1,100000))
            if not nodeid in self.db:
                self.cnode(nodeid, shapeStyle)
                ret.append(nodeid)
        return ret
    def getoutput(self):
        output = init.split("\n")
        for name,meta in self.db.items():
            if len(meta["children"]) > 0:
                output.append(f'{meta["id"]},{name},"{",".join(meta["children"])}",{meta["shapeStyle"]}')
            else:
                output.append(f'{meta["id"]},{name},,{meta["shapeStyle"]}')
        return "\n".join(output)
    def getisooutput(self):
        output = []
        for name,meta in self.db.items():
            if len(meta["children"]) > 0:
                output.append(f'{meta["id"]},{name},"{",".join(meta["children"])}",{meta.get("state", meta["shapeStyle"])}')
            else:
                output.append(f'{meta["id"]},{name},,{meta.get("state", meta["shapeStyle"])}')
        return "\n".join(output)
    def getdotoutput(self):
        output = []
        output.append("digraph world {")
        output.append("ranksep=3;")
        for name,meta in db.items():
            if len(meta["children"]) > 0:
                output.append(f'{name} -> {{{";".join([db[c]["name"] for c in meta["children"]])}}};')
            else:
                output.append(f'{name};')
        output.append("}")
        return "\n".join(output)
    counter = 0
    def getnewid(self):
        ret = counter
        counter+=1
        return ret
    def tojson(self,filename):
        db_ = copy.deepcopy(self.db)
        for k in db_:
            db_[k]["children"] = list(db_[k]["children"])
        with open(filename, "w") as f:
            json.dump(db_, f)
    def rr(self,s,e):
        return random.randint(s,e)
    def gen_graph(self):
        self.db = {}
                              
        size = 50
        nodes = [str(i) for i in range(size)]
        width = [2,5]
        db = {}
        maxcon = 3

        nodetier = [nodes[:4]]
        nodes = nodes[4:]
        while len(nodes) != 0:
            size = random.randint(*width)
            size = min(size, len(nodes))
            nodes_ = []
            while len(nodes_) != size:
                idx = random.randint(0,len(nodes)-1)
                n_ = nodes[idx]
                nodes_.append(n_)
                nodes.remove(n_)
            nodetier.append(nodes_)

        for rid,row in enumerate(nodetier):
            if rid == len(nodetier)-1: break
            for c in row:
                con = []
                r_world = range(rid+1, len(nodetier))
                #r_world = range(rid+1, rid+2)
                #for rpick in random.sample(r_world, random.randint(1,len(r_world))):
                if rid > 0:
                    for c in nodetier[rid]:
                        self.link(random.sample(nodetier[rid-1], 1), c)
                #for rpick in random.sample(r_world, random.randint(1,min(2,len(r_world)))):
                for rpick in random.sample(r_world, random.randint(1,min(2,len(r_world)))):
                    for cpick in random.sample(nodetier[rpick], random.randint(1,min(2,len(nodetier[rpick])))):
                        con.append(cpick)
                con = con[:maxcon]
                self.link(c, con)
    def gen_ticks(self):
        db = copy.deepcopy(self.db)
        def nodep(n):
            for node in db:
                if n != node and n in db[node]["children"]:
                    return False
            return True

        def canstart(n):
            for node in db:
                if n in db[node]["children"] and db[node]["state"] != "completed":
                    return False
            return True
                              
        def tick():
            for n in db:
                if db[n]["state"] == "running":
                    db[n]["state"] = "completed"
                    for c in db[n]["children"]:
                        db[c]["state"] = "waiting"

            for n in db:
                if db[n]["state"] == "waiting":
                    if canstart(n):
                        db[n]["state"] = "running"
                              
        for n in db:
            if nodep(n):
                db[n]["state"] = "running"
            else:
                db[n]["state"] = "none"
                              
        self.ticks.append(copy.deepcopy(db))
        size = len(db.keys())
        while len([c for c in db if db[c]["state"] == "completed"]) != size:
            tick()
            self.ticks.append(copy.deepcopy(db))
            
In [91]:
g = Graph()
In [92]:
lbs = g.gennode(3, "elb")
ec2 = []
for lb in lbs:
    users = g.gennode(g.rr(1,5), "user")
    g.link(users, lb)
    ec2_ = g.gennode(g.rr(4,6), "ec2") 
    g.link(lb, ec2_)
    ec2.extend(ec2_)
    redis = g.gennode(g.rr(1,3), "redis")
    g.link(ec2_, redis)
    rds = g.gennode(g.rr(1,3), "rds")
    g.link(ec2_, rds)
    s3 = g.gennode(g.rr(1,3), "s3")
    g.link(ec2_, s3)
for lb in lbs:
    g.link(lb, random.sample(ec2, g.rr(1,5)))
In [93]:
print(g.getoutput())
## Supply chain tracking example
## label: %mname%
# label: 
#stylename: shapeType
# styles: {"elb": "outlineConnect=0;fontColor=#232F3E;gradientColor=#945DF2;gradientDirection=north;fillColor=#5A30B5;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.elastic_load_balancing;", \
#          "ec2": "outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.ec2;fillColor=#F58534;gradientColor=none;", \
#          "redis": "aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/mscae/Cache_Redis_Product.svg;", \
#          "rds": "outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.rds;fillColor=#2E73B8;gradientColor=none;", \
#          "s3": "outlineConnect=0;fontColor=#232F3E;gradientColor=#60A337;gradientDirection=north;fillColor=#277116;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.s3;", \
#          "user": "outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.user;fillColor=#D2D3D3;gradientColor=none;" \
#         }
# namespace: csvimport-
# connect: {"from":"deps", "to": "mname", "style":"curved=1;endArrow=blockThin;startArrow=none;strokeColor=#999999;endFill=1;"}
# width: auto
# height: auto
# padding: 40
# ignore: id,shapeType,deps
# nodespacing: 40
# levelspacing: 40
# edgespacing: 40
# layout: horizontalflow
## layout: auto
## layout: horizontalflow, verticalflow, auto
## CSV data starts below this line
id,mname,deps,shapeType

1,81848,"51479,84601,84912,61722,56527,83285,67498",elb
2,52321,"65336,84601,84912,77988,15998,83285,31709",elb
3,58927,"98093,25876,77988,75770,61802,641",elb
4,11434,"81848",user
5,17138,"81848",user
6,46020,"81848",user
7,67498,"18955,38295,76240,57459,96081,1858",ec2
8,83285,"18955,38295,76240,57459,96081,1858",ec2
9,84601,"18955,38295,76240,57459,96081,1858",ec2
10,51479,"18955,38295,76240,57459,96081,1858",ec2
11,56527,"18955,38295,76240,57459,96081,1858",ec2
12,61722,"18955,38295,76240,57459,96081,1858",ec2
13,96081,,redis
14,57459,,rds
15,76240,,rds
16,38295,,s3
17,18955,,s3
18,1858,,s3
19,66103,"52321",user
20,14782,"52321",user
21,38575,"52321",user
22,77988,"12068,74978,11228,19131,47328,45614,71211",ec2
23,65336,"12068,74978,11228,19131,47328,45614,71211",ec2
24,31709,"12068,74978,11228,19131,47328,45614,71211",ec2
25,84912,"12068,74978,11228,19131,47328,45614,71211",ec2
26,15998,"12068,74978,11228,19131,47328,45614,71211",ec2
27,71211,,redis
28,19131,,redis
29,11228,,redis
30,47328,,rds
31,74978,,rds
32,12068,,rds
33,45614,,s3
34,69706,"58927",user
35,53476,"58927",user
36,14577,"58927",user
37,2975,"58927",user
38,98093,"67888,89724,94683,49743,99096",ec2
39,641,"67888,89724,94683,49743,99096",ec2
40,75770,"67888,89724,94683,49743,99096",ec2
41,61802,"67888,89724,94683,49743,99096",ec2
42,25876,"67888,89724,94683,49743,99096",ec2
43,99096,,redis
44,49743,,redis
45,89724,,rds
46,67888,,rds
47,94683,,s3
In [ ]:
 
In [145]:
db = g.db
def nodep(n):
    for node in db:
        if n != node and n in db[node]["children"]:
            return False
    return True

def canstart(n):
    for node in db:
        if n in db[node]["children"] and db[node]["state"] != "completed":
            return False
    return True

def tick():
    
    if len([c for c in db if db[c]["state"] == "running"]) == 0:
        for n in db:
            if nodep(n):
                db[n]["state"] = "running"
            else:
                db[n]["state"] = "none"
        return
        
    for n in db:
        if db[n]["state"] == "running":
            db[n]["state"] = "completed"
            for c in db[n]["children"]:
                db[c]["state"] = "waiting"

    for n in db:
        if db[n]["state"] == "waiting":
            if canstart(n):
                db[n]["state"] = "running"
In [149]:
tick()
for c in db:
    print(c, db[c]["state"])
0 completed
46 completed
7 completed
20 waiting
1 completed
2 completed
9 running
3 completed
19 completed
17 completed
48 completed
11 completed
25 completed
43 completed
38 completed
16 completed
45 waiting
31 waiting
37 waiting
14 waiting
39 completed
6 completed
35 completed
28 completed
10 completed
30 waiting
26 waiting
42 completed
44 completed
21 completed
29 completed
8 completed
40 waiting
23 waiting
32 completed
41 waiting
36 waiting
33 completed
4 completed
15 waiting
24 completed
49 completed
34 completed
5 waiting
18 waiting
27 completed
22 running
12 waiting
47 none
13 none
In [ ]:
 
In [150]:
def getisooutput():
    output = []
    for name,meta in db.items():
        if len(meta["children"]) > 0:
            output.append(f'{meta["id"]},{name},"{",".join(meta["children"])}",{meta.get("state", meta["shapeStyle"])}')
        else:
            output.append(f'{meta["id"]},{name},,{meta.get("state", meta["shapeStyle"])}')
    return "\n".join(output)
print(init)
print(getisooutput())
print()
## Supply chain tracking example
# label: %mname%
# stylename: shapeType
# styles: {"source": "shape=ellipse;fillColor=#ffe7ba;strokeColor=#ffe58f;perimeter=ellipsePerimeter;", \
#          "none": "shape=ellipse;fillColor=#fafafa;strokeColor=#cccccc;perimeter=ellipsePerimeter;", \
#          "running": "shape=ellipse;fillColor=#69c0ff;strokeColor=#1890ff;perimeter=ellipsePerimeter;", \
#          "completed": "shape=ellipse;fillColor=#95de64;strokeColor=#cccccc;perimeter=ellipsePerimeter;", \
#          "waiting": "shape=ellipse;fillColor=#fafafa;strokeColor=#cccccc;perimeter=ellipsePerimeter;", \
#          "script": "shape=ellipse;fillColor=#b7eb8f;strokeColor=#95de64;perimeter=ellipsePerimeter;", \
#          "file": "shape=ellipse;fillColor=#bae7ff;strokeColor=#91d5ff;perimeter=ellipsePerimeter;", \
#          "result": "shape=ellipse;fillColor=#ffd8bf;strokeColor=#ffbb96;perimeter=ellipsePerimeter;", \
#          "api": "rounded=1;fillColor=#efdbff;strokeColor=#d3adf7;", \
#          "lol": "shape=ellipse;fillColor:#ffd8bf;strokeColor=#ffd8bf;perimeter=ellipsePerimeter;"}
# namespace: csvimport-
# connect: {"from":"deps", "to": "mname", "style":"curved=1;endArrow=blockThin;startArrow=none;strokeColor=#999999;endFill=1;"}
# width: auto
# height: auto
# padding: 40
# ignore: id,shapeType,deps
# nodespacing: 40
# levelspacing: 40
# edgespacing: 40
# layout: verticalflow
## layout: horizontalflow, verticalflow, auto
## CSV data starts below this line
##mb,Mine B,,raw
##ma,Mine A,,raw
##mc,Mine C,,raw
##md,Mine D,,raw
##w1,Well 1,,well
##w2,Well 2,,well
id,mname,deps,shapeType

51,0,"20,7,43,46,48,25,11",completed
51,46,"10,4,24,15,45,49,17,9,30,19,33",completed
51,7,"10,24,49,17,19",completed
51,20,,waiting
51,1,"20,43",completed
51,2,"25,9,11,48",completed
51,9,"23,47,45,15,12,36,26",running
51,3,"43,48,25,17,19,11",completed
51,19,"20,14,18,16,34,5,38,26",completed
51,17,,completed
51,48,"35,28,6,39",completed
51,11,"35,6,39",completed
51,25,"35,28,6",completed
51,43,"37,7,35,31,14,45,39,16,17,28,38",completed
51,38,"22",completed
51,16,"9",completed
51,45,"41,23,47",waiting
51,31,"37,5,18,14",waiting
51,37,,waiting
51,14,,waiting
51,39,"21,29,44,8",completed
51,6,"42,29,44,8",completed
51,35,"29,44",completed
51,28,"10,21,14,45,42,16,17,8,30,29,38,26",completed
51,10,"4,33",completed
51,30,,waiting
51,26,"20,31,18,40,12,5",waiting
51,42,"32,7,46",completed
51,44,"7",completed
51,21,"32",completed
51,29,"32,46",completed
51,8,"7,23,31,46,41,32,40,36",completed
51,40,"20,12,5,14",waiting
51,23,"31",waiting
51,32,"10,24,17,49",completed
51,41,"40",waiting
51,36,"20,37,23,47,14,41,18,30,5,26",waiting
51,33,"16,34,27",completed
51,4,"20,31,27,16,34,38",completed
51,15,"23,47,30,26",waiting
51,24,"4",completed
51,49,"33",completed
51,34,"22,9",completed
51,5,"20,12",waiting
51,18,,waiting
51,27,"37,20,22,31,41,40,12,5",completed
51,22,"15,45,13",running
51,12,,waiting
51,47,,none
51,13,"23,47,41,30,26",none

In [ ]:
 
In [ ]:
 
In [142]:
size = 50
nodes = [str(i) for i in range(size)]
width = [2,5]
db = {}
maxcon = 3

nodetier = [nodes[:4]]
nodes = nodes[4:]
while len(nodes) != 0:
    size = random.randint(*width)
    size = min(size, len(nodes))
    nodes_ = []
    while len(nodes_) != size:
        idx = random.randint(0,len(nodes)-1)
        n_ = nodes[idx]
        nodes_.append(n_)
        nodes.remove(n_)
    nodetier.append(nodes_)
    
display(nodetier) 

for rid,row in enumerate(nodetier):
    if rid == len(nodetier)-1: break
    for c in row:
        con = []
        r_world = range(rid+1, len(nodetier))
        #r_world = range(rid+1, rid+2)
        #for rpick in random.sample(r_world, random.randint(1,len(r_world))):
        if rid > 0:
            for c in nodetier[rid]:
                link(random.sample(nodetier[rid-1], 1), c)
        #for rpick in random.sample(r_world, random.randint(1,min(2,len(r_world)))):
        for rpick in random.sample(r_world, random.randint(1,min(2,len(r_world)))):
            for cpick in random.sample(nodetier[rpick], random.randint(1,min(2,len(nodetier[rpick])))):
                con.append(cpick)
        con = con[:maxcon]
        link(c, con)
[['0', '1', '2', '3'],
 ['22', '41'],
 ['10', '32', '33', '37'],
 ['9', '4'],
 ['8', '7', '29'],
 ['43', '12', '49', '26'],
 ['45', '38', '14'],
 ['40', '30', '17', '20', '27'],
 ['24', '36', '39'],
 ['25', '31', '23', '16', '19'],
 ['5', '15', '44', '21', '46'],
 ['34', '13'],
 ['6', '42'],
 ['47', '28', '11', '35'],
 ['18', '48']]
In [ ]:
 
In [ ]:
tickmap = {}
In [22]:
o = getdotoutput()
print(o)
xml = graphviz2drawio.convert(o)
digraph world {
ranksep=3;
0 -> {7;44};
44 -> {23;4;42;32;25;6;13};
1 -> {7;25;36;9;19};
19 -> {16;49};
9 -> {21;31;24;49;16};
25 -> {20;14;27;29;26};
2 -> {46};
46 -> {40;5};
3 -> {40;5};
5;
40 -> {23;6;18};
7 -> {35;15;39;30;8};
36 -> {35;15;32;40;25;30;28;8};
32 -> {20;43;14;27;29;26};
28 -> {44};
15 -> {28;45};
39 -> {47};
8 -> {28;45};
35 -> {28;47};
30 -> {4;23;43;46;42;16;40;9;33};
42 -> {48;41;24;32;25;19;11;34};
16 -> {22};
33 -> {42;13};
4 -> {23;48;18;6;11};
43 -> {40;4};
23;
47 -> {33};
45 -> {4;22;44;12;5;33};
12 -> {10;23;43;46;41;18;6;11};
22 -> {10;43;46};
6;
13 -> {25};
24 -> {37;12};
48;
11;
41 -> {4};
34 -> {21;4;22;31;48;24;18;49;6;5;38};
29 -> {34;17};
14 -> {17;9};
26 -> {34;17;19};
20 -> {19};
27 -> {10;4;22;48;41;49;16;40;12;17;9;19;34;38};
38;
49 -> {37};
10 -> {23;4;18;40;6;5;38};
17 -> {21;24;49;16};
18 -> {38;11;48};
21;
31 -> {37;10;4;22;43;46;48;40;12;11};
37 -> {41;10;43};
}
In [31]:
print(xml.replace("36.0", "54.0").replace("verticalAlign=top", "verticalAlign=middle;whiteSpace=wrap;fontSize=19"))
<?xml version="1.0"?><mxGraphModel><root><mxCell id="0" /><mxCell id="1" parent="0" /><mxCell edge="1" id="edge1" parent="1" source="node1" style="rounded=1;html=1;exitX=0.651;exitY=0.981;entryX=0.267;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node2"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge2" parent="1" source="node1" style="rounded=1;html=1;exitX=0.5;exitY=0.998;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node3"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="604.875" y="39.91960000000017" /><mxPoint x="510.6421" y="508.0" /><mxPoint x="491.0442" y="1001.8159" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge3" parent="1" source="node2" style="rounded=1;html=1;exitX=0.36;exitY=0.981;entryX=0.716;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node4"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge4" parent="1" source="node2" style="rounded=1;html=1;exitX=0.5;exitY=0.992;entryX=0.354;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node5"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge5" parent="1" source="node2" style="rounded=1;html=1;exitX=0.279;exitY=0.959;entryX=0.827;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node6"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge6" parent="1" source="node2" style="rounded=1;html=1;exitX=0.769;exitY=0.927;entryX=0.0985;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node7"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge7" parent="1" source="node2" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node8"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge8" parent="1" source="node3" style="rounded=1;html=1;exitX=0.349;exitY=0.984;entryX=0.102;entryY=0;jettySize=auto;curved=1;endArrow=block;dashed=0;endFill=1;" target="node9"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="483.4934" y="1047.4391999999998" /><mxPoint x="218.6421" y="2308.0" /><mxPoint x="601.6421" y="3064.0" /><mxPoint x="788.144" y="3275.1896" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge9" parent="1" source="node3" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.313;entryY=0;jettySize=auto;curved=1;endArrow=block;dashed=0;endFill=1;" target="node10"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="491.4366" y="1048.2253" /><mxPoint x="535.6421" y="2560.0" /><mxPoint x="565.6421" y="2812.0" /><mxPoint x="627.5419" y="3018.8762" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge10" parent="1" source="node3" style="rounded=1;html=1;exitX=0.605;exitY=0.992;entryX=0.338;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node11"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge11" parent="1" source="node3" style="rounded=1;html=1;exitX=0.695;exitY=0.966;entryX=0.203;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node12"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge12" parent="1" source="node3" style="rounded=1;html=1;exitX=0.73;exitY=0.948;entryX=0.152;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node13"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="504.0567" y="1046.1379000000002" /><mxPoint x="699.6421" y="1300.0" /><mxPoint x="861.8723" y="1509.7665000000002" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge13" parent="1" source="node3" style="rounded=1;html=1;exitX=0.205;exitY=0.909;entryX=0;entryY=0.0482;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node14"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="475.693" y="1044.7269000000001" /><mxPoint x="159.6421" y="1516.0" /><mxPoint x="218.6421" y="3064.0" /><mxPoint x="453.43" y="3281.7343" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge14" parent="1" source="node3" style="rounded=1;html=1;exitX=0.776;exitY=0.927;entryX=0.0937;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node15"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge107" parent="1" source="node4" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node33"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge108" parent="1" source="node4" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node48"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge109" parent="1" source="node5" style="rounded=1;html=1;exitX=0.328;exitY=0.981;entryX=0.758;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node33"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge110" parent="1" source="node5" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.629;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node49"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge111" parent="1" source="node6" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node48"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge112" parent="1" source="node7" style="rounded=1;html=1;exitX=0.93;exitY=0.763;entryX=1;entryY=0.0785;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node9"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="1227.846" y="787.4540000000002" /><mxPoint x="1519.6421" y="1012.0" /><mxPoint x="1656.6421" y="2038.0" /><mxPoint x="1656.6421" y="2290.0" /><mxPoint x="1499.6421" y="2812.0" /><mxPoint x="841.0049" y="3282.8246" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge113" parent="1" source="node7" style="rounded=1;html=1;exitX=0.821;exitY=0.889;entryX=1;entryY=0.339;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node10"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="1221.9748" y="792.0050999999999" /><mxPoint x="1407.6421" y="1012.0" /><mxPoint x="1452.6421" y="1264.0" /><mxPoint x="1354.6421" y="2560.0" /><mxPoint x="1219.6421" y="2812.0" /><mxPoint x="674.3579" y="3040.2091" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge114" parent="1" source="node7" style="rounded=1;html=1;exitX=0.175;exitY=0.889;entryX=0.969;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node11"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge119" parent="1" source="node7" style="rounded=1;html=1;exitX=0.61;exitY=0.999;entryX=1;entryY=0.223;jettySize=auto;curved=1;endArrow=block;dashed=0;endFill=1;" target="node28"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="1210.5663" y="795.9625000000001" /><mxPoint x="1185.6421" y="2560.0" /><mxPoint x="850.5971" y="2784.0223" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge115" parent="1" source="node7" style="rounded=1;html=1;exitX=0.283;exitY=0.958;entryX=0.78;entryY=0;jettySize=auto;curved=1;endArrow=block;dashed=0;endFill=1;" target="node31"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="1192.9088" y="794.4803999999999" /><mxPoint x="1007.6421" y="1282.0" /><mxPoint x="1007.6421" y="1534.0" /><mxPoint x="988.6421" y="1804.0" /><mxPoint x="898.7592" y="2012.4282" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge118" parent="1" source="node7" style="rounded=1;html=1;exitX=0.921;exitY=0.773;entryX=1;entryY=0.0198;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node32"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="1227.3518" y="787.8252000000002" /><mxPoint x="1501.6421" y="1012.0" /><mxPoint x="1556.6421" y="2560.0" /><mxPoint x="1102.72" y="3028.7119000000002" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge116" parent="1" source="node7" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.668;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node34"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="1204.6421" y="796.3072000000002" /><mxPoint x="1204.6421" y="1282.0" /><mxPoint x="1204.6421" y="1786.0" /><mxPoint x="1116.6877" y="2262.7433" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge117" parent="1" source="node7" style="rounded=1;html=1;exitX=0.806;exitY=0.899;entryX=0.852;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node40"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="1221.1695" y="792.3761" /><mxPoint x="1387.6421" y="1012.0" /><mxPoint x="1400.6421" y="2308.0" /><mxPoint x="1333.6421" y="2560.0" /><mxPoint x="1202.6729" y="2769.9786" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge120" parent="1" source="node7" style="rounded=1;html=1;exitX=0.11;exitY=0.814;entryX=1;entryY=0.0491;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node50"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge121" parent="1" source="node8" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.629;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node33"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge122" parent="1" source="node8" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node49"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge15" parent="1" source="node10" style="rounded=1;html=1;exitX=0.709;exitY=0.959;entryX=0.182;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node9"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge16" parent="1" source="node10" style="rounded=1;html=1;exitX=0.308;exitY=0.97;entryX=0.787;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node14"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge17" parent="1" source="node10" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.388;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node16"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge18" parent="1" source="node10" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node17"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="638.6847" y="3064.0285" /><mxPoint x="656.6421" y="3316.0" /><mxPoint x="678.3052" y="3521.8777" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge19" parent="1" source="node10" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node18"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge20" parent="1" source="node11" style="rounded=1;html=1;exitX=0.767;exitY=0.927;entryX=0.101;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node12"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge21" parent="1" source="node11" style="rounded=1;html=1;exitX=0.823;exitY=0.896;entryX=0.0338;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node13"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge24" parent="1" source="node11" style="rounded=1;html=1;exitX=0.328;exitY=0.972;entryX=0;entryY=0.12;jettySize=auto;curved=1;endArrow=block;dashed=0;endFill=1;" target="node17"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="563.3676" y="1298.9848000000002" /><mxPoint x="118.6421" y="2794.0" /><mxPoint x="118.6421" y="3046.0" /><mxPoint x="237.6421" y="3316.0" /><mxPoint x="649.3248" y="3536.3139" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge26" parent="1" source="node11" style="rounded=1;html=1;exitX=0.244;exitY=0.933;entryX=0;entryY=0.362;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node18"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="558.7949" y="1297.5711000000001" /><mxPoint x="406.6421" y="1516.0" /><mxPoint x="80.6421" y="2794.0" /><mxPoint x="80.6421" y="3046.0" /><mxPoint x="104.6421" y="3316.0" /><mxPoint x="562.893" y="3545.0427" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge22" parent="1" source="node11" style="rounded=1;html=1;exitX=0.5;exitY=0.998;entryX=0.385;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node19"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge23" parent="1" source="node11" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node20"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="573.5059" y="1300.0484999999999" /><mxPoint x="631.6421" y="2056.0" /><mxPoint x="662.6132" y="2261.9393" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge25" parent="1" source="node11" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.183;entryY=0;jettySize=auto;curved=1;endArrow=block;dashed=0;endFill=1;" target="node21"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="569.9328" y="1300.0225" /><mxPoint x="589.6421" y="2560.0" /><mxPoint x="688.5384" y="2769.0687" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge27" parent="1" source="node11" style="rounded=1;html=1;exitX=0.5;exitY=0.998;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node22"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge28" parent="1" source="node12" style="rounded=1;html=1;exitX=0.5;exitY=0.992;entryX=0.646;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node23"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge29" parent="1" source="node12" style="rounded=1;html=1;exitX=0.679;exitY=0.97;entryX=0.228;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node24"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge30" parent="1" source="node12" style="rounded=1;html=1;exitX=0.806;exitY=0.896;entryX=0.0439;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node25"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge31" parent="1" source="node12" style="rounded=1;html=1;exitX=0.5;exitY=0.992;entryX=0.354;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node26"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge32" parent="1" source="node12" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node27"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge33" parent="1" source="node12" style="rounded=1;html=1;exitX=0.331;exitY=0.978;entryX=0.244;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node28"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="799.5026" y="1551.1958" /><mxPoint x="700.6421" y="1768.0" /><mxPoint x="631.6421" y="2308.0" /><mxPoint x="801.828" y="2767.8517" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge34" parent="1" source="node13" style="rounded=1;html=1;exitX=0.321;exitY=0.97;entryX=0.772;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node23"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge35" parent="1" source="node13" style="rounded=1;html=1;exitX=0.5;exitY=0.992;entryX=0.354;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node24"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge36" parent="1" source="node13" style="rounded=1;html=1;exitX=0.755;exitY=0.938;entryX=0.118;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node25"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge37" parent="1" source="node13" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node26"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge38" parent="1" source="node13" style="rounded=1;html=1;exitX=0.5;exitY=0.992;entryX=0.646;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node27"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge39" parent="1" source="node15" style="rounded=1;html=1;exitX=0.68;exitY=0.97;entryX=0.226;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node13"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge104" parent="1" source="node16" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node17"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge105" parent="1" source="node16" style="rounded=1;html=1;exitX=0.379;exitY=0.992;entryX=0.686;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node18"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge106" parent="1" source="node16" style="rounded=1;html=1;exitX=0.747;exitY=0.949;entryX=0.135;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node44"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge58" parent="1" source="node19" style="rounded=1;html=1;exitX=0.852;exitY=0.862;entryX=0;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node34"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge59" parent="1" source="node19" style="rounded=1;html=1;exitX=0.5;exitY=0.992;entryX=0.354;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node35"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge73" parent="1" source="node20" style="rounded=1;html=1;exitX=0.679;exitY=0.97;entryX=0.228;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node39"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge72" parent="1" source="node20" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node41"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge135" parent="1" source="node21" style="rounded=1;html=1;exitX=0.5;exitY=0.992;entryX=0.64;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node10"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge136" parent="1" source="node22" style="rounded=1;html=1;exitX=0.303;exitY=0.965;entryX=0.334;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node10"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="657.0064" y="2054.7407000000003" /><mxPoint x="560.6421" y="2272.0" /><mxPoint x="628.6741" y="3018.5933" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge137" parent="1" source="node22" style="rounded=1;html=1;exitX=0.283;exitY=0.955;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node14"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="655.909" y="2054.373" /><mxPoint x="537.6421" y="2272.0" /><mxPoint x="479.5668" y="3269.9996" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge143" parent="1" source="node22" style="rounded=1;html=1;exitX=0.288;exitY=0.962;entryX=0.235;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node16"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="656.1758" y="2054.6273" /><mxPoint x="549.6421" y="2272.0" /><mxPoint x="591.6421" y="3064.0" /><mxPoint x="678.3448" y="3271.9846" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge144" parent="1" source="node22" style="rounded=1;html=1;exitX=0.0983;exitY=0.802;entryX=0;entryY=0.141;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node17"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="645.9514" y="2048.8878" /><mxPoint x="370.6421" y="2272.0" /><mxPoint x="256.6421" y="3316.0" /><mxPoint x="648.9435" y="3537.0936" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge141" parent="1" source="node22" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node20"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge138" parent="1" source="node22" style="rounded=1;html=1;exitX=0.679;exitY=0.97;entryX=0.228;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node35"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge139" parent="1" source="node22" style="rounded=1;html=1;exitX=0.5;exitY=0.992;entryX=0.354;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node36"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge140" parent="1" source="node22" style="rounded=1;html=1;exitX=0.837;exitY=0.886;entryX=0.0142;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node37"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge145" parent="1" source="node22" style="rounded=1;html=1;exitX=0.891;exitY=0.815;entryX=0.385;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node38"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="688.7613" y="2049.3277" /><mxPoint x="1033.6421" y="2272.0" /><mxPoint x="1143.4543" y="2514.0233" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge146" parent="1" source="node22" style="rounded=1;html=1;exitX=0.264;exitY=0.943;entryX=0;entryY=0.337;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node44"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="654.8718" y="2053.9389" /><mxPoint x="521.6421" y="2272.0" /><mxPoint x="447.6421" y="3316.0" /><mxPoint x="864.3275" y="3544.1484" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge142" parent="1" source="node22" style="rounded=1;html=1;exitX=0.377;exitY=0.985;entryX=0;entryY=0.112;jettySize=auto;curved=1;endArrow=block;dashed=0;endFill=1;" target="node46"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="660.9949" y="2055.4725" /><mxPoint x="669.6421" y="2812.0" /><mxPoint x="969.3594" y="3032.0325000000003" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge74" parent="1" source="node23" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node19"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge75" parent="1" source="node24" style="rounded=1;html=1;exitX=0.5;exitY=0.992;entryX=0.642;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node31"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge76" parent="1" source="node24" style="rounded=1;html=1;exitX=0.325;exitY=0.97;entryX=0.77;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node43"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge77" parent="1" source="node25" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.769;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node10"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="1096.4215" y="1804.0408" /><mxPoint x="1020.6421" y="2056.0" /><mxPoint x="896.6421" y="2308.0" /><mxPoint x="775.6421" y="2524.0" /><mxPoint x="741.6421" y="2812.0" /><mxPoint x="652.1776" y="3020.2936" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge83" parent="1" source="node25" style="rounded=1;html=1;exitX=0.717;exitY=0.957;entryX=1;entryY=0.0239;jettySize=auto;curved=1;endArrow=block;dashed=0;endFill=1;" target="node17"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="1112.3715" y="1802.4632" /><mxPoint x="1348.6421" y="2560.0" /><mxPoint x="982.6421" y="3316.0" /><mxPoint x="710.7241" y="3532.8601" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge79" parent="1" source="node25" style="rounded=1;html=1;exitX=0.155;exitY=0.862;entryX=1;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node19"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge84" parent="1" source="node25" style="rounded=1;html=1;exitX=0.394;exitY=0.99;entryX=0.39;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node21"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="1094.912" y="1803.658" /><mxPoint x="1000.6421" y="2056.0" /><mxPoint x="871.6421" y="2308.0" /><mxPoint x="704.6421" y="2524.0" /><mxPoint x="699.6767" y="2765.8958000000002" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge85" parent="1" source="node25" style="rounded=1;html=1;exitX=0.119;exitY=0.833;entryX=1;entryY=0.0268;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node22"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge78" parent="1" source="node25" style="rounded=1;html=1;exitX=0.249;exitY=0.938;entryX=0.876;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node31"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge82" parent="1" source="node25" style="rounded=1;html=1;exitX=0.666;exitY=0.978;entryX=0.854;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node32"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="1109.6046" y="1803.1913" /><mxPoint x="1205.6421" y="2020.0" /><mxPoint x="1333.6421" y="2560.0" /><mxPoint x="1092.7697" y="3022.2335000000003" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge80" parent="1" source="node25" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node34"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge81" parent="1" source="node25" style="rounded=1;html=1;exitX=0.312;exitY=0.971;entryX=0.764;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node35"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="1090.4652" y="1802.9511" /><mxPoint x="962.6421" y="2020.0" /><mxPoint x="825.9167" y="2264.0131" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge86" parent="1" source="node25" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node38"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="1102.6743" y="1804.0629" /><mxPoint x="1143.6421" y="2272.0" /><mxPoint x="1149.6277" y="2513.8044" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge87" parent="1" source="node25" style="rounded=1;html=1;exitX=0.359;exitY=0.987;entryX=0.953;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node41"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="1093.0144" y="1803.5424" /><mxPoint x="847.6421" y="2308.0" /><mxPoint x="650.117" y="2520.9076999999997" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge88" parent="1" source="node25" style="rounded=1;html=1;exitX=0.65;exitY=0.981;entryX=1;entryY=0.0565;jettySize=auto;curved=1;endArrow=block;dashed=0;endFill=1;" target="node42"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="1108.7306" y="1803.3225" /><mxPoint x="1185.6421" y="2560.0" /><mxPoint x="956.2493" y="2778.0341" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge90" parent="1" source="node25" style="rounded=1;html=1;exitX=0.189;exitY=0.907;entryX=0.949;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node43"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge89" parent="1" source="node25" style="rounded=1;html=1;exitX=0.844;exitY=0.868;entryX=1;entryY=0.288;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node44"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="1119.2238" y="1799.2381" /><mxPoint x="1332.6421" y="2020.0" /><mxPoint x="1537.6421" y="3316.0" /><mxPoint x="936.7611" y="3542.3632" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge91" parent="1" source="node26" style="rounded=1;html=1;exitX=0.253;exitY=0.938;entryX=0.869;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node22"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge92" parent="1" source="node26" style="rounded=1;html=1;exitX=0.5;exitY=0.992;entryX=0.642;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node43"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge93" parent="1" source="node27" style="rounded=1;html=1;exitX=0.5;exitY=0.992;entryX=0.642;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node19"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge94" parent="1" source="node27" style="rounded=1;html=1;exitX=0.325;exitY=0.97;entryX=0.77;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node22"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge95" parent="1" source="node27" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node43"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge124" parent="1" source="node28" style="rounded=1;html=1;exitX=0.284;exitY=0.959;entryX=0.824;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node10"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge125" parent="1" source="node28" style="rounded=1;html=1;exitX=0.785;exitY=0.917;entryX=0.0812;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node32"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge40" parent="1" source="node29" style="rounded=1;html=1;exitX=0.371;exitY=0.992;entryX=0.698;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node2"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge41" parent="1" source="node29" style="rounded=1;html=1;exitX=0.661;exitY=0.982;entryX=0.654;entryY=0;jettySize=auto;curved=1;endArrow=block;dashed=0;endFill=1;" target="node13"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="836.3111" y="39.35289999999986" /><mxPoint x="969.6421" y="526.0" /><mxPoint x="969.6421" y="1030.0" /><mxPoint x="888.9416" y="1506.6873999999998" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge44" parent="1" source="node29" style="rounded=1;html=1;exitX=0.026;exitY=0.68;entryX=0.0705;entryY=0;jettySize=auto;curved=1;endArrow=block;dashed=0;endFill=1;" target="node19"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="802.0438" y="28.477400000000216" /><mxPoint x="194.6421" y="526.0" /><mxPoint x="194.6421" y="1030.0" /><mxPoint x="716.4474" y="2015.7955" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge42" parent="1" source="node29" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node30"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge43" parent="1" source="node29" style="rounded=1;html=1;exitX=0.993;exitY=0.605;entryX=0.803;entryY=0;jettySize=auto;curved=1;endArrow=block;dashed=0;endFill=1;" target="node31"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="854.285" y="25.784799999999905" /><mxPoint x="1601.6421" y="526.0" /><mxPoint x="1601.6421" y="1030.0" /><mxPoint x="1064.6421" y="1768.0" /><mxPoint x="900.0" y="2012.9077" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge48" parent="1" source="node30" style="rounded=1;html=1;exitX=0.258;exitY=0.938;entryX=0.862;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node4"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge49" parent="1" source="node30" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node5"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge50" parent="1" source="node30" style="rounded=1;html=1;exitX=0.873;exitY=0.838;entryX=0.39;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node7"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="847.7645" y="286.16679999999997" /><mxPoint x="1100.6421" y="508.0" /><mxPoint x="1198.7102" y="750.0899" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge51" parent="1" source="node30" style="rounded=1;html=1;exitX=0.371;exitY=0.992;entryX=0.698;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node8"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge45" parent="1" source="node30" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=1;endArrow=block;dashed=0;endFill=1;" target="node12"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="829.3936" y="292.28690000000006" /><mxPoint x="855.6421" y="778.0" /><mxPoint x="855.6421" y="1030.0" /><mxPoint x="813.178" y="1505.4771999999998" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge46" parent="1" source="node30" style="rounded=1;html=1;exitX=0.618;exitY=0.988;entryX=0.5;entryY=0;jettySize=auto;curved=1;endArrow=block;dashed=0;endFill=1;" target="node13"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="833.9912" y="291.58359999999993" /><mxPoint x="931.6421" y="778.0" /><mxPoint x="931.6421" y="1030.0" /><mxPoint x="885.5641" y="1505.4924999999998" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge47" parent="1" source="node30" style="rounded=1;html=1;exitX=0.95;exitY=0.734;entryX=1;entryY=0.0608;jettySize=auto;curved=1;endArrow=block;dashed=0;endFill=1;" target="node32"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="851.9437" y="282.4153000000001" /><mxPoint x="1639.6421" y="1030.0" /><mxPoint x="1639.6421" y="1282.0" /><mxPoint x="1618.6421" y="2038.0" /><mxPoint x="1618.6421" y="2290.0" /><mxPoint x="1409.6421" y="2812.0" /><mxPoint x="1104.0055" y="3030.1893" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge52" parent="1" source="node30" style="rounded=1;html=1;exitX=0.266;exitY=0.949;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node33"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="815.0075" y="290.14800000000014" /><mxPoint x="692.6421" y="508.0" /><mxPoint x="664.6172" y="749.7114999999999" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge57" parent="1" source="node31" style="rounded=1;html=1;exitX=0.25;exitY=0.938;entryX=0.875;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node20"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge53" parent="1" source="node31" style="rounded=1;html=1;exitX=0.759;exitY=0.938;entryX=0.117;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node34"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge54" parent="1" source="node31" style="rounded=1;html=1;exitX=0.5;exitY=0.992;entryX=0.646;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node35"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge55" parent="1" source="node31" style="rounded=1;html=1;exitX=0.321;exitY=0.97;entryX=0.772;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node36"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge56" parent="1" source="node31" style="rounded=1;html=1;exitX=0.645;exitY=0.981;entryX=0.277;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node37"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge99" parent="1" source="node32" style="rounded=1;html=1;exitX=0.209;exitY=0.917;entryX=0.929;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node9"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge100" parent="1" source="node32" style="rounded=1;html=1;exitX=0.1;exitY=0.808;entryX=1;entryY=0.137;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node14"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="1052.0487" y="3057.0772" /><mxPoint x="1037.6421" y="3064.0" /><mxPoint x="516.6197" y="3284.9302" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge101" parent="1" source="node32" style="rounded=1;html=1;exitX=0.14;exitY=0.857;entryX=1;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node16"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge123" parent="1" source="node33" style="rounded=1;html=1;exitX=0.289;exitY=0.959;entryX=0.821;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node3"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge60" parent="1" source="node34" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node38"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge61" parent="1" source="node35" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node39"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge62" parent="1" source="node37" style="rounded=1;html=1;exitX=0.5;exitY=0.996;entryX=0.965;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node10"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="993.825" y="2307.8392" /><mxPoint x="851.6421" y="2812.0" /><mxPoint x="662.7412" y="3025.6927" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge66" parent="1" source="node37" style="rounded=1;html=1;exitX=0.5;exitY=0.993;entryX=1;entryY=0;jettySize=auto;curved=1;endArrow=block;dashed=0;endFill=1;" target="node17"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="1002.3895" y="2307.7419" /><mxPoint x="1109.6421" y="3064.0" /><mxPoint x="709.4127" y="3531.3543" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge67" parent="1" source="node37" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=1;entryY=0;jettySize=auto;curved=1;endArrow=block;dashed=0;endFill=1;" target="node18"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="999.5724" y="2308.1219" /><mxPoint x="845.6421" y="3316.0" /><mxPoint x="627.6492" y="3531.8146" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge65" parent="1" source="node37" style="rounded=1;html=1;exitX=0.333;exitY=0.978;entryX=0.615;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node28"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="988.6229" y="2307.2163" /><mxPoint x="890.6421" y="2524.0" /><mxPoint x="821.8653" y="2766.0443999999998" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge64" parent="1" source="node37" style="rounded=1;html=1;exitX=0.5;exitY=0.998;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node32"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="1000.7259" y="2307.9265" /><mxPoint x="1071.6421" y="2776.0" /><mxPoint x="1074.7637" y="3017.7705" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge68" parent="1" source="node37" style="rounded=1;html=1;exitX=0.689;exitY=0.97;entryX=0.213;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node38"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge71" parent="1" source="node37" style="rounded=1;html=1;exitX=0.274;exitY=0.959;entryX=0.834;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node39"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge63" parent="1" source="node37" style="rounded=1;html=1;exitX=0.621;exitY=0.99;entryX=0.315;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node40"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge69" parent="1" source="node37" style="rounded=1;html=1;exitX=0.149;exitY=0.857;entryX=1;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node41"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge70" parent="1" source="node37" style="rounded=1;html=1;exitX=0.5;exitY=0.998;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node42"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge148" parent="1" source="node38" style="rounded=1;html=1;exitX=0.167;exitY=0.876;entryX=0.985;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node28"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge147" parent="1" source="node38" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node40"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge149" parent="1" source="node38" style="rounded=1;html=1;exitX=0.241;exitY=0.938;entryX=0.883;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node42"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge166" parent="1" source="node39" style="rounded=1;html=1;exitX=0.362;exitY=0.992;entryX=0.709;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node21"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge165" parent="1" source="node39" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node28"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge167" parent="1" source="node39" style="rounded=1;html=1;exitX=0.645;exitY=0.981;entryX=0.277;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node42"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge97" parent="1" source="node40" style="rounded=1;html=1;exitX=0.36;exitY=0.981;entryX=0.716;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node32"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge98" parent="1" source="node40" style="rounded=1;html=1;exitX=0.279;exitY=0.959;entryX=0.827;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node46"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge150" parent="1" source="node41" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.328;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node9"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="627.8416" y="2560.1530000000002" /><mxPoint x="669.6421" y="2812.0" /><mxPoint x="800.3692" y="3270.199" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge151" parent="1" source="node41" style="rounded=1;html=1;exitX=0.5;exitY=0.998;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node14"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge153" parent="1" source="node41" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.246;entryY=0;jettySize=auto;curved=1;endArrow=block;dashed=0;endFill=1;" target="node16"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="621.7258" y="2560.2561" /><mxPoint x="601.6421" y="3064.0" /><mxPoint x="678.9332" y="3271.994" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge156" parent="1" source="node41" style="rounded=1;html=1;exitX=0.31;exitY=0.967;entryX=0.0977;entryY=0;jettySize=auto;curved=1;endArrow=block;dashed=0;endFill=1;" target="node18"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="615.3988" y="2558.8108" /><mxPoint x="447.6421" y="3316.0" /><mxPoint x="577.9158" y="3526.9171" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge155" parent="1" source="node41" style="rounded=1;html=1;exitX=0.604;exitY=0.992;entryX=0.34;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node21"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge154" parent="1" source="node41" style="rounded=1;html=1;exitX=0.725;exitY=0.949;entryX=0.157;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node28"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge152" parent="1" source="node41" style="rounded=1;html=1;exitX=0.918;exitY=0.783;entryX=0;entryY=0.103;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node40"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge157" parent="1" source="node41" style="rounded=1;html=1;exitX=0.815;exitY=0.896;entryX=0.0459;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node42"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge158" parent="1" source="node42" style="rounded=1;html=1;exitX=0.5;exitY=0.998;entryX=0.619;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node9"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge159" parent="1" source="node42" style="rounded=1;html=1;exitX=0.19;exitY=0.907;entryX=0.948;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node10"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge160" parent="1" source="node42" style="rounded=1;html=1;exitX=0.246;exitY=0.934;entryX=0.881;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node14"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge163" parent="1" source="node42" style="rounded=1;html=1;exitX=0.351;exitY=0.982;entryX=0.727;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node16"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge161" parent="1" source="node42" style="rounded=1;html=1;exitX=0.684;exitY=0.97;entryX=0.22;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node32"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge164" parent="1" source="node42" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node44"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge162" parent="1" source="node42" style="rounded=1;html=1;exitX=0.5;exitY=0.992;entryX=0.346;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node46"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge171" parent="1" source="node43" style="rounded=1;html=1;exitX=0.321;exitY=0.97;entryX=0.772;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node20"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge168" parent="1" source="node43" style="rounded=1;html=1;exitX=0.81;exitY=0.896;entryX=0.0443;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node34"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge169" parent="1" source="node43" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node35"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge170" parent="1" source="node43" style="rounded=1;html=1;exitX=0.5;exitY=0.992;entryX=0.646;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node36"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge96" parent="1" source="node45" style="rounded=1;html=1;exitX=0.355;exitY=0.981;entryX=0.723;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node40"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge102" parent="1" source="node47" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node32"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge103" parent="1" source="node47" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node46"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge132" parent="1" source="node48" style="rounded=1;html=1;exitX=0.677;exitY=0.97;entryX=0.232;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node50"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge126" parent="1" source="node49" style="rounded=1;html=1;exitX=0.222;exitY=0.927;entryX=0.904;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node3"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge127" parent="1" source="node49" style="rounded=1;html=1;exitX=0.15;exitY=0.866;entryX=0.0835;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node10"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="718.7672" y="791.1604000000002" /><mxPoint x="232.6421" y="1282.0" /><mxPoint x="232.6421" y="2290.0" /><mxPoint x="615.15" y="3024.0679" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge130" parent="1" source="node49" style="rounded=1;html=1;exitX=0.677;exitY=0.977;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node38"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="747.2052" y="795.1786000000002" /><mxPoint x="1136.6421" y="1768.0" /><mxPoint x="1153.056" y="2513.899" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge131" parent="1" source="node49" style="rounded=1;html=1;exitX=0.317;exitY=0.969;entryX=0.366;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node41"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="727.7563" y="794.8705" /><mxPoint x="536.6421" y="1264.0" /><mxPoint x="618.3914" y="2514.4174000000003" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge128" parent="1" source="node49" style="rounded=1;html=1;exitX=0.74;exitY=0.94;entryX=1;entryY=0.0566;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node46"><mxGeometry as="geometry" relative="1"><Array as="points"><mxPoint x="750.594" y="793.8253" /><mxPoint x="1218.6421" y="1516.0" /><mxPoint x="1363.6421" y="2020.0" /><mxPoint x="1347.6421" y="2812.0" /><mxPoint x="1032.3325" y="3030.0361000000003" /></Array></mxGeometry></mxCell><mxCell edge="1" id="edge129" parent="1" source="node49" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node50"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge133" parent="1" source="node50" style="rounded=1;html=1;exitX=0.302;exitY=0.959;entryX=0.801;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node11"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell edge="1" id="edge134" parent="1" source="node50" style="rounded=1;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;jettySize=auto;curved=0;endArrow=block;dashed=0;endFill=1;" target="node15"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell id="node1" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;0&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="582.6421" y="4.0" /></mxCell><mxCell id="node2" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;7&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="701.6421" y="256.0" /></mxCell><mxCell id="node3" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;44&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="464.6421" y="1012.0" /></mxCell><mxCell id="node4" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;35&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="591.6421" y="508.0" /></mxCell><mxCell id="node5" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;15&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="773.6421" y="508.0" /></mxCell><mxCell id="node6" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;39&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="519.6421" y="508.0" /></mxCell><mxCell id="node7" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;30&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="1177.6421" y="760.0" /></mxCell><mxCell id="node8" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;8&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="701.6421" y="508.0" /></mxCell><mxCell id="node9" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;23&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="782.6421" y="3280.0" /></mxCell><mxCell id="node10" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;4&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="610.6421" y="3028.0" /></mxCell><mxCell id="node11" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;42&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="545.6421" y="1264.0" /></mxCell><mxCell id="node12" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;32&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="781.6421" y="1516.0" /></mxCell><mxCell id="node13" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;25&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="853.6421" y="1516.0" /></mxCell><mxCell id="node14" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;6&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="456.6421" y="3280.0" /></mxCell><mxCell id="node15" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;13&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="708.6421" y="1264.0" /></mxCell><mxCell id="node33" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;28&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="638.6421" y="760.0" /></mxCell><mxCell id="node48" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;47&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="566.6421" y="760.0" /></mxCell><mxCell id="node49" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;45&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="710.6421" y="760.0" /></mxCell><mxCell id="node28" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;43&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="788.6421" y="2776.0" /></mxCell><mxCell id="node31" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;9&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="856.6421" y="2020.0" /></mxCell><mxCell id="node32" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;40&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="1046.6421" y="3028.0" /></mxCell><mxCell id="node34" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;16&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="1080.6421" y="2272.0" /></mxCell><mxCell id="node40" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;46&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="1156.6421" y="2776.0" /></mxCell><mxCell id="node50" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;33&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="708.6421" y="1012.0" /></mxCell><mxCell id="node16" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;18&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="665.6421" y="3280.0" /></mxCell><mxCell id="node17" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;48&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="654.6421" y="3532.0" /></mxCell><mxCell id="node18" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;11&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="572.6421" y="3532.0" /></mxCell><mxCell id="node19" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;19&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="712.6421" y="2020.0" /></mxCell><mxCell id="node20" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;24&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="640.6421" y="2272.0" /></mxCell><mxCell id="node21" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;41&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="678.6421" y="2776.0" /></mxCell><mxCell id="node22" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;34&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="640.6421" y="2020.0" /></mxCell><mxCell id="node23" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;20&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="709.6421" y="1768.0" /></mxCell><mxCell id="node24" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;14&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="925.6421" y="1768.0" /></mxCell><mxCell id="node25" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;27&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="1073.6421" y="1768.0" /></mxCell><mxCell id="node26" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;29&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="853.6421" y="1768.0" /></mxCell><mxCell id="node27" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;26&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="781.6421" y="1768.0" /></mxCell><mxCell id="node44" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;38&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="873.6421" y="3532.0" /></mxCell><mxCell id="node35" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;49&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="784.6421" y="2272.0" /></mxCell><mxCell id="node39" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;37&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="784.6421" y="2524.0" /></mxCell><mxCell id="node41" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;12&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="598.6421" y="2524.0" /></mxCell><mxCell id="node36" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;21&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="712.6421" y="2272.0" /></mxCell><mxCell id="node37" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;31&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="970.6421" y="2272.0" /></mxCell><mxCell id="node38" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;22&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="1122.6421" y="2524.0" /></mxCell><mxCell id="node46" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;5&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="974.6421" y="3028.0" /></mxCell><mxCell id="node43" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;17&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="784.6421" y="2020.0" /></mxCell><mxCell id="node42" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;10&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="898.6421" y="2776.0" /></mxCell><mxCell id="node29" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;1&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="800.6421" y="4.0" /></mxCell><mxCell id="node30" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;36&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="800.6421" y="256.0" /></mxCell><mxCell id="node45" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;2&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="1270.6421" y="2524.0" /></mxCell><mxCell id="node47" parent="1" style="ellipse;verticalAlign=middle;whiteSpace=wrap;fontSize=19;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor=#000000;strokeWidth=1;fillColor=#ffffff;" value="&lt;p style='margin:0px;text-align:center;margin-top:4px;;font-size:10.0px;font-family:Times,serif;color:#000000;'&gt;3&lt;/p&gt;" vertex="1"><mxGeometry as="geometry" height="54.0" width="54.0" x="1008.6421" y="2776.0" /></mxCell></root></mxGraphModel>
In [30]:
tojson("db.json")
In [6]:
print(init)
print(getoutput())
print()
## Supply chain tracking example
# label: %mname%
# stylename: shapeType
# styles: {"source": "shape=ellipse;fillColor=#ffe7ba;strokeColor=#ffe58f;perimeter=ellipsePerimeter;", \
#          "none": "shape=ellipse;fillColor=#fafafa;strokeColor=#cccccc;perimeter=ellipsePerimeter;", \
#          "script": "shape=ellipse;fillColor=#b7eb8f;strokeColor=#95de64;perimeter=ellipsePerimeter;", \
#          "file": "shape=ellipse;fillColor=#bae7ff;strokeColor=#91d5ff;perimeter=ellipsePerimeter;", \
#          "result": "shape=ellipse;fillColor=#ffd8bf;strokeColor=#ffbb96;perimeter=ellipsePerimeter;", \
#          "api": "rounded=1;fillColor=#efdbff;strokeColor=#d3adf7;", \
#          "lol": "shape=ellipse;fillColor:#ffd8bf;strokeColor=#ffd8bf;perimeter=ellipsePerimeter;"}
# namespace: csvimport-
# connect: {"from":"deps", "to": "mname", "style":"curved=1;endArrow=blockThin;startArrow=none;strokeColor=#999999;endFill=1;"}
# width: auto
# height: auto
# padding: 40
# ignore: id,shapeType,deps
# nodespacing: 40
# levelspacing: 40
# edgespacing: 40
# layout: verticalflow
## layout: horizontalflow, verticalflow, auto
## CSV data starts below this line
##mb,Mine B,,raw
##ma,Mine A,,raw
##mc,Mine C,,raw
##md,Mine D,,raw
##w1,Well 1,,well
##w2,Well 2,,well
id,mname,deps,shapeType

1,0,"20,29,19",none
2,29,"37,49,17,9,28,38",none
3,1,"20,47,15,27,19",none
4,47,"42,43",none
5,27,"32,42,25",none
6,2,"20,15",none
7,15,"31,26",none
8,20,"21,31,44,14,48,6,5",none
9,3,"10,44,19",none
10,10,"8,18,39",none
11,44,"43,42,18,39,38,17,8",none
12,19,"31,26",none
13,48,"34",none
14,5,"29",none
15,21,"16,29",none
16,14,"21,47,46,44,45,33",none
17,31,"12",none
18,26,"14",none
19,6,"35,22,39,16,13,11,30",none
20,30,"35,34,22",none
21,16,"37,17,9,49",none
22,35,,none
23,22,,none
24,11,"41,47,27,33",none
25,13,"37,22,43,47,42,49,27,40,36,33",none
26,39,"23,32,40,25,13,11,28,5",none
27,12,"10,44",none
28,46,,none
29,33,"43",none
30,45,"35,46,48,16,30,29,38",none
31,42,"7,40",none
32,43,"35,7,22,48,24,40,30,28",none
33,38,,none
34,17,"30,48",none
35,8,"23,11",none
36,18,"13,11",none
37,40,"21",none
38,32,"7,4,24",none
39,25,"24,4",none
40,23,"41,36,47,33",none
41,28,"35,22,46,34,38",none
42,49,"48",none
43,37,"35,46,48,30,28,38",none
44,36,"32,25,43",none
45,41,"35,4,22,28,43,46,48,42,32,40,25,34,29",none
46,34,"46,38",none
47,4,"21",none
48,7,"45,5",none
49,24,"21,35,48,45,5,16,30,34,29",none
50,9,"28",none

In [ ]: