1(function()
2{
3	// Adds BPMN 2.0 shapes
4	Sidebar.prototype.addBpmn2Palette = function()
5	{
6		var gn = 'mxgraph.bpmn2';
7		var r = 400;
8		var sb = this;
9
10		this.setCurrentSearchEntryLibrary('bpmn2', 'bpmn2General');
11		this.addBPMN2GeneralPalette(gn, r, sb);
12		this.setCurrentSearchEntryLibrary('bpmn2', 'bpmn2Tasks');
13		this.addBPMN2TasksPalette(gn, r, sb);
14		this.setCurrentSearchEntryLibrary('bpmn2', 'bpmn2Choreographies');
15		this.addBPMN2ChoreographiesPalette(gn, r, sb);
16		this.setCurrentSearchEntryLibrary('bpmn2', 'bpmn2Events');
17		this.addBPMN2EventsPalette(gn, r, sb);
18		this.setCurrentSearchEntryLibrary('bpmn2', 'bpmn2Gateways');
19		this.addBPMN2GatewaysPalette(gn, r, sb);
20		this.setCurrentSearchEntryLibrary();
21	};
22
23	Sidebar.prototype.addBPMN2GeneralPalette = function(gn, r, sb)
24	{
25		var dt = 'bpmn business process model notation ';
26		var w = 50;
27		var h = 50;
28		var ew = 160;
29		var eh = 0;
30		var s1 = 'shape=mxgraph.bpmn.data;labelPosition=center;verticalLabelPosition=bottom;align=center;verticalAlign=top;whiteSpace=wrap;size=15;html=1;';
31		var s2 = 'swimlane;html=1;startSize=20;fontStyle=0;collapsible=0;';
32		var s3 = 'shape=mxgraph.bpmn.conversation;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;aspect=fixed;bpmnConversationType=';
33		var s4 = 'edgeStyle=elbowEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;';
34		var s5 = 'edgeStyle=elbowEdgeStyle;fontSize=12;html=1;endFill=0;startFill=0;endSize=6;startSize=6;dashed=1;dashPattern=1 4;endArrow=';
35
36		var fns =
37		[
38			this.createVertexTemplateEntry(s1, 40, 60, '', 'Data Object', null, null, dt + 'data object'),
39			this.createVertexTemplateEntry(s1 + 'bpmnTransferType=none;isCollection=1;', 40, 60, '', 'Data Object Collection', null, null, dt + 'data object collection'),
40			this.createVertexTemplateEntry(s1 + 'bpmnTransferType=input;', 40, 60, '', 'Data Input', null, null, dt + 'data input'),
41			this.createVertexTemplateEntry(s1 + 'bpmnTransferType=input;isCollection=1;', 40, 60, '', 'Data Input Collection', null, null, dt + 'data input collection'),
42			this.createVertexTemplateEntry(s1 + 'bpmnTransferType=output;', 40, 60, '', 'Data Output', null, null, dt + 'data output'),
43			this.createVertexTemplateEntry(s1 + 'bpmnTransferType=output;isCollection=1;', 40, 60, '', 'Data Output Collection', null, null, dt + 'data output collection'),
44			this.createVertexTemplateEntry('shape=datastore;whiteSpace=wrap;html=1;labelPosition=center;verticalLabelPosition=bottom;align=center;verticalAlign=top;', 100, 100, '', 'Data Store', null, null, dt + 'data store'),
45			this.createVertexTemplateEntry('points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];rounded=1;dashed=1;dashPattern=5 2 1 2;labelPosition=center;verticalLabelPosition=top;align=right;verticalAlign=bottom;fontSize=8;', 140, 80, '', 'Data Object', null, null, dt + 'data object'),
46			this.createVertexTemplateEntry('text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;', 80, 30, 'Text', 'Text Annotation', null, null, dt + 'text annotation label'),
47			this.createVertexTemplateEntry(s2 + 'horizontal=0;swimlaneLine=0;fillColor=none;', 440, 100, '', 'Horizontal Lane', null, null, dt + 'horizontal lane'),
48			this.createVertexTemplateEntry(s2 + 'horizontal=1;swimlaneLine=0;fillColor=none;', 440, 100, '', 'Vertical Lane', null, null, dt + 'vertical lane'),
49			this.createVertexTemplateEntry(s2 + 'horizontal=0;swimlaneLine=1;swimlaneFillColor=#ffffff;strokeWidth=2;', 440, 100, '', 'Horizontal Lane', null, null, dt + 'horizontal lane'),
50			this.createVertexTemplateEntry('shape=mxgraph.bpmn.swimlane;html=1;startSize=20;horizontal=0;swimlaneLine=1;collapsible=0;fontStyle=0;swimlaneFillColor=#ffffff;strokeWidth=2;isCollection=1;', 440, 100, '', 'Horizontal Lane', null, null, dt + 'horizontal lane'),
51			this.createVertexTemplateEntry(s2 + 'horizontal=1;swimlaneLine=1;strokeWidth=2;swimlaneFillColor=#ffffff;', 220, 100, '', 'Vertical Lane', null, null, dt + 'vertical lane'),
52			this.createVertexTemplateEntry('shape=mxgraph.bpmn.swimlane;html=1;startSize=20;horizontal=1;swimlaneLine=1;collapsible=0;fontStyle=0;strokeWidth=2;swimlaneFillColor=#ffffff;isCollection=1;', 220, 100, '', 'Vertical Lane', null, null, dt + 'vertical lane'),
53
54			this.createVertexTemplateEntry(s3 + 'conv;', 70, 60, '', 'Conversation', null, null, dt + 'conversation'),
55			this.createVertexTemplateEntry(s3 + 'conv;isLoopSub=1;', 70, 60, '', 'Sub-Conversation', null, null, dt + 'sub conversation'),
56			this.createVertexTemplateEntry(s3 + 'call;', 70, 60, '', 'Call Conversation', null, null, dt + 'call conversation'),
57			this.createVertexTemplateEntry(s3 + 'call;isLoopSub=1;', 70, 60, '', 'Call Sub-Conversation', null, null, dt + 'call sub conversation'),
58
59			this.createVertexTemplateEntry('html=1;shape=mxgraph.flowchart.annotation_2;align=left;labelPosition=right;', 50, 100, '', 'Annotation', null, null, this.getTagsForStencil('bpmn', 'annotation_1', 'bpmn business process model ').join(' ')),
60	 		this.addDataEntry('crossfunctional cross-functional cross functional flowchart swimlane table', 400, 400, 'Cross-Functional Flowchart', '7ZhRb5swEMc/DY+bMCRt97jQpi+tVC2fwINbbMnYyD4C6aefjaHpBrTRlNCoTALJPp9t+P25O5kgTvL6XtOCPaoMRBDfBXGilULfyusEhAiikGdBfBtEUWjvIFqPjJJmNCyoBonHTIj8hB0VJXiL3dyYL+tSpsiVpM55LVSVMqrROxvci9bZMFq4JtKfzrRKGRfZA92rEjtr11tpVT1wCcYOhM5ViTKXry0G7RYb/uwWXDgDw9wCuSW2WTGOsClo6gYri8uvIGhheLN1s4KGtNSG7+AHGL+Os0JdUJm1nUJxiaDvdhZQt/EvJXHTvpTbjAq+lbadgnO1hhYSaIR6FHRjainfg8oB9d66VDxD5j0WoRcjZMC3DP8yUuMN25e5B91so5VuWMa4J+P3FJW2JtLXrOK5oNLJxZTmz/blqXhNp3mO5cpe9smS8OsyWNp5ie2TQ99ezl1joqRBTXmDAajBCgxejprHKBcNK7fvBPIz3hOSRCcQctET8olRA+8JmSopIW2j8GOD6Sji8TDxepT4C9yTE1+OEo/mQ5xcTYn8ahR5PB/k0c2UyK9HC8SbX/mnLBAnqAlD8XK+onDTE+/fw+TiQF9fTin4Nl/O0xYAEs6X9LR5n5Ae6S7xv1lr/yf+4cQ/pN75Ej/pH88/UZyQkRPzR6R+0j9Bz4f0xMm/f8adD+qzZn/bPfw5bMb++LH4Gw=='),
61			this.addDataEntry('container swimlane pool horizontal', 480, 380, 'Horizontal Pool 1',
62				'zZRLbsIwEIZP4709TlHXhJYNSEicwCIjbNWJkWNKwumZxA6IlrRUaisWlmb+eX8LM5mXzdyrnV66Ai2TL0zm3rkQrbLJ0VoG3BRMzhgAp8fgdSQq+ijfKY9VuKcAYsG7snuMyso5G8U6tDaJ9cGUVlXkTXUoacuZIHOjjS0WqnX7blYd1OZt8KYea3PE1bCI+CAtVUMq7/o5b46uCmroSn18WFMm+XCdse5GpLq0OPqAzejxvZQun6MrMfiWUg6mCDpmZM8RENdotjqVyUFUdRS259oLSzISztto5Se0i44gcHEn3i9A/IQB3GbQpmi69DskAn4BSTaGBB4Jicj+k8nTGBP5SExg8odMyL38eH3s6kM8AQ=='),
63			this.addDataEntry('container swimlane pool horizontal', 480, 360, 'Horizontal Pool 2',
64				'zZTBbsIwDIafJvfU6dDOlI0LSEg8QUQtEi1tUBJGy9PPbcJQWTsxaZs4VLJ//07sT1WYKKpm6eRBrW2JhokXJgpnbYhR1RRoDAOuSyYWDIDTx+B1opr1VX6QDutwTwPEhndpjhiVjbUmij60Jon+pCsja8rmKlQ05SKjcKe0KVeytcfuLh/k7u2SzR16fcbNZZDsRlrLhlTenWedPts6SJMEOseFLTkph6Fj212RbGlwdAGbyeV7KW2+RFthcC1ZTroMKjry5wiIK9R7ldrELInSR2H/2XtlSUHCOY5WfEG76ggCz+7E+w2InzCAcQapIf0fAySzESQZ/AKSfAoJPCKS9mbzf0H0NIVIPDAiyP8QEaXX97CvDZ7LDw=='),
65			this.createVertexTemplateEntry('swimlane;startSize=20;horizontal=0;', 320, 120, 'Lane', 'Horizontal Swimlane', null, null, 'swimlane lane pool'),
66			this.addDataEntry('container swimlane pool horizontal', 360, 480, 'Vertical Pool 1',
67				'xZRBbsIwEEVP4709ThFrQssGJKSewCIjbNXGyDEl4fSdxKa0NJFQVTULSzP/e+T5b2EmS9esgjrqja/QMvnMZBm8j6lyTYnWMuCmYnLJADgdBi8jruhdflQBD/GRAUgD78qeMClb720S69jaLNZn46w6ULfQ0dGWS0HlThtbrVXrT91bdVS7t2u3CFibC26vi4g7aaMaUjmpNBbiKxnUQyfkjTBEbEZT9VKOtELvMIaWrpxNFXW6IWcpOddo9jqPFfMsqjoJ+8/ZGyQqMqdhZvIHs3WHBrh4kNvvIsNw5Da7OdgXAgKGCMz+gEAxRgCmINDcxZ2CyNMYETkhESj+jwi1t1+r9759ah8='),
68			this.addDataEntry('container swimlane pool vertical', 380, 480, 'Vertical Pool 2',
69				'xZTPbsIwDMafJvf86dDOlI0LSEg8QUQtEi1pUBJGy9PPbdJ1G1TqhXGoZH/219g/RSGitM3ay5PaugoMEW9ElN65mCLblGAM4VRXRKwI5xQ/wt8nqqyv0pP0UMc5Bp4Mn9KcISk750wSQ2xNFsNFWyNrzJYqWpxyxTA8KG2qjWzduTsrRHn4GLKlh6CvsBsGYX+krWxQpaiizcc9FjDnnaCc11dXR2lyxyjsuyPy3/Lg4CM0k8v3Ut58Dc5C9C22XHQVVeoQrwkQVaCPKtuKQZQhCcdv78gSg4zzPlpxg3bTEeSUzcR7Q2bWyvz+ytmQr8NPAow/ikAxRYA/kQAr/hPByxQC8cxLsHggAkzH56uv/XrdvgA='),
70			this.createVertexTemplateEntry('swimlane;startSize=20;', 120, 320, 'Lane', 'Vertical Swimlane', null, null, 'swimlane lane pool'),
71			this.createVertexTemplateEntry('points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];rounded=1;arcSize=10;dashed=1;strokeColor=#000000;fillColor=none;gradientColor=none;dashPattern=8 3 1 3;strokeWidth=2;',
72				200, 200, '', 'Group', null, null, this.getTagsForStencil('bpmn', 'group', 'bpmn business process model ').join(' ')),
73
74			this.createEdgeTemplateEntry(s5 + 'none;startArrow=none;', ew, eh, '', 'Association', null, dt + 'association'),
75			this.createEdgeTemplateEntry(s5 + 'openThin;startArrow=none;', ew, eh, '', 'Directional / Directed Data Association', null, dt + 'directed data directional association'),
76			this.createEdgeTemplateEntry(s5 + 'openThin;startArrow=openThin;', ew, eh, '', 'Bi-Directional Association', null, dt + 'bi directional bidirectional association'),
77			this.createEdgeTemplateEntry(s5 + 'none;startArrow=none;', ew, eh, '', 'Data Association', null, dt + 'data association'),
78			this.createEdgeTemplateEntry('edgeStyle=elbowEdgeStyle;fontSize=12;html=1;shape=link;', ew, eh, '', 'Conversation Link', null, dt + 'conversation link'),
79
80			this.createEdgeTemplateEntry(s4 + '', ew, eh, '', 'Sequence Flow', null, dt + 'sequence flow'),
81			this.createEdgeTemplateEntry(s4 + 'startArrow=diamondThin;startFill=0;endSize=6;startSize=10;', ew, eh, '', 'Conditional Sequence Flow', null, dt + 'conditional sequence flow'),
82			this.createEdgeTemplateEntry(s4 + 'startArrow=dash;startFill=0;endSize=6;startSize=6;', ew, eh, '', 'Default Sequence Flow', null, dt + 'default sequence flow'),
83			this.createEdgeTemplateEntry('dashed=1;dashPattern=8 4;endArrow=blockThin;endFill=1;startArrow=oval;startFill=0;endSize=6;startSize=4;', ew, eh, '', 'Message Flow', null, dt + 'message flow'),
84
85			this.addEntry('edge shape symbol message mail email initiating message flow with decorator', mxUtils.bind(this, function()
86			{
87				var edge = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=blockThin;html=1;labelPosition=left;verticalLabelPosition=middle;align=right;verticalAlign=middle;dashed=1;dashPattern=8 4;endFill=0;startArrow=oval;startFill=0;endSize=6;startSize=4;');
88				edge.geometry.setTerminalPoint(new mxPoint(0, 0), true);
89				edge.geometry.setTerminalPoint(new mxPoint(ew, eh), false);
90				edge.geometry.relative = true;
91				edge.edge = true;
92
93		    	var cell = new mxCell('', new mxGeometry(0, 0, 24, 16), 'shape=message;html=1;outlineConnect=0;labelPosition=left;verticalLabelPosition=middle;align=right;verticalAlign=middle;spacingRight=5;labelBackgroundColor=#ffffff;');
94		    	cell.geometry.relative = true;
95		    	cell.vertex = true;
96		    	cell.geometry.offset = new mxPoint(8, -8);
97		    	edge.insert(cell);
98
99				return this.createEdgeTemplateFromCells([edge], ew, eh, 'Initiating Message Flow with Decorator');
100			})),
101
102			this.addEntry('edge shape symbol message mail email non initiating message flow with decorator', mxUtils.bind(this, function()
103			{
104				var edge = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=blockThin;html=1;labelPosition=left;verticalLabelPosition=middle;align=right;verticalAlign=middle;dashed=1;dashPattern=8 4;endFill=0;startArrow=oval;startFill=0;endSize=6;startSize=4;');
105				edge.geometry.setTerminalPoint(new mxPoint(0, 0), true);
106				edge.geometry.setTerminalPoint(new mxPoint(ew, eh), false);
107				edge.geometry.relative = true;
108				edge.edge = true;
109
110		    	var cell = new mxCell('', new mxGeometry(0, 0, 24, 16), 'shape=message;html=1;outlineConnect=0;labelPosition=left;verticalLabelPosition=middle;align=right;verticalAlign=middle;spacingRight=5;labelBackgroundColor=#ffffff;fillColor=#C0C0C0;');
111		    	cell.geometry.relative = true;
112		    	cell.vertex = true;
113		    	cell.geometry.offset = new mxPoint(8, -8);
114		    	edge.insert(cell);
115
116				return this.createEdgeTemplateFromCells([edge], ew, eh, 'Non-Initiating Message Flow with Decorator');
117			}))
118		];
119
120		this.addPalette('bpmn2General', 'BPMN 2.0 \ General', false, mxUtils.bind(this, function(content)
121		{
122			for (var i = 0; i < fns.length; i++)
123			{
124				content.appendChild(fns[i](content));
125			}
126		}));
127	};
128
129	Sidebar.prototype.addBPMN2TasksPalette = function(gn, r, sb)
130	{
131		var dt = 'bpmn business process model notation task ';
132		var pts = 'points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];';
133		var s1 = pts + 'shape=mxgraph.bpmn.task;whiteSpace=wrap;rectStyle=rounded;size=10;taskMarker=abstract;';
134		var s2 = pts + 'shape=mxgraph.bpmn.task;whiteSpace=wrap;rectStyle=rounded;size=10;taskMarker=';
135		var s3 = pts + 'shape=mxgraph.bpmn.task;whiteSpace=wrap;rectStyle=rounded;size=10;taskMarker=abstract;bpmnShapeType=subprocess;isLoopSub=1;outline=';
136		var s4 = pts + 'shape=mxgraph.bpmn.task;whiteSpace=wrap;rectStyle=rounded;size=10;bpmnShapeType=call;';
137		var w = 50;
138		var h = 50;
139
140		var fns =
141		[
142			this.createVertexTemplateEntry(s1 + '', 120, 80, '', 'Generic Task', null, null, dt + 'generic'),
143			this.createVertexTemplateEntry(s1 + 'isLoopStandard=1;', 120, 80, '', 'Standard Loop', null, null, dt + 'standard loop'),
144			this.createVertexTemplateEntry(s1 + 'isLoopStandard=1;isLoopSub=1;', 120, 80, '', 'Standard Loop', null, null, dt + 'standard loop'),
145			this.createVertexTemplateEntry(s1 + 'isLoopMultiParallel=1;', 120, 80, '', 'Multi-Instance, Parallel', null, null, dt + 'multi instance parallel'),
146			this.createVertexTemplateEntry(s1 + 'isLoopSub=1;isLoopMultiParallel=1;', 120, 80, '', 'Multi-Instance, Parallel', null, null, dt + 'multi instance parallel'),
147			this.createVertexTemplateEntry(s1 + 'isLoopMultiSeq=1;', 120, 80, '', 'Multi-Instance, Sequential', null, null, dt + 'multi instance sequential'),
148			this.createVertexTemplateEntry(s1 + 'isLoopSub=1;isLoopMultiSeq=1;', 120, 80, '', 'Multi-Instance, Sequential', null, null, dt + 'multi instance sequential'),
149			this.createVertexTemplateEntry(s1 + 'isLoopComp=1;', 120, 80, '', 'Compensation', null, null, dt + 'compensation'),
150			this.createVertexTemplateEntry(s1 + 'isLoopSub=1;isLoopComp=1;', 120, 80, '', 'Compensation', null, null, dt + 'compensation'),
151			this.createVertexTemplateEntry(s1 + 'isLoopComp=1;isLoopStandard=1;', 120, 80, '', 'Loop and Compensation', null, null, dt + 'loop compensation'),
152			this.createVertexTemplateEntry(s1 + 'isLoopComp=1;isLoopStandard=1;isLoopSub=1;', 120, 80, '', 'Loop and Compensation', null, null, dt + 'loop compensation'),
153			this.createVertexTemplateEntry(s1 + 'isAdHoc=1;isLoopSub=1;', 120, 80, '', 'Ad Hoc, Collapsed', null, null, dt + 'ad hoc collapsed'),
154			this.createVertexTemplateEntry(s1 + 'isAdHoc=1;', 120, 80, '', 'Ad Hoc, Expanded', null, null, dt + 'ad hoc expanded'),
155
156			this.createVertexTemplateEntry(s2 + 'service;', 120, 80, '', 'Service', null, null, dt + 'service'),
157			this.createVertexTemplateEntry(s2 + 'send;', 120, 80, '', 'Send', null, null, dt + 'send'),
158			this.createVertexTemplateEntry(s2 + 'receive;', 120, 80, '', 'Receive', null, null, dt + 'receive'),
159			this.createVertexTemplateEntry(s2 + 'user;', 120, 80, '', 'User', null, null, dt + 'user'),
160			this.createVertexTemplateEntry(s2 + 'manual;', 120, 80, '', 'Manual', null, null, dt + 'manual'),
161			this.createVertexTemplateEntry(s2 + 'businessRule;', 120, 80, '', 'Business Rule', null, null, dt + 'business rule'),
162			this.createVertexTemplateEntry(s2 + 'script;', 120, 80, '', 'Script', null, null, dt + 'script'),
163			this.createVertexTemplateEntry(s1 + 'isLoopSub=1;', 120, 80, '', 'Sub-Process, Collapsed', null, null, dt + 'sub process subprocess collapsed'),
164
165			this.createVertexTemplateEntry(s2 + 'abstract;bpmnShapeType=transaction;isLoopSub=1;', 120, 80, '', 'Transaction, Collapsed', null, null, dt + 'transaction collapsed'),
166			this.createVertexTemplateEntry(s2 + 'abstract;bpmnShapeType=transaction;', 120, 80, '', 'Transaction, Expanded', null, null, dt + 'transaction expanded'),
167
168			this.createVertexTemplateEntry(s3 + 'eventNonint;symbol=message;', 120, 80, '', 'Message-Event Sub-Process, Non-interrupting, Collapsed', null, null, dt + 'non interrupting message event sub process collapsed'),
169			this.createVertexTemplateEntry(s3 + 'eventInt;symbol=message;', 120, 80, '', 'Message-Event Sub-Process, Interrupting, Collapsed', null, null, dt + 'interrupting message event sub process collapsed'),
170			this.createVertexTemplateEntry(s3 + 'eventNonint;symbol=timer;', 120, 80, '', 'Timer-Event Sub-Process, Non-interrupting, Collapsed', null, null, dt + 'non interrupting timer event sub process collapsed'),
171			this.createVertexTemplateEntry(s3 + 'eventInt;symbol=timer;', 120, 80, '', 'Timer-Event Sub-Process, Interrupting, Collapsed', null, null, dt + 'interrupting timer event sub process collapsed'),
172			this.createVertexTemplateEntry(s3 + 'eventNonint;symbol=conditional;', 120, 80, '', 'Conditional-Event Sub-Process, Non-interrupting, Collapsed', null, null, dt + 'non interrupting conditional event sub process collapsed'),
173			this.createVertexTemplateEntry(s3 + 'eventInt;symbol=conditional;', 120, 80, '', 'Conditional-Event Sub-Process, Interrupting, Collapsed', null, null, dt + 'interrupting conditional event sub process collapsed'),
174			this.createVertexTemplateEntry(s3 + 'eventNonint;symbol=signal;', 120, 80, '', 'Signal-Event Sub-Process, Non-interrupting, Collapsed', null, null, dt + 'non interrupting signal event sub process collapsed'),
175			this.createVertexTemplateEntry(s3 + 'eventInt;symbol=signal;', 120, 80, '', 'Signal-Event Sub-Process, Interrupting, Collapsed', null, null, dt + 'interrupting signal event sub process collapsed'),
176			this.createVertexTemplateEntry(s3 + 'eventNonint;symbol=multiple;', 120, 80, '', 'Multiple-Event Sub-Process, Non-interrupting, Collapsed', null, null, dt + 'non interrupting multiple event sub process collapsed'),
177			this.createVertexTemplateEntry(s3 + 'eventInt;symbol=multiple;', 120, 80, '', 'Multiple-Event Sub-Process, Interrupting, Collapsed', null, null, dt + 'interrupting multiple event sub process collapsed'),
178			this.createVertexTemplateEntry(s3 + 'eventNonint;symbol=parallelMultiple;', 120, 80, '', 'Parallel Multiple Event Sub-Process, Non-interrupting, Collapsed', null, null, dt + 'non interrupting parallel multiple event sub process collapsed'),
179			this.createVertexTemplateEntry(s3 + 'eventInt;symbol=parallelMultiple;', 120, 80, '', 'Parallel Multiple Event Sub-Process, Interrupting , Collapsed', null, null, dt + 'interrupting parallel multiple event sub process collapsed'),
180			this.createVertexTemplateEntry(s3 + 'eventNonint;symbol=escalation;', 120, 80, '', 'Escalation-Event Sub-Process, Non-interrupting, Collapsed', null, null, dt + 'non interrupting escalation event sub process collapsed'),
181			this.createVertexTemplateEntry(s3 + 'eventInt;symbol=escalation;', 120, 80, '', 'Escalation-Event Sub-Process, Interrupting, Collapsed', null, null, dt + 'interrupting escalation event sub process collapsed'),
182			this.createVertexTemplateEntry(s3 + 'eventInt;symbol=error;', 120, 80, '', 'Error-Event Sub-Process, Interrupting, Collapsed', null, null, dt + 'interrupting error event sub process collapsed'),
183			this.createVertexTemplateEntry(s3 + 'eventInt;symbol=compensation;', 120, 80, '', 'Compensation-Event Sub-Process, Interrupting, Collapsed', null, null, dt + 'interrupting compensation event sub process collapsed'),
184			this.createVertexTemplateEntry('points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];shape=mxgraph.bpmn.task;arcSize=10;taskMarker=abstract;outline=none;symbol=general;bpmnShapeType=subprocess;isLoopSub=0;verticalAlign=top;align=left;spacingLeft=5;', 180, 100, '', 'Event Sub-Process, Expanded', null, null, dt + 'event sub process expanded'),
185
186			this.createVertexTemplateEntry(s4, 120, 80, '', 'Call Activity', null, null, dt + 'call activity'),
187			this.createVertexTemplateEntry(s4 + 'taskMarker=user;', 120, 80, '', 'User Call Activity', null, null, dt + 'user call activity'),
188			this.createVertexTemplateEntry(s4 + 'taskMarker=manual;', 120, 80, '', 'Manual Call Activity', null, null, dt + 'manual call activity'),
189			this.createVertexTemplateEntry(s4 + 'taskMarker=businessRule;', 120, 80, '', 'Business Rule Call Activity', null, null, dt + 'business rule call activity'),
190			this.createVertexTemplateEntry(s4 + 'taskMarker=script;', 120, 80, '', 'Script Call Activity', null, null, dt + 'script call activity'),
191			this.createVertexTemplateEntry(s4 + 'isLoopSub=1;', 120, 80, '', 'Call Activity, Collapsed', null, null, dt + 'call activity collapsed'),
192			this.createVertexTemplateEntry(s4 + 'verticalAlign=top;align=left;spacingLeft=5;', 180, 100, '', 'Call Activity, Expanded', null, null, dt + 'call activity expanded')
193		];
194
195		this.addPalette('bpmn2Tasks', 'BPMN 2.0 \ Tasks', false, mxUtils.bind(this, function(content)
196		{
197			for (var i = 0; i < fns.length; i++)
198			{
199				content.appendChild(fns[i](content));
200			}
201		}));
202	};
203
204	Sidebar.prototype.addBPMN2ChoreographiesPalette = function(gn, r, sb)
205	{
206		var dt = 'bpmn business process model notation choreography ';
207
208		var fns =
209		[
210			this.addEntry(dt + 'choreography task', function()
211		   	{
212			    var bg = new mxCell('', new mxGeometry(0, 0, 120, 100),
213				'rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;');
214		    	bg.vertex = true;
215
216			    var cell1 = new mxCell('',
217			    		new mxGeometry(0, 0, 120, 20),
218			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
219			    cell1.vertex = true;
220		    	bg.insert(cell1);
221
222			    var cell2 = new mxCell('',
223			    		new mxGeometry(0, 0, 120, 60),
224			    		'shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;connectable=0;whiteSpace=wrap;');
225			    cell2.vertex = true;
226		    	bg.insert(cell2);
227
228			    var cell3 = new mxCell('',
229			    		new mxGeometry(0, 1, 20, 20),
230			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
231			    cell3.vertex = true;
232			    cell3.geometry.relative = false;
233		    	bg.insert(cell3);
234
235			   	return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, 'Choreography Task');
236			}),
237
238			this.addEntry(dt + 'choreography task loop', function()
239		   	{
240			    var bg = new mxCell('', new mxGeometry(0, 0, 120, 100),
241				'rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;');
242		    	bg.vertex = true;
243
244			    var cell1 = new mxCell('',
245			    		new mxGeometry(0, 0, 120, 20),
246			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
247			    cell1.vertex = true;
248		    	bg.insert(cell1);
249
250			    var cell2 = new mxCell('',
251			    		new mxGeometry(0, 0, 120, 60),
252			    		'shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopStandard=1;connectable=0;whiteSpace=wrap;');
253			    cell2.vertex = true;
254		    	bg.insert(cell2);
255
256			    var cell3 = new mxCell('',
257			    		new mxGeometry(0, 1, 20, 20),
258			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
259			    cell3.vertex = true;
260			    cell3.geometry.relative = false;
261		    	bg.insert(cell3);
262
263			   	return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, 'Choreography Task, Loop');
264			}),
265
266			this.addEntry(dt + 'choreography task sequential multi instance', function()
267		   	{
268			    var bg = new mxCell('', new mxGeometry(0, 0, 120, 100),
269				'rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;');
270		    	bg.vertex = true;
271
272			    var cell1 = new mxCell('',
273			    		new mxGeometry(0, 0, 120, 20),
274			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
275			    cell1.vertex = true;
276		    	bg.insert(cell1);
277
278			    var cell2 = new mxCell('',
279			    		new mxGeometry(0, 0, 120, 60),
280			    		'shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopMultiSeq=1;connectable=0;whiteSpace=wrap;');
281			    cell2.vertex = true;
282		    	bg.insert(cell2);
283
284			    var cell3 = new mxCell('',
285			    		new mxGeometry(0, 1, 20, 20),
286			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
287			    cell3.vertex = true;
288			    cell3.geometry.relative = false;
289		    	bg.insert(cell3);
290
291			   	return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, 'Choreography Task, Sequential Multi Instance');
292			}),
293
294			this.addEntry(dt + 'choreography task parallel multi instance', function()
295		   	{
296			    var bg = new mxCell('', new mxGeometry(0, 0, 120, 100),
297				'rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;');
298		    	bg.vertex = true;
299
300			    var cell1 = new mxCell('',
301			    		new mxGeometry(0, 0, 120, 20),
302			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
303			    cell1.vertex = true;
304		    	bg.insert(cell1);
305
306			    var cell2 = new mxCell('',
307			    		new mxGeometry(0, 0, 120, 60),
308			    		'shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopMultiParallel=1;connectable=0;whiteSpace=wrap;');
309			    cell2.vertex = true;
310		    	bg.insert(cell2);
311
312			    var cell3 = new mxCell('',
313			    		new mxGeometry(0, 1, 20, 20),
314			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
315			    cell3.vertex = true;
316			    cell3.geometry.relative = false;
317		    	bg.insert(cell3);
318
319			   	return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, 'Choreography Task, Parallel Multi Instance');
320			}),
321
322			this.addEntry(dt + 'sub choreography collapsed', function()
323		   	{
324			    var bg = new mxCell('', new mxGeometry(0, 0, 120, 100),
325				'rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;');
326		    	bg.vertex = true;
327
328			    var cell1 = new mxCell('',
329			    		new mxGeometry(0, 0, 120, 20),
330			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
331			    cell1.vertex = true;
332		    	bg.insert(cell1);
333
334			    var cell2 = new mxCell('',
335			    		new mxGeometry(0, 0, 120, 60),
336			    		'shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopSub=1;connectable=0;whiteSpace=wrap;');
337			    cell2.vertex = true;
338		    	bg.insert(cell2);
339
340			    var cell3 = new mxCell('',
341			    		new mxGeometry(0, 1, 20, 20),
342			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
343			    cell3.vertex = true;
344			    cell3.geometry.relative = false;
345		    	bg.insert(cell3);
346
347			   	return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, 'Sub-Choreography, Collapsed');
348			}),
349
350			this.addEntry(dt + 'sub choreography loop collapsed', function()
351		   	{
352			    var bg = new mxCell('', new mxGeometry(0, 0, 120, 100),
353				'rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;');
354		    	bg.vertex = true;
355
356			    var cell1 = new mxCell('',
357			    		new mxGeometry(0, 0, 120, 20),
358			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
359			    cell1.vertex = true;
360		    	bg.insert(cell1);
361
362			    var cell2 = new mxCell('',
363			    		new mxGeometry(0, 0, 120, 60),
364			    		'shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopSub=1;isLoopStandard=1;connectable=0;whiteSpace=wrap;');
365			    cell2.vertex = true;
366		    	bg.insert(cell2);
367
368			    var cell3 = new mxCell('',
369			    		new mxGeometry(0, 1, 20, 20),
370			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
371			    cell3.vertex = true;
372			    cell3.geometry.relative = false;
373		    	bg.insert(cell3);
374
375			   	return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, 'Sub-Choreography, Loop, Collapsed');
376			}),
377
378			this.addEntry(dt + 'sub choreography sequential multi instance collapsed', function()
379		   	{
380			    var bg = new mxCell('', new mxGeometry(0, 0, 120, 100),
381				'rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;');
382		    	bg.vertex = true;
383
384			    var cell1 = new mxCell('',
385			    		new mxGeometry(0, 0, 120, 20),
386			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
387			    cell1.vertex = true;
388		    	bg.insert(cell1);
389
390			    var cell2 = new mxCell('',
391			    		new mxGeometry(0, 0, 120, 60),
392			    		'shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopSub=1;isLoopMultiSeq=1;connectable=0;whiteSpace=wrap;');
393			    cell2.vertex = true;
394		    	bg.insert(cell2);
395
396			    var cell3 = new mxCell('',
397			    		new mxGeometry(0, 1, 20, 20),
398			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
399			    cell3.vertex = true;
400			    cell3.geometry.relative = false;
401		    	bg.insert(cell3);
402
403			   	return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, 'Sub-Choreography, Sequential Multi Instance, Collapsed');
404			}),
405
406			this.addEntry(dt + 'sub choreography parallel multi instance collapsed', function()
407		   	{
408			    var bg = new mxCell('', new mxGeometry(0, 0, 120, 100),
409				'rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;');
410		    	bg.vertex = true;
411
412			    var cell1 = new mxCell('',
413			    		new mxGeometry(0, 0, 120, 20),
414			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
415			    cell1.vertex = true;
416		    	bg.insert(cell1);
417
418			    var cell2 = new mxCell('',
419			    		new mxGeometry(0, 0, 120, 60),
420			    		'shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopSub=1;isLoopMultiParallel=1;connectable=0;whiteSpace=wrap;');
421			    cell2.vertex = true;
422		    	bg.insert(cell2);
423
424			    var cell3 = new mxCell('',
425			    		new mxGeometry(0, 1, 20, 20),
426			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
427			    cell3.vertex = true;
428			    cell3.geometry.relative = false;
429		    	bg.insert(cell3);
430
431			   	return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, 'Sub-Choreography, Parallel Multi Instance, Collapsed');
432			}),
433
434			this.addEntry(dt + 'sub choreography expanded', function()
435		   	{
436			    var bg = new mxCell('', new mxGeometry(0, 0, 400, 200),
437				'rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;');
438		    	bg.vertex = true;
439
440			    var cell1 = new mxCell('',
441			    		new mxGeometry(0, 0, 400, 20),
442			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
443			    cell1.vertex = true;
444		    	bg.insert(cell1);
445
446			    var cell2 = new mxCell('',
447			    		new mxGeometry(0, 0, 400, 160),
448			    		'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;verticalAlign=top;align=left;spacingLeft=5;connectable=0;whiteSpace=wrap;');
449			    cell2.vertex = true;
450		    	bg.insert(cell2);
451
452			    var cell3 = new mxCell('',
453			    		new mxGeometry(0, 1, 400, 20),
454			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
455			    cell3.vertex = true;
456			    cell3.geometry.relative = false;
457		    	bg.insert(cell3);
458
459			   	return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, 'Sub-Choreography, Expanded');
460			}),
461
462			this.addEntry(dt + 'call choreography activity calling global task', function()
463		   	{
464			    var bg = new mxCell('', new mxGeometry(0, 0, 120, 100),
465				'rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;strokeWidth=8;');
466		    	bg.vertex = true;
467
468			    var cell1 = new mxCell('',
469			    		new mxGeometry(0, 0, 120, 20),
470			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
471			    cell1.vertex = true;
472		    	bg.insert(cell1);
473
474			    var cell2 = new mxCell('',
475			    		new mxGeometry(0, 0, 120, 60),
476			    		'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;connectable=0;whiteSpace=wrap;');
477			    cell2.vertex = true;
478		    	bg.insert(cell2);
479
480			    var cell3 = new mxCell('',
481			    		new mxGeometry(0, 1, 20, 20),
482			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
483			    cell3.vertex = true;
484			    cell3.geometry.relative = false;
485		    	bg.insert(cell3);
486
487			   	return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, 'Call Choreography calling Global');
488			}),
489
490			this.addEntry(dt + 'call choreography activity calling global task loop', function()
491		   	{
492			    var bg = new mxCell('', new mxGeometry(0, 0, 120, 100),
493				'rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;strokeWidth=8;');
494		    	bg.vertex = true;
495
496			    var cell1 = new mxCell('',
497			    		new mxGeometry(0, 0, 120, 20),
498			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
499			    cell1.vertex = true;
500		    	bg.insert(cell1);
501
502			    var cell2 = new mxCell('',
503			    		new mxGeometry(0, 0, 120, 60),
504			    		'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopStandard=1;connectable=0;whiteSpace=wrap;');
505			    cell2.vertex = true;
506		    	bg.insert(cell2);
507
508			    var cell3 = new mxCell('',
509			    		new mxGeometry(0, 1, 20, 20),
510			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
511			    cell3.vertex = true;
512			    cell3.geometry.relative = false;
513		    	bg.insert(cell3);
514
515			   	return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, 'Call Choreography calling Global, Loop');
516			}),
517
518			this.addEntry(dt + 'call choreography activity calling global task sequential multi instance', function()
519		   	{
520			    var bg = new mxCell('', new mxGeometry(0, 0, 120, 100),
521				'rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;strokeWidth=8;');
522		    	bg.vertex = true;
523
524			    var cell1 = new mxCell('',
525			    		new mxGeometry(0, 0, 120, 20),
526			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
527			    cell1.vertex = true;
528		    	bg.insert(cell1);
529
530			    var cell2 = new mxCell('',
531			    		new mxGeometry(0, 0, 120, 60),
532			    		'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopMultiSeq=1;connectable=0;whiteSpace=wrap;');
533			    cell2.vertex = true;
534		    	bg.insert(cell2);
535
536			    var cell3 = new mxCell('',
537			    		new mxGeometry(0, 1, 20, 20),
538			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
539			    cell3.vertex = true;
540			    cell3.geometry.relative = false;
541		    	bg.insert(cell3);
542
543			   	return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, 'Call Choreography calling Global, Sequential Multi Instance');
544			}),
545
546			this.addEntry(dt + 'call choreography activity calling global task parallel multi instance', function()
547		   	{
548			    var bg = new mxCell('', new mxGeometry(0, 0, 120, 100),
549				'rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;strokeWidth=8;');
550		    	bg.vertex = true;
551
552			    var cell1 = new mxCell('',
553			    		new mxGeometry(0, 0, 120, 20),
554			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
555			    cell1.vertex = true;
556		    	bg.insert(cell1);
557
558			    var cell2 = new mxCell('',
559			    		new mxGeometry(0, 0, 120, 60),
560			    		'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopMultiParallel=1;connectable=0;whiteSpace=wrap;');
561			    cell2.vertex = true;
562		    	bg.insert(cell2);
563
564			    var cell3 = new mxCell('',
565			    		new mxGeometry(0, 1, 20, 20),
566			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
567			    cell3.vertex = true;
568			    cell3.geometry.relative = false;
569		    	bg.insert(cell3);
570
571			   	return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, 'Call Choreography calling Global, Parallel Multi Instance');
572			}),
573
574			this.addEntry(dt + 'call choreography activity calling', function()
575		   	{
576			    var bg = new mxCell('', new mxGeometry(0, 0, 120, 100),
577				'rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;strokeWidth=8;');
578		    	bg.vertex = true;
579
580			    var cell1 = new mxCell('',
581			    		new mxGeometry(0, 0, 120, 20),
582			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
583			    cell1.vertex = true;
584		    	bg.insert(cell1);
585
586			    var cell2 = new mxCell('',
587			    		new mxGeometry(0, 0, 120, 60),
588			    		'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopSub=1;connectable=0;whiteSpace=wrap;');
589			    cell2.vertex = true;
590		    	bg.insert(cell2);
591
592			    var cell3 = new mxCell('',
593			    		new mxGeometry(0, 1, 20, 20),
594			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
595			    cell3.vertex = true;
596			    cell3.geometry.relative = false;
597		    	bg.insert(cell3);
598
599			   	return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, 'Call Choreography calling a Choreography');
600			}),
601
602			this.addEntry(dt + 'call choreography activity calling loop', function()
603		   	{
604			    var bg = new mxCell('', new mxGeometry(0, 0, 120, 100),
605				'rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;strokeWidth=8;');
606		    	bg.vertex = true;
607
608			    var cell1 = new mxCell('',
609			    		new mxGeometry(0, 0, 120, 20),
610			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
611			    cell1.vertex = true;
612		    	bg.insert(cell1);
613
614			    var cell2 = new mxCell('',
615			    		new mxGeometry(0, 0, 120, 60),
616			    		'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopSub=1;isLoopStandard=1;connectable=0;whiteSpace=wrap;');
617			    cell2.vertex = true;
618		    	bg.insert(cell2);
619
620			    var cell3 = new mxCell('',
621			    		new mxGeometry(0, 1, 20, 20),
622			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
623			    cell3.vertex = true;
624			    cell3.geometry.relative = false;
625		    	bg.insert(cell3);
626
627			   	return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, 'Call Choreography calling a Choreography, Loop');
628			}),
629
630			this.addEntry(dt + 'call choreography activity calling sequential multi instance', function()
631		   	{
632			    var bg = new mxCell('', new mxGeometry(0, 0, 120, 100),
633				'rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;strokeWidth=8;');
634		    	bg.vertex = true;
635
636			    var cell1 = new mxCell('',
637			    		new mxGeometry(0, 0, 120, 20),
638			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
639			    cell1.vertex = true;
640		    	bg.insert(cell1);
641
642			    var cell2 = new mxCell('',
643			    		new mxGeometry(0, 0, 120, 60),
644			    		'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopSub=1;isLoopMultiSeq=1;connectable=0;whiteSpace=wrap;');
645			    cell2.vertex = true;
646		    	bg.insert(cell2);
647
648			    var cell3 = new mxCell('',
649			    		new mxGeometry(0, 1, 20, 20),
650			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
651			    cell3.vertex = true;
652			    cell3.geometry.relative = false;
653		    	bg.insert(cell3);
654
655			   	return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, 'Call Choreography calling a Choreography, Sequential Multi Instance');
656			}),
657
658			this.addEntry(dt + 'call choreography activity calling parallel multi instance', function()
659		   	{
660			    var bg = new mxCell('', new mxGeometry(0, 0, 120, 100),
661				'rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;strokeWidth=8;');
662		    	bg.vertex = true;
663
664			    var cell1 = new mxCell('',
665			    		new mxGeometry(0, 0, 120, 20),
666			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
667			    cell1.vertex = true;
668		    	bg.insert(cell1);
669
670			    var cell2 = new mxCell('',
671			    		new mxGeometry(0, 0, 120, 60),
672			    		'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopSub=1;isLoopMultiParallel=1;connectable=0;whiteSpace=wrap;');
673			    cell2.vertex = true;
674		    	bg.insert(cell2);
675
676			    var cell3 = new mxCell('',
677			    		new mxGeometry(0, 1, 20, 20),
678			    		'whiteSpace=wrap;connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
679			    cell3.vertex = true;
680			    cell3.geometry.relative = false;
681		    	bg.insert(cell3);
682
683			   	return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, 'Call Choreography calling a Choreography, Parallel Multi Instance');
684			}),
685
686			this.createVertexTemplateEntry('whiteSpace=wrap;shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;', 120, 20, '', 'Participant, Initiating, Top', null, null, dt + 'initiating participant top'),
687
688			this.addEntry(dt + 'initiating participant top with decorator', function()
689		   	{
690			    var cell1 = new mxCell('',
691			    		new mxGeometry(0, 60, 120, 20),
692			    		'shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;whiteSpace=wrap;');
693			    cell1.vertex = true;
694
695			    var cell2 = new mxCell('',
696			    		new mxGeometry(40, 0, 40, 30),
697			    		'shape=message;');
698			    cell2.vertex = true;
699
700			   	var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;html=1;elbow=horizontal;endArrow=none;labelBackgroundColor=none;endSize=12;endFill=0;dashed=1;dashPattern=1 2;exitX=0.5;exitY=0;rounded=0;');
701		    	edge1.geometry.relative = true;
702			   	edge1.edge = true;
703			   	cell1.insertEdge(edge1, true);
704			   	cell2.insertEdge(edge1, false);
705
706			   	return sb.createVertexTemplateFromCells([cell1, cell2, edge1], 120, 80, 'Participant, Initiating, Top with Decorator');
707			}),
708
709			this.createVertexTemplateEntry('shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;rectStyle=square;whiteSpace=wrap;', 120, 20, '', 'Additional Participant, Initiating', null, null, dt + 'initiating additional participant'),
710			this.createVertexTemplateEntry('shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;rectStyle=rounded;isLoopSub=0;topLeftStyle=square;topRightStyle=square;whiteSpace=wrap;', 120, 20, '', 'Participant, Initiating, Bottom', null, null, dt + 'initiating participant bottom'),
711
712			this.addEntry(dt + 'initiating participant bottom with decorator', function()
713		   	{
714			    var cell1 = new mxCell('',
715			    		new mxGeometry(0, 0, 120, 20),
716			    		'shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;rectStyle=rounded;isLoopSub=0;topLeftStyle=square;topRightStyle=square;whiteSpace=wrap;');
717			    cell1.vertex = true;
718
719			    var cell2 = new mxCell('',
720			    		new mxGeometry(40, 50, 40, 30),
721			    		'shape=message;');
722			    cell2.vertex = true;
723
724			   	var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;html=1;elbow=horizontal;endArrow=none;labelBackgroundColor=none;endSize=12;endFill=0;dashed=1;dashPattern=1 2;exitX=0.5;exitY=1;rounded=0;');
725		    	edge1.geometry.relative = true;
726			   	edge1.edge = true;
727			   	cell1.insertEdge(edge1, true);
728			   	cell2.insertEdge(edge1, false);
729
730			   	return sb.createVertexTemplateFromCells([cell1, cell2, edge1], 120, 80, 'Participant, Initiating, Bottom with Decorator');
731			}),
732
733			this.createVertexTemplateEntry('shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;verticalAlign=top;isLoopMultiParallel=1;whiteSpace=wrap;', 120, 40, '', 'Participant, Initiating, Multi-Instance, Top', null, null, dt + 'initiating participant bottom'),
734
735			this.addEntry(dt + 'initiating participant multi instance top with decorator', function()
736		   	{
737			    var cell1 = new mxCell('',
738			    		new mxGeometry(0, 60, 120, 40),
739			    		'shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;verticalAlign=top;isLoopMultiParallel=1;whiteSpace=wrap;');
740			    cell1.vertex = true;
741
742			    var cell2 = new mxCell('',
743			    		new mxGeometry(40, 0, 40, 30),
744			    		'shape=message;');
745			    cell2.vertex = true;
746
747			   	var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;html=1;elbow=horizontal;endArrow=none;labelBackgroundColor=none;endSize=12;endFill=0;dashed=1;dashPattern=1 2;exitX=0.5;exitY=0;rounded=0;');
748		    	edge1.geometry.relative = true;
749			   	edge1.edge = true;
750			   	cell1.insertEdge(edge1, true);
751			   	cell2.insertEdge(edge1, false);
752
753			   	return sb.createVertexTemplateFromCells([cell1, cell2, edge1], 120, 100, 'Participant, Initiating, Multi-Instance Top with Decorator');
754			}),
755
756			this.createVertexTemplateEntry('shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;rectStyle=square;verticalAlign=top;isLoopMultiParallel=1;whiteSpace=wrap;', 120, 40, '', 'Additional Participant, Initiating, Multi-Instance, Bottom', null, null, dt + 'initiating additional participant multi instance bottom'),
757			this.createVertexTemplateEntry('shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;rectStyle=rounded;verticalAlign=top;isLoopMultiParallel=1;topLeftStyle=square;topRightStyle=square;whiteSpace=wrap;', 120, 40, '', 'Participant, Initiating, Multi-Instance, Bottom', null, null, dt + 'initiating participant multi instance bottom'),
758
759			this.addEntry(dt + 'initiating participant multi instance bottom with decorator', function()
760		   	{
761			    var cell1 = new mxCell('',
762			    		new mxGeometry(0, 0, 120, 40),
763			    		'shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;rectStyle=rounded;topLeftStyle=square;topRightStyle=square;verticalAlign=top;isLoopMultiParallel=1;whiteSpace=wrap;');
764			    cell1.vertex = true;
765
766			    var cell2 = new mxCell('',
767			    		new mxGeometry(40, 70, 40, 30),
768			    		'shape=message;');
769			    cell2.vertex = true;
770
771			   	var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;html=1;elbow=horizontal;endArrow=none;labelBackgroundColor=none;endSize=12;endFill=0;dashed=1;dashPattern=1 2;exitX=0.5;exitY=1;rounded=0;');
772		    	edge1.geometry.relative = true;
773			   	edge1.edge = true;
774			   	cell1.insertEdge(edge1, true);
775			   	cell2.insertEdge(edge1, false);
776
777			   	return sb.createVertexTemplateFromCells([cell1, cell2, edge1], 120, 100, 'Participant, Initiating, Multi-Instance, Bottom with Decorator');
778			}),
779
780			this.createVertexTemplateEntry('shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;fillColor=#C0C0C0;whiteSpace=wrap;', 120, 20, '', 'Participant, Non-Initiating, Top', null, null, dt + 'non initiating participant top'),
781
782			this.addEntry(dt + 'non initiating participant top with decorator', function()
783		   	{
784			    var cell1 = new mxCell('',
785			    		new mxGeometry(0, 60, 120, 20),
786			    		'shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;fillColor=#C0C0C0;whiteSpace=wrap;');
787			    cell1.vertex = true;
788
789			    var cell2 = new mxCell('',
790			    		new mxGeometry(40, 0, 40, 30),
791			    		'shape=message;fillColor=#C0C0C0;');
792			    cell2.vertex = true;
793
794			   	var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;html=1;elbow=horizontal;endArrow=none;labelBackgroundColor=none;endSize=12;endFill=0;dashed=1;dashPattern=1 2;exitX=0.5;exitY=0;rounded=0;');
795		    	edge1.geometry.relative = true;
796			   	edge1.edge = true;
797			   	cell1.insertEdge(edge1, true);
798			   	cell2.insertEdge(edge1, false);
799
800			   	return sb.createVertexTemplateFromCells([cell1, cell2, edge1], 120, 80, 'Participant, Non-Initiating, Top with Decorator');
801			}),
802
803			this.createVertexTemplateEntry('shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;rectStyle=square;fillColor=#C0C0C0;whiteSpace=wrap;', 120, 20, '', 'Additional Participant, Non-Initiating', null, null, dt + 'non initiating additional participant'),
804			this.createVertexTemplateEntry('shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;rectStyle=rounded;isLoopSub=0;topLeftStyle=square;topRightStyle=square;fillColor=#C0C0C0;whiteSpace=wrap;', 120, 20, '', 'Participant, Non-Initiating, Bottom', null, null, dt + 'non initiating participant bottom'),
805
806			this.addEntry(dt + 'non initiating participant bottom with decorator', function()
807		   	{
808			    var cell1 = new mxCell('',
809			    		new mxGeometry(0, 0, 120, 20),
810			    		'shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;rectStyle=rounded;isLoopSub=0;topLeftStyle=square;topRightStyle=square;fillColor=#C0C0C0;whiteSpace=wrap;');
811			    cell1.vertex = true;
812
813			    var cell2 = new mxCell('',
814			    		new mxGeometry(40, 50, 40, 30),
815			    		'shape=message;fillColor=#C0C0C0;');
816			    cell2.vertex = true;
817
818			   	var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;html=1;elbow=horizontal;endArrow=none;labelBackgroundColor=none;endSize=12;endFill=0;dashed=1;dashPattern=1 2;exitX=0.5;exitY=1;rounded=0;');
819		    	edge1.geometry.relative = true;
820			   	edge1.edge = true;
821			   	cell1.insertEdge(edge1, true);
822			   	cell2.insertEdge(edge1, false);
823
824			   	return sb.createVertexTemplateFromCells([cell1, cell2, edge1], 120, 80, 'Participant, Non-Initiating, Bottom with Decorator');
825			}),
826
827			this.createVertexTemplateEntry('shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;verticalAlign=top;isLoopMultiParallel=1;fillColor=#C0C0C0;whiteSpace=wrap;', 120, 40, '', 'Participant, Non-Initiating, Multi-Instance, Top', null, null, dt + 'initiating participant bottom'),
828
829			this.addEntry(dt + 'non initiating participant multi instance top with decorator', function()
830		   	{
831			    var cell1 = new mxCell('',
832			    		new mxGeometry(0, 60, 120, 40),
833			    		'shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;verticalAlign=top;isLoopMultiParallel=1;fillColor=#C0C0C0;whiteSpace=wrap;');
834			    cell1.vertex = true;
835
836			    var cell2 = new mxCell('',
837			    		new mxGeometry(40, 0, 40, 30),
838			    		'shape=message;fillColor=#C0C0C0;');
839			    cell2.vertex = true;
840
841			   	var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;html=1;elbow=horizontal;endArrow=none;labelBackgroundColor=none;endSize=12;endFill=0;dashed=1;dashPattern=1 2;exitX=0.5;exitY=0;rounded=0;');
842		    	edge1.geometry.relative = true;
843			   	edge1.edge = true;
844			   	cell1.insertEdge(edge1, true);
845			   	cell2.insertEdge(edge1, false);
846
847			   	return sb.createVertexTemplateFromCells([cell1, cell2, edge1], 120, 100, 'Participant, Non-Initiating, Multi-Instance, Top with Decorator');
848			}),
849
850			this.createVertexTemplateEntry('shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;rectStyle=square;verticalAlign=top;isLoopMultiParallel=1;fillColor=#C0C0C0;whiteSpace=wrap;', 120, 40, '', 'Additional Participant, Non-Initiating, Multi-Instance, Bottom', null, null, dt + 'non initiating additional participant multi instance bottom'),
851			this.createVertexTemplateEntry('shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;rectStyle=rounded;verticalAlign=top;isLoopMultiParallel=1;topLeftStyle=square;topRightStyle=square;fillColor=#C0C0C0;whiteSpace=wrap;', 120, 40, '', 'Participant, Non-Initiating, Multi-Instance, Bottom', null, null, dt + 'non initiating participant multi instance bottom'),
852
853			this.addEntry(dt + 'non initiating participant multi instance bottom with decorator', function()
854		   	{
855			    var cell1 = new mxCell('',
856			    		new mxGeometry(0, 0, 120, 40),
857			    		'shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;rectStyle=rounded;topLeftStyle=square;topRightStyle=square;verticalAlign=top;isLoopMultiParallel=1;fillColor=#C0C0C0;whiteSpace=wrap;');
858			    cell1.vertex = true;
859
860			    var cell2 = new mxCell('',
861			    		new mxGeometry(40, 70, 40, 30),
862			    		'shape=message;fillColor=#C0C0C0;');
863			    cell2.vertex = true;
864
865			   	var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;html=1;elbow=horizontal;endArrow=none;labelBackgroundColor=none;endSize=12;endFill=0;dashed=1;dashPattern=1 2;exitX=0.5;exitY=1;rounded=0;');
866		    	edge1.geometry.relative = true;
867			   	edge1.edge = true;
868			   	cell1.insertEdge(edge1, true);
869			   	cell2.insertEdge(edge1, false);
870
871			   	return sb.createVertexTemplateFromCells([cell1, cell2, edge1], 120, 100, 'Participant, Non-Initiating, Multi-Instance, Bottom with Decorator');
872			})
873		];
874
875		this.addPalette('bpmn2Choreographies', 'BPMN 2.0 \ Choreographies', false, mxUtils.bind(this, function(content)
876		{
877			for (var i = 0; i < fns.length; i++)
878			{
879				content.appendChild(fns[i](content));
880			}
881		}));
882	};
883
884	Sidebar.prototype.addBPMN2EventsPalette = function(gn, r, sb)
885	{
886		var dt = 'bpmn business process model notation event ';
887		var s = 'points=[[0.145,0.145,0],[0.5,0,0],[0.855,0.145,0],[1,0.5,0],[0.855,0.855,0],[0.5,1,0],[0.145,0.855,0],[0,0.5,0]];shape=mxgraph.bpmn.event;html=1;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;align=center;perimeter=ellipsePerimeter;outlineConnect=0;aspect=fixed;outline=';
888		var w = 50;
889		var h = 50;
890
891		var fns =
892		[
893			this.createVertexTemplateEntry(s + 'standard;symbol=general;', w, h, '', 'None Start', null, null, dt + 'none start'),
894			this.createVertexTemplateEntry(s + 'throwing;symbol=general;', w, h, '', 'None Intermediate, Throwing', null, null, dt + 'none intermediate throwing'),
895			this.createVertexTemplateEntry(s + 'end;symbol=terminate2;', w, h, '', 'End', null, null, dt + 'end'),
896			this.createVertexTemplateEntry(s + 'standard;symbol=message;', w, h, '', 'Message Start, Interrupting', null, null, dt + 'message start interrupting'),
897			this.createVertexTemplateEntry(s + 'eventNonint;symbol=message;', w, h, '', 'Message Start, Non-Interrupting', null, null, dt + 'message start non interrupting noninterrupting'),
898			this.createVertexTemplateEntry(s + 'throwing;symbol=message;', w, h, '', 'Message Intermediate, Throwing', null, null, dt + 'message intermediate throwing'),
899			this.createVertexTemplateEntry(s + 'catching;symbol=message;', w, h, '', 'Message Intermediate, Catching', null, null, dt + 'message intermediate catching'),
900			this.createVertexTemplateEntry(s + 'boundInt;symbol=message;', w, h, '', 'Message Intermediate, Boundary Interrupting', null, null, dt + 'message intermediate boundary interrupting'),
901			this.createVertexTemplateEntry(s + 'boundNonint;symbol=message;', w, h, '', 'Message Intermediate, Boundary Non-Interrupting', null, null, dt + 'message intermediate boundary non interrupting noninterrupting'),
902			this.createVertexTemplateEntry(s + 'end;symbol=message;', w, h, '', 'Message End', null, null, dt + 'message end'),
903			this.createVertexTemplateEntry(s + 'standard;symbol=timer;', w, h, '', 'Timer Start, Interrupting', null, null, dt + 'timer start interrupting'),
904			this.createVertexTemplateEntry(s + 'eventNonint;symbol=timer;', w, h, '', 'Timer Start, Non-Interrupting', null, null, dt + 'timer start non interrupting noninterrupting'),
905			this.createVertexTemplateEntry(s + 'catching;symbol=timer;', w, h, '', 'Timer Intermediate, Catching', null, null, dt + 'timer intermediate catching'),
906			this.createVertexTemplateEntry(s + 'boundInt;symbol=timer;', w, h, '', 'Timer Intermediate, Boundary Interrupting', null, null, dt + 'timer intermediate boundary interrupting'),
907			this.createVertexTemplateEntry(s + 'boundNonint;symbol=timer;', w, h, '', 'Timer Intermediate, Boundary Non-Interrupting', null, null, dt + 'timer intermediate boundary non interrupting noninterrupting'),
908			this.createVertexTemplateEntry(s + 'eventInt;symbol=escalation;', w, h, '', 'Escalation Start, Interrupting', null, null, dt + 'escalation start interrupting'),
909			this.createVertexTemplateEntry(s + 'eventNonint;symbol=escalation;', w, h, '', 'Escalation Start, Non-Interrupting', null, null, dt + 'escalation start non interrupting noninterrupting'),
910			this.createVertexTemplateEntry(s + 'throwing;symbol=escalation;', w, h, '', 'Escalation Intermediate, Boundary Throwing', null, null, dt + 'escalation intermediate boundary throwing'),
911			this.createVertexTemplateEntry(s + 'boundInt;symbol=escalation;', w, h, '', 'Escalation Intermediate, Boundary Interrupting', null, null, dt + 'escalation intermediate boundary interrupting'),
912			this.createVertexTemplateEntry(s + 'boundNonint;symbol=escalation;', w, h, '', 'Escalation Intermediate, Non-Interrupting', null, null, dt + 'escalation intermediate non interrupting nonimpterrupting'),
913			this.createVertexTemplateEntry(s + 'end;symbol=escalation;', w, h, '', 'Escalation End', null, null, dt + 'escalation end'),
914			this.createVertexTemplateEntry(s + 'eventInt;symbol=error;', w, h, '', 'Error Start, Interrupting', null, null, dt + 'error start interrupting'),
915			this.createVertexTemplateEntry(s + 'boundInt;symbol=error;', w, h, '', 'Error Intermediate, Boundary Interrupting', null, null, dt + 'error intermediate boundary interrupting'),
916			this.createVertexTemplateEntry(s + 'end;symbol=error;', w, h, '', 'Error End', null, null, dt + 'error end'),
917			this.createVertexTemplateEntry(s + 'eventInt;symbol=compensation;', w, h, '', 'Compensation Start, Interrupting', null, null, dt + 'compensation start interrupting'),
918			this.createVertexTemplateEntry(s + 'throwing;symbol=compensation;', w, h, '', 'Compensation Intermediate, Throwing', null, null, dt + 'compensation intermediate throwing'),
919			this.createVertexTemplateEntry(s + 'boundInt;symbol=compensation;', w, h, '', 'Compensation Intermediate, Boundary Interrupting', null, null, dt + 'compensation intermediate boundary interrupting'),
920			this.createVertexTemplateEntry(s + 'end;symbol=compensation;', w, h, '', 'Compensation End', null, null, dt + 'compensation end'),
921			this.createVertexTemplateEntry(s + 'standard;symbol=conditional;', w, h, '', 'Conditional Start, Interrupting', null, null, dt + 'conditional start interrupting'),
922			this.createVertexTemplateEntry(s + 'eventNonint;symbol=conditional;', w, h, '', 'Conditional Start, Non-Interrupting', null, null, dt + 'conditional start non interrupting noninterrupting'),
923			this.createVertexTemplateEntry(s + 'catching;symbol=conditional;', w, h, '', 'Conditional Intermediate, Catching', null, null, dt + 'conditional intermediate catching'),
924			this.createVertexTemplateEntry(s + 'boundInt;symbol=conditional;', w, h, '', 'Conditional Intermediate, Boundary Interrupting', null, null, dt + 'conditional intermediate boundary interrupting'),
925			this.createVertexTemplateEntry(s + 'boundNonint;symbol=conditional;', w, h, '', 'Conditional Intermediate, Boundary Non-Interrupting', null, null, dt + 'conditional intermediate boundary non interrupting noninterrupting'),
926			this.createVertexTemplateEntry(s + 'catching;symbol=link;', w, h, '', 'Link Intermediate, Catching', null, null, dt + 'link intermediate catching'),
927			this.createVertexTemplateEntry(s + 'throwing;symbol=link;', w, h, '', 'Link Intermediate, Throwing', null, null, dt + 'link intermediate throwing'),
928			this.createVertexTemplateEntry(s + 'standard;symbol=signal;', w, h, '', 'Signal Start, Interrupting', null, null, dt + 'signal start interrupting'),
929			this.createVertexTemplateEntry(s + 'eventNonint;symbol=signal;', w, h, '', 'Signal Start, Non-Interrupting', null, null, dt + 'signal start non interrupting noninterrupting'),
930			this.createVertexTemplateEntry(s + 'catching;symbol=signal;', w, h, '', 'Signal Intermediate, Catching', null, null, dt + 'signal intermediate catching'),
931			this.createVertexTemplateEntry(s + 'throwing;symbol=signal;', w, h, '', 'Signal Intermediate, Throwing', null, null, dt + 'signal intermediate throwing'),
932			this.createVertexTemplateEntry(s + 'boundInt;symbol=signal;', w, h, '', 'Signal Intermediate, Boundary Interrupting', null, null, dt + 'signal intermediate boundary interrupting'),
933			this.createVertexTemplateEntry(s + 'boundNonint;symbol=signal;', w, h, '', 'Signal Intermediate, Boundary Non-Interrupting', null, null, dt + 'signal intermediate noundary non interrupting noninterrupting'),
934			this.createVertexTemplateEntry(s + 'end;symbol=signal;', w, h, '', 'Signal End', null, null, dt + 'signal end'),
935			this.createVertexTemplateEntry(s + 'standard;symbol=multiple;', w, h, '', 'Multiple Start, Interrupting', null, null, dt + 'multiple start interrupting'),
936			this.createVertexTemplateEntry(s + 'eventNonint;symbol=multiple;', w, h, '', 'Multiple Start, Non-Interrupting', null, null, dt + 'multiple start non interrupting noninterrupting'),
937			this.createVertexTemplateEntry(s + 'catching;symbol=multiple;', w, h, '', 'Multiple Intermediate, Catching', null, null, dt + 'multiple intermediate catching'),
938			this.createVertexTemplateEntry(s + 'throwing;symbol=multiple;', w, h, '', 'Multiple Intermediate, Throwing', null, null, dt + 'multiple intermediate throwing'),
939			this.createVertexTemplateEntry(s + 'boundInt;symbol=multiple;', w, h, '', 'Multiple Intermediate, Boundary Interrupting', null, null, dt + 'multiple intermediate boundary interrupting'),
940			this.createVertexTemplateEntry(s + 'boundNonint;symbol=multiple;', w, h, '', 'Multiple Intermediate, Boundary Non-Interrupting', null, null, dt + 'multiple intermediate boundary non interrupting noninterrupting'),
941			this.createVertexTemplateEntry(s + 'end;symbol=multiple;', w, h, '', 'Multiple End', null, null, dt + 'multiple end'),
942			this.createVertexTemplateEntry(s + 'eventInt;symbol=parallelMultiple;', w, h, '', 'Parallel Multiple Start, Interrupting', null, null, dt + 'parallel multiple start interrupting'),
943			this.createVertexTemplateEntry(s + 'eventNonint;symbol=parallelMultiple;', w, h, '', 'Parallel Multiple Start, Non-Interrupting', null, null, dt + 'parallel multiple start non interrupting noninterrupting'),
944			this.createVertexTemplateEntry(s + 'catching;symbol=parallelMultiple;', w, h, '', 'Parallel Multiple Intermediate, Catching', null, null, dt + 'parallel multiple intermediate catching'),
945			this.createVertexTemplateEntry(s + 'boundInt;symbol=parallelMultiple;', w, h, '', 'Parallel Multiple Intermediate, Boundary Interrupting', null, null, dt + 'parallel multiple intermediate boundary interrupting'),
946			this.createVertexTemplateEntry(s + 'boundNonint;symbol=parallelMultiple;', w, h, '', 'Parallel Multiple Intermediate, Boundary Non-Interrupting', null, null, dt + 'parallel multiple intermediate boundary non interrupting noninterrupting'),
947			this.createVertexTemplateEntry(s + 'boundInt;symbol=cancel;', w, h, '', 'Cancel Intermediate, Boundary Interrupting', null, null, dt + 'cancel intermediate boundary interrupting'),
948			this.createVertexTemplateEntry(s + 'end;symbol=cancel;', w, h, '', 'Cancel End', null, null, dt + 'cancel end'),
949			this.createVertexTemplateEntry(s + 'end;symbol=terminate;', w, h, '', 'Terminate', null, null, dt + 'terminate')
950		];
951
952		this.addPalette('bpmn2Events', 'BPMN 2.0 \ Events', false, mxUtils.bind(this, function(content)
953		{
954			for (var i = 0; i < fns.length; i++)
955			{
956				content.appendChild(fns[i](content));
957			}
958		}));
959	};
960
961	Sidebar.prototype.addBPMN2GatewaysPalette = function(gn, r, sb)
962	{
963		var dt = 'bpmn business process model notation gateway ';
964		var s2 = 'points=[[0.25,0.25,0],[0.5,0,0],[0.75,0.25,0],[1,0.5,0],[0.75,0.75,0],[0.5,1,0],[0.25,0.75,0],[0,0.5,0]];shape=mxgraph.bpmn.gateway2;html=1;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;align=center;perimeter=rhombusPerimeter;outlineConnect=0;outline=';
965		var w = 50;
966		var h = 50;
967
968		var fns =
969		[
970			this.createVertexTemplateEntry(s2 + 'none;symbol=none;', w, h, '', 'Exclusive', null, null, dt + 'exclusive'),
971			this.createVertexTemplateEntry(s2 + 'none;symbol=none;gwType=exclusive;', w, h, '', 'Exclusive', null, null, dt + 'exclusive'),
972			this.createVertexTemplateEntry(s2 + 'end;symbol=general;', w, h, '', 'Inclusive', null, null, dt + 'inclusive'),
973			this.createVertexTemplateEntry(s2 + 'none;symbol=none;gwType=parallel;', w, h, '', 'Parallel', null, null, dt + 'parallel'),
974			this.createVertexTemplateEntry(s2 + 'none;symbol=none;gwType=complex;', w, h, '', 'Complex', null, null, dt + 'complex'),
975
976			this.createVertexTemplateEntry(s2 + 'standard;symbol=general;', w, h, '', 'Start', null, null, dt + 'none start'),
977			this.createVertexTemplateEntry(s2 + 'throwing;symbol=general;', w, h, '', 'Intermediate', null, null, dt + 'none intermediate'),
978			this.createVertexTemplateEntry(s2 + 'end;symbol=general;', w, h, '', 'End', null, null, dt + 'none end'),
979			this.createVertexTemplateEntry(s2 + 'standard;symbol=message;', w, h, '', 'Message', null, null, dt + 'message standard'),
980			this.createVertexTemplateEntry(s2 + 'eventInt;symbol=message;', w, h, '', 'Message (Interrupting)', null, null, dt + 'message interrupting'),
981			this.createVertexTemplateEntry(s2 + 'eventNonint;symbol=message;', w, h, '', 'Message (Non-Interrupting)', null, null, dt + 'message non interrupting noninterrupting'),
982			this.createVertexTemplateEntry(s2 + 'catching;symbol=message;', w, h, '', 'Message (Catching)', null, null, dt + 'message catching'),
983			this.createVertexTemplateEntry(s2 + 'boundInt;symbol=message;', w, h, '', 'Message Boundary (Interrupting)', null, null, dt + 'message boundary interrupting'),
984			this.createVertexTemplateEntry(s2 + 'boundNonint;symbol=message;', w, h, '', 'Message Boundary (Non-Interrupting)', null, null, dt + 'message boundary non interrupting noninterrupting'),
985			this.createVertexTemplateEntry(s2 + 'throwing;symbol=message;', w, h, '', 'Message (Throwing)', null, null, dt + 'message throwing'),
986			this.createVertexTemplateEntry(s2 + 'end;symbol=message;', w, h, '', 'Message End', null, null, dt + 'message end'),
987			this.createVertexTemplateEntry(s2 + 'standard;symbol=timer;', w, h, '', 'Timer', null, null, dt + 'timer standard'),
988			this.createVertexTemplateEntry(s2 + 'eventInt;symbol=timer;', w, h, '', 'Timer (Interrupting)', null, null, dt + 'timer interrupting'),
989			this.createVertexTemplateEntry(s2 + 'eventNonint;symbol=timer;', w, h, '', 'Timer (Non-Interrupting)', null, null, dt + 'timer non interrupting noninterrupting'),
990			this.createVertexTemplateEntry(s2 + 'catching;symbol=timer;', w, h, '', 'Timer (Catching)', null, null, dt + 'timer catching'),
991			this.createVertexTemplateEntry(s2 + 'boundInt;symbol=timer;', w, h, '', 'Timer Boundary (Interrupting)', null, null, dt + 'timer boundary interrupting'),
992			this.createVertexTemplateEntry(s2 + 'boundNonint;symbol=timer;', w, h, '', 'Timer Boundary (Non-Interrupting)', null, null, dt + 'timer boundary non interrupting noninterrupting'),
993			this.createVertexTemplateEntry(s2 + 'eventInt;symbol=escalation;', w, h, '', 'Escalation (Interrupting)', null, null, dt + 'escalation interrupting'),
994			this.createVertexTemplateEntry(s2 + 'eventNonint;symbol=escalation;', w, h, '', 'Escalation (Non-Interrupting)', null, null, dt + 'escalation non interrupting noninterrupting'),
995			this.createVertexTemplateEntry(s2 + 'boundInt;symbol=escalation;', w, h, '', 'Escalation Boundary (Interrupting)', null, null, dt + 'escalation boundary interrupting'),
996			this.createVertexTemplateEntry(s2 + 'boundNonint;symbol=escalation;', w, h, '', 'Escalation Boundary (Non-Interrupting)', null, null, dt + 'escalation boundary non interrupting noninterrupting'),
997			this.createVertexTemplateEntry(s2 + 'throwing;symbol=escalation;', w, h, '', 'Escalation (Throwing)', null, null, dt + 'escalation throwing'),
998			this.createVertexTemplateEntry(s2 + 'end;symbol=escalation;', w, h, '', 'Escalation End', null, null, dt + 'escalation end'),
999			this.createVertexTemplateEntry(s2 + 'standard;symbol=conditional;', w, h, '', 'Conditional', null, null, dt + 'conditional standard'),
1000			this.createVertexTemplateEntry(s2 + 'eventInt;symbol=conditional;', w, h, '', 'Conditional (Interrupting)', null, null, dt + 'conditional interrupting'),
1001			this.createVertexTemplateEntry(s2 + 'eventNonint;symbol=conditional;', w, h, '', 'Conditional (Non-Interrupting)', null, null, dt + 'conditional non interrupting noninterrupting'),
1002			this.createVertexTemplateEntry(s2 + 'catching;symbol=conditional;', w, h, '', 'Conditional (Catching)', null, null, dt + 'conditional catching'),
1003			this.createVertexTemplateEntry(s2 + 'boundInt;symbol=conditional;', w, h, '', 'Conditional Boundary (Interrupting)', null, null, dt + 'conditional boundary interrupting'),
1004			this.createVertexTemplateEntry(s2 + 'boundNonint;symbol=conditional;', w, h, '', 'Conditional Boundary (Non-Interrupting)', null, null, dt + 'conditional boundary non interrupting noninterrupting'),
1005			this.createVertexTemplateEntry(s2 + 'catching;symbol=link;', w, h, '', 'Link (Catching)', null, null, dt + 'link catching'),
1006			this.createVertexTemplateEntry(s2 + 'throwing;symbol=link;', w, h, '', 'Link (Throwing)', null, null, dt + 'link throwing'),
1007			this.createVertexTemplateEntry(s2 + 'eventInt;symbol=error;', w, h, '', 'Error (Interrupting)', null, null, dt + 'error interrupting'),
1008			this.createVertexTemplateEntry(s2 + 'boundInt;symbol=error;', w, h, '', 'Error Boundary (Interrupting)', null, null, dt + 'error boundary interrupting'),
1009			this.createVertexTemplateEntry(s2 + 'end;symbol=error;', w, h, '', 'Error (End)', null, null, dt + 'error end'),
1010			this.createVertexTemplateEntry(s2 + 'boundInt;symbol=cancel;', w, h, '', 'Cancel Boundary (Interrupting)', null, null, dt + 'cancel boundary interrupting'),
1011			this.createVertexTemplateEntry(s2 + 'end;symbol=cancel;', w, h, '', 'Cancel End', null, null, dt + 'cancel end'),
1012			this.createVertexTemplateEntry(s2 + 'eventInt;symbol=compensation;', w, h, '', 'Compensation (Interrupting)', null, null, dt + 'compensation interrupting'),
1013			this.createVertexTemplateEntry(s2 + 'boundInt;symbol=compensation;', w, h, '', 'Compensation Boundary (Interrupting)', null, null, dt + 'compensation boundary interrupting'),
1014			this.createVertexTemplateEntry(s2 + 'throwing;symbol=compensation;', w, h, '', 'Compensation (Throwing)', null, null, dt + 'compensation throwing'),
1015			this.createVertexTemplateEntry(s2 + 'end;symbol=compensation;', w, h, '', 'Compensation End', null, null, dt + 'compensation end'),
1016			this.createVertexTemplateEntry(s2 + 'standard;symbol=signal;', w, h, '', 'Signal', null, null, dt + 'signal standard'),
1017			this.createVertexTemplateEntry(s2 + 'eventInt;symbol=signal;', w, h, '', 'Signal (Interrupting)', null, null, dt + 'signal interrupting'),
1018			this.createVertexTemplateEntry(s2 + 'eventNonint;symbol=signal;', w, h, '', 'Signal (Non-Interrupting)', null, null, dt + 'signal non interrupting noninterrupting'),
1019			this.createVertexTemplateEntry(s2 + 'catching;symbol=signal;', w, h, '', 'Signal (Catching)', null, null, dt + 'signal catching'),
1020			this.createVertexTemplateEntry(s2 + 'boundInt;symbol=signal;', w, h, '', 'Signal Boundary (Interrupting)', null, null, dt + 'signal boundary interrupting'),
1021			this.createVertexTemplateEntry(s2 + 'boundNonint;symbol=signal;', w, h, '', 'Signal Boundary (Non-Interrupting)', null, null, dt + 'signal boundary non interrupting noninterrupting'),
1022			this.createVertexTemplateEntry(s2 + 'throwing;symbol=signal;', w, h, '', 'Signal (Throwing)', null, null, dt + 'signal throwing'),
1023			this.createVertexTemplateEntry(s2 + 'end;symbol=signal;', w, h, '', 'Signal End', null, null, dt + 'signal end'),
1024			this.createVertexTemplateEntry(s2 + 'standard;symbol=multiple;', w, h, '', 'Multiple ', null, null, dt + 'multiple standard'),
1025			this.createVertexTemplateEntry(s2 + 'eventInt;symbol=multiple;', w, h, '', 'Multiple (Interrupting)', null, null, dt + 'multiple interrupting'),
1026			this.createVertexTemplateEntry(s2 + 'eventNonint;symbol=multiple;', w, h, '', 'Multiple (Non-Interrupting)', null, null, dt + 'multiple non interrupting noninterrupting'),
1027			this.createVertexTemplateEntry(s2 + 'catching;symbol=multiple;', w, h, '', 'Multiple (Catching)', null, null, dt + 'multiple catching'),
1028			this.createVertexTemplateEntry(s2 + 'boundInt;symbol=multiple;', w, h, '', 'Multiple Boundary (Interrupting)', null, null, dt + 'multiple boundary interrupting'),
1029			this.createVertexTemplateEntry(s2 + 'boundNonint;symbol=multiple;', w, h, '', 'Multiple Boundary (Non-Interrupting)', null, null, dt + 'multiple boundary non interrupting noninterrupting'),
1030			this.createVertexTemplateEntry(s2 + 'throwing;symbol=multiple;', w, h, '', 'Multiple (Throwing)', null, null, dt + 'multiple throwing'),
1031			this.createVertexTemplateEntry(s2 + 'end;symbol=multiple;', w, h, '', 'Multiple End', null, null, dt + 'multiple end'),
1032			this.createVertexTemplateEntry(s2 + 'standard;symbol=star;', w, h, '', 'Multiple Start', null, null, dt + 'multiple end'),
1033			this.createVertexTemplateEntry(s2 + 'standard;symbol=parallelMultiple;', w, h, '', 'Parallel Multiple', null, null, dt + 'parallel multiple standard'),
1034			this.createVertexTemplateEntry(s2 + 'eventInt;symbol=parallelMultiple;', w, h, '', 'Parallel Multiple (Interrupting)', null, null, dt + 'parallel multiple interrupting'),
1035			this.createVertexTemplateEntry(s2 + 'eventNonint;symbol=parallelMultiple;', w, h, '', 'Parallel Multiple (Non-Interrupting)', null, null, dt + 'parallel multiple non interrupting noninterrupting'),
1036			this.createVertexTemplateEntry(s2 + 'catching;symbol=parallelMultiple;', w, h, '', 'Parallel Multiple (Catching)', null, null, dt + 'parallel multiple catching'),
1037			this.createVertexTemplateEntry(s2 + 'boundInt;symbol=parallelMultiple;', w, h, '', 'Parallel Multiple Boundary (Interrupting)', null, null, dt + 'parallel multiple boundary interrupting'),
1038			this.createVertexTemplateEntry(s2 + 'boundNonint;symbol=parallelMultiple;', w, h, '', 'Parallel Multiple Boundary (Non-Interrupting)', null, null, dt + 'parallel multiple boundary non interrupting noninterrupting'),
1039			this.createVertexTemplateEntry(s2 + 'end;symbol=terminate;', w, h, '', 'Terminate', null, null, dt + 'terminate')
1040		];
1041
1042		this.addPalette('bpmn2Gateways', 'BPMN 2.0 \ Gateways', false, mxUtils.bind(this, function(content)
1043		{
1044			for (var i = 0; i < fns.length; i++)
1045			{
1046				content.appendChild(fns[i](content));
1047			}
1048		}));
1049	};
1050
1051})();
1052
1053