{
	"types": {
		"AtomicDEVSIcon": [
			{
				"name": "typename",
				"type": "string",
				"default": "AtomicDEVSIcon"
			},
			{
				"name": "position",
				"type": "list<double>",
				"default": [
					50,
					75
				]
			},
			{
				"name": "orientation",
				"type": "double",
				"default": 0
			},
			{
				"name": "scale",
				"type": "list<double>",
				"default": [
					1,
					1
				]
			},
			{
				"name": "mapper",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\n({'position': getAttr('position'), 'scale': getAttr('scale')})"
			},
			{
				"name": "parser",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */\n({'position': getAttr('position'), 'scale': getAttr('scale')})"
			},
			{
				"name": "$contents",
				"type": "map<string,*>",
				"default": {
					"nodes": {
						"14": {
							"width": {
								"type": "double",
								"value": 250
							},
							"height": {
								"type": "double",
								"value": 250
							},
							"cornerRadius": {
								"type": "double",
								"value": 5
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#000000",
									"stroke-dasharray": "",
									"fill": "#ffffff",
									"fill-opacity": 0.75,
									"font-size": "20px",
									"stroke-width": 1,
									"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/Rectangle",
							"position": {
								"type": "list<double>",
								"value": [
									8,
									28
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						},
						"16": {
							"textContent": {
								"type": "string",
								"value": "<coded>"
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#ffffff",
									"stroke-dasharray": "",
									"fill": "#000000",
									"fill-opacity": 1,
									"font-size": "20px",
									"stroke-width": 0,
									"arrow-start": "none",
									"arrow-end": "none"
								}
							},
							"mapper": {
								"type": "code",
								"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\n({'textContent': getAttr('name')})"
							},
							"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,
									7
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						}
					},
					"edges": []
				}
			},
			{
				"name": "$asuri",
				"type": "string",
				"default": "-1"
			}
		],
		"StateIcon": [
			{
				"name": "typename",
				"type": "string",
				"default": "StateIcon"
			},
			{
				"name": "position",
				"type": "list<double>",
				"default": [
					700,
					125
				]
			},
			{
				"name": "orientation",
				"type": "double",
				"default": 0
			},
			{
				"name": "scale",
				"type": "list<double>",
				"default": [
					1,
					1
				]
			},
			{
				"name": "mapper",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
			},
			{
				"name": "parser",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
			},
			{
				"name": "$contents",
				"type": "map<string,*>",
				"default": {
					"nodes": {
						"34": {
							"r": {
								"type": "double",
								"value": 25
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#000000",
									"stroke-dasharray": "",
									"fill": "#ffffff",
									"fill-opacity": 0.75,
									"font-size": "20px",
									"stroke-width": 1,
									"arrow-start": "none",
									"arrow-end": "none"
								}
							},
							"mapper": {
								"type": "code",
								"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar style = {\n   \"stroke\": \"#000000\",\n   \"stroke-dasharray\": \"\",\n   \"fill\": \"#ffffff\",\n   \"fill-opacity\": 0.75,\n   \"font-size\": \"20px\",\n   \"stroke-width\": 1,\n   \"arrow-start\": \"none\",\n   \"arrow-end\": \"none\"\n};\nif (getAttr('initial')) {\n  style[\"stroke-width\"] = 2;\n}\n({'style': style})"
							},
							"parser": {
								"type": "code",
								"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
							},
							"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Circle",
							"position": {
								"type": "list<double>",
								"value": [
									4,
									21
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						},
						"37": {
							"textContent": {
								"type": "string",
								"value": "<coded>"
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#000000",
									"stroke-dasharray": "",
									"fill": "green",
									"fill-opacity": 1,
									"font-size": "12px",
									"font-weight": "bold",
									"stroke-width": 0,
									"arrow-start": "none",
									"arrow-end": "none"
								}
							},
							"mapper": {
								"type": "code",
								"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\n({'textContent': getAttr('name')})"
							},
							"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": [
									5,
									6
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						},
						"40": {
							"textContent": {
								"type": "string",
								"value": "<coded>"
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#ffffff",
									"stroke-dasharray": "",
									"fill": "#000000",
									"fill-opacity": 1,
									"font-size": "12px",
									"stroke-width": 0,
									"arrow-start": "none",
									"arrow-end": "none"
								}
							},
							"mapper": {
								"type": "code",
								"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar splitted = getAttr('time_advance').split('\\n'),\n    textContent = \"\";\nif (splitted.length > 1) {\n    textContent = \"...\\n\" + splitted[splitted.length - 1];\n} else if (splitted.length == 1) {\n    textContent = splitted[0];\n}\n({'textContent': textContent })"
							},
							"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": [
									79,
									57
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						},
						"42": {
							"src": {
								"type": "string",
								"value": "/Formalisms/ClassicDEVS/icons/clock.png"
							},
							"width": {
								"type": "double",
								"value": 20
							},
							"height": {
								"type": "double",
								"value": 20
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#000000",
									"stroke-dasharray": "",
									"fill": "#ffffff",
									"fill-opacity": 0.75,
									"font-size": "20px",
									"stroke-width": 1,
									"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/Image",
							"position": {
								"type": "list<double>",
								"value": [
									56,
									53
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						},
						"44": {
							"src": {
								"type": "string",
								"value": "/Formalisms/ClassicDEVS/icons/arrow_up.png"
							},
							"width": {
								"type": "double",
								"value": 20
							},
							"height": {
								"type": "double",
								"value": 20
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#000000",
									"stroke-dasharray": "",
									"fill": "#ffffff",
									"fill-opacity": 1,
									"font-size": "20px",
									"stroke-width": 1,
									"arrow-start": "none",
									"arrow-end": "none"
								}
							},
							"mapper": {
								"type": "code",
								"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar width = 20,\n    height = 20;\nif (getAttr('output') == \"\") {\n   width = 0;\n   height = 0;\n}\n({'width': width, 'height': height})"
							},
							"parser": {
								"type": "code",
								"value": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
							},
							"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Image",
							"position": {
								"type": "list<double>",
								"value": [
									55,
									18
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						},
						"46": {
							"textContent": {
								"type": "string",
								"value": "<coded>"
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#ffffff",
									"stroke-dasharray": "",
									"fill": "#000000",
									"fill-opacity": 1,
									"font-size": "12px",
									"stroke-width": 0,
									"arrow-start": "none",
									"arrow-end": "none"
								}
							},
							"mapper": {
								"type": "code",
								"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar splitted = getAttr('output').split('\\n'),\n    textContent = \"\";\nif (splitted.length > 1) {\n    textContent = \"...\\n\" + splitted[splitted.length - 1];\n} else if (splitted.length == 1) {\n    textContent = splitted[0];\n}\n({'textContent': textContent })"
							},
							"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": [
									77,
									23
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						}
					},
					"edges": []
				}
			},
			{
				"name": "$asuri",
				"type": "string",
				"default": "-1"
			}
		],
		"OutputPortIcon": [
			{
				"name": "typename",
				"type": "string",
				"default": "OutputPortIcon"
			},
			{
				"name": "position",
				"type": "list<double>",
				"default": [
					700,
					300
				]
			},
			{
				"name": "orientation",
				"type": "double",
				"default": 0
			},
			{
				"name": "scale",
				"type": "list<double>",
				"default": [
					1,
					1
				]
			},
			{
				"name": "mapper",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\n({'position': [getAttr('position')[0], getAttr('position')[1]]})"
			},
			{
				"name": "parser",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */\n({'position': getAttr('position')})"
			},
			{
				"name": "$contents",
				"type": "map<string,*>",
				"default": {
					"nodes": {
						"48": {
							"r": {
								"type": "double",
								"value": 7
							},
							"sides": {
								"type": "int",
								"value": 4
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#000000",
									"stroke-dasharray": "",
									"fill": "purple",
									"fill-opacity": 1,
									"font-size": "20px",
									"stroke-width": 1,
									"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/Polygon",
							"position": {
								"type": "list<double>",
								"value": [
									4,
									1
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						},
						"50": {
							"textContent": {
								"type": "string",
								"value": "<coded>"
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#ffffff",
									"stroke-dasharray": "",
									"fill": "#000000",
									"fill-opacity": 1,
									"font-size": "12px",
									"stroke-width": 0,
									"arrow-start": "none",
									"arrow-end": "none"
								}
							},
							"mapper": {
								"type": "code",
								"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\n({'textContent': getAttr('name')})"
							},
							"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": [
									4,
									21
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						}
					},
					"edges": []
				}
			},
			{
				"name": "$asuri",
				"type": "string",
				"default": "-1"
			}
		],
		"EventIcon": [
			{
				"name": "typename",
				"type": "string",
				"default": "EventIcon"
			},
			{
				"name": "position",
				"type": "list<double>",
				"default": [
					925,
					125
				]
			},
			{
				"name": "orientation",
				"type": "double",
				"default": 0
			},
			{
				"name": "scale",
				"type": "list<double>",
				"default": [
					1,
					1
				]
			},
			{
				"name": "mapper",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
			},
			{
				"name": "parser",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
			},
			{
				"name": "$contents",
				"type": "map<string,*>",
				"default": {
					"nodes": {
						"58": {
							"width": {
								"type": "double",
								"value": 200
							},
							"height": {
								"type": "double",
								"value": 70
							},
							"cornerRadius": {
								"type": "double",
								"value": 25
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#000000",
									"stroke-dasharray": "",
									"fill": "#FAE233",
									"fill-opacity": 0.5,
									"font-size": "20px",
									"stroke-width": 1,
									"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/Rectangle",
							"position": {
								"type": "list<double>",
								"value": [
									4,
									25
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						},
						"61": {
							"textContent": {
								"type": "string",
								"value": "<coded>"
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#ffffff",
									"stroke-dasharray": "",
									"fill": "#000000",
									"fill-opacity": 1,
									"font-size": "20px",
									"stroke-width": 0,
									"arrow-start": "none",
									"arrow-end": "none"
								}
							},
							"mapper": {
								"type": "code",
								"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\n({'textContent': getAttr('name')})"
							},
							"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": [
									63,
									3
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						},
						"63": {
							"textContent": {
								"type": "string",
								"value": "<coded>"
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#ffffff",
									"stroke-dasharray": "",
									"fill": "#000000",
									"fill-opacity": 1,
									"font-size": "12px",
									"stroke-width": 0,
									"arrow-start": "none",
									"arrow-end": "none"
								}
							},
							"mapper": {
								"type": "code",
								"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar 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": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
							},
							"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
							"position": {
								"type": "list<double>",
								"value": [
									11,
									31
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						},
						"64": {
							"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
							"position": {
								"type": "list<double>",
								"value": [
									26.96484375,
									35.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
								}
							}
						}
					},
					"edges": [
						{
							"src": "58",
							"dest": "64"
						},
						{
							"src": "64",
							"dest": "63"
						}
					]
				}
			},
			{
				"name": "$asuri",
				"type": "string",
				"default": "-1"
			}
		],
		"SimulationIcon": [
			{
				"name": "typename",
				"type": "string",
				"default": "SimulationIcon"
			},
			{
				"name": "position",
				"type": "list<double>",
				"default": [
					1143,
					300
				]
			},
			{
				"name": "orientation",
				"type": "double",
				"default": 0
			},
			{
				"name": "scale",
				"type": "list<double>",
				"default": [
					1,
					1
				]
			},
			{
				"name": "mapper",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
			},
			{
				"name": "parser",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
			},
			{
				"name": "$contents",
				"type": "map<string,*>",
				"default": {
					"nodes": {
						"65": {
							"width": {
								"type": "double",
								"value": 200
							},
							"height": {
								"type": "double",
								"value": 50
							},
							"cornerRadius": {
								"type": "double",
								"value": 0
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#000000",
									"stroke-dasharray": "",
									"fill": "#2BAFD4",
									"fill-opacity": 0.5,
									"font-size": "20px",
									"stroke-width": 3,
									"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/Rectangle",
							"position": {
								"type": "list<double>",
								"value": [
									6,
									5
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						},
						"69": {
							"textContent": {
								"type": "string",
								"value": "<coded>"
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#ffffff",
									"stroke-dasharray": "",
									"fill": "#000000",
									"fill-opacity": 1,
									"font-size": "12px",
									"stroke-width": 0,
									"arrow-start": "none",
									"arrow-end": "none"
								}
							},
							"mapper": {
								"type": "code",
								"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar splitted = getAttr('end_condition').split('\\n'),\n    textContent = \"\";\nif (splitted.length > 1) {\n    textContent = \"...\\n\" + splitted[splitted.length - 1];\n} else if (splitted.length == 1) {\n    textContent = splitted[0];\n}\n({'textContent': textContent})"
							},
							"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": [
									13,
									13
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						},
						"72": {
							"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
							"position": {
								"type": "list<double>",
								"value": [
									21.31768296950213,
									13.063635584495046
								]
							},
							"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": "65",
							"dest": "72"
						},
						{
							"src": "72",
							"dest": "69"
						}
					]
				}
			},
			{
				"name": "$asuri",
				"type": "string",
				"default": "-1"
			}
		],
		"InternalTransitionLink": [
			{
				"name": "link-style",
				"type": "map<string,string>",
				"default": {
					"stroke": "blue",
					"stroke-dasharray": "",
					"stroke-opacity": 1,
					"stroke-width": 2
				}
			},
			{
				"name": "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)",
				"default": "custom"
			},
			{
				"name": "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)",
				"default": "arrow-black"
			},
			{
				"name": "typename",
				"type": "string",
				"default": "InternalTransitionLink"
			},
			{
				"name": "position",
				"type": "list<double>",
				"default": [
					47,
					648
				]
			},
			{
				"name": "orientation",
				"type": "double",
				"default": 0
			},
			{
				"name": "scale",
				"type": "list<double>",
				"default": [
					1,
					1
				]
			},
			{
				"name": "mapper",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
			},
			{
				"name": "parser",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
			},
			{
				"name": "$contents",
				"type": "map<string,*>",
				"default": {
					"nodes": {
						"77": {
							"textContent": {
								"type": "string",
								"value": "<coded>"
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#ffffff",
									"stroke-dasharray": "",
									"fill": "#000000",
									"fill-opacity": 1,
									"font-size": "12px",
									"stroke-width": 0,
									"arrow-start": "none",
									"arrow-end": "none"
								}
							},
							"mapper": {
								"type": "code",
								"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar splitted = getAttr('condition').split('\\n'),\n    textContent = \"\";\nif (splitted.length > 1) {\n    textContent = \"...\\n\" + splitted[splitted.length - 1];\n} else if (splitted.length == 1) {\n    textContent = splitted[0];\n}\n({'textContent': '[' + textContent + ']'})"
							},
							"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,
									0
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							},
							"$linkDecoratorInfo": {
								"type": "map<string,double>",
								"value": {
									"xratio": 0.4294478527607362,
									"yoffset": -31.5
								}
							}
						},
						"78": {
							"textContent": {
								"type": "string",
								"value": "<coded>"
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#ffffff",
									"stroke-dasharray": "",
									"fill": "#000000",
									"fill-opacity": 1,
									"font-size": "12px",
									"stroke-width": 0,
									"arrow-start": "none",
									"arrow-end": "none"
								}
							},
							"mapper": {
								"type": "code",
								"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar splitted = getAttr('action').split('\\n'),\n    textContent = \"\";\nif (splitted.length > 1) {\n    textContent = \"...\\n\" + splitted[splitted.length - 1];\n} else if (splitted.length == 1) {\n    textContent = splitted[0];\n}\n({'textContent': textContent})"
							},
							"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,
									0
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							},
							"$linkDecoratorInfo": {
								"type": "map<string,double>",
								"value": {
									"xratio": 0.4294478527607362,
									"yoffset": 2.5
								}
							}
						},
						"267": {
							"segments": {
								"type": "string",
								"value": "m0,0 l10,4 l-10,4 l3,-4 z"
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#000000",
									"fill": "#000000",
									"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,
									0
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							},
							"$linkDecoratorInfo": {
								"type": "map<string,double>",
								"value": {
									"xratio": 1,
									"yoffset": -4
								}
							}
						}
					},
					"edges": []
				}
			},
			{
				"name": "$asuri",
				"type": "string",
				"default": "-1"
			},
			{
				"name": "$segments",
				"type": "map<string,list<string>>",
				"default": {}
			}
		],
		"submodelsLink": [
			{
				"name": "link-style",
				"type": "map<string,string>",
				"default": {
					"stroke": "#000000",
					"stroke-dasharray": "",
					"stroke-opacity": 0,
					"stroke-width": 0
				}
			},
			{
				"name": "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)",
				"default": "custom"
			},
			{
				"name": "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)",
				"default": "arrow-black"
			},
			{
				"name": "typename",
				"type": "string",
				"default": "submodelsLink"
			},
			{
				"name": "position",
				"type": "list<double>",
				"default": [
					47,
					448
				]
			},
			{
				"name": "orientation",
				"type": "double",
				"default": 0
			},
			{
				"name": "scale",
				"type": "list<double>",
				"default": [
					1,
					1
				]
			},
			{
				"name": "mapper",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
			},
			{
				"name": "parser",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
			},
			{
				"name": "$contents",
				"type": "map<string,*>",
				"default": {
					"nodes": {},
					"edges": []
				}
			},
			{
				"name": "$asuri",
				"type": "string",
				"default": "-1"
			},
			{
				"name": "$segments",
				"type": "map<string,list<string>>",
				"default": {}
			}
		],
		"ExternalTransitionLink": [
			{
				"name": "link-style",
				"type": "map<string,string>",
				"default": {
					"stroke": "red",
					"stroke-dasharray": "",
					"stroke-opacity": 1,
					"stroke-width": 2
				}
			},
			{
				"name": "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)",
				"default": "custom"
			},
			{
				"name": "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)",
				"default": "arrow-black"
			},
			{
				"name": "typename",
				"type": "string",
				"default": "ExternalTransitionLink"
			},
			{
				"name": "position",
				"type": "list<double>",
				"default": [
					322,
					673
				]
			},
			{
				"name": "orientation",
				"type": "double",
				"default": 0
			},
			{
				"name": "scale",
				"type": "list<double>",
				"default": [
					1,
					1
				]
			},
			{
				"name": "mapper",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
			},
			{
				"name": "parser",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
			},
			{
				"name": "$contents",
				"type": "map<string,*>",
				"default": {
					"nodes": {
						"73": {
							"textContent": {
								"type": "string",
								"value": "<coded>"
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#ffffff",
									"stroke-dasharray": "",
									"fill": "#000000",
									"fill-opacity": 1,
									"font-size": "12px",
									"stroke-width": 0,
									"arrow-start": "none",
									"arrow-end": "none"
								}
							},
							"mapper": {
								"type": "code",
								"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar splitted = getAttr('condition').split('\\n'),\n    textContent = \"\";\nif (splitted.length > 1) {\n    textContent = \"...\\n\" + splitted[splitted.length - 1];\n} else if (splitted.length == 1) {\n    textContent = splitted[0];\n}\n({'textContent': '[' + textContent + ']'})"
							},
							"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,
									0
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							},
							"$linkDecoratorInfo": {
								"type": "map<string,double>",
								"value": {
									"xratio": 0.4110429447852761,
									"yoffset": -33.5
								}
							}
						},
						"75": {
							"textContent": {
								"type": "string",
								"value": "<coded>"
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#ffffff",
									"stroke-dasharray": "",
									"fill": "#000000",
									"fill-opacity": 1,
									"font-size": "12px",
									"stroke-width": 0,
									"arrow-start": "none",
									"arrow-end": "none"
								}
							},
							"mapper": {
								"type": "code",
								"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar splitted = getAttr('action').split('\\n'),\n    textContent = \"\";\nif (splitted.length > 1) {\n    textContent = \"...\\n\" + splitted[splitted.length - 1];\n} else if (splitted.length == 1) {\n    textContent = splitted[0];\n}\n({'textContent': textContent})"
							},
							"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,
									0
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							},
							"$linkDecoratorInfo": {
								"type": "map<string,double>",
								"value": {
									"xratio": 0.4233128834355828,
									"yoffset": 2.5
								}
							}
						},
						"267": {
							"segments": {
								"type": "string",
								"value": "m0,0 l10,4 l-10,4 l3,-4 z"
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#000000",
									"fill": "#000000",
									"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,
									0
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							},
							"$linkDecoratorInfo": {
								"type": "map<string,double>",
								"value": {
									"xratio": 1,
									"yoffset": -4
								}
							}
						}
					},
					"edges": []
				}
			},
			{
				"name": "$asuri",
				"type": "string",
				"default": "-1"
			},
			{
				"name": "$segments",
				"type": "map<string,list<string>>",
				"default": {}
			}
		],
		"portsLink": [
			{
				"name": "link-style",
				"type": "map<string,string>",
				"default": {
					"stroke": "#000000",
					"stroke-dasharray": "",
					"stroke-opacity": 1,
					"stroke-width": 0
				}
			},
			{
				"name": "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)",
				"default": "custom"
			},
			{
				"name": "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)",
				"default": "arrow-black"
			},
			{
				"name": "typename",
				"type": "string",
				"default": "portsLink"
			},
			{
				"name": "position",
				"type": "list<double>",
				"default": [
					597,
					498
				]
			},
			{
				"name": "orientation",
				"type": "double",
				"default": 0
			},
			{
				"name": "scale",
				"type": "list<double>",
				"default": [
					1,
					1
				]
			},
			{
				"name": "mapper",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
			},
			{
				"name": "parser",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
			},
			{
				"name": "$contents",
				"type": "map<string,*>",
				"default": {
					"nodes": {},
					"edges": []
				}
			},
			{
				"name": "$asuri",
				"type": "string",
				"default": "-1"
			},
			{
				"name": "$segments",
				"type": "map<string,list<string>>",
				"default": {}
			}
		],
		"statesLink": [
			{
				"name": "link-style",
				"type": "map<string,string>",
				"default": {
					"stroke": "#000000",
					"stroke-dasharray": "",
					"stroke-opacity": 0,
					"stroke-width": 0
				}
			},
			{
				"name": "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)",
				"default": "custom"
			},
			{
				"name": "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)",
				"default": "arrow-black"
			},
			{
				"name": "typename",
				"type": "string",
				"default": "statesLink"
			},
			{
				"name": "position",
				"type": "list<double>",
				"default": [
					322,
					473
				]
			},
			{
				"name": "orientation",
				"type": "double",
				"default": 0
			},
			{
				"name": "scale",
				"type": "list<double>",
				"default": [
					1,
					1
				]
			},
			{
				"name": "mapper",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
			},
			{
				"name": "parser",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
			},
			{
				"name": "$contents",
				"type": "map<string,*>",
				"default": {
					"nodes": {},
					"edges": []
				}
			},
			{
				"name": "$asuri",
				"type": "string",
				"default": "-1"
			},
			{
				"name": "$segments",
				"type": "map<string,list<string>>",
				"default": {}
			}
		],
		"channelLink": [
			{
				"name": "link-style",
				"type": "map<string,string>",
				"default": {
					"stroke": "#000000",
					"stroke-dasharray": "- ",
					"stroke-opacity": 1,
					"stroke-width": 2
				}
			},
			{
				"name": "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)",
				"default": "custom"
			},
			{
				"name": "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)",
				"default": "arrow-black"
			},
			{
				"name": "typename",
				"type": "string",
				"default": "channelLink"
			},
			{
				"name": "position",
				"type": "list<double>",
				"default": [
					872,
					523
				]
			},
			{
				"name": "orientation",
				"type": "double",
				"default": 0
			},
			{
				"name": "scale",
				"type": "list<double>",
				"default": [
					1,
					1
				]
			},
			{
				"name": "mapper",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
			},
			{
				"name": "parser",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
			},
			{
				"name": "$contents",
				"type": "map<string,*>",
				"default": {
					"nodes": {
						"267": {
							"segments": {
								"type": "string",
								"value": "m0,0 l10,4 l-10,4 l3,-4 z"
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#000000",
									"fill": "#000000",
									"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,
									0
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							},
							"$linkDecoratorInfo": {
								"type": "map<string,double>",
								"value": {
									"xratio": 1,
									"yoffset": -4
								}
							}
						}
					},
					"edges": []
				}
			},
			{
				"name": "$asuri",
				"type": "string",
				"default": "-1"
			},
			{
				"name": "$segments",
				"type": "map<string,list<string>>",
				"default": {}
			}
		],
		"CoupledDEVSIcon": [
			{
				"name": "typename",
				"type": "string",
				"default": "CoupledDEVSIcon"
			},
			{
				"name": "position",
				"type": "list<double>",
				"default": [
					375,
					100
				]
			},
			{
				"name": "orientation",
				"type": "double",
				"default": 0
			},
			{
				"name": "scale",
				"type": "list<double>",
				"default": [
					1,
					1
				]
			},
			{
				"name": "mapper",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\n({'position': getAttr('position'), 'scale': getAttr('scale')})"
			},
			{
				"name": "parser",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */\n({'position': getAttr('position'), 'scale': getAttr('scale')})"
			},
			{
				"name": "$contents",
				"type": "map<string,*>",
				"default": {
					"nodes": {
						"30": {
							"width": {
								"type": "double",
								"value": 250
							},
							"height": {
								"type": "double",
								"value": 250
							},
							"cornerRadius": {
								"type": "double",
								"value": 5
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#000000",
									"stroke-dasharray": "",
									"fill": "#000000",
									"fill-opacity": 0.07,
									"font-size": "20px",
									"stroke-width": 1,
									"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/Rectangle",
							"position": {
								"type": "list<double>",
								"value": [
									8,
									28
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						},
						"31": {
							"textContent": {
								"type": "string",
								"value": "<coded>"
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#ffffff",
									"stroke-dasharray": "",
									"fill": "#000000",
									"fill-opacity": 1,
									"font-size": "20px",
									"stroke-width": 0,
									"arrow-start": "none",
									"arrow-end": "none"
								}
							},
							"mapper": {
								"type": "code",
								"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\n({'textContent': getAttr('name')})"
							},
							"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,
									7
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						}
					},
					"edges": []
				}
			},
			{
				"name": "$asuri",
				"type": "string",
				"default": "-1"
			}
		],
		"InputPortIcon": [
			{
				"name": "typename",
				"type": "string",
				"default": "InputPortIcon"
			},
			{
				"name": "position",
				"type": "list<double>",
				"default": [
					925,
					300
				]
			},
			{
				"name": "orientation",
				"type": "double",
				"default": 0
			},
			{
				"name": "scale",
				"type": "list<double>",
				"default": [
					1,
					1
				]
			},
			{
				"name": "mapper",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\n({'position': getAttr('position')})"
			},
			{
				"name": "parser",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */\n({'position': getAttr('position')})"
			},
			{
				"name": "$contents",
				"type": "map<string,*>",
				"default": {
					"nodes": {
						"54": {
							"r": {
								"type": "double",
								"value": 7
							},
							"sides": {
								"type": "int",
								"value": 4
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#000000",
									"stroke-dasharray": "",
									"fill": "green",
									"fill-opacity": 1,
									"font-size": "20px",
									"stroke-width": 1,
									"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/Polygon",
							"position": {
								"type": "list<double>",
								"value": [
									5,
									1
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						},
						"55": {
							"textContent": {
								"type": "string",
								"value": "<coded>"
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#ffffff",
									"stroke-dasharray": "",
									"fill": "#000000",
									"fill-opacity": 1,
									"font-size": "12px",
									"stroke-width": 0,
									"arrow-start": "none",
									"arrow-end": "none"
								}
							},
							"mapper": {
								"type": "code",
								"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\n({'textContent': getAttr('name')})"
							},
							"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": [
									4,
									21
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						}
					},
					"edges": []
				}
			},
			{
				"name": "$asuri",
				"type": "string",
				"default": "-1"
			}
		],
		"StateDefinitionIcon": [
			{
				"name": "typename",
				"type": "string",
				"default": "StateDefinitionIcon"
			},
			{
				"name": "position",
				"type": "list<double>",
				"default": [
					1203,
					106
				]
			},
			{
				"name": "orientation",
				"type": "double",
				"default": 0
			},
			{
				"name": "scale",
				"type": "list<double>",
				"default": [
					1,
					1
				]
			},
			{
				"name": "mapper",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
			},
			{
				"name": "parser",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
			},
			{
				"name": "$contents",
				"type": "map<string,*>",
				"default": {
					"nodes": {
						"82": {
							"width": {
								"type": "double",
								"value": 200
							},
							"height": {
								"type": "double",
								"value": 125
							},
							"cornerRadius": {
								"type": "double",
								"value": 10
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#000000",
									"stroke-dasharray": "",
									"fill": "orange",
									"fill-opacity": 0.75,
									"stroke-width": 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,...} */"
							},
							"$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
								]
							}
						},
						"85": {
							"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": 1,
									"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
								]
							}
						},
						"86": {
							"$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
								}
							}
						},
						"90": {
							"textContent": {
								"type": "string",
								"value": "<coded>"
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#ffffff",
									"stroke-dasharray": "",
									"fill": "#000000",
									"fill-opacity": 1,
									"font-size": "12px",
									"stroke-width": 0,
									"arrow-start": "none",
									"arrow-end": "none"
								}
							},
							"mapper": {
								"type": "code",
								"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\nvar 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": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
							},
							"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
							"position": {
								"type": "list<double>",
								"value": [
									9,
									41
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						},
						"92": {
							"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
							"position": {
								"type": "list<double>",
								"value": [
									18.1796875,
									26
								]
							},
							"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
								}
							}
						},
						"93": {
							"textContent": {
								"type": "string",
								"value": "<coded>"
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#ffffff",
									"stroke-dasharray": "",
									"fill": "#000000",
									"fill-opacity": 1,
									"font-size": "20px",
									"stroke-width": 0,
									"arrow-start": "none",
									"arrow-end": "none"
								}
							},
							"mapper": {
								"type": "code",
								"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\n({'textContent': getAttr('name')})"
							},
							"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,
									9
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						},
						"94": {
							"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
							"position": {
								"type": "list<double>",
								"value": [
									25.607941766118074,
									12.053332982167333
								]
							},
							"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": "82",
							"dest": "86"
						},
						{
							"src": "86",
							"dest": "85"
						},
						{
							"src": "82",
							"dest": "92"
						},
						{
							"src": "92",
							"dest": "90"
						},
						{
							"src": "82",
							"dest": "94"
						},
						{
							"src": "94",
							"dest": "93"
						}
					]
				}
			},
			{
				"name": "$asuri",
				"type": "string",
				"default": "-1"
			}
		],
		"statedefLink": [
			{
				"name": "link-style",
				"type": "map<string,string>",
				"default": {
					"stroke": "#000000",
					"stroke-dasharray": "- ",
					"stroke-opacity": 1,
					"stroke-width": 1
				}
			},
			{
				"name": "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)",
				"default": "custom"
			},
			{
				"name": "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)",
				"default": "arrow-black"
			},
			{
				"name": "typename",
				"type": "string",
				"default": "statedefLink"
			},
			{
				"name": "position",
				"type": "list<double>",
				"default": [
					872,
					723
				]
			},
			{
				"name": "orientation",
				"type": "double",
				"default": 0
			},
			{
				"name": "scale",
				"type": "list<double>",
				"default": [
					1,
					1
				]
			},
			{
				"name": "mapper",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */"
			},
			{
				"name": "parser",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */"
			},
			{
				"name": "$contents",
				"type": "map<string,*>",
				"default": {
					"nodes": {
						"271": {
							"r": {
								"type": "double",
								"value": 5
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#000000",
									"fill": "#000000",
									"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/Circle",
							"position": {
								"type": "list<double>",
								"value": [
									0,
									0
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							},
							"$linkDecoratorInfo": {
								"type": "map<string,double>",
								"value": {
									"xratio": 1,
									"yoffset": -5
								}
							}
						}
					},
					"edges": []
				}
			},
			{
				"name": "$asuri",
				"type": "string",
				"default": "-1"
			},
			{
				"name": "$segments",
				"type": "map<string,list<string>>",
				"default": {}
			}
		],
		"DevsInstanceIcon": [
			{
				"name": "typename",
				"type": "string",
				"default": "DevsInstanceIcon"
			},
			{
				"name": "position",
				"type": "list<double>",
				"default": [
					1400,
					300
				]
			},
			{
				"name": "orientation",
				"type": "double",
				"default": 0
			},
			{
				"name": "scale",
				"type": "list<double>",
				"default": [
					1,
					1
				]
			},
			{
				"name": "mapper",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\n({'position': getAttr('position'), 'scale': getAttr('scale')})"
			},
			{
				"name": "parser",
				"type": "code",
				"default": "/* specify code that evaluates to an associative array of the form {...,attr:val,...} */\n({'position': getAttr('position'), 'scale': getAttr('scale')})"
			},
			{
				"name": "$contents",
				"type": "map<string,*>",
				"default": {
					"nodes": {
						"104": {
							"textContent": {
								"type": "string",
								"value": "<coded>"
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#ffffff",
									"stroke-dasharray": "",
									"fill": "#000000",
									"fill-opacity": 1,
									"font-size": "12px",
									"stroke-width": 0,
									"arrow-start": "none",
									"arrow-end": "none"
								}
							},
							"mapper": {
								"type": "code",
								"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\n({'textContent': getAttr('name')})"
							},
							"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": [
									15,
									26
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						},
						"110": {
							"textContent": {
								"type": "string",
								"value": "<coded>"
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#ffffff",
									"stroke-dasharray": "",
									"fill": "#000000",
									"fill-opacity": 1,
									"font-size": "12px",
									"stroke-width": 0,
									"arrow-start": "none",
									"arrow-end": "none"
								}
							},
							"mapper": {
								"type": "code",
								"value": "/* specify code that evaluates to an associative array of the form {...,csattr:val,...} */\n({'textContent': ':' + getAttr('devs_type')})"
							},
							"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": [
									33,
									46
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						},
						"117": {
							"width": {
								"type": "double",
								"value": 100
							},
							"height": {
								"type": "double",
								"value": 100
							},
							"cornerRadius": {
								"type": "double",
								"value": 5
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#000000",
									"stroke-dasharray": "",
									"fill": "#000000",
									"fill-opacity": 0.15,
									"font-size": "20px",
									"stroke-width": 1,
									"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/Rectangle",
							"position": {
								"type": "list<double>",
								"value": [
									7,
									4
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						},
						"119": {
							"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
							"position": {
								"type": "list<double>",
								"value": [
									22.791684421312993,
									19.099999244142055
								]
							},
							"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
								}
							}
						},
						"120": {
							"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
							"position": {
								"type": "list<double>",
								"value": [
									31.6796875,
									29
								]
							},
							"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": "117",
							"dest": "119"
						},
						{
							"src": "119",
							"dest": "104"
						},
						{
							"src": "117",
							"dest": "120"
						},
						{
							"src": "120",
							"dest": "110"
						}
					]
				}
			},
			{
				"name": "$asuri",
				"type": "string",
				"default": "-1"
			}
		]
	},
	"constraints": [],
	"actions": [],
	"cardinalities": {
		"AtomicDEVSIcon": [],
		"StateIcon": [],
		"OutputPortIcon": [],
		"EventIcon": [],
		"SimulationIcon": [],
		"InternalTransitionLink": [],
		"submodelsLink": [],
		"ExternalTransitionLink": [],
		"portsLink": [],
		"statesLink": [],
		"channelLink": [],
		"CoupledDEVSIcon": [],
		"InputPortIcon": [],
		"StateDefinitionIcon": [],
		"statedefLink": [],
		"DevsInstanceIcon": []
	},
	"legalConnections": {},
	"connectorTypes": {},
	"types2parentTypes": {
		"AtomicDEVSIcon": [],
		"StateIcon": [],
		"OutputPortIcon": [],
		"EventIcon": [],
		"SimulationIcon": [],
		"InternalTransitionLink": [],
		"submodelsLink": [],
		"ExternalTransitionLink": [],
		"portsLink": [],
		"statesLink": [],
		"channelLink": [],
		"CoupledDEVSIcon": [],
		"InputPortIcon": [],
		"StateDefinitionIcon": [],
		"statedefLink": [],
		"DevsInstanceIcon": []
	}
}