{
	"csm": {
		"nodes": {
			"118": {
				"typename": {
					"type": "string",
					"value": "GlobalConstraintIcon"
				},
				"position": {
					"type": "list<double>",
					"value": [
						956,
						74
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": ""
				},
				"parser": {
					"type": "code",
					"value": ""
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"11": {
								"textContent": {
									"type": "string",
									"value": "check distinctNames on validate"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ff70",
										"stroke-dasharray": "",
										"fill": "#00ff70",
										"fill-opacity": 0.75,
										"font-size": "20px",
										"stroke-width": 1,
										"arrow-start": "none",
										"arrow-end": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "({'textContent' : 'check '+getAttr('name')+' on '+(getAttr('event') || 'validate')})\n"
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										0,
										-1
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							}
						},
						"edges": []
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/GlobalConstraint/8.instance"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/GlobalConstraintIcon"
			},
			"119": {
				"typename": {
					"type": "string",
					"value": "ClassIcon"
				},
				"position": {
					"type": "list<double>",
					"value": [
						116,
						975
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
				},
				"parser": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"96": {
								"width": {
									"type": "double",
									"value": 200
								},
								"height": {
									"type": "double",
									"value": 125
								},
								"cornerRadius": {
									"type": "double",
									"value": 0
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"stroke-width": 2
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Rectangle",
								"position": {
									"type": "list<double>",
									"value": [
										4,
										3
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"97": {
								"segments": {
									"type": "string",
									"value": "m0,0l197,0"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"font-size": "20px",
										"stroke-width": 2,
										"arrow-start": "none",
										"arrow-end": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path",
								"position": {
									"type": "list<double>",
									"value": [
										6,
										36
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"98": {
								"textContent": {
									"type": "string",
									"value": "OrthogonalComponent"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "18px",
										"font-style": "normal",
										"font-weight": "bold",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "var style = \n{\n   \"font-size\": \"18px\",\n   \"font-style\": \"normal\",\n   \"font-weight\": \"bold\",\n   \"line-height\": \"100%\",\n   \"letter-spacing\": \"0px\",\n   \"word-spacing\": \"0px\",\n   \"fill\": \"#000000\",\n   \"fill-opacity\": \"1\",\n   \"stroke\": \"none\",\n       \"font-style\": (getAttr('abstract') ? 'italic' : 'normal')\n};\n\n({'textContent': getAttr('name'), 'style':style})\n\n\n"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */\n({'name': getAttr('textContent')})"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										8,
										8
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"99": {
								"textContent": {
									"type": "string",
									"value": "+ name : string = OC_"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "14px",
										"font-style": "normal",
										"font-weight": "bold",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "var filenames = getAttr('attributes').map(\n            function(attr)\n            {\n                var s = '+ '+attr['name'] + ' : ' + attr['type'];\n                if (attr['default'])\n                    s += ' = ' + attr['default'];\n                return s;\n            });\n\n({'textContent': filenames.join('\\n')})"
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										10,
										41
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"100": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										68.5,
										36.5
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"stroke-width": 1
									}
								}
							},
							"101": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										12.5,
										27
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"stroke-width": 1
									}
								}
							},
							"102": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										53.75,
										20
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"stroke-width": 1
									}
								}
							}
						},
						"edges": [
							{
								"src": "96",
								"dest": "100"
							},
							{
								"src": "100",
								"dest": "98"
							},
							{
								"src": "96",
								"dest": "101"
							},
							{
								"src": "101",
								"dest": "99"
							},
							{
								"src": "96",
								"dest": "102"
							},
							{
								"src": "102",
								"dest": "97"
							}
						]
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Class/12.instance"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon"
			},
			"120": {
				"typename": {
					"type": "string",
					"value": "ClassIcon"
				},
				"position": {
					"type": "list<double>",
					"value": [
						556,
						749
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
				},
				"parser": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"96": {
								"width": {
									"type": "double",
									"value": 200
								},
								"height": {
									"type": "double",
									"value": 125
								},
								"cornerRadius": {
									"type": "double",
									"value": 0
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"stroke-width": 2
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Rectangle",
								"position": {
									"type": "list<double>",
									"value": [
										4,
										3
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"97": {
								"segments": {
									"type": "string",
									"value": "m0,0l197,0"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"font-size": "20px",
										"stroke-width": 2,
										"arrow-start": "none",
										"arrow-end": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path",
								"position": {
									"type": "list<double>",
									"value": [
										6,
										36
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"98": {
								"textContent": {
									"type": "string",
									"value": "State"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "18px",
										"font-style": "italic",
										"font-weight": "bold",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "var style = \n{\n   \"font-size\": \"18px\",\n   \"font-style\": \"normal\",\n   \"font-weight\": \"bold\",\n   \"line-height\": \"100%\",\n   \"letter-spacing\": \"0px\",\n   \"word-spacing\": \"0px\",\n   \"fill\": \"#000000\",\n   \"fill-opacity\": \"1\",\n   \"stroke\": \"none\",\n       \"font-style\": (getAttr('abstract') ? 'italic' : 'normal')\n};\n\n({'textContent': getAttr('name'), 'style':style})\n\n\n"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */\n({'name': getAttr('textContent')})"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										8,
										8
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"99": {
								"textContent": {
									"type": "string",
									"value": "+ name : string = S_\n+ entryAction : code\n+ exitAction : code\n+ isStart : boolean\n+ isCurrent : boolean\n+ option : ENUM(ITF, OTF, RTO) = ITF\n+ raiseEntry : list<map<[event,scope,arguments],[string,string,list<string>]>> = \n+ raiseExit : list<map<[event,scope,arguments],[string,string,list<string>]>> = "
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "14px",
										"font-style": "normal",
										"font-weight": "bold",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "var filenames = getAttr('attributes').map(\n            function(attr)\n            {\n                var s = '+ '+attr['name'] + ' : ' + attr['type'];\n                if (attr['default'])\n                    s += ' = ' + attr['default'];\n                return s;\n            });\n\n({'textContent': filenames.join('\\n')})"
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										10,
										41
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"100": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										68.5,
										36.5
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"stroke-width": 1
									}
								}
							},
							"101": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										12.5,
										27
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"stroke-width": 1
									}
								}
							},
							"102": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										53.75,
										20
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"stroke-width": 1
									}
								}
							}
						},
						"edges": [
							{
								"src": "96",
								"dest": "100"
							},
							{
								"src": "100",
								"dest": "98"
							},
							{
								"src": "96",
								"dest": "101"
							},
							{
								"src": "101",
								"dest": "99"
							},
							{
								"src": "96",
								"dest": "102"
							},
							{
								"src": "102",
								"dest": "97"
							}
						]
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Class/18.instance"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon"
			},
			"121": {
				"typename": {
					"type": "string",
					"value": "ClassIcon"
				},
				"position": {
					"type": "list<double>",
					"value": [
						456,
						972
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
				},
				"parser": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"96": {
								"width": {
									"type": "double",
									"value": 200
								},
								"height": {
									"type": "double",
									"value": 125
								},
								"cornerRadius": {
									"type": "double",
									"value": 0
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"stroke-width": 2
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Rectangle",
								"position": {
									"type": "list<double>",
									"value": [
										4,
										3
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"97": {
								"segments": {
									"type": "string",
									"value": "m0,0l197,0"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"font-size": "20px",
										"stroke-width": 2,
										"arrow-start": "none",
										"arrow-end": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path",
								"position": {
									"type": "list<double>",
									"value": [
										6,
										36
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"98": {
								"textContent": {
									"type": "string",
									"value": "CompositeState"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "18px",
										"font-style": "normal",
										"font-weight": "bold",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "var style = \n{\n   \"font-size\": \"18px\",\n   \"font-style\": \"normal\",\n   \"font-weight\": \"bold\",\n   \"line-height\": \"100%\",\n   \"letter-spacing\": \"0px\",\n   \"word-spacing\": \"0px\",\n   \"fill\": \"#000000\",\n   \"fill-opacity\": \"1\",\n   \"stroke\": \"none\",\n       \"font-style\": (getAttr('abstract') ? 'italic' : 'normal')\n};\n\n({'textContent': getAttr('name'), 'style':style})\n\n\n"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */\n({'name': getAttr('textContent')})"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										8,
										8
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"99": {
								"textContent": {
									"type": "string",
									"value": ""
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "14px",
										"font-style": "normal",
										"font-weight": "bold",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "var filenames = getAttr('attributes').map(\n            function(attr)\n            {\n                var s = '+ '+attr['name'] + ' : ' + attr['type'];\n                if (attr['default'])\n                    s += ' = ' + attr['default'];\n                return s;\n            });\n\n({'textContent': filenames.join('\\n')})"
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										10,
										41
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"100": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										68.5,
										36.5
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"stroke-width": 1
									}
								}
							},
							"101": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										12.5,
										27
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"stroke-width": 1
									}
								}
							},
							"102": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										53.75,
										20
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"stroke-width": 1
									}
								}
							}
						},
						"edges": [
							{
								"src": "96",
								"dest": "100"
							},
							{
								"src": "100",
								"dest": "98"
							},
							{
								"src": "96",
								"dest": "101"
							},
							{
								"src": "101",
								"dest": "99"
							},
							{
								"src": "96",
								"dest": "102"
							},
							{
								"src": "102",
								"dest": "97"
							}
						]
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Class/19.instance"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon"
			},
			"122": {
				"typename": {
					"type": "string",
					"value": "ClassIcon"
				},
				"position": {
					"type": "list<double>",
					"value": [
						683,
						973
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
				},
				"parser": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"96": {
								"width": {
									"type": "double",
									"value": 200
								},
								"height": {
									"type": "double",
									"value": 125
								},
								"cornerRadius": {
									"type": "double",
									"value": 0
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"stroke-width": 2
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Rectangle",
								"position": {
									"type": "list<double>",
									"value": [
										4,
										3
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"97": {
								"segments": {
									"type": "string",
									"value": "m0,0l197,0"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"font-size": "20px",
										"stroke-width": 2,
										"arrow-start": "none",
										"arrow-end": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path",
								"position": {
									"type": "list<double>",
									"value": [
										6,
										36
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"98": {
								"textContent": {
									"type": "string",
									"value": "BasicState"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "18px",
										"font-style": "normal",
										"font-weight": "bold",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "var style = \n{\n   \"font-size\": \"18px\",\n   \"font-style\": \"normal\",\n   \"font-weight\": \"bold\",\n   \"line-height\": \"100%\",\n   \"letter-spacing\": \"0px\",\n   \"word-spacing\": \"0px\",\n   \"fill\": \"#000000\",\n   \"fill-opacity\": \"1\",\n   \"stroke\": \"none\",\n       \"font-style\": (getAttr('abstract') ? 'italic' : 'normal')\n};\n\n({'textContent': getAttr('name'), 'style':style})\n\n\n"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */\n({'name': getAttr('textContent')})"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										8,
										8
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"99": {
								"textContent": {
									"type": "string",
									"value": ""
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "14px",
										"font-style": "normal",
										"font-weight": "bold",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "var filenames = getAttr('attributes').map(\n            function(attr)\n            {\n                var s = '+ '+attr['name'] + ' : ' + attr['type'];\n                if (attr['default'])\n                    s += ' = ' + attr['default'];\n                return s;\n            });\n\n({'textContent': filenames.join('\\n')})"
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										10,
										41
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"100": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										68.5,
										36.5
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"stroke-width": 1
									}
								}
							},
							"101": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										12.5,
										27
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"stroke-width": 1
									}
								}
							},
							"102": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										53.75,
										20
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"stroke-width": 1
									}
								}
							}
						},
						"edges": [
							{
								"src": "96",
								"dest": "100"
							},
							{
								"src": "100",
								"dest": "98"
							},
							{
								"src": "96",
								"dest": "101"
							},
							{
								"src": "101",
								"dest": "99"
							},
							{
								"src": "96",
								"dest": "102"
							},
							{
								"src": "102",
								"dest": "97"
							}
						]
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Class/20.instance"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon"
			},
			"123": {
				"link-style": {
					"type": "map<string,string>",
					"value": {
						"stroke": "#000000",
						"stroke-dasharray": "",
						"stroke-opacity": 1,
						"stroke-width": 2
					}
				},
				"arrowHead": {
					"type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)",
					"value": "custom"
				},
				"arrowTail": {
					"type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)",
					"value": "arrow-black"
				},
				"typename": {
					"type": "string",
					"value": "AssociationLink"
				},
				"position": {
					"type": "list<double>",
					"value": [
						440,
						838.8828098912265
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
				},
				"parser": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"71": {
								"textContent": {
									"type": "string",
									"value": "contain"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "({'textContent':getAttr('name')})"
								},
								"parser": {
									"type": "code",
									"value": "({'name':getAttr('textContent')})"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;10.5,0%",
										"0;41.20936271570599,0%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;-90"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 0.3803680981595092,
										"yoffset": -28.5
									}
								}
							},
							"74": {
								"textContent": {
									"type": "string",
									"value": "*"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar clazz = getNeighbors('>'),\n    mult = '';\nif (clazz.length > 0) {\n    clazz = clazz[0];\n    var cardinalities = getAttr('cardinalities', clazz), card;\n    for (i = 0; i < cardinalities.length; i++) {\n        if (cardinalities[i]['type'] == getAttr('name') && cardinalities[i]['dir'] == 'in') {\n            card = cardinalities[i];\n            break;\n        }\n    }\n    if (card) {\n        var min = card['min'],\n            max = card['max'];\n        if (min == '')\n            min = '0';\n        if (max == '' || max == 'Infinity')\n            max = '*';\n        if (min == '0' && max == '*')\n            mult = '*';\n        else if (min == max)\n            mult = max;\n        else mult = min + '..' + max;\n    }\n}\nif (mult == '')\n    mult = '*';\n({'textContent': mult})"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;13.5,0%",
										"0;117.45463730344,0%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;-90"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 0.06134969325153374,
										"yoffset": -25.5
									}
								}
							},
							"77": {
								"textContent": {
									"type": "string",
									"value": "*"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar clazz = getNeighbors('<'),\n    mult = '';\nif (clazz.length > 0) {\n    clazz = clazz[0];\n    var cardinalities = getAttr('cardinalities', clazz), card;\n    for (i = 0; i < cardinalities.length; i++) {\n        if (cardinalities[i]['type'] == getAttr('name') && cardinalities[i]['dir'] == 'out') {\n            card = cardinalities[i];\n            break;\n        }\n    }\n    if (card) {\n        var min = card['min'],\n            max = card['max'];\n        if (min == '')\n            min = '0';\n        if (max == '' || max == 'Infinity')\n            max = '*';\n        if (min == '0' && max == '*')\n            mult = '*';\n        else if (min == max)\n            mult = max;\n        else mult = min + '..' + max;\n    }\n}\nif (mult == '')\n    mult = '*';\n({'textContent': mult})"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;115.99961072693532,100%",
										"0;-53.38280989122654,0%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;0"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 1.0245398773006136,
										"yoffset": -23.5
									}
								}
							},
							"140": {
								"segments": {
									"type": "string",
									"value": "m0,0 l20,8 l-20,8"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"fill": "#000000",
										"fill-opacity": 0,
										"stroke-width": 1,
										"opacity": 1
									}
								},
								"mapper": {
									"type": "code",
									"value": ""
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path",
								"position": {
									"type": "list<double>",
									"value": [
										"0;115.99961072693532,100%",
										"0;-37.88280989122654,0%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;0"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 1,
										"yoffset": -8
									}
								}
							}
						},
						"edges": []
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Association/21.instance"
				},
				"$segments": {
					"type": "map<string,list<string>>",
					"value": {
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon/121.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink/123.instance": "M479,971L479,850.8828098912268",
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink/123.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon/120.instance": "M479,850.8828098912268L479,809L555.9996107269353,809"
					}
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink"
			},
			"124": {
				"link-style": {
					"type": "map<string,string>",
					"value": {
						"stroke": "#000000",
						"stroke-dasharray": "",
						"stroke-opacity": 1,
						"stroke-width": 2
					}
				},
				"arrowHead": {
					"type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)",
					"value": "custom"
				},
				"arrowTail": {
					"type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)",
					"value": "arrow-black"
				},
				"typename": {
					"type": "string",
					"value": "InheritanceLink"
				},
				"position": {
					"type": "list<double>",
					"value": [
						735.9989985080956,
						935.499
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
				},
				"parser": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"164": {
								"segments": {
									"type": "string",
									"value": "m0,0 l20,10 l-20,10 z"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"fill": "#ffffff",
										"opacity": 1,
										"stroke-width": 1
									}
								},
								"mapper": {
									"type": "code",
									"value": ""
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path",
								"position": {
									"type": "list<double>",
									"value": [
										"0;-9.99899850809561,6.123031769111886e-15%",
										"0;-57.499000000000024,-100%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;-90"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 1,
										"yoffset": -10
									}
								}
							}
						},
						"edges": []
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Inheritance/22.instance"
				},
				"$segments": {
					"type": "map<string,list<string>>",
					"value": {
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon/122.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/InheritanceLink/124.instance": "M736,975L736,935",
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/InheritanceLink/124.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon/120.instance": "M736,935L736,878"
					}
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/InheritanceLink"
			},
			"125": {
				"link-style": {
					"type": "map<string,string>",
					"value": {
						"stroke": "#000000",
						"stroke-dasharray": "",
						"stroke-opacity": 1,
						"stroke-width": 2
					}
				},
				"arrowHead": {
					"type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)",
					"value": "custom"
				},
				"arrowTail": {
					"type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)",
					"value": "arrow-black"
				},
				"typename": {
					"type": "string",
					"value": "AssociationLink"
				},
				"position": {
					"type": "list<double>",
					"value": [
						771,
						685.5143823999999
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
				},
				"parser": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"71": {
								"textContent": {
									"type": "string",
									"value": "transition"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "({'textContent':getAttr('name')})"
								},
								"parser": {
									"type": "code",
									"value": "({'name':getAttr('textContent')})"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;0.15337423312882947,0%",
										"0;-17.01438239999993,0%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;0"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 0.3803680981595092,
										"yoffset": -28.5
									}
								}
							},
							"74": {
								"textContent": {
									"type": "string",
									"value": "*"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar clazz = getNeighbors('>'),\n    mult = '';\nif (clazz.length > 0) {\n    clazz = clazz[0];\n    var cardinalities = getAttr('cardinalities', clazz), card;\n    for (i = 0; i < cardinalities.length; i++) {\n        if (cardinalities[i]['type'] == getAttr('name') && cardinalities[i]['dir'] == 'in') {\n            card = cardinalities[i];\n            break;\n        }\n    }\n    if (card) {\n        var min = card['min'],\n            max = card['max'];\n        if (min == '')\n            min = '0';\n        if (max == '' || max == 'Infinity')\n            max = '*';\n        if (min == '0' && max == '*')\n            mult = '*';\n        else if (min == max)\n            mult = max;\n        else mult = min + '..' + max;\n    }\n}\nif (mult == '')\n    mult = '*';\n({'textContent': mult})"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;-91.5,0%",
										"0;43.58991207852773,0%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;-90"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 0.06134969325153374,
										"yoffset": -25.5
									}
								}
							},
							"77": {
								"textContent": {
									"type": "string",
									"value": "*"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar clazz = getNeighbors('<'),\n    mult = '';\nif (clazz.length > 0) {\n    clazz = clazz[0];\n    var cardinalities = getAttr('cardinalities', clazz), card;\n    for (i = 0; i < cardinalities.length; i++) {\n        if (cardinalities[i]['type'] == getAttr('name') && cardinalities[i]['dir'] == 'out') {\n            card = cardinalities[i];\n            break;\n        }\n    }\n    if (card) {\n        var min = card['min'],\n            max = card['max'];\n        if (min == '')\n            min = '0';\n        if (max == '' || max == 'Infinity')\n            max = '*';\n        if (min == '0' && max == '*')\n            mult = '*';\n        else if (min == max)\n            mult = max;\n        else mult = min + '..' + max;\n    }\n}\nif (mult == '')\n    mult = '*';\n({'textContent': mult})"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;-13,-100%",
										"0;134.98561760000007,1.2246063538223773e-14%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;180"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 1.0245398773006136,
										"yoffset": -23.5
									}
								}
							},
							"140": {
								"segments": {
									"type": "string",
									"value": "m0,0 l20,8 l-20,8"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"fill": "#000000",
										"fill-opacity": 0,
										"stroke-width": 1,
										"opacity": 1
									}
								},
								"mapper": {
									"type": "code",
									"value": ""
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path",
								"position": {
									"type": "list<double>",
									"value": [
										"0;-13,-100%",
										"0;119.48561760000007,1.2246063538223773e-14%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;180"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 1,
										"yoffset": -8
									}
								}
							}
						},
						"edges": []
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Association/23.instance"
				},
				"$segments": {
					"type": "map<string,list<string>>",
					"value": {
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon/120.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink/125.instance": "M705,748L705,697L810,697L810,697.5143823999999",
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink/125.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon/120.instance": "M810,697.5143823999999L810,797L758,797"
					}
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink"
			},
			"126": {
				"link-style": {
					"type": "map<string,string>",
					"value": {
						"stroke": "#000000",
						"stroke-dasharray": "",
						"stroke-opacity": 1,
						"stroke-width": 2
					}
				},
				"arrowHead": {
					"type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)",
					"value": "custom"
				},
				"arrowTail": {
					"type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)",
					"value": "arrow-black"
				},
				"typename": {
					"type": "string",
					"value": "InheritanceLink"
				},
				"position": {
					"type": "list<double>",
					"value": [
						602.9989985080956,
						923.499
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
				},
				"parser": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"164": {
								"segments": {
									"type": "string",
									"value": "m0,0 l20,10 l-20,10 z"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"fill": "#ffffff",
										"opacity": 1,
										"stroke-width": 1
									}
								},
								"mapper": {
									"type": "code",
									"value": ""
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path",
								"position": {
									"type": "list<double>",
									"value": [
										"0;-9.99899850809561,6.123031769111886e-15%",
										"0;-45.499000000000024,-100%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;-90"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 1,
										"yoffset": -10
									}
								}
							}
						},
						"edges": []
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Inheritance/24.instance"
				},
				"$segments": {
					"type": "map<string,list<string>>",
					"value": {
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon/121.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/InheritanceLink/126.instance": "M603,976L603,923.5",
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/InheritanceLink/126.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon/120.instance": "M603.1093526064208,923.3978687921165L603,878"
					}
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/InheritanceLink"
			},
			"127": {
				"link-style": {
					"type": "map<string,string>",
					"value": {
						"stroke": "#000000",
						"stroke-dasharray": "",
						"stroke-opacity": 1,
						"stroke-width": 2
					}
				},
				"arrowHead": {
					"type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)",
					"value": "custom"
				},
				"arrowTail": {
					"type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)",
					"value": "arrow-black"
				},
				"typename": {
					"type": "string",
					"value": "AssociationLink"
				},
				"position": {
					"type": "list<double>",
					"value": [
						337.5,
						1029
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
				},
				"parser": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"71": {
								"textContent": {
									"type": "string",
									"value": "containOC"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "({'textContent':getAttr('name')})"
								},
								"parser": {
									"type": "code",
									"value": "({'name':getAttr('textContent')})"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;65.24875490104523,0%",
										"0;40.5,0%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;180"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 0.3803680981595092,
										"yoffset": -28.5
									}
								}
							},
							"74": {
								"textContent": {
									"type": "string",
									"value": "*"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar clazz = getNeighbors('>'),\n    mult = '';\nif (clazz.length > 0) {\n    clazz = clazz[0];\n    var cardinalities = getAttr('cardinalities', clazz), card;\n    for (i = 0; i < cardinalities.length; i++) {\n        if (cardinalities[i]['type'] == getAttr('name') && cardinalities[i]['dir'] == 'in') {\n            card = cardinalities[i];\n            break;\n        }\n    }\n    if (card) {\n        var min = card['min'],\n            max = card['max'];\n        if (min == '')\n            min = '0';\n        if (max == '' || max == 'Infinity')\n            max = '*';\n        if (min == '0' && max == '*')\n            mult = '*';\n        else if (min == max)\n            mult = max;\n        else mult = min + '..' + max;\n    }\n}\nif (mult == '')\n    mult = '*';\n({'textContent': mult})"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;109.9110895001686,0%",
										"0;37.5,0%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;180"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 0.06134969325153374,
										"yoffset": -25.5
									}
								}
							},
							"77": {
								"textContent": {
									"type": "string",
									"value": "*"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar clazz = getNeighbors('<'),\n    mult = '';\nif (clazz.length > 0) {\n    clazz = clazz[0];\n    var cardinalities = getAttr('cardinalities', clazz), card;\n    for (i = 0; i < cardinalities.length; i++) {\n        if (cardinalities[i]['type'] == getAttr('name') && cardinalities[i]['dir'] == 'out') {\n            card = cardinalities[i];\n            break;\n        }\n    }\n    if (card) {\n        var min = card['min'],\n            max = card['max'];\n        if (min == '')\n            min = '0';\n        if (max == '' || max == 'Infinity')\n            max = '*';\n        if (min == '0' && max == '*')\n            mult = '*';\n        else if (min == max)\n            mult = max;\n        else mult = min + '..' + max;\n    }\n}\nif (mult == '')\n    mult = '*';\n({'textContent': mult})"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;-21.499241147252064,-100%",
										"0;35.5,1.2246063538223773e-14%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;180"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 1.0245398773006136,
										"yoffset": -23.5
									}
								}
							},
							"140": {
								"segments": {
									"type": "string",
									"value": "m0,0 l20,8 l-20,8"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"fill": "#000000",
										"fill-opacity": 0,
										"stroke-width": 1,
										"opacity": 1
									}
								},
								"mapper": {
									"type": "code",
									"value": ""
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path",
								"position": {
									"type": "list<double>",
									"value": [
										"0;-21.499241147252064,-100%",
										"0;20,1.2246063538223773e-14%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;180"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 1,
										"yoffset": -8
									}
								}
							}
						},
						"edges": []
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Association/26.instance"
				},
				"$segments": {
					"type": "map<string,list<string>>",
					"value": {
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon/121.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink/127.instance": "M456,1041L377,1041",
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink/127.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon/119.instance": "M376.9992356687899,1041L316.00075885274794,1041"
					}
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink"
			},
			"128": {
				"typename": {
					"type": "string",
					"value": "ClassIcon"
				},
				"position": {
					"type": "list<double>",
					"value": [
						514,
						1181
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
				},
				"parser": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"96": {
								"width": {
									"type": "double",
									"value": 200
								},
								"height": {
									"type": "double",
									"value": 125
								},
								"cornerRadius": {
									"type": "double",
									"value": 0
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"stroke-width": 2
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Rectangle",
								"position": {
									"type": "list<double>",
									"value": [
										4,
										3
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"97": {
								"segments": {
									"type": "string",
									"value": "m0,0l197,0"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"font-size": "20px",
										"stroke-width": 2,
										"arrow-start": "none",
										"arrow-end": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path",
								"position": {
									"type": "list<double>",
									"value": [
										6,
										36
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"98": {
								"textContent": {
									"type": "string",
									"value": "HistoryState"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "18px",
										"font-style": "normal",
										"font-weight": "bold",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "var style = \n{\n   \"font-size\": \"18px\",\n   \"font-style\": \"normal\",\n   \"font-weight\": \"bold\",\n   \"line-height\": \"100%\",\n   \"letter-spacing\": \"0px\",\n   \"word-spacing\": \"0px\",\n   \"fill\": \"#000000\",\n   \"fill-opacity\": \"1\",\n   \"stroke\": \"none\",\n       \"font-style\": (getAttr('abstract') ? 'italic' : 'normal')\n};\n\n({'textContent': getAttr('name'), 'style':style})\n\n\n"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */\n({'name': getAttr('textContent')})"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										8,
										8
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"99": {
								"textContent": {
									"type": "string",
									"value": "+ name : string = H\n+ type : ENUM(deep, shallow) = shallow"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "14px",
										"font-style": "normal",
										"font-weight": "bold",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "var filenames = getAttr('attributes').map(\n            function(attr)\n            {\n                var s = '+ '+attr['name'] + ' : ' + attr['type'];\n                if (attr['default'])\n                    s += ' = ' + attr['default'];\n                return s;\n            });\n\n({'textContent': filenames.join('\\n')})"
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										10,
										41
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"100": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										68.5,
										36.5
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"stroke-width": 1
									}
								}
							},
							"101": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										12.5,
										27
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"stroke-width": 1
									}
								}
							},
							"102": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										53.75,
										20
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"stroke-width": 1
									}
								}
							}
						},
						"edges": [
							{
								"src": "96",
								"dest": "100"
							},
							{
								"src": "100",
								"dest": "98"
							},
							{
								"src": "96",
								"dest": "101"
							},
							{
								"src": "101",
								"dest": "99"
							},
							{
								"src": "96",
								"dest": "102"
							},
							{
								"src": "102",
								"dest": "97"
							}
						]
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Class/28.instance"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon"
			},
			"129": {
				"link-style": {
					"type": "map<string,string>",
					"value": {
						"stroke": "#000000",
						"stroke-dasharray": "",
						"stroke-opacity": 1,
						"stroke-width": 2
					}
				},
				"arrowHead": {
					"type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)",
					"value": "custom"
				},
				"arrowTail": {
					"type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)",
					"value": "arrow-black"
				},
				"typename": {
					"type": "string",
					"value": "AssociationLink"
				},
				"position": {
					"type": "list<double>",
					"value": [
						511.8046875,
						1127.8203125
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
				},
				"parser": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"71": {
								"textContent": {
									"type": "string",
									"value": "includes"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "({'textContent':getAttr('name')})"
								},
								"parser": {
									"type": "code",
									"value": "({'name':getAttr('textContent')})"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;65.08271638410764,0%",
										"0;1.551976918064156,0%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;89.31793960682735"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 0.3803680981595092,
										"yoffset": -28.5
									}
								}
							},
							"74": {
								"textContent": {
									"type": "string",
									"value": "*"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar clazz = getNeighbors('>'),\n    mult = '';\nif (clazz.length > 0) {\n    clazz = clazz[0];\n    var cardinalities = getAttr('cardinalities', clazz), card;\n    for (i = 0; i < cardinalities.length; i++) {\n        if (cardinalities[i]['type'] == getAttr('name') && cardinalities[i]['dir'] == 'in') {\n            card = cardinalities[i];\n            break;\n        }\n    }\n    if (card) {\n        var min = card['min'],\n            max = card['max'];\n        if (min == '')\n            min = '0';\n        if (max == '' || max == 'Infinity')\n            max = '*';\n        if (min == '0' && max == '*')\n            mult = '*';\n        else if (min == max)\n            mult = max;\n        else mult = min + '..' + max;\n    }\n}\nif (mult == '')\n    mult = '*';\n({'textContent': mult})"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;61.75631591720628,0%",
										"0;-25.847805791446035,0%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;89.31793960682735"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 0.06134969325153374,
										"yoffset": -25.5
									}
								}
							},
							"77": {
								"textContent": {
									"type": "string",
									"value": "*"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar clazz = getNeighbors('<'),\n    mult = '';\nif (clazz.length > 0) {\n    clazz = clazz[0];\n    var cardinalities = getAttr('cardinalities', clazz), card;\n    for (i = 0; i < cardinalities.length; i++) {\n        if (cardinalities[i]['type'] == getAttr('name') && cardinalities[i]['dir'] == 'out') {\n            card = cardinalities[i];\n            break;\n        }\n    }\n    if (card) {\n        var min = card['min'],\n            max = card['max'];\n        if (min == '')\n            min = '0';\n        if (max == '' || max == 'Infinity')\n            max = '*';\n        if (min == '0' && max == '*')\n            mult = '*';\n        else if (min == max)\n            mult = max;\n        else mult = min + '..' + max;\n    }\n}\nif (mult == '')\n    mult = '*';\n({'textContent': mult})"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;59.69379534321479,-1.1362902728827475%",
										"0;55.44671571412755,99.99354401367995%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;90.6510603802295"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 1.0245398773006136,
										"yoffset": -23.5
									}
								}
							},
							"140": {
								"segments": {
									"type": "string",
									"value": "m0,0 l20,8 l-20,8"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"fill": "#000000",
										"fill-opacity": 0,
										"stroke-width": 1,
										"opacity": 1
									}
								},
								"mapper": {
									"type": "code",
									"value": ""
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path",
								"position": {
									"type": "list<double>",
									"value": [
										"0;44.19479602109442,-1.1362902728827475%",
										"0;55.27059072183056,99.99354401367995%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;90.6510603802295"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 1,
										"yoffset": -8
									}
								}
							}
						},
						"edges": []
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Association/30.instance"
				},
				"$segments": {
					"type": "map<string,list<string>>",
					"value": {
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon/121.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink/129.instance": "M548,1097L548.5,1139",
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink/129.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon/128.instance": "M548.5008907308738,1139.0748213933932L548,1183"
					}
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink"
			},
			"130": {
				"link-style": {
					"type": "map<string,string>",
					"value": {
						"stroke": "#000000",
						"stroke-dasharray": "",
						"stroke-opacity": 1,
						"stroke-width": 2
					}
				},
				"arrowHead": {
					"type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)",
					"value": "custom"
				},
				"arrowTail": {
					"type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)",
					"value": "arrow-black"
				},
				"typename": {
					"type": "string",
					"value": "AssociationLink"
				},
				"position": {
					"type": "list<double>",
					"value": [
						678,
						1094.5
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
				},
				"parser": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"71": {
								"textContent": {
									"type": "string",
									"value": "transition"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "({'textContent':getAttr('name')})"
								},
								"parser": {
									"type": "code",
									"value": "({'name':getAttr('textContent')})"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;28.5,0%",
										"0;-103.10736196319021,0%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;90"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 0.3803680981595092,
										"yoffset": -28.5
									}
								}
							},
							"74": {
								"textContent": {
									"type": "string",
									"value": "*"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar clazz = getNeighbors('>'),\n    mult = '';\nif (clazz.length > 0) {\n    clazz = clazz[0];\n    var cardinalities = getAttr('cardinalities', clazz), card;\n    for (i = 0; i < cardinalities.length; i++) {\n        if (cardinalities[i]['type'] == getAttr('name') && cardinalities[i]['dir'] == 'in') {\n            card = cardinalities[i];\n            break;\n        }\n    }\n    if (card) {\n        var min = card['min'],\n            max = card['max'];\n        if (min == '')\n            min = '0';\n        if (max == '' || max == 'Infinity')\n            max = '*';\n        if (min == '0' && max == '*')\n            mult = '*';\n        else if (min == max)\n            mult = max;\n        else mult = min + '..' + max;\n    }\n}\nif (mult == '')\n    mult = '*';\n({'textContent': mult})"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;25.5,0%",
										"0;-200.72699386503064,0%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;90"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 0.06134969325153374,
										"yoffset": -25.5
									}
								}
							},
							"77": {
								"textContent": {
									"type": "string",
									"value": "*"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar clazz = getNeighbors('<'),\n    mult = '';\nif (clazz.length > 0) {\n    clazz = clazz[0];\n    var cardinalities = getAttr('cardinalities', clazz), card;\n    for (i = 0; i < cardinalities.length; i++) {\n        if (cardinalities[i]['type'] == getAttr('name') && cardinalities[i]['dir'] == 'out') {\n            card = cardinalities[i];\n            break;\n        }\n    }\n    if (card) {\n        var min = card['min'],\n            max = card['max'];\n        if (min == '')\n            min = '0';\n        if (max == '' || max == 'Infinity')\n            max = '*';\n        if (min == '0' && max == '*')\n            mult = '*';\n        else if (min == max)\n            mult = max;\n        else mult = min + '..' + max;\n    }\n}\nif (mult == '')\n    mult = '*';\n({'textContent': mult})"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;23.5,6.123031769111886e-15%",
										"0;86.5,100%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;90"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 1.0245398773006136,
										"yoffset": -23.5
									}
								}
							},
							"140": {
								"segments": {
									"type": "string",
									"value": "m0,0 l20,8 l-20,8"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"fill": "#000000",
										"fill-opacity": 0,
										"stroke-width": 1,
										"opacity": 1
									}
								},
								"mapper": {
									"type": "code",
									"value": ""
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path",
								"position": {
									"type": "list<double>",
									"value": [
										"0;8,6.123031769111886e-15%",
										"0;86.5,100%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;90"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 1,
										"yoffset": -8
									}
								}
							}
						},
						"edges": []
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Association/36.instance"
				},
				"$segments": {
					"type": "map<string,list<string>>",
					"value": {
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon/120.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink/130.instance": "M678,875L678,1094",
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink/130.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon/128.instance": "M678,1094L678,1140L678,1181"
					}
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink"
			},
			"131": {
				"typename": {
					"type": "string",
					"value": "ClassIcon"
				},
				"position": {
					"type": "list<double>",
					"value": [
						537,
						426
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
				},
				"parser": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"96": {
								"width": {
									"type": "double",
									"value": 200
								},
								"height": {
									"type": "double",
									"value": 125
								},
								"cornerRadius": {
									"type": "double",
									"value": 0
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"stroke-width": 2
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Rectangle",
								"position": {
									"type": "list<double>",
									"value": [
										4,
										3
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"97": {
								"segments": {
									"type": "string",
									"value": "m0,0l197,0"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"stroke-dasharray": "",
										"fill": "#ffffff",
										"fill-opacity": 0.75,
										"font-size": "20px",
										"stroke-width": 2,
										"arrow-start": "none",
										"arrow-end": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path",
								"position": {
									"type": "list<double>",
									"value": [
										6,
										36
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"98": {
								"textContent": {
									"type": "string",
									"value": "Class"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "18px",
										"font-style": "normal",
										"font-weight": "bold",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "var style = \n{\n   \"font-size\": \"18px\",\n   \"font-style\": \"normal\",\n   \"font-weight\": \"bold\",\n   \"line-height\": \"100%\",\n   \"letter-spacing\": \"0px\",\n   \"word-spacing\": \"0px\",\n   \"fill\": \"#000000\",\n   \"fill-opacity\": \"1\",\n   \"stroke\": \"none\",\n       \"font-style\": (getAttr('abstract') ? 'italic' : 'normal')\n};\n\n({'textContent': getAttr('name'), 'style':style})\n\n\n"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */\n({'name': getAttr('textContent')})"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										8,
										8
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"99": {
								"textContent": {
									"type": "string",
									"value": "+ name : string = Class_\n+ attributes : list<$ATTRIBUTE> = \n+ cardinalities : list<$CARDINALITY> = \n+ abstract : boolean\n+ methods : list<$METHOD> = \n+ external : boolean"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "14px",
										"font-style": "normal",
										"font-weight": "bold",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none"
									}
								},
								"mapper": {
									"type": "code",
									"value": "var filenames = getAttr('attributes').map(\n            function(attr)\n            {\n                var s = '+ '+attr['name'] + ' : ' + attr['type'];\n                if (attr['default'])\n                    s += ' = ' + attr['default'];\n                return s;\n            });\n\n({'textContent': filenames.join('\\n')})"
								},
								"parser": {
									"type": "code",
									"value": ""
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										10,
										41
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								}
							},
							"100": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										68.5,
										36.5
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"stroke-width": 1
									}
								}
							},
							"101": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										12.5,
										27
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"stroke-width": 1
									}
								}
							},
							"102": {
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
								"position": {
									"type": "list<double>",
									"value": [
										53.75,
										20
									]
								},
								"orientation": {
									"type": "double",
									"value": 0
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"link-style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#00ffff",
										"stroke-dasharray": "",
										"stroke-opacity": 0.1,
										"stroke-width": 1
									}
								}
							}
						},
						"edges": [
							{
								"src": "96",
								"dest": "100"
							},
							{
								"src": "100",
								"dest": "98"
							},
							{
								"src": "96",
								"dest": "101"
							},
							{
								"src": "101",
								"dest": "99"
							},
							{
								"src": "96",
								"dest": "102"
							},
							{
								"src": "102",
								"dest": "97"
							}
						]
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Class/98.instance"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon"
			},
			"132": {
				"link-style": {
					"type": "map<string,string>",
					"value": {
						"stroke": "#000000",
						"stroke-dasharray": "",
						"stroke-opacity": 1,
						"stroke-width": 2
					}
				},
				"arrowHead": {
					"type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)",
					"value": "custom"
				},
				"arrowTail": {
					"type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)",
					"value": "arrow-black"
				},
				"typename": {
					"type": "string",
					"value": "AssociationLink"
				},
				"position": {
					"type": "list<double>",
					"value": [
						811,
						466.5
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
				},
				"parser": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"71": {
								"textContent": {
									"type": "string",
									"value": "Association"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "({'textContent':getAttr('name')})"
								},
								"parser": {
									"type": "code",
									"value": "({'name':getAttr('textContent')})"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;-34.453987730061385,0%",
										"0;-103,0%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;0"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 0.3803680981595092,
										"yoffset": -28.5
									}
								}
							},
							"74": {
								"textContent": {
									"type": "string",
									"value": "*"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar clazz = getNeighbors('>'),\n    mult = '';\nif (clazz.length > 0) {\n    clazz = clazz[0];\n    var cardinalities = getAttr('cardinalities', clazz), card;\n    for (i = 0; i < cardinalities.length; i++) {\n        if (cardinalities[i]['type'] == getAttr('name') && cardinalities[i]['dir'] == 'in') {\n            card = cardinalities[i];\n            break;\n        }\n    }\n    if (card) {\n        var min = card['min'],\n            max = card['max'];\n        if (min == '')\n            min = '0';\n        if (max == '' || max == 'Infinity')\n            max = '*';\n        if (min == '0' && max == '*')\n            mult = '*';\n        else if (min == max)\n            mult = max;\n        else mult = min + '..' + max;\n    }\n}\nif (mult == '')\n    mult = '*';\n({'textContent': mult})"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;-132.5,0%",
										"0;-55.1687116564417,0%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;-90"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 0.06134969325153374,
										"yoffset": -25.5
									}
								}
							},
							"77": {
								"textContent": {
									"type": "string",
									"value": "*"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar clazz = getNeighbors('<'),\n    mult = '';\nif (clazz.length > 0) {\n    clazz = clazz[0];\n    var cardinalities = getAttr('cardinalities', clazz), card;\n    for (i = 0; i < cardinalities.length; i++) {\n        if (cardinalities[i]['type'] == getAttr('name') && cardinalities[i]['dir'] == 'out') {\n            card = cardinalities[i];\n            break;\n        }\n    }\n    if (card) {\n        var min = card['min'],\n            max = card['max'];\n        if (min == '')\n            min = '0';\n        if (max == '' || max == 'Infinity')\n            max = '*';\n        if (min == '0' && max == '*')\n            mult = '*';\n        else if (min == max)\n            mult = max;\n        else mult = min + '..' + max;\n    }\n}\nif (mult == '')\n    mult = '*';\n({'textContent': mult})"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;-70,-100%",
										"0;23,1.2246063538223773e-14%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;180"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 1.0245398773006136,
										"yoffset": -23.5
									}
								}
							},
							"140": {
								"segments": {
									"type": "string",
									"value": "m0,0 l20,8 l-20,8"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"fill": "#000000",
										"fill-opacity": 0,
										"stroke-width": 1,
										"opacity": 1
									}
								},
								"mapper": {
									"type": "code",
									"value": ""
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path",
								"position": {
									"type": "list<double>",
									"value": [
										"0;-70,-100%",
										"0;7.5,1.2246063538223773e-14%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;180"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 1,
										"yoffset": -8
									}
								}
							}
						},
						"edges": []
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Association/102.instance"
				},
				"$segments": {
					"type": "map<string,list<string>>",
					"value": {
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon/131.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink/132.instance": "M704,429L704,392L811,392L811,466",
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink/132.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon/131.instance": "M811,466L741,466"
					}
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink"
			},
			"133": {
				"link-style": {
					"type": "map<string,string>",
					"value": {
						"stroke": "#000000",
						"stroke-dasharray": "",
						"stroke-opacity": 1,
						"stroke-width": 2
					}
				},
				"arrowHead": {
					"type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)",
					"value": "custom"
				},
				"arrowTail": {
					"type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)",
					"value": "arrow-black"
				},
				"typename": {
					"type": "string",
					"value": "AssociationLink"
				},
				"position": {
					"type": "list<double>",
					"value": [
						487.89384648884845,
						606.8938464888485
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
				},
				"parser": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"71": {
								"textContent": {
									"type": "string",
									"value": "Inheritance"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "({'textContent':getAttr('name')})"
								},
								"parser": {
									"type": "code",
									"value": "({'name':getAttr('textContent')})"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;37.2779326522558,0%",
										"0;27.606153511151547,0%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;180"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 0.3803680981595092,
										"yoffset": -28.5
									}
								}
							},
							"74": {
								"textContent": {
									"type": "string",
									"value": "*"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar clazz = getNeighbors('>'),\n    mult = '';\nif (clazz.length > 0) {\n    clazz = clazz[0];\n    var cardinalities = getAttr('cardinalities', clazz), card;\n    for (i = 0; i < cardinalities.length; i++) {\n        if (cardinalities[i]['type'] == getAttr('name') && cardinalities[i]['dir'] == 'in') {\n            card = cardinalities[i];\n            break;\n        }\n    }\n    if (card) {\n        var min = card['min'],\n            max = card['max'];\n        if (min == '')\n            min = '0';\n        if (max == '' || max == 'Infinity')\n            max = '*';\n        if (min == '0' && max == '*')\n            mult = '*';\n        else if (min == max)\n            mult = max;\n        else mult = min + '..' + max;\n    }\n}\nif (mult == '')\n    mult = '*';\n({'textContent': mult})"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;119.60615351115155,0%",
										"0;-37.85703667289749,0%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;90"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 0.06134969325153374,
										"yoffset": -25.5
									}
								}
							},
							"77": {
								"textContent": {
									"type": "string",
									"value": "*"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar clazz = getNeighbors('<'),\n    mult = '';\nif (clazz.length > 0) {\n    clazz = clazz[0];\n    var cardinalities = getAttr('cardinalities', clazz), card;\n    for (i = 0; i < cardinalities.length; i++) {\n        if (cardinalities[i]['type'] == getAttr('name') && cardinalities[i]['dir'] == 'out') {\n            card = cardinalities[i];\n            break;\n        }\n    }\n    if (card) {\n        var min = card['min'],\n            max = card['max'];\n        if (min == '')\n            min = '0';\n        if (max == '' || max == 'Infinity')\n            max = '*';\n        if (min == '0' && max == '*')\n            mult = '*';\n        else if (min == max)\n            mult = max;\n        else mult = min + '..' + max;\n    }\n}\nif (mult == '')\n    mult = '*';\n({'textContent': mult})"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;50.10615351115155,100%",
										"0;-117.39384648884845,0%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;0"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 1.0245398773006136,
										"yoffset": -23.5
									}
								}
							},
							"140": {
								"segments": {
									"type": "string",
									"value": "m0,0 l20,8 l-20,8"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"fill": "#000000",
										"fill-opacity": 0,
										"stroke-width": 1,
										"opacity": 1
									}
								},
								"mapper": {
									"type": "code",
									"value": ""
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path",
								"position": {
									"type": "list<double>",
									"value": [
										"0;50.10615351115155,100%",
										"0;-101.89384648884845,0%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;0"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 1,
										"yoffset": -8
									}
								}
							}
						},
						"edges": []
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Association/103.instance"
				},
				"$segments": {
					"type": "map<string,list<string>>",
					"value": {
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon/131.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink/133.instance": "M582,551L582,606L487,606",
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink/133.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon/131.instance": "M487,606L487,513L538,513"
					}
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink"
			},
			"134": {
				"link-style": {
					"type": "map<string,string>",
					"value": {
						"stroke": "#000000",
						"stroke-dasharray": "",
						"stroke-opacity": 1,
						"stroke-width": 2
					}
				},
				"arrowHead": {
					"type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)",
					"value": "custom"
				},
				"arrowTail": {
					"type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)",
					"value": "arrow-black"
				},
				"typename": {
					"type": "string",
					"value": "AssociationLink"
				},
				"position": {
					"type": "list<double>",
					"value": [
						642.5022959175705,
						651.1499999479383
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
				},
				"parser": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"71": {
								"textContent": {
									"type": "string",
									"value": "behaviour"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "({'textContent':getAttr('name')})"
								},
								"parser": {
									"type": "code",
									"value": "({'name':getAttr('textContent')})"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;27.99770408242955,0%",
										"0;-23.076380316036534,0%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;90"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 0.3803680981595092,
										"yoffset": -28.5
									}
								}
							},
							"74": {
								"textContent": {
									"type": "string",
									"value": "*"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar clazz = getNeighbors('>'),\n    mult = '';\nif (clazz.length > 0) {\n    clazz = clazz[0];\n    var cardinalities = getAttr('cardinalities', clazz), card;\n    for (i = 0; i < cardinalities.length; i++) {\n        if (cardinalities[i]['type'] == getAttr('name') && cardinalities[i]['dir'] == 'in') {\n            card = cardinalities[i];\n            break;\n        }\n    }\n    if (card) {\n        var min = card['min'],\n            max = card['max'];\n        if (min == '')\n            min = '0';\n        if (max == '' || max == 'Infinity')\n            max = '*';\n        if (min == '0' && max == '*')\n            mult = '*';\n        else if (min == max)\n            mult = max;\n        else mult = min + '..' + max;\n    }\n}\nif (mult == '')\n    mult = '*';\n({'textContent': mult})"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;24.99770408242955,0%",
										"0;-86.88006129763164,0%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;90"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 0.06134969325153374,
										"yoffset": -25.5
									}
								}
							},
							"77": {
								"textContent": {
									"type": "string",
									"value": "*"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar clazz = getNeighbors('<'),\n    mult = '';\nif (clazz.length > 0) {\n    clazz = clazz[0];\n    var cardinalities = getAttr('cardinalities', clazz), card;\n    for (i = 0; i < cardinalities.length; i++) {\n        if (cardinalities[i]['type'] == getAttr('name') && cardinalities[i]['dir'] == 'out') {\n            card = cardinalities[i];\n            break;\n        }\n    }\n    if (card) {\n        var min = card['min'],\n            max = card['max'];\n        if (min == '')\n            min = '0';\n        if (max == '' || max == 'Infinity')\n            max = '*';\n        if (min == '0' && max == '*')\n            mult = '*';\n        else if (min == max)\n            mult = max;\n        else mult = min + '..' + max;\n    }\n}\nif (mult == '')\n    mult = '*';\n({'textContent': mult})"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;22.99770408242955,6.123031769111886e-15%",
										"0;100.85000005206166,100%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;90"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 1.0245398773006136,
										"yoffset": -23.5
									}
								}
							},
							"140": {
								"segments": {
									"type": "string",
									"value": "m0,0 l20,8 l-20,8"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"fill": "#000000",
										"fill-opacity": 0,
										"stroke-width": 1,
										"opacity": 1
									}
								},
								"mapper": {
									"type": "code",
									"value": ""
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path",
								"position": {
									"type": "list<double>",
									"value": [
										"0;7.49770408242955,6.123031769111886e-15%",
										"0;100.85000005206166,100%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;90"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 1,
										"yoffset": -8
									}
								}
							}
						},
						"edges": []
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Association/114.instance"
				},
				"$segments": {
					"type": "map<string,list<string>>",
					"value": {
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon/131.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink/134.instance": "M642,552L642,651",
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink/134.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon/120.instance": "M642,651L642,752"
					}
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink"
			},
			"135": {
				"link-style": {
					"type": "map<string,string>",
					"value": {
						"stroke": "#000000",
						"stroke-dasharray": "",
						"stroke-opacity": 1,
						"stroke-width": 2
					}
				},
				"arrowHead": {
					"type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)",
					"value": "custom"
				},
				"arrowTail": {
					"type": "ENUM(circle-black,circle-black-large,circle-white,circle-white-large,diamond-black,diamond-black-large,diamond-white,diamond-white-large,triangle-black,triangle-black-large,triangle-white,triangle-white-large,arrow-black,arrow-black-large,arrow-empty,arrow-empty-large,custom)",
					"value": "arrow-black"
				},
				"typename": {
					"type": "string",
					"value": "AssociationLink"
				},
				"position": {
					"type": "list<double>",
					"value": [
						384,
						1090.5
					]
				},
				"orientation": {
					"type": "double",
					"value": 0
				},
				"scale": {
					"type": "list<double>",
					"value": [
						1,
						1
					]
				},
				"mapper": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
				},
				"parser": {
					"type": "code",
					"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
				},
				"$contents": {
					"type": "map<string,*>",
					"value": {
						"nodes": {
							"71": {
								"textContent": {
									"type": "string",
									"value": "ocContain"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "({'textContent':getAttr('name')})"
								},
								"parser": {
									"type": "code",
									"value": "({'name':getAttr('textContent')})"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;-12.269938650306756,0%",
										"0;-29,0%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;0"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 0.3803680981595092,
										"yoffset": -28.5
									}
								}
							},
							"74": {
								"textContent": {
									"type": "string",
									"value": "*"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar clazz = getNeighbors('>'),\n    mult = '';\nif (clazz.length > 0) {\n    clazz = clazz[0];\n    var cardinalities = getAttr('cardinalities', clazz), card;\n    for (i = 0; i < cardinalities.length; i++) {\n        if (cardinalities[i]['type'] == getAttr('name') && cardinalities[i]['dir'] == 'in') {\n            card = cardinalities[i];\n            break;\n        }\n    }\n    if (card) {\n        var min = card['min'],\n            max = card['max'];\n        if (min == '')\n            min = '0';\n        if (max == '' || max == 'Infinity')\n            max = '*';\n        if (min == '0' && max == '*')\n            mult = '*';\n        else if (min == max)\n            mult = max;\n        else mult = min + '..' + max;\n    }\n}\nif (mult == '')\n    mult = '*';\n({'textContent': mult})"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;-55.65644171779144,0%",
										"0;-26,0%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;0"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 0.06134969325153374,
										"yoffset": -25.5
									}
								}
							},
							"77": {
								"textContent": {
									"type": "string",
									"value": "*"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"font-size": "20px",
										"font-style": "normal",
										"font-weight": "normal",
										"line-height": "100%",
										"letter-spacing": "0px",
										"word-spacing": "0px",
										"fill": "#000000",
										"fill-opacity": "1",
										"stroke": "none",
										"font-family": "Sans"
									}
								},
								"mapper": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar clazz = getNeighbors('<'),\n    mult = '';\nif (clazz.length > 0) {\n    clazz = clazz[0];\n    var cardinalities = getAttr('cardinalities', clazz), card;\n    for (i = 0; i < cardinalities.length; i++) {\n        if (cardinalities[i]['type'] == getAttr('name') && cardinalities[i]['dir'] == 'out') {\n            card = cardinalities[i];\n            break;\n        }\n    }\n    if (card) {\n        var min = card['min'],\n            max = card['max'];\n        if (min == '')\n            min = '0';\n        if (max == '' || max == 'Infinity')\n            max = '*';\n        if (min == '0' && max == '*')\n            mult = '*';\n        else if (min == max)\n            mult = max;\n        else mult = min + '..' + max;\n    }\n}\nif (mult == '')\n    mult = '*';\n({'textContent': mult})"
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
								"position": {
									"type": "list<double>",
									"value": [
										"0;72,100%",
										"0;-24,0%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;0"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 1.0245398773006136,
										"yoffset": -23.5
									}
								}
							},
							"140": {
								"segments": {
									"type": "string",
									"value": "m0,0 l20,8 l-20,8"
								},
								"style": {
									"type": "map<string,string>",
									"value": {
										"stroke": "#000000",
										"fill": "#000000",
										"fill-opacity": 0,
										"stroke-width": 1,
										"opacity": 1
									}
								},
								"mapper": {
									"type": "code",
									"value": ""
								},
								"parser": {
									"type": "code",
									"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
								},
								"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Path",
								"position": {
									"type": "list<double>",
									"value": [
										"0;72,100%",
										"0;-8.5,0%"
									]
								},
								"orientation": {
									"type": "double",
									"value": "0;0"
								},
								"scale": {
									"type": "list<double>",
									"value": [
										1,
										1
									]
								},
								"$linkDecoratorInfo": {
									"type": "map<string,double>",
									"value": {
										"xratio": 1,
										"yoffset": -8
									}
								}
							}
						},
						"edges": []
					}
				},
				"$asuri": {
					"type": "string",
					"value": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Association/116.instance"
				},
				"$segments": {
					"type": "map<string,list<string>>",
					"value": {
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon/119.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink/135.instance": "M320,1090L384,1090",
						"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink/135.instance--/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/ClassIcon/121.instance": "M384,1090L456,1090"
					}
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons/AssociationLink"
			}
		},
		"edges": [],
		"metamodels": [
			"/Formalisms/SCCD/SCCD.defaultIcons",
			"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons"
		]
	},
	"asm": {
		"nodes": {
			"8": {
				"name": {
					"type": "string",
					"value": "distinctNames"
				},
				"event": {
					"type": "$EVENT",
					"value": ""
				},
				"code": {
					"type": "code",
					"value": "var \tmm \t\t= '/Formalisms/SCCD/SCCD/',\n\tstates \t\t= getAllNodes([mm+'BasicState',mm+'CompositeState',mm+'OrthogonalComponent']),\n\tfullStateNames  = {},\n\tknownStateNames = [];\n\nfunction fullStateName(s,fsn)\n{\n\tif( !(s in fullStateNames) )\n\t{\n\t\tvar containLinks = getNeighbors('<',mm+'contain',s).\n                                    concat(getNeighbors('<',mm+'ocContain',s)).\n                                    concat(getNeighbors('<',mm+'containOC',s));\n\t\tif( containLinks.length > 0 )\n\t\t{\n\t\t\tvar parent = getNeighbors(\"<\",'*',containLinks[0])[0];\n\t\t\tfullStateNames[s] = fullStateName(parent,getAttr('name',parent))+fsn;\n\t\t}\n\t\telse\n\t\t\tfullStateNames[s] = fsn;\n\t}\n\treturn fullStateNames[s];\n}\n\n\nstates.every(\n\tfunction(s)\n\t{\n\t\tvar fsn = fullStateName(s,getAttr('name',s));\n\t\tif( knownStateNames.indexOf(fsn) > -1 )\n\t\t\treturn false;\n\t\tknownStateNames.push(fsn);\n\t\treturn true;\n\t});\n"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/GlobalConstraint"
			},
			"12": {
				"name": {
					"type": "string",
					"value": "OrthogonalComponent"
				},
				"attributes": {
					"type": "list<$ATTRIBUTE>",
					"value": [
						{
							"name": "name",
							"type": "string",
							"default": "OC_"
						}
					]
				},
				"constraints": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"actions": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"cardinalities": {
					"type": "list<$CARDINALITY>",
					"value": []
				},
				"abstract": {
					"type": "boolean",
					"value": false
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Class"
			},
			"18": {
				"name": {
					"type": "string",
					"value": "State"
				},
				"attributes": {
					"type": "list<$ATTRIBUTE>",
					"value": [
						{
							"name": "name",
							"type": "string",
							"default": "S_"
						},
						{
							"name": "entryAction",
							"type": "code",
							"default": ""
						},
						{
							"name": "exitAction",
							"type": "code",
							"default": ""
						},
						{
							"name": "isStart",
							"type": "boolean",
							"default": false
						},
						{
							"name": "isCurrent",
							"type": "boolean",
							"default": false
						},
						{
							"name": "option",
							"type": "ENUM(ITF, OTF, RTO)",
							"default": "ITF"
						},
						{
							"name": "raiseEntry",
							"type": "list<map<[event,scope,arguments],[string,string,list<string>]>>",
							"default": []
						},
						{
							"name": "raiseExit",
							"type": "list<map<[event,scope,arguments],[string,string,list<string>]>>",
							"default": []
						}
					]
				},
				"constraints": {
					"type": "list<$EVENT_HANDLER>",
					"value": [
						{
							"name": "singleContainer",
							"event": "post-connect",
							"code": "/*newline*/var mm = '/Formalisms/StateChart/StateChart/';/*newline*/getNeighbors('<',mm+'Contain').concat(getNeighbors('<',mm+'OCContain')).concat(getNeighbors('<',mm+'ContainOC')).length <= 1;"
						}
					]
				},
				"actions": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"cardinalities": {
					"type": "list<$CARDINALITY>",
					"value": []
				},
				"abstract": {
					"type": "boolean",
					"value": true
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Class"
			},
			"19": {
				"name": {
					"type": "string",
					"value": "CompositeState"
				},
				"attributes": {
					"type": "list<$ATTRIBUTE>",
					"value": []
				},
				"constraints": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"actions": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"cardinalities": {
					"type": "list<$CARDINALITY>",
					"value": [
						{
							"dir": "out",
							"type": "HistoryState",
							"min": "0",
							"max": "1"
						}
					]
				},
				"abstract": {
					"type": "boolean",
					"value": false
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Class"
			},
			"20": {
				"name": {
					"type": "string",
					"value": "BasicState"
				},
				"attributes": {
					"type": "list<$ATTRIBUTE>",
					"value": []
				},
				"constraints": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"actions": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"cardinalities": {
					"type": "list<$CARDINALITY>",
					"value": []
				},
				"abstract": {
					"type": "boolean",
					"value": false
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Class"
			},
			"21": {
				"name": {
					"type": "string",
					"value": "contain"
				},
				"attributes": {
					"type": "list<$ATTRIBUTE>",
					"value": []
				},
				"constraints": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"actions": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"cardinalities": {
					"type": "list<$CARDINALITY>",
					"value": []
				},
				"linktype": {
					"type": "ENUM(visual,containment)",
					"value": "containment"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Association"
			},
			"22": {
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Inheritance"
			},
			"23": {
				"name": {
					"type": "string",
					"value": "transition"
				},
				"attributes": {
					"type": "list<$ATTRIBUTE>",
					"value": [
						{
							"name": "event",
							"type": "string",
							"default": ""
						},
						{
							"name": "guard",
							"type": "code",
							"default": ""
						},
						{
							"name": "action",
							"type": "code",
							"default": ""
						},
						{
							"name": "display",
							"type": "string",
							"default": "XXXX"
						},
						{
							"name": "after",
							"type": "code",
							"default": ""
						},
						{
							"name": "parameters",
							"type": "list<string>",
							"default": []
						},
						{
							"name": "raise",
							"type": "list<map<[event,scope,arguments],[string,string,list<string>]>>",
							"default": []
						},
						{
							"name": "port",
							"type": "string",
							"default": ""
						}
					]
				},
				"constraints": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"actions": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"cardinalities": {
					"type": "list<$CARDINALITY>",
					"value": [
						{
							"dir": "in",
							"type": "OrthogonalComponent",
							"min": "0",
							"max": "0"
						},
						{
							"dir": "out",
							"type": "OrthogonalComponent",
							"min": "0",
							"max": "0"
						}
					]
				},
				"linktype": {
					"type": "ENUM(visual,containment)",
					"value": "visual"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Association"
			},
			"24": {
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Inheritance"
			},
			"26": {
				"name": {
					"type": "string",
					"value": "containOC"
				},
				"attributes": {
					"type": "list<$ATTRIBUTE>",
					"value": []
				},
				"constraints": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"actions": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"cardinalities": {
					"type": "list<$CARDINALITY>",
					"value": []
				},
				"linktype": {
					"type": "ENUM(visual,containment)",
					"value": "containment"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Association"
			},
			"28": {
				"name": {
					"type": "string",
					"value": "HistoryState"
				},
				"attributes": {
					"type": "list<$ATTRIBUTE>",
					"value": [
						{
							"name": "name",
							"type": "string",
							"default": "H"
						},
						{
							"name": "type",
							"type": "ENUM(deep, shallow)",
							"default": "shallow"
						}
					]
				},
				"constraints": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"actions": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"cardinalities": {
					"type": "list<$CARDINALITY>",
					"value": []
				},
				"abstract": {
					"type": "boolean",
					"value": false
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Class"
			},
			"30": {
				"name": {
					"type": "string",
					"value": "includes"
				},
				"attributes": {
					"type": "list<$ATTRIBUTE>",
					"value": []
				},
				"constraints": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"actions": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"cardinalities": {
					"type": "list<$CARDINALITY>",
					"value": [
						{
							"dir": "out",
							"type": "HistoryState",
							"min": "0",
							"max": "1"
						}
					]
				},
				"linktype": {
					"type": "ENUM(visual,containment)",
					"value": "containment"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Association"
			},
			"36": {
				"name": {
					"type": "string",
					"value": "transition"
				},
				"attributes": {
					"type": "list<$ATTRIBUTE>",
					"value": [
						{
							"name": "event",
							"type": "string",
							"default": ""
						},
						{
							"name": "guard",
							"type": "code",
							"default": ""
						},
						{
							"name": "action",
							"type": "code",
							"default": ""
						},
						{
							"name": "display",
							"type": "string",
							"default": "XXXX"
						},
						{
							"name": "after",
							"type": "code",
							"default": ""
						},
						{
							"name": "raise",
							"type": "list<map<[event,scope,arguments],[string,string,list<string>]>>",
							"default": []
						},
						{
							"name": "parameters",
							"type": "list<string>",
							"default": []
						},
						{
							"name": "port",
							"type": "string",
							"default": ""
						}
					]
				},
				"constraints": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"actions": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"cardinalities": {
					"type": "list<$CARDINALITY>",
					"value": [
						{
							"dir": "in",
							"type": "OrthogonalComponent",
							"min": "0",
							"max": "0"
						},
						{
							"dir": "out",
							"type": "OrthogonalComponent",
							"min": "0",
							"max": "0"
						}
					]
				},
				"linktype": {
					"type": "ENUM(visual,containment)",
					"value": "visual"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Association"
			},
			"98": {
				"name": {
					"type": "string",
					"value": "Class"
				},
				"attributes": {
					"type": "list<$ATTRIBUTE>",
					"value": [
						{
							"name": "name",
							"type": "string",
							"default": "Class_"
						},
						{
							"name": "attributes",
							"type": "list<$ATTRIBUTE>",
							"default": []
						},
						{
							"name": "cardinalities",
							"type": "list<$CARDINALITY>",
							"default": []
						},
						{
							"name": "abstract",
							"type": "boolean",
							"default": false
						},
						{
							"name": "methods",
							"type": "list<$METHOD>",
							"default": []
						},
						{
							"name": "external",
							"type": "boolean",
							"default": false
						}
					]
				},
				"constraints": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"actions": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"cardinalities": {
					"type": "list<$CARDINALITY>",
					"value": [
						{
							"dir": "in",
							"type": "PackageContents",
							"min": "0",
							"max": "1"
						}
					]
				},
				"abstract": {
					"type": "boolean",
					"value": false
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Class"
			},
			"102": {
				"name": {
					"type": "string",
					"value": "Association"
				},
				"attributes": {
					"type": "list<$ATTRIBUTE>",
					"value": [
						{
							"name": "name",
							"type": "string",
							"default": "Association_"
						},
						{
							"name": "attributes",
							"type": "list<$ATTRIBUTE>",
							"default": []
						},
						{
							"name": "constraints",
							"type": "list<$EVENT_HANDLER>",
							"default": []
						},
						{
							"name": "actions",
							"type": "list<$EVENT_HANDLER>",
							"default": []
						},
						{
							"name": "cardinalities",
							"type": "list<$CARDINALITY>",
							"default": []
						},
						{
							"name": "linktype",
							"type": "ENUM(visual,containment)",
							"default": "visual"
						}
					]
				},
				"constraints": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"actions": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"cardinalities": {
					"type": "list<$CARDINALITY>",
					"value": []
				},
				"linktype": {
					"type": "ENUM(visual,containment)",
					"value": "visual"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Association"
			},
			"103": {
				"name": {
					"type": "string",
					"value": "Inheritance"
				},
				"attributes": {
					"type": "list<$ATTRIBUTE>",
					"value": []
				},
				"constraints": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"actions": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"cardinalities": {
					"type": "list<$CARDINALITY>",
					"value": []
				},
				"linktype": {
					"type": "ENUM(visual,containment)",
					"value": "visual"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Association"
			},
			"114": {
				"name": {
					"type": "string",
					"value": "behaviour"
				},
				"attributes": {
					"type": "list<$ATTRIBUTE>",
					"value": []
				},
				"constraints": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"actions": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"cardinalities": {
					"type": "list<$CARDINALITY>",
					"value": []
				},
				"linktype": {
					"type": "ENUM(visual,containment)",
					"value": "visual"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Association"
			},
			"116": {
				"name": {
					"type": "string",
					"value": "ocContain"
				},
				"attributes": {
					"type": "list<$ATTRIBUTE>",
					"value": []
				},
				"constraints": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"actions": {
					"type": "list<$EVENT_HANDLER>",
					"value": []
				},
				"cardinalities": {
					"type": "list<$CARDINALITY>",
					"value": []
				},
				"linktype": {
					"type": "ENUM(visual,containment)",
					"value": "containment"
				},
				"$type": "/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram/Association"
			}
		},
		"edges": [
			{
				"src": "19",
				"dest": "21"
			},
			{
				"src": "21",
				"dest": "18"
			},
			{
				"src": "20",
				"dest": "22"
			},
			{
				"src": "22",
				"dest": "18"
			},
			{
				"src": "18",
				"dest": "23"
			},
			{
				"src": "23",
				"dest": "18"
			},
			{
				"src": "19",
				"dest": "24"
			},
			{
				"src": "24",
				"dest": "18"
			},
			{
				"src": "19",
				"dest": "26"
			},
			{
				"src": "26",
				"dest": "12"
			},
			{
				"src": "19",
				"dest": "30"
			},
			{
				"src": "30",
				"dest": "28"
			},
			{
				"src": "18",
				"dest": "36"
			},
			{
				"src": "36",
				"dest": "28"
			},
			{
				"src": "98",
				"dest": "102"
			},
			{
				"src": "102",
				"dest": "98"
			},
			{
				"src": "98",
				"dest": "103"
			},
			{
				"src": "103",
				"dest": "98"
			},
			{
				"src": "98",
				"dest": "114"
			},
			{
				"src": "114",
				"dest": "18"
			},
			{
				"src": "12",
				"dest": "116"
			},
			{
				"src": "116",
				"dest": "19"
			}
		],
		"metamodels": [
			"/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram",
			"/Formalisms/SCCD/SCCD"
		]
	}
}