{
	"types": {
		"LabelIcon": [
			{
				"name": "typename",
				"type": "string",
				"default": "LabelIcon"
			},
			{
				"name": "position",
				"type": "list<double>",
				"default": [
					751,
					175
				]
			},
			{
				"name": "orientation",
				"type": "double",
				"default": 0
			},
			{
				"name": "scale",
				"type": "list<double>",
				"default": [
					1,
					1
				]
			},
			{
				"name": "mapper",
				"type": "code",
				"default": "({'position':getAttr('position')})"
			},
			{
				"name": "parser",
				"type": "code",
				"default": "({'position':getAttr('position')})"
			},
			{
				"name": "$contents",
				"type": "map<string,*>",
				"default": {
					"nodes": {
						"12": {
							"textContent": {
								"type": "string",
								"value": "T..."
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#000000",
									"stroke-dasharray": "",
									"fill": "#ffffff",
									"fill-opacity": 0.75,
									"font-size": "15px",
									"stroke-width": 1,
									"arrow-start": "none",
									"arrow-end": "none"
								}
							},
							"mapper": {
								"type": "code",
								"value": "({'textContent':getAttr('text') || 'T...'})\n"
							},
							"parser": {
								"type": "code",
								"value": "({'text':getAttr('textContent')})\n"
							},
							"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
							"position": {
								"type": "list<double>",
								"value": [
									0,
									-2
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						}
					},
					"edges": []
				}
			},
			{
				"name": "$asuri",
				"type": "string",
				"default": "-1"
			}
		],
		"ContainerIcon": [
			{
				"name": "typename",
				"type": "string",
				"default": "ContainerIcon"
			},
			{
				"name": "position",
				"type": "list<double>",
				"default": [
					301,
					125
				]
			},
			{
				"name": "orientation",
				"type": "double",
				"default": 0
			},
			{
				"name": "scale",
				"type": "list<double>",
				"default": [
					1,
					1
				]
			},
			{
				"name": "mapper",
				"type": "code",
				"default": "({'position':getAttr('position')})"
			},
			{
				"name": "parser",
				"type": "code",
				"default": "({'position':getAttr('position')})"
			},
			{
				"name": "$contents",
				"type": "map<string,*>",
				"default": {
					"nodes": {
						"3": {
							"width": {
								"type": "double",
								"value": 130
							},
							"height": {
								"type": "double",
								"value": 130
							},
							"cornerRadius": {
								"type": "double",
								"value": 10
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#cccccc",
									"stroke-dasharray": "- ",
									"fill": "#ffffff",
									"fill-opacity": 0.75,
									"font-size": "20px",
									"stroke-width": 1,
									"arrow-start": "none",
									"arrow-end": "none"
								}
							},
							"mapper": {
								"type": "code",
								"value": ""
							},
							"parser": {
								"type": "code",
								"value": ""
							},
							"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Rectangle",
							"position": {
								"type": "list<double>",
								"value": [
									0,
									0
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						}
					},
					"edges": []
				}
			},
			{
				"name": "$asuri",
				"type": "string",
				"default": "-1"
			}
		],
		"InputIcon": [
			{
				"name": "typename",
				"type": "string",
				"default": "InputIcon"
			},
			{
				"name": "position",
				"type": "list<double>",
				"default": [
					976,
					200
				]
			},
			{
				"name": "orientation",
				"type": "double",
				"default": 0
			},
			{
				"name": "scale",
				"type": "list<double>",
				"default": [
					1,
					1
				]
			},
			{
				"name": "mapper",
				"type": "code",
				"default": "({'position':getAttr('position')})"
			},
			{
				"name": "parser",
				"type": "code",
				"default": "({'position':getAttr('position')})"
			},
			{
				"name": "$contents",
				"type": "map<string,*>",
				"default": {
					"nodes": {
						"28": {
							"width": {
								"type": "double",
								"value": 85
							},
							"height": {
								"type": "double",
								"value": 25
							},
							"cornerRadius": {
								"type": "double",
								"value": 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": ""
							},
							"parser": {
								"type": "code",
								"value": ""
							},
							"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Rectangle",
							"position": {
								"type": "list<double>",
								"value": [
									1,
									-1
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						},
						"29": {
							"textContent": {
								"type": "string",
								"value": "... |"
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#000000",
									"stroke-dasharray": "",
									"fill": "#ffffff",
									"fill-opacity": 0.75,
									"font-size": "15px",
									"stroke-width": 1,
									"arrow-start": "none",
									"arrow-end": "none"
								}
							},
							"mapper": {
								"type": "code",
								"value": ""
							},
							"parser": {
								"type": "code",
								"value": ""
							},
							"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
							"position": {
								"type": "list<double>",
								"value": [
									3,
									0
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						},
						"30": {
							"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
							"position": {
								"type": "list<double>",
								"value": [
									6.99899850809561,
									5.999000000000024
								]
							},
							"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,
									"arrow-start": "none",
									"arrow-end": "classic-wide-long"
								}
							}
						}
					},
					"edges": [
						{
							"src": "28",
							"dest": "30"
						},
						{
							"src": "30",
							"dest": "29"
						}
					]
				}
			},
			{
				"name": "$asuri",
				"type": "string",
				"default": "-1"
			}
		],
		"ButtonIcon": [
			{
				"name": "typename",
				"type": "string",
				"default": "ButtonIcon"
			},
			{
				"name": "position",
				"type": "list<double>",
				"default": [
					525,
					150
				]
			},
			{
				"name": "orientation",
				"type": "double",
				"default": 0
			},
			{
				"name": "scale",
				"type": "list<double>",
				"default": [
					1,
					1
				]
			},
			{
				"name": "mapper",
				"type": "code",
				"default": "({'position':getAttr('position')})"
			},
			{
				"name": "parser",
				"type": "code",
				"default": "({'position':getAttr('position')})"
			},
			{
				"name": "$contents",
				"type": "map<string,*>",
				"default": {
					"nodes": {
						"6": {
							"width": {
								"type": "double",
								"value": 85
							},
							"height": {
								"type": "double",
								"value": 35
							},
							"cornerRadius": {
								"type": "double",
								"value": 15
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#ADD8E6",
									"stroke-dasharray": "",
									"fill": "#E6E6FA",
									"fill-opacity": 0.75,
									"font-size": "20px",
									"stroke-width": 1,
									"arrow-start": "none",
									"arrow-end": "none"
								}
							},
							"mapper": {
								"type": "code",
								"value": ""
							},
							"parser": {
								"type": "code",
								"value": ""
							},
							"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Rectangle",
							"position": {
								"type": "list<double>",
								"value": [
									0,
									-2
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						},
						"8": {
							"textContent": {
								"type": "string",
								"value": "<coded>"
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#666666",
									"stroke-dasharray": "",
									"fill": "#000000",
									"fill-opacity": 0.75,
									"font-size": "13px",
									"stroke-width": 1,
									"arrow-start": "none",
									"arrow-end": "none"
								}
							},
							"mapper": {
								"type": "code",
								"value": "({'textContent':getAttr('text')})"
							},
							"parser": {
								"type": "code",
								"value": "({'text':getAttr('textContent')})"
							},
							"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
							"position": {
								"type": "list<double>",
								"value": [
									7,
									6
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						},
						"14": {
							"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Contain",
							"position": {
								"type": "list<double>",
								"value": [
									16.384413781586773,
									7.5698326045953195
								]
							},
							"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,
									"arrow-start": "none",
									"arrow-end": "classic-wide-long"
								}
							}
						}
					},
					"edges": [
						{
							"src": "6",
							"dest": "14"
						},
						{
							"src": "14",
							"dest": "8"
						}
					]
				}
			},
			{
				"name": "$asuri",
				"type": "string",
				"default": "-1"
			}
		],
		"CanvasIcon": [
			{
				"name": "typename",
				"type": "string",
				"default": "CanvasIcon"
			},
			{
				"name": "position",
				"type": "list<double>",
				"default": [
					48,
					101
				]
			},
			{
				"name": "orientation",
				"type": "double",
				"default": 0
			},
			{
				"name": "scale",
				"type": "list<double>",
				"default": [
					1,
					1
				]
			},
			{
				"name": "mapper",
				"type": "code",
				"default": ""
			},
			{
				"name": "parser",
				"type": "code",
				"default": ""
			},
			{
				"name": "$contents",
				"type": "map<string,*>",
				"default": {
					"nodes": {
						"13": {
							"width": {
								"type": "double",
								"value": 175
							},
							"height": {
								"type": "double",
								"value": 175
							},
							"cornerRadius": {
								"type": "double",
								"value": 10
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"fill": "#ffffff",
									"fill-opacity": 0.75,
									"font-size": "20px",
									"stroke-width": 3
								}
							},
							"mapper": {
								"type": "code",
								"value": ""
							},
							"parser": {
								"type": "code",
								"value": ""
							},
							"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Rectangle",
							"position": {
								"type": "list<double>",
								"value": [
									1,
									0
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						}
					},
					"edges": []
				}
			},
			{
				"name": "$asuri",
				"type": "string",
				"default": "-1"
			}
		],
		"ListIcon": [
			{
				"name": "typename",
				"type": "string",
				"default": "ListIcon"
			},
			{
				"name": "position",
				"type": "list<double>",
				"default": [
					1201,
					226
				]
			},
			{
				"name": "orientation",
				"type": "double",
				"default": 0
			},
			{
				"name": "scale",
				"type": "list<double>",
				"default": [
					1,
					1
				]
			},
			{
				"name": "mapper",
				"type": "code",
				"default": "({'position':getAttr('position')})"
			},
			{
				"name": "parser",
				"type": "code",
				"default": "({'position':getAttr('position')})"
			},
			{
				"name": "$contents",
				"type": "map<string,*>",
				"default": {
					"nodes": {
						"4": {
							"textContent": {
								"type": "string",
								"value": "1, 2, 3, ..."
							},
							"style": {
								"type": "map<string,string>",
								"value": {
									"stroke": "#000000",
									"fill-opacity": 0.75,
									"fill": "#ffffff",
									"font-size": "15px"
								}
							},
							"mapper": {
								"type": "code",
								"value": "var choices = getAttr('choices'),\n    style   = {\n                \"stroke\": \"#000000\",\n                \"fill-opacity\": 0.75,\n                \"fill\": \"#ffffff\",\n                \"font-size\": \"15px\"\n              },\n    val     = '';\n\nif( choices.length == 0 )\n    val = '1, 2, 3, ...';\nelse\n{\n    choices.forEach(\n        function(c,i)\n        {\n            val += (i+1)+'. '+c+'\\n';\n        });\n    val = val.substr(0,val.length-1);\n}\n\nif( getAttr('clickable') )\n    style['stroke'] = '#0000ff';\n    \n\n({'textContent':val,'style':style})"
							},
							"parser": {
								"type": "code",
								"value": ""
							},
							"$type": "/Formalisms/__LanguageSyntax__/ConcreteSyntax/ConcreteSyntax/Text",
							"position": {
								"type": "list<double>",
								"value": [
									0,
									-3
								]
							},
							"orientation": {
								"type": "double",
								"value": 0
							},
							"scale": {
								"type": "list<double>",
								"value": [
									1,
									1
								]
							}
						}
					},
					"edges": []
				}
			},
			{
				"name": "$asuri",
				"type": "string",
				"default": "-1"
			}
		],
		"ContainLink": [
			{
				"name": "link-style",
				"type": "map<string,string>",
				"default": {
					"stroke": "#000000",
					"stroke-dasharray": "",
					"stroke-opacity": 0.1,
					"stroke-width": 1,
					"arrow-start": "none",
					"arrow-end": "classic-wide-long"
				}
			},
			{
				"name": "typename",
				"type": "string",
				"default": "ContainLink"
			},
			{
				"name": "position",
				"type": "list<double>",
				"default": [
					1553,
					125
				]
			},
			{
				"name": "orientation",
				"type": "double",
				"default": 0
			},
			{
				"name": "scale",
				"type": "list<double>",
				"default": [
					1,
					1
				]
			},
			{
				"name": "mapper",
				"type": "code",
				"default": ""
			},
			{
				"name": "parser",
				"type": "code",
				"default": ""
			},
			{
				"name": "$contents",
				"type": "map<string,*>",
				"default": {
					"nodes": {},
					"edges": []
				}
			},
			{
				"name": "$asuri",
				"type": "string",
				"default": "-1"
			},
			{
				"name": "$segments",
				"type": "map<string,list<string>>",
				"default": {}
			}
		],
		"CanvasContentsLink": [
			{
				"name": "link-style",
				"type": "map<string,string>",
				"default": {
					"stroke": "#000000",
					"stroke-dasharray": "",
					"stroke-opacity": 0.1,
					"stroke-width": 1,
					"arrow-start": "none",
					"arrow-end": "classic-wide-long"
				}
			},
			{
				"name": "typename",
				"type": "string",
				"default": "CanvasContentsLink"
			},
			{
				"name": "position",
				"type": "list<double>",
				"default": [
					1551,
					305
				]
			},
			{
				"name": "orientation",
				"type": "double",
				"default": 0
			},
			{
				"name": "scale",
				"type": "list<double>",
				"default": [
					1,
					1
				]
			},
			{
				"name": "mapper",
				"type": "code",
				"default": ""
			},
			{
				"name": "parser",
				"type": "code",
				"default": ""
			},
			{
				"name": "$contents",
				"type": "map<string,*>",
				"default": {
					"nodes": {},
					"edges": []
				}
			},
			{
				"name": "$asuri",
				"type": "string",
				"default": "-1"
			},
			{
				"name": "$segments",
				"type": "map<string,list<string>>",
				"default": {}
			}
		]
	},
	"constraints": [],
	"actions": [],
	"cardinalities": {
		"LabelIcon": [],
		"ContainerIcon": [],
		"InputIcon": [],
		"ButtonIcon": [],
		"CanvasIcon": [],
		"ListIcon": [],
		"ContainLink": [],
		"CanvasContentsLink": []
	},
	"legalConnections": {},
	"connectorTypes": {},
	"types2parentTypes": {
		"LabelIcon": [],
		"ContainerIcon": [],
		"InputIcon": [],
		"ButtonIcon": [],
		"CanvasIcon": [],
		"ListIcon": [],
		"ContainLink": [],
		"CanvasContentsLink": []
	}
}