1(function()
2{
3	Sidebar.prototype.addIBMPalette = function()
4	{
5		var d = 60;
6		var dt = 'ibm ';
7		var sb = this;
8		var s = 'aspect=fixed;perimeter=ellipsePerimeter;html=1;align=center;shadow=0;dashed=0;fontColor=#4277BB;labelBackgroundColor=#ffffff;fontSize=12;spacingTop=3;image;image=img/lib/ibm/';
9
10		// Adds IBM shapes
11		this.setCurrentSearchEntryLibrary('ibm', 'ibmAnalytics');
12		this.addIBMAnalyticsPalette(d, dt, sb, s);
13		this.setCurrentSearchEntryLibrary('ibm', 'ibmApplications');
14		this.addIBMApplicationsPalette(d, dt, sb, s);
15		this.setCurrentSearchEntryLibrary('ibm', 'ibmBlockchain');
16		this.addIBMBlockchainPalette(d, dt, sb, s);
17		this.setCurrentSearchEntryLibrary('ibm', 'ibmData');
18		this.addIBMDataPalette(d, dt, sb, s);
19		this.setCurrentSearchEntryLibrary('ibm', 'ibmDevOps');
20		this.addIBMDevOpsPalette(d, dt, sb, s);
21		this.setCurrentSearchEntryLibrary('ibm', 'ibmInfrastructure');
22		this.addIBMInfrastructurePalette(d, dt, sb, s);
23		this.setCurrentSearchEntryLibrary('ibm', 'ibmManagement');
24		this.addIBMManagementPalette(d, dt, sb, s);
25		this.setCurrentSearchEntryLibrary('ibm', 'ibmMiscellaneous');
26		this.addIBMMiscPalette(d, dt, sb, s);
27		this.setCurrentSearchEntryLibrary('ibm', 'ibmSecurity');
28		this.addIBMSecurityPalette(d, dt, sb, s);
29		this.setCurrentSearchEntryLibrary('ibm', 'ibmSocial');
30		this.addIBMSocialPalette(d, dt, sb, s);
31		this.setCurrentSearchEntryLibrary('ibm', 'ibmUsers');
32		this.addIBMUsersPalette(d, dt, sb, s);
33		this.setCurrentSearchEntryLibrary('ibm', 'ibmVPC');
34		this.addIBMVPCPalette(d, dt, sb, s);
35		this.setCurrentSearchEntryLibrary('ibm', 'ibmBoxes');
36		this.addIBMBoxesPalette(d, dt, sb, s);
37		this.setCurrentSearchEntryLibrary('ibm', 'ibmConnectors');
38		this.addIBMConnectorsPalette(d, dt, sb, s);
39		this.setCurrentSearchEntryLibrary();
40	};
41
42	Sidebar.prototype.addIBMAnalyticsPalette = function(d, dt, sb, s)
43	{
44		s += 'analytics/';
45		var gn = 'analytics ';
46
47		var fns = [
48			 this.createVertexTemplateEntry(s + 'analytics.svg;',
49					 d, d, '', 'Analytics', false, null, this.getTagsForStencil(gn, '', dt).join(' ')),
50			 this.createVertexTemplateEntry(s + 'data_integration.svg;',
51					 d, d, '', 'Data Integration', false, null, this.getTagsForStencil(gn, 'data integration', dt).join(' ')),
52			 this.createVertexTemplateEntry(s + 'data_repositories.svg;',
53					 d, d, '', 'Data Repositories', false, null, this.getTagsForStencil(gn, 'data repositories', dt).join(' ')),
54			 this.createVertexTemplateEntry(s + 'device_analytics.svg;',
55					 d, d, '', 'Device Analytics', false, null, this.getTagsForStencil(gn, 'device analytics', dt).join(' ')),
56			 this.createVertexTemplateEntry(s + 'streaming_computing.svg;',
57					 d, d, '', 'Streaming Computing', false, null, this.getTagsForStencil(gn, 'streaming computing', dt).join(' '))
58		];
59
60   		this.addPalette('ibmAnalytics', 'IBM / Analytics', false, mxUtils.bind(this, function(content)
61	    {
62			for (var i = 0; i < fns.length; i++)
63			{
64				content.appendChild(fns[i](content));
65			}
66		}));
67	};
68
69	Sidebar.prototype.addIBMApplicationsPalette = function(d, dt, sb, s)
70	{
71		s += 'applications/';
72		var gn = 'applications ';
73
74		var fns = [
75			 this.createVertexTemplateEntry(s + 'actionable_insight.svg;',
76					 d, d, '', 'Actionable Insight', false, null, this.getTagsForStencil(gn, 'actionable insight', dt).join(' ')),
77			 this.createVertexTemplateEntry(s + 'annotate.svg;',
78					 d, d, '', 'Annotate', false, null, this.getTagsForStencil(gn, 'annotate', dt).join(' ')),
79			 this.createVertexTemplateEntry(s + 'api_developer_portal.svg;',
80					 d, d, '', 'API Developer Portal', false, null, this.getTagsForStencil(gn, 'api developer portal', dt).join(' ')),
81			 this.createVertexTemplateEntry(s + 'api_polyglot_runtimes.svg;',
82					 d, d, '', 'API Polyglot Runtimes', false, null, this.getTagsForStencil(gn, 'api polyglot runtimes', dt).join(' ')),
83			 this.createVertexTemplateEntry(s + 'app_server.svg;',
84					 d, d, '', 'App Server', false, null, this.getTagsForStencil(gn, 'app server', dt).join(' ')),
85			 this.createVertexTemplateEntry(s + 'application_logic.svg;',
86					 d, d, '', 'Application Logic', false, null, this.getTagsForStencil(gn, 'application logic', dt).join(' ')),
87			 this.createVertexTemplateEntry(s + 'automation_tools.svg;',
88					 d, d, '', 'Automation Tools', false, null, this.getTagsForStencil(gn, 'automation tools', dt).join(' ')),
89			 this.createVertexTemplateEntry(s + 'enterprise_applications.svg;',
90					 d, d, '', 'Enterprise Applications', false, null, this.getTagsForStencil(gn, 'enterprise applications', dt).join(' ')),
91			 this.createVertexTemplateEntry(s + 'index.svg;',
92					 d, d, '', 'Index', false, null, this.getTagsForStencil(gn, 'index', dt).join(' ')),
93			 this.createVertexTemplateEntry(s + 'iot_application.svg;',
94					 d, d, '', 'IoT Application', false, null, this.getTagsForStencil(gn, 'iot application', dt).join(' ')),
95			 this.createVertexTemplateEntry(s + 'microservice.svg;',
96					 d * 1.37, d, '', 'Microservice', false, null, this.getTagsForStencil(gn, 'microservice', dt).join(' ')),
97			 this.createVertexTemplateEntry(s + 'mobile_app.svg;',
98					 d, d, '', 'Mobile App', false, null, this.getTagsForStencil(gn, 'mobile app', dt).join(' ')),
99			 this.createVertexTemplateEntry(s + 'ontology.svg;',
100					 d, d, '', 'Ontology', false, null, this.getTagsForStencil(gn, 'ontology', dt).join(' ')),
101			 this.createVertexTemplateEntry(s + 'open_source_tools.svg;',
102					 d, d, '', 'Open Source Tools', false, null, this.getTagsForStencil(gn, 'open source tools', dt).join(' ')),
103			 this.createVertexTemplateEntry(s + 'runtime_services.svg;',
104					 d, d, '', 'Runtime Services', false, null, this.getTagsForStencil(gn, 'runtime services', dt).join(' ')),
105			 this.createVertexTemplateEntry(s + 'saas_applications.svg;',
106					 d, d, '', 'SaaS Applications', false, null, this.getTagsForStencil(gn, 'saas applications', dt).join(' ')),
107			 this.createVertexTemplateEntry(s + 'service_broker.svg;',
108					 d, d, '', 'Service Broker', false, null, this.getTagsForStencil(gn, 'service broker', dt).join(' ')),
109			 this.createVertexTemplateEntry(s + 'speech_to_text.svg;',
110					 d, d, '', 'Speech to Text', false, null, this.getTagsForStencil(gn, 'speech to text', dt).join(' ')),
111			 this.createVertexTemplateEntry(s + 'visual_recognition.svg;',
112					 d, d, '', 'Visual Recognition', false, null, this.getTagsForStencil(gn, 'visual recognition', dt).join(' ')),
113			 this.createVertexTemplateEntry(s + 'visualization.svg;',
114					 d, d, '', 'Visualization', false, null, this.getTagsForStencil(gn, 'visualization', dt).join(' '))
115		];
116
117   		this.addPalette('ibmApplications', 'IBM / Applications', false, mxUtils.bind(this, function(content)
118	    {
119			for (var i = 0; i < fns.length; i++)
120			{
121				content.appendChild(fns[i](content));
122			}
123		}));
124	};
125
126	Sidebar.prototype.addIBMBlockchainPalette = function(d, dt, sb, s)
127	{
128		s += 'blockchain/';
129		var gn = 'blockchain';
130
131		var fns = [
132			 this.createVertexTemplateEntry(s + 'blockchain.svg;',
133					 d, d, '', 'Blockchain', false, null, this.getTagsForStencil(gn, '', dt).join(' ')),
134			 this.createVertexTemplateEntry(s + 'blockchain_developer.svg;',
135					 d, d, '', 'Blockchain Developer', false, null, this.getTagsForStencil(gn, 'developer', dt).join(' ')),
136			 this.createVertexTemplateEntry(s + 'certificate_authority.svg;',
137					 d, d, '', 'Certificate Authority', false, null, this.getTagsForStencil(gn, 'certificate authority', dt).join(' ')),
138			 this.createVertexTemplateEntry(s + 'client_application.svg;',
139					 d, d, '', 'Client Application', false, null, this.getTagsForStencil(gn, 'client application', dt).join(' ')),
140			 this.createVertexTemplateEntry(s + 'communication.svg;',
141					 d, d, '', 'Communication', false, null, this.getTagsForStencil(gn, 'communication', dt).join(' ')),
142			 this.createVertexTemplateEntry(s + 'consensus.svg;',
143					 d, d, '', 'Consensus', false, null, this.getTagsForStencil(gn, 'communication', dt).join(' ')),
144			 this.createVertexTemplateEntry(s + 'e_cert.svg;',
145					 d, d, '', 'E-Cert', false, null, this.getTagsForStencil(gn, 'ecert e-cert', dt).join(' ')),
146			 this.createVertexTemplateEntry(s + 'event.svg;',
147					 d, d, '', 'Event', false, null, this.getTagsForStencil(gn, 'event', dt).join(' ')),
148			 this.createVertexTemplateEntry(s + 'event_listener.svg;',
149					 d, d, '', 'Event Listener', false, null, this.getTagsForStencil(gn, 'event listener', dt).join(' ')),
150			 this.createVertexTemplateEntry(s + 'existing_enterprise_systems.svg;',
151					 d, d, '', 'Existing Enterprise Systems', false, null, this.getTagsForStencil(gn, 'existing enterprise systems', dt).join(' ')),
152			 this.createVertexTemplateEntry(s + 'hyperledger_fabric.svg;',
153					 d, d, '', 'Hyperledger Fabric', false, null, this.getTagsForStencil(gn, 'hyperledger fabric', dt).join(' ')),
154			 this.createVertexTemplateEntry(s + 'identity_access_manager.svg;',
155					 d, d, '', 'Identity & Access Manager', false, null, this.getTagsForStencil(gn, 'identity access manager', dt).join(' ')),
156			 this.createVertexTemplateEntry(s + 'key_management.svg;',
157					 d * 0.38, d * 0.38, '', 'Key Management', false, null, this.getTagsForStencil(gn, 'key management', dt).join(' ')),
158			 this.createVertexTemplateEntry(s + 'ledger.svg;',
159					 d, d, '', 'Ledger', false, null, this.getTagsForStencil(gn, 'ledger', dt).join(' ')),
160			 this.createVertexTemplateEntry(s + 'membership.svg;',
161					 d, d, '', 'Membership', false, null, this.getTagsForStencil(gn, 'membership', dt).join(' ')),
162			 this.createVertexTemplateEntry(s + 'membership_services_provider_api.svg;',
163					 d, d, '', 'Membership Services Provider API', false, null, this.getTagsForStencil(gn, 'membership services provider api', dt).join(' ')),
164			 this.createVertexTemplateEntry(s + 'message_bus.svg;',
165					 d, d, '', 'Message Bus', false, null, this.getTagsForStencil(gn, 'message bus', dt).join(' ')),
166			 this.createVertexTemplateEntry(s + 'node.svg;',
167					 d, d, '', 'Node', false, null, this.getTagsForStencil(gn, 'node', dt).join(' ')),
168			 this.createVertexTemplateEntry(s + 'services.svg;',
169					 d, d, '', 'Services', false, null, this.getTagsForStencil(gn, 'services', dt).join(' ')),
170			 this.createVertexTemplateEntry(s + 'smart_contract.svg;',
171					 d, d, '', 'Smart Contract', false, null, this.getTagsForStencil(gn, 'smart contract', dt).join(' ')),
172			 this.createVertexTemplateEntry(s + 'transaction_manager.svg;',
173					 d, d, '', 'Transaction Manager', false, null, this.getTagsForStencil(gn, 'transaction manager', dt).join(' ')),
174			 this.createVertexTemplateEntry(s + 'wallet.svg;',
175					 d, d, '', 'Wallet', false, null, this.getTagsForStencil(gn, 'wallet', dt).join(' '))
176		];
177
178   		this.addPalette('ibmBlockchain', 'IBM / Blockchain', false, mxUtils.bind(this, function(content)
179	    {
180			for (var i = 0; i < fns.length; i++)
181			{
182				content.appendChild(fns[i](content));
183			}
184		}));
185	};
186
187	Sidebar.prototype.addIBMDataPalette = function(d, dt, sb, s)
188	{
189		s += 'data/';
190		var gn = 'data ';
191
192		var fns = [
193			 this.createVertexTemplateEntry(s + 'caches.svg;',
194					 d, d, '', 'Caches', false, null, this.getTagsForStencil(gn, 'caches', dt).join(' ')),
195			 this.createVertexTemplateEntry(s + 'conversation_trained_deployed.svg;',
196					 d, d, '', 'Conversation (Trained \& Deployed)', false, null, this.getTagsForStencil(gn, 'conversation trained deployed', dt).join(' ')),
197			 this.createVertexTemplateEntry(s + 'cloud.svg;',
198					 d, d, '', 'Cloud', false, null, this.getTagsForStencil(gn, 'cloud', dt).join(' ')),
199			 this.createVertexTemplateEntry(s + 'data_services.svg;',
200					 d, d, '', 'Data Services', false, null, this.getTagsForStencil(gn, 'data services', dt).join(' ')),
201			 this.createVertexTemplateEntry(s + 'data_sources.svg;',
202					 d, d, '', 'Data Sources', false, null, this.getTagsForStencil(gn, 'data sources', dt).join(' ')),
203			 this.createVertexTemplateEntry(s + 'device_identity_service.svg;',
204					 d, d, '', 'Device Identity Service', false, null, this.getTagsForStencil(gn, 'device identity service', dt).join(' ')),
205			 this.createVertexTemplateEntry(s + 'device_registry.svg;',
206					 d, d, '', 'Device Registry', false, null, this.getTagsForStencil(gn, 'device registry', dt).join(' ')),
207			 this.createVertexTemplateEntry(s + 'enterprise_data.svg;',
208					 d, d, '', 'Enterprise Data', false, null, this.getTagsForStencil(gn, 'enterprise data', dt).join(' ')),
209			 this.createVertexTemplateEntry(s + 'enterprise_user_directory.svg;',
210					 d, d, '', 'Enterprise User Directory', false, null, this.getTagsForStencil(gn, 'enterprise user directory', dt).join(' ')),
211			 this.createVertexTemplateEntry(s + 'file_repository.svg;',
212					 d, d, '', 'File Repository', false, null, this.getTagsForStencil(gn, 'file repository', dt).join(' ')),
213			 this.createVertexTemplateEntry(s + 'ground_truth.svg;',
214					 d, d, '', 'Ground Truth', false, null, this.getTagsForStencil(gn, 'ground truth', dt).join(' ')),
215			 this.createVertexTemplateEntry(s + 'model.svg;',
216					 d, d, '', 'Model', false, null, this.getTagsForStencil(gn, 'model', dt).join(' ')),
217			 this.createVertexTemplateEntry(s + 'tms_data_interface.svg;',
218					 d, d, '', 'TMS Data Interface', false, null, this.getTagsForStencil(gn, 'tms data interface', dt).join(' '))
219		];
220
221   		this.addPalette('ibmData', 'IBM / Data', false, mxUtils.bind(this, function(content)
222	    {
223			for (var i = 0; i < fns.length; i++)
224			{
225				content.appendChild(fns[i](content));
226			}
227		}));
228	};
229
230	Sidebar.prototype.addIBMDevOpsPalette = function(d, dt, sb, s)
231	{
232		s += 'devops/';
233		var gn = 'devops ';
234
235		var fns = [
236			 this.createVertexTemplateEntry(s + 'artifact_management.svg;',
237					 d, d, '', 'Artifact Management', false, null, this.getTagsForStencil(gn, 'artifact management', dt).join(' ')),
238			 this.createVertexTemplateEntry(s + 'build_test.svg;',
239					 d, d, '', 'Build \& Test', false, null, this.getTagsForStencil(gn, 'build test', dt).join(' ')),
240			 this.createVertexTemplateEntry(s + 'code_editor.svg;',
241					 d, d, '', 'Code Editor', false, null, this.getTagsForStencil(gn, 'code editor', dt).join(' ')),
242			 this.createVertexTemplateEntry(s + 'collaborative_development.svg;',
243					 d, d, '', 'Collaborative Development', false, null, this.getTagsForStencil(gn, 'collaborative development', dt).join(' ')),
244			 this.createVertexTemplateEntry(s + 'configuration_management.svg;',
245					 d, d, '', 'Configuration Management', false, null, this.getTagsForStencil(gn, 'configuration management', dt).join(' ')),
246			 this.createVertexTemplateEntry(s + 'continuous_deploy.svg;',
247					 d, d, '', 'Continuous Deploy', false, null, this.getTagsForStencil(gn, 'continuous deploy', dt).join(' ')),
248			 this.createVertexTemplateEntry(s + 'continuous_testing.svg;',
249					 d, d, '', 'Continuous Testing', false, null, this.getTagsForStencil(gn, 'continuous testing', dt).join(' ')),
250			 this.createVertexTemplateEntry(s + 'devops.svg;',
251					 d, d, '', 'DevOps', false, null, this.getTagsForStencil(gn, 'devops', dt).join(' ')),
252			 this.createVertexTemplateEntry(s + 'provision.svg;',
253					 d, d, '', 'Provision', false, null, this.getTagsForStencil(gn, 'provision', dt).join(' ')),
254			 this.createVertexTemplateEntry(s + 'release_management.svg;',
255					 d, d, '', 'Release Management', false, null, this.getTagsForStencil(gn, 'release management', dt).join(' '))
256		];
257
258   		this.addPalette('ibmDevOps', 'IBM / DevOps', false, mxUtils.bind(this, function(content)
259	    {
260			for (var i = 0; i < fns.length; i++)
261			{
262				content.appendChild(fns[i](content));
263			}
264		}));
265	};
266
267	Sidebar.prototype.addIBMInfrastructurePalette = function(d, dt, sb, s)
268	{
269		s += 'infrastructure/';
270		var gn = 'infrastructure ';
271
272		var fns = [
273			 this.createVertexTemplateEntry(s + 'channels.svg;',
274					 d, d, '', 'Channels', false, null, this.getTagsForStencil(gn, 'channels', dt).join(' ')),
275			 this.createVertexTemplateEntry(s + 'cloud_messaging.svg;',
276					 d, d, '', 'Cloud Messaging', false, null, this.getTagsForStencil(gn, 'cloud messaging', dt).join(' ')),
277			 this.createVertexTemplateEntry(s + 'dashboard.svg;',
278					 d, d, '', 'Dashboard', false, null, this.getTagsForStencil(gn, 'dashboard', dt).join(' ')),
279			 this.createVertexTemplateEntry(s + 'diagnostics.svg;',
280					 d, d, '', 'Diagnostics', false, null, this.getTagsForStencil(gn, 'diagnostics', dt).join(' ')),
281			 this.createVertexTemplateEntry(s + 'edge_services.svg;',
282					 d, d, '', 'Edge Services', false, null, this.getTagsForStencil(gn, 'edge services', dt).join(' ')),
283			 this.createVertexTemplateEntry(s + 'enterprise_messaging.svg;',
284					 d, d, '', 'Enterprise Messaging', false, null, this.getTagsForStencil(gn, 'enterprise messaging', dt).join(' ')),
285			 this.createVertexTemplateEntry(s + 'event_feed.svg;',
286					 d, d, '', 'Event Feed', false, null, this.getTagsForStencil(gn, 'event feed', dt).join(' ')),
287			 this.createVertexTemplateEntry(s + 'infrastructure_services.svg;',
288					 d, d, '', 'Infrastructure Services', false, null, this.getTagsForStencil(gn, 'infrastructure services', dt).join(' ')),
289			 this.createVertexTemplateEntry(s + 'interservice_communication.svg;',
290					 d, d, '', 'Interservice Communication', false, null, this.getTagsForStencil(gn, 'interservice communication', dt).join(' ')),
291			 this.createVertexTemplateEntry(s + 'load_balancing_routing.svg;',
292					 d, d, '', 'Load Balancing / Routing', false, null, this.getTagsForStencil(gn, 'load balancing routing', dt).join(' ')),
293			 this.createVertexTemplateEntry(s + 'microservices_mesh.svg;',
294					 d, d, '', 'Microservices Mesh', false, null, this.getTagsForStencil(gn, 'microservices mesh', dt).join(' ')),
295			 this.createVertexTemplateEntry(s + 'mobile_backend.svg;',
296					 d, d, '', 'Mobile Backend', false, null, this.getTagsForStencil(gn, 'mobile backend', dt).join(' ')),
297			 this.createVertexTemplateEntry(s + 'mobile_provider_network.svg;',
298					 d, d, '', 'Mobile Provider Network', false, null, this.getTagsForStencil(gn, 'mobile provider network', dt).join(' ')),
299			 this.createVertexTemplateEntry(s + 'monitoring.svg;',
300					 d, d, '', 'Monitoring', false, null, this.getTagsForStencil(gn, 'monitoring', dt).join(' ')),
301			 this.createVertexTemplateEntry(s + 'monitoring_logging.svg;',
302					 d, d, '', 'Monitoring \& Logging', false, null, this.getTagsForStencil(gn, 'monitoring logging', dt).join(' ')),
303			 this.createVertexTemplateEntry(s + 'peer_services.svg;',
304					 d, d, '', 'Peer Services', false, null, this.getTagsForStencil(gn, 'peer services', dt).join(' ')),
305			 this.createVertexTemplateEntry(s + 'service_discovery_configuration.svg;',
306					 d, d, '', 'Service Discovery \& Configuration', false, null, this.getTagsForStencil(gn, 'service discovery configuration', dt).join(' ')),
307			 this.createVertexTemplateEntry(s + 'transformation_connectivity.svg;',
308					 d, d, '', 'Transformation \& Connectivity', false, null, this.getTagsForStencil(gn, 'transformation connectivity', dt).join(' '))
309		];
310
311   		this.addPalette('ibmInfrastructure', 'IBM / Infrastructure', false, mxUtils.bind(this, function(content)
312	    {
313			for (var i = 0; i < fns.length; i++)
314			{
315				content.appendChild(fns[i](content));
316			}
317		}));
318	};
319
320	Sidebar.prototype.addIBMManagementPalette = function(d, dt, sb, s)
321	{
322		s += 'management/';
323		var gn = 'management ';
324
325		var fns = [
326			 this.createVertexTemplateEntry(s + 'alert_notification.svg;',
327					 d, d, '', 'Alert Notification', false, null, this.getTagsForStencil(gn, 'alert notification', dt).join(' ')),
328			 this.createVertexTemplateEntry(s + 'api_management.svg;',
329					 d, d, '', 'API Management', false, null, this.getTagsForStencil(gn, 'api management', dt).join(' ')),
330			 this.createVertexTemplateEntry(s + 'cloud_management.svg;',
331					 d, d, '', 'Cloud Management', false, null, this.getTagsForStencil(gn, 'cloud management', dt).join(' ')),
332			 this.createVertexTemplateEntry(s + 'cluster_management.svg;',
333					 d, d, '', 'Cluster Management', false, null, this.getTagsForStencil(gn, 'cluster management', dt).join(' ')),
334			 this.createVertexTemplateEntry(s + 'content_management.svg;',
335					 d, d, '', 'Content Management', false, null, this.getTagsForStencil(gn, 'content management', dt).join(' ')),
336			 this.createVertexTemplateEntry(s + 'data_services.svg;',
337					 d, d, '', 'Data Services', false, null, this.getTagsForStencil(gn, 'data services', dt).join(' ')),
338			 this.createVertexTemplateEntry(s + 'device_management.svg;',
339					 d, d, '', 'Device Management', false, null, this.getTagsForStencil(gn, 'device management', dt).join(' ')),
340			 this.createVertexTemplateEntry(s + 'information_governance.svg;',
341					 d, d, '', 'Information Governance', false, null, this.getTagsForStencil(gn, 'information governance', dt).join(' ')),
342			 this.createVertexTemplateEntry(s + 'it_service_management.svg;',
343					 d, d, '', 'IT Service Management', false, null, this.getTagsForStencil(gn, 'it service management information technology', dt).join(' ')),
344			 this.createVertexTemplateEntry(s + 'management.svg;',
345					 d, d, '', 'Management', false, null, this.getTagsForStencil(gn, 'management', dt).join(' ')),
346			 this.createVertexTemplateEntry(s + 'monitoring_metrics.svg;',
347					 d, d, '', 'Monitoring \& Metrics', false, null, this.getTagsForStencil(gn, 'monitoring metrics', dt).join(' ')),
348			 this.createVertexTemplateEntry(s + 'process_management.svg;',
349					 d, d, '', 'Process Management', false, null, this.getTagsForStencil(gn, 'process management', dt).join(' ')),
350			 this.createVertexTemplateEntry(s + 'provider_cloud_portal_service.svg;',
351					 d, d, '', 'Provider Cloud Portal Service', false, null, this.getTagsForStencil(gn, 'provider cloud portal service', dt).join(' ')),
352			 this.createVertexTemplateEntry(s + 'push_notifications.svg;',
353					 d, d, '', 'Push Notifications', false, null, this.getTagsForStencil(gn, 'push notifications', dt).join(' ')),
354			 this.createVertexTemplateEntry(s + 'service_management_tools.svg;',
355					 d, d, '', 'Service Management Tools', false, null, this.getTagsForStencil(gn, 'service management tools', dt).join(' '))
356		];
357
358   		this.addPalette('ibmManagement', 'IBM / Management', false, mxUtils.bind(this, function(content)
359	    {
360			for (var i = 0; i < fns.length; i++)
361			{
362				content.appendChild(fns[i](content));
363			}
364		}));
365	};
366
367	Sidebar.prototype.addIBMMiscPalette = function(d, dt, sb, s)
368	{
369		s += 'miscellaneous/';
370		var gn = 'miscellaneous ';
371
372		var fns = [
373			 this.createVertexTemplateEntry(s + 'bluemix.svg;',
374					 d, d, '', 'Bluemix', false, null, this.getTagsForStencil(gn, 'bluemix', dt).join(' ')),
375			 this.createVertexTemplateEntry(s + 'cloudant.svg;',
376					 d, d, '', 'Cloudant', false, null, this.getTagsForStencil(gn, 'cloudant', dt).join(' ')),
377			 this.createVertexTemplateEntry(s + 'cognitive_services.svg;',
378					 d, d, '', 'Cognitive Services', false, null, this.getTagsForStencil(gn, 'cognitive services', dt).join(' ')),
379			 this.createVertexTemplateEntry(s + 'ibm_containers.svg;',
380					 d, d, '', 'IBM Containers', false, null, this.getTagsForStencil(gn, 'ibm containers', dt).join(' ')),
381			 this.createVertexTemplateEntry(s + 'ibm_public_cloud.svg;',
382					 d, d * 0.77, '', 'IBM Public Cloud', false, null, this.getTagsForStencil(gn, 'ibm public cloud', dt).join(' ')),
383			 this.createVertexTemplateEntry(s + 'iot_cloud.svg;',
384					 d, d * 0.77, '', 'IoT Cloud', false, null, this.getTagsForStencil(gn, 'iot cloud internet of things', dt).join(' ')),
385			 this.createVertexTemplateEntry(s + 'microservices_application.svg;',
386					 d, d, '', 'Microservices Application', false, null, this.getTagsForStencil(gn, 'microservices application', dt).join(' ')),
387			 this.createVertexTemplateEntry(s + 'object_storage.svg;',
388					 d, d, '', 'Object Storage', false, null, this.getTagsForStencil(gn, 'object storage', dt).join(' ')),
389			 this.createVertexTemplateEntry(s + 'offline_capabilities.svg;',
390					 d, d, '', 'Offline Capabilities', false, null, this.getTagsForStencil(gn, 'offline capabilities', dt).join(' ')),
391			 this.createVertexTemplateEntry(s + 'openwhisk.svg;',
392					 d, d, '', 'Openwhisk', false, null, this.getTagsForStencil(gn, 'openwhisk', dt).join(' ')),
393			 this.createVertexTemplateEntry(s + 'peer_cloud.svg;',
394					 d, d * 0.77, '', 'Peer Cloud', false, null, this.getTagsForStencil(gn, 'peer cloud', dt).join(' ')),
395			 this.createVertexTemplateEntry(s + 'retrieve_rank.svg;',
396					 d, d, '', 'Retrieve Rank', false, null, this.getTagsForStencil(gn, 'retrieve rank', dt).join(' ')),
397			 this.createVertexTemplateEntry(s + 'scalable.svg;',
398					 d * 0.25, d * 0.25, '', 'Scalable', false, null, this.getTagsForStencil(gn, 'scalable', dt).join(' ')),
399			 this.createVertexTemplateEntry(s + 'text_to_speech.svg;',
400					 d, d, '', 'Text to Speech', false, null, this.getTagsForStencil(gn, 'text to speech', dt).join(' '))
401		];
402
403   		this.addPalette('ibmMiscellaneous', 'IBM / Miscellaneous', false, mxUtils.bind(this, function(content)
404	    {
405			for (var i = 0; i < fns.length; i++)
406			{
407				content.appendChild(fns[i](content));
408			}
409		}));
410	};
411
412	Sidebar.prototype.addIBMSecurityPalette = function(d, dt, sb, s)
413	{
414		s += 'security/';
415		var gn = 'security ';
416
417		var fns = [
418			 this.createVertexTemplateEntry(s + 'api_security.svg;',
419					 d, d, '', 'API Security', false, null, this.getTagsForStencil(gn, 'api security', dt).join(' ')),
420			 this.createVertexTemplateEntry(s + 'blockchain_security_service.svg;',
421					 d, d, '', 'Blockchain Security Service', false, null, this.getTagsForStencil(gn, 'blockchain security service', dt).join(' ')),
422			 this.createVertexTemplateEntry(s + 'data_security.svg;',
423					 d, d, '', 'Data Security', false, null, this.getTagsForStencil(gn, 'data security', dt).join(' ')),
424			 this.createVertexTemplateEntry(s + 'firewall.svg;',
425					 d, d, '', 'Firewall', false, null, this.getTagsForStencil(gn, 'firewall', dt).join(' ')),
426			 this.createVertexTemplateEntry(s + 'gateway.svg;',
427					 d, d, '', 'Gateway', false, null, this.getTagsForStencil(gn, 'gateway', dt).join(' ')),
428			 this.createVertexTemplateEntry(s + 'governance_risk_compliance.svg;',
429					 d, d, '', 'Governance, Risk \& Compliance', false, null, this.getTagsForStencil(gn, 'governance risk compliance', dt).join(' ')),
430			 this.createVertexTemplateEntry(s + 'identity_access_management.svg;',
431					 d, d, '', 'Identity \& Access Management', false, null, this.getTagsForStencil(gn, 'identity access management', dt).join(' ')),
432			 this.createVertexTemplateEntry(s + 'identity_provider.svg;',
433					 d, d, '', 'Identity Provider', false, null, this.getTagsForStencil(gn, 'identity provider', dt).join(' ')),
434			 this.createVertexTemplateEntry(s + 'infrastructure_security.svg;',
435					 d, d, '', 'Infrastructure Security', false, null, this.getTagsForStencil(gn, 'infrastructure security', dt).join(' ')),
436			 this.createVertexTemplateEntry(s + 'physical_security.svg;',
437					 d, d, '', 'Physical Security', false, null, this.getTagsForStencil(gn, 'physical security', dt).join(' ')),
438			 this.createVertexTemplateEntry(s + 'security_monitoring_intelligence.svg;',
439					 d, d, '', 'Security Monitoring \& Intelligence', false, null, this.getTagsForStencil(gn, 'security monitoring intelligence', dt).join(' ')),
440			 this.createVertexTemplateEntry(s + 'security_services.svg;',
441					 d, d, '', 'Security Services', false, null, this.getTagsForStencil(gn, 'security services', dt).join(' ')),
442			 this.createVertexTemplateEntry(s + 'trustend_computing.svg;',
443					 d, d, '', 'Trustend Computing', false, null, this.getTagsForStencil(gn, 'trustend computing', dt).join(' ')),
444			 this.createVertexTemplateEntry(s + 'vpn.svg;',
445					 d, d, '', 'VPN', false, null, this.getTagsForStencil(gn, 'vpn virtual private network', dt).join(' '))
446		];
447
448   		this.addPalette('ibmSecurity', 'IBM / Security', false, mxUtils.bind(this, function(content)
449	    {
450			for (var i = 0; i < fns.length; i++)
451			{
452				content.appendChild(fns[i](content));
453			}
454		}));
455	};
456
457	Sidebar.prototype.addIBMSocialPalette = function(d, dt, sb, s)
458	{
459		s += 'social/';
460		var gn = 'social ';
461
462		var fns = [
463			 this.createVertexTemplateEntry(s + 'communities.svg;',
464					 d, d, '', 'Communities', false, null, this.getTagsForStencil(gn, 'communities', dt).join(' ')),
465			 this.createVertexTemplateEntry(s + 'file_sync.svg;',
466					 d, d, '', 'File Sync', false, null, this.getTagsForStencil(gn, 'file sync', dt).join(' ')),
467			 this.createVertexTemplateEntry(s + 'live_collaboration.svg;',
468					 d, d, '', 'Live Collaboration', false, null, this.getTagsForStencil(gn, 'live collaboration', dt).join(' ')),
469			 this.createVertexTemplateEntry(s + 'messaging.svg;',
470					 d, d, '', 'Messaging', false, null, this.getTagsForStencil(gn, 'messaging', dt).join(' ')),
471			 this.createVertexTemplateEntry(s + 'networking.svg;',
472					 d, d, '', 'Networking', false, null, this.getTagsForStencil(gn, 'networking', dt).join(' '))
473		];
474
475   		this.addPalette('ibmSocial', 'IBM / Social', false, mxUtils.bind(this, function(content)
476	    {
477			for (var i = 0; i < fns.length; i++)
478			{
479				content.appendChild(fns[i](content));
480			}
481		}));
482	};
483
484	Sidebar.prototype.addIBMUsersPalette = function(d, dt, sb, s)
485	{
486		s += 'users/';
487		var gn = 'users ';
488
489		var fns = [
490			 this.createVertexTemplateEntry(s + 'browser.svg;',
491					 d, d, '', 'Browser', false, null, this.getTagsForStencil(gn, 'browser', dt).join(' ')),
492			 this.createVertexTemplateEntry(s + 'device.svg;',
493					 d, d, '', 'Device', false, null, this.getTagsForStencil(gn, 'device', dt).join(' ')),
494			 this.createVertexTemplateEntry(s + 'integrated_digital_experiences.svg;',
495					 d, d, '', 'Integrated Digital Experiences', false, null, this.getTagsForStencil(gn, 'integrated digital experiences', dt).join(' ')),
496			 this.createVertexTemplateEntry(s + 'physical_entity.svg;',
497					 d, d, '', 'Physical Entity', false, null, this.getTagsForStencil(gn, 'physical entity', dt).join(' ')),
498			 this.createVertexTemplateEntry(s + 'sensor.svg;',
499					 d, d, '', 'Sensor', false, null, this.getTagsForStencil(gn, 'sensor', dt).join(' ')),
500			 this.createVertexTemplateEntry(s + 'user.svg;',
501					 d, d, '', 'User', false, null, this.getTagsForStencil(gn, 'user', dt).join(' '))
502		];
503
504   		this.addPalette('ibmUsers', 'IBM / Users', false, mxUtils.bind(this, function(content)
505	    {
506			for (var i = 0; i < fns.length; i++)
507			{
508				content.appendChild(fns[i](content));
509			}
510		}));
511	};
512
513	Sidebar.prototype.addIBMVPCPalette = function(d, dt, sb, s)
514	{
515		s += 'vpc/';
516		var gn = 'vpc virtual private cloud ';
517
518		var fns = [
519			 this.createVertexTemplateEntry(s + 'Instance.svg;',
520					 d, d, '', 'Instance', false, null, this.getTagsForStencil(gn, 'instance', dt).join(' ')),
521			 this.createVertexTemplateEntry(s + 'LoadBalancer.svg;',
522					 d, d, '', 'Load Balancer', false, null, this.getTagsForStencil(gn, 'load balancer', dt).join(' ')),
523			 this.createVertexTemplateEntry(s + 'BlockStorage.svg;',
524					 d, d, '', 'Block Storage', false, null, this.getTagsForStencil(gn, 'block storage', dt).join(' ')),
525			 this.createVertexTemplateEntry(s + 'FloatingIP.svg;',
526					 d, d, '', 'Floating IP', false, null, this.getTagsForStencil(gn, 'floating ip internet protocol', dt).join(' ')),
527			 this.createVertexTemplateEntry(s + 'PublicGateway.svg;',
528					 d, d, '', 'Public Gateway', false, null, this.getTagsForStencil(gn, 'public gateway', dt).join(' ')),
529			 this.createVertexTemplateEntry(s + 'ObjectStorage.svg;',
530					 d, d, '', 'Object Storage', false, null, this.getTagsForStencil(gn, 'object storage', dt).join(' ')),
531			 this.createVertexTemplateEntry(s + 'VPNConnection.svg;',
532					 d, d, '', 'VPN Connection', false, null, this.getTagsForStencil(gn, 'connection', dt).join(' ')),
533			 this.createVertexTemplateEntry(s + 'VPNGateway.svg;',
534					 d, d, '', 'VPN Gateway', false, null, this.getTagsForStencil(gn, 'gateway', dt).join(' ')),
535			 this.createVertexTemplateEntry(s + 'DirectLink.svg;',
536					 d, d, '', 'Direct Link', false, null, this.getTagsForStencil(gn, 'direct link', dt).join(' ')),
537			 this.createVertexTemplateEntry(s + 'InternetServices2.svg;',
538					 d, d, '', 'Internet Services', false, null, this.getTagsForStencil(gn, 'internet services', dt).join(' ')),
539			 this.createVertexTemplateEntry(s + 'LoadBalancerPool.svg;',
540					 d, d, '', 'Load Balancer Pool', false, null, this.getTagsForStencil(gn, 'load balancer pool', dt).join(' ')),
541			 this.createVertexTemplateEntry(s + 'LoadBalancerListener.svg;',
542					 d, d, '', 'Load Balancer Listener', false, null, this.getTagsForStencil(gn, 'load balancer listener', dt).join(' ')),
543			 this.createVertexTemplateEntry(s + 'Rules.svg;',
544					 d, d, '', 'Rules', false, null, this.getTagsForStencil(gn, 'load balancer listener', dt).join(' ')),
545			 this.createVertexTemplateEntry(s + 'ImageService.svg;',
546					 d, d, '', 'Image Service', false, null, this.getTagsForStencil(gn, 'image service', dt).join(' ')),
547			 this.createVertexTemplateEntry(s + 'Key.svg;',
548					 d, d, '', 'Key', false, null, this.getTagsForStencil(gn, 'key', dt).join(' ')),
549			 this.createVertexTemplateEntry(s + 'VPNPolicy.svg;',
550					 d, d, '', 'VPN Policy', false, null, this.getTagsForStencil(gn, 'policy', dt).join(' ')),
551			 this.createVertexTemplateEntry(s + 'Router.svg;',
552					 d, d, '', 'Router', false, null, this.getTagsForStencil(gn, 'router', dt).join(' ')),
553			 this.createVertexTemplateEntry(s + 'Bridge.svg;',
554					 d, d, '', 'Bridge', false, null, this.getTagsForStencil(gn, 'bridge', dt).join(' ')),
555			 this.createVertexTemplateEntry(s + 'CloudServices.svg;',
556					 d, d, '', 'Cloud Services', false, null, this.getTagsForStencil(gn, 'cloud services', dt).join(' ')),
557			 this.createVertexTemplateEntry(s + 'Internet.svg;',
558					 d, d, '', 'Internet', false, null, this.getTagsForStencil(gn, 'internet', dt).join(' ')),
559			 this.createVertexTemplateEntry(s + 'Enterprise.svg;',
560					 d, d, '', 'Data Center', false, null, this.getTagsForStencil(gn, 'dat acenter', dt).join(' ')),
561			 this.createVertexTemplateEntry(s + 'Enterprise2.svg;',
562					 d, d * 0.8, '', 'Enterprise', false, null, this.getTagsForStencil(gn, 'enterprise', dt).join(' ')),
563			 this.createVertexTemplateEntry(s + 'PowerInstance.svg;',
564					 d, d, '', 'Power Instance', false, null, this.getTagsForStencil(gn, 'power instance', dt).join(' ')),
565			 this.createVertexTemplateEntry(s + 'TransitGateway.svg;',
566					 d, d, '', 'Transit Gateway', false, null, this.getTagsForStencil(gn, 'transit gateway', dt).join(' ')),
567			 this.createVertexTemplateEntry(s + 'BareMetalServer.svg;',
568					 d, d, '', 'Bare Metal Server', false, null, this.getTagsForStencil(gn, 'bare metal server', dt).join(' '))
569		];
570
571   		this.addPalette('ibmVPC', 'IBM / VPC', false, mxUtils.bind(this, function(content)
572	    {
573			for (var i = 0; i < fns.length; i++)
574			{
575				content.appendChild(fns[i](content));
576			}
577		}));
578	};
579
580	Sidebar.prototype.addIBMBoxesPalette = function(d, dt, sb, s)
581	{
582		s += 'boxes/';
583		var gn = 'boxes box ';
584
585		var fns = [
586			 this.createVertexTemplateEntry(
587					 'shape=mxgraph.ibm.box;prType=cloud;fontStyle=0;verticalAlign=top;align=left;spacingLeft=32;spacingTop=4;fillColor=none;rounded=0;whiteSpace=wrap;html=1;strokeColor=#4376BB;strokeWidth=3;dashed=0;container=1;spacing=-4;collapsible=0;expand=0;recursiveResize=0;',
588					 200, 200, 'IBM Cloud', 'IBM Cloud', true, null, this.getTagsForStencil(gn, 'ibm cloud', dt).join(' ')),
589			 this.createVertexTemplateEntry(
590					 'shape=mxgraph.ibm.box;prType=vpc;fontStyle=0;verticalAlign=top;align=left;spacingLeft=32;spacingTop=4;fillColor=none;rounded=0;whiteSpace=wrap;html=1;strokeColor=#4376BB;strokeWidth=2;dashed=0;container=1;spacing=-4;collapsible=0;expand=0;recursiveResize=0;',
591					 200, 200, 'VPC', 'VPC', true, null, this.getTagsForStencil(gn, 'vpc virtual private cloud', dt).join(' ')),
592			 this.createVertexTemplateEntry(
593					 'shape=mxgraph.ibm.box;prType=region;fontStyle=0;verticalAlign=top;align=left;spacingLeft=32;spacingTop=4;fillColor=none;rounded=0;whiteSpace=wrap;html=1;strokeColor=#919191;strokeWidth=2;dashed=0;container=1;spacing=-4;collapsible=0;expand=0;recursiveResize=0;',
594					 200, 200, 'Region', 'Region', true, null, this.getTagsForStencil(gn, 'region', dt).join(' ')),
595			 this.createVertexTemplateEntry(
596					 'shape=mxgraph.ibm.box;prType=zone;fontStyle=0;verticalAlign=top;align=left;spacingLeft=32;spacingTop=4;fillColor=#E0E0E0;rounded=0;whiteSpace=wrap;html=1;strokeColor=#919191;strokeWidth=1;dashed=0;container=1;spacing=-4;collapsible=0;expand=0;recursiveResize=0;',
597					 200, 200, 'Zone', 'Zone', true, null, this.getTagsForStencil(gn, 'zone', dt).join(' ')),
598			 this.createVertexTemplateEntry(
599					 'shape=mxgraph.ibm.box;prType=subnet;fontStyle=0;verticalAlign=top;align=left;spacingLeft=32;spacingTop=4;fillColor=#E6F0E2;rounded=0;whiteSpace=wrap;html=1;strokeColor=#00882B;strokeWidth=1;dashed=0;container=1;spacing=-4;collapsible=0;expand=0;recursiveResize=0;',
600					 200, 200, 'Subnet:ACL', 'Subnet:ACL', true, null, this.getTagsForStencil(gn, 'subnet acl', dt).join(' ')),
601			 this.createVertexTemplateEntry(
602					 'fontStyle=0;verticalAlign=top;align=center;spacingTop=-2;fillColor=none;rounded=0;whiteSpace=wrap;html=1;strokeColor=#FF0000;strokeWidth=2;dashed=1;container=1;collapsible=0;expand=0;recursiveResize=0;',
603					 200, 200, 'Security Group', 'Security Group', true, null, this.getTagsForStencil(gn, 'security group', dt).join(' ')),
604			 this.createVertexTemplateEntry(
605					 'fontStyle=0;verticalAlign=top;align=center;spacingTop=-2;fillColor=none;rounded=0;whiteSpace=wrap;html=1;strokeColor=#00882B;strokeWidth=2;dashed=1;container=1;collapsible=0;expand=0;recursiveResize=0;',
606					 200, 200, 'Instance Group', 'Instance Group', true, null, this.getTagsForStencil(gn, 'instance group', dt).join(' ')),
607			 this.createVertexTemplateEntry(
608					 'fontStyle=0;verticalAlign=top;align=center;spacingTop=-2;fillColor=none;rounded=0;whiteSpace=wrap;html=1;strokeColor=#919191;strokeWidth=2;dashed=1;container=1;collapsible=0;expand=0;recursiveResize=0;',
609					 200, 200, 'Resource Group', 'Resource Group', true, null, this.getTagsForStencil(gn, 'resource group', dt).join(' ')),
610			 this.createVertexTemplateEntry(
611					 'shape=mxgraph.ibm.box;prType=public;fontStyle=0;verticalAlign=top;align=left;spacingLeft=32;spacingTop=4;fillColor=none;rounded=0;whiteSpace=wrap;html=1;strokeColor=#4376BB;strokeWidth=3;dashed=0;container=1;spacing=-4;collapsible=0;expand=0;recursiveResize=0;',
612					 200, 200, 'Public Network', 'Public Network', true, null, this.getTagsForStencil(gn, 'public network', dt).join(' ')),
613			 this.createVertexTemplateEntry(
614					 'shape=mxgraph.ibm.box;prType=enterprise;fontStyle=0;verticalAlign=top;align=left;spacingLeft=32;spacingTop=4;fillColor=none;rounded=0;whiteSpace=wrap;html=1;strokeColor=#4376BB;strokeWidth=3;dashed=0;container=1;spacing=-4;collapsible=0;expand=0;recursiveResize=0;',
615					 200, 200, 'Enterprise Network', 'Enterprise Network', true, null, this.getTagsForStencil(gn, 'enterprise network', dt).join(' ')),
616			 this.createVertexTemplateEntry(
617					 'shape=mxgraph.ibm.box;prType=classic;fontStyle=0;verticalAlign=top;align=left;spacingLeft=32;spacingTop=4;fillColor=none;rounded=0;whiteSpace=wrap;html=1;strokeColor=#4376BB;strokeWidth=2;dashed=0;container=1;spacing=-4;collapsible=0;expand=0;recursiveResize=0;',
618					 200, 200, 'Classic Infrastructure', 'Classic Infrastructure', true, null, this.getTagsForStencil(gn, 'classic infrastructure', dt).join(' ')),
619			 this.createVertexTemplateEntry(
620					 'fontStyle=0;verticalAlign=top;align=center;spacingTop=-2;fillColor=none;rounded=0;whiteSpace=wrap;html=1;strokeColor=#4376BB;strokeWidth=1;dashed=0;container=1;collapsible=0;expand=0;recursiveResize=0;',
621					 200, 200, 'Cloud Services', 'Cloud Services', true, null, this.getTagsForStencil(gn, 'cloud services', dt).join(' '))
622		];
623
624   		this.addPalette('ibmBoxes', 'IBM / Boxes', false, mxUtils.bind(this, function(content)
625	    {
626			for (var i = 0; i < fns.length; i++)
627			{
628				content.appendChild(fns[i](content));
629			}
630		}));
631	};
632
633	Sidebar.prototype.addIBMConnectorsPalette = function(d, dt, sb, s)
634	{
635		var gn = 'connectors ';
636
637		var fns = [
638		 	 this.createEdgeTemplateEntry('html=1;labelBackgroundColor=#ffffff;jettySize=auto;orthogonalLoop=1;strokeWidth=1;fontSize=14;endArrow=none;endFill=0;',
639					 d, d, '', 'Connector', null, dt + 'connector'),
640		 	 this.createEdgeTemplateEntry('html=1;labelBackgroundColor=#ffffff;endArrow=classic;endFill=1;endSize=6;jettySize=auto;orthogonalLoop=1;strokeWidth=1;fontSize=14;',
641					 d, d, '', 'Connector (Single Arrow)', null, dt + 'connector single arrow'),
642		 	 this.createEdgeTemplateEntry('html=1;labelBackgroundColor=#ffffff;startArrow=classic;startFill=1;startSize=6;endArrow=classic;endFill=1;endSize=6;jettySize=auto;orthogonalLoop=1;strokeWidth=1;fontSize=14;',
643					 d, d, '', 'Connector (Double Arrow)', null, dt + 'connector double arrow'),
644		 	 this.createEdgeTemplateEntry('html=1;labelBackgroundColor=#ffffff;endArrow=none;endFill=0;jettySize=auto;orthogonalLoop=1;strokeWidth=1;dashed=1;fontSize=14;',
645					 d, d, '', 'Dashed Connector', null, dt + 'dashed connector'),
646		 	 this.createEdgeTemplateEntry('html=1;labelBackgroundColor=#ffffff;startArrow=none;startFill=0;startSize=6;endArrow=classic;endFill=1;endSize=6;jettySize=auto;orthogonalLoop=1;strokeWidth=1;dashed=1;fontSize=14;',
647					 d, d, '', 'Dashed Connector (Single Arrow)', null, dt + 'dashed connector single arrow'),
648		 	 this.createEdgeTemplateEntry('html=1;labelBackgroundColor=#ffffff;startArrow=classic;startFill=1;startSize=6;endArrow=classic;endFill=1;endSize=6;jettySize=auto;orthogonalLoop=1;strokeWidth=1;dashed=1;fontSize=14;',
649					 d, d, '', 'Dashed Connector (Double Arrow)', null, dt + 'dashed connector double arrow'),
650		 	 this.createEdgeTemplateEntry('edgeStyle=elbowEdgeStyle;rounded=0;elbow=vertical;html=1;labelBackgroundColor=#ffffff;jettySize=auto;orthogonalLoop=1;strokeWidth=1;fontSize=14;endArrow=none;endFill=0;',
651					 d, d, '', 'Elbow Connector', null, dt + 'elbow connector'),
652		 	 this.createEdgeTemplateEntry('edgeStyle=elbowEdgeStyle;rounded=0;elbow=vertical;html=1;labelBackgroundColor=#ffffff;endArrow=classic;endFill=1;endSize=6;jettySize=auto;orthogonalLoop=1;strokeWidth=1;fontSize=14;',
653					 d, d, '', 'Elbow Connector (Single Arrow)', null, dt + 'elbow connector single arrow'),
654		 	 this.createEdgeTemplateEntry('edgeStyle=elbowEdgeStyle;rounded=0;elbow=vertical;html=1;labelBackgroundColor=#ffffff;startArrow=classic;startFill=1;startSize=6;endArrow=classic;endFill=1;endSize=6;jettySize=auto;orthogonalLoop=1;strokeWidth=1;fontSize=14;',
655		 			 d, d, '', 'Elbow Connector (Double Arrow)', null, dt + 'elbow connector double arrow')
656		];
657
658   		this.addPalette('ibmConnectors', 'IBM / Connectors', false, mxUtils.bind(this, function(content)
659	    {
660			for (var i = 0; i < fns.length; i++)
661			{
662				content.appendChild(fns[i](content));
663			}
664		}));
665	};
666})();
667