1(function()
2{
3	// Adds mockup shapes
4	Sidebar.prototype.addOfficePalette = function()
5	{
6		this.setCurrentSearchEntryLibrary('office', 'officeClouds');
7		this.addOfficeCloudsPalette();
8		this.setCurrentSearchEntryLibrary('office', 'officeCommunications');
9		this.addOfficeCommunicationsPalette();
10		this.setCurrentSearchEntryLibrary('office', 'officeConcepts');
11		this.addOfficeConceptsPalette();
12		this.setCurrentSearchEntryLibrary('office', 'officeDatabases');
13		this.addOfficeDatabasesPalette();
14		this.setCurrentSearchEntryLibrary('office', 'officeDevices');
15		this.addOfficeDevicesPalette();
16		this.setCurrentSearchEntryLibrary('office', 'officeSecurity');
17		this.addOfficeSecurityPalette();
18		this.setCurrentSearchEntryLibrary('office', 'officeServers');
19		this.addOfficeServersPalette();
20		this.setCurrentSearchEntryLibrary('office', 'officeServices');
21		this.addOfficeServicesPalette();
22		this.setCurrentSearchEntryLibrary('office', 'officeSites');
23		this.addOfficeSitesPalette();
24		this.setCurrentSearchEntryLibrary('office', 'officeUsers');
25		this.addOfficeUsersPalette();
26		this.setCurrentSearchEntryLibrary();
27	};
28
29	Sidebar.prototype.addOfficeCloudsPalette = function()
30	{
31		var s = 'sketch=0;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;fillColor=#505050;labelPosition=center;verticalLabelPosition=bottom;outlineConnect=0;verticalAlign=top;align=center;shape=mxgraph.office.clouds.';
32		var s2 = 'sketch=0;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;outlineConnect=0;verticalAlign=top;align=center;shape=mxgraph.office.clouds.';
33
34		// Space savers
35		var sb = this;
36		var gn = 'mxgraph.office.clouds';
37		var dt = 'office cloud ';
38
39		var w = 1.0;
40		var h = 1.0;
41
42		var fns =
43		[
44			this.createVertexTemplateEntry(s + 'azure;',
45					w * 103, h * 66, '', 'Azure', null, null, this.getTagsForStencil(gn, 'azure', dt).join(' ')),
46			this.createVertexTemplateEntry(s + 'cloud;',
47					w * 94, h * 55, '', 'Cloud', null, null, this.getTagsForStencil(gn, 'cloud', dt).join(' ')),
48			this.createVertexTemplateEntry(s + 'cloud_disaster;',
49					w * 94, h * 74, '', 'Cloud Disaster', null, null, this.getTagsForStencil(gn, 'cloud disaster', dt).join(' ')),
50			this.createVertexTemplateEntry(s2 + 'cloud_disaster;fillColor=#ff0000;',
51					w * 94, h * 74, '', 'Cloud Disaster (Red)', null, null, this.getTagsForStencil(gn, 'cloud disaster', dt).join(' ')),
52			this.createVertexTemplateEntry(s + 'cloud_exchange_online;',
53					w * 100, h * 61, '', 'Cloud Exchange Online', null, null, this.getTagsForStencil(gn, 'cloud exchange online', dt).join(' ')),
54			this.createVertexTemplateEntry(s + 'cloud_service_request;',
55					w * 102, h * 80, '', 'Cloud Service Request', null, null, this.getTagsForStencil(gn, 'cloud service request', dt).join(' ')),
56			this.createVertexTemplateEntry(s + 'cloud_sharepoint;',
57					w * 101, h * 61, '', 'Cloud SharePoint', null, null, this.getTagsForStencil(gn, 'cloud sharepoint', dt).join(' ')),
58			this.createVertexTemplateEntry(s + 'office_365;',
59					w * 101, h * 61, '', 'Office 365', null, null, this.getTagsForStencil(gn, 'office 365', dt).join(' ')),
60			this.createVertexTemplateEntry(s + 'online_backup;',
61					w * 94, h * 101, '', 'Online Backup', null, null, this.getTagsForStencil(gn, 'online backup', dt).join(' ')),
62			this.createVertexTemplateEntry(s + 'online_user;',
63					w * 93, h * 74, '', 'Online User', null, null, this.getTagsForStencil(gn, 'online user', dt).join(' ')),
64			this.createVertexTemplateEntry(s + 'private_cloud;',
65					w * 94, h * 55, '', 'Private Cloud', null, null, this.getTagsForStencil(gn, 'private cloud', dt).join(' ')),
66			this.createVertexTemplateEntry(s + 'public_cloud;',
67					w * 101, h * 81, '', 'Public Cloud', null, null, this.getTagsForStencil(gn, 'public cloud', dt).join(' ')),
68			this.createVertexTemplateEntry(s + 'public_im_cloud_service;',
69					w * 102, h * 99, '', 'Public IM Cloud Service', null, null, this.getTagsForStencil(gn, 'public im instant message cloud service', dt).join(' '))
70		];
71
72		this.addPalette('officeClouds', 'Office / Clouds', false, mxUtils.bind(this, function(content)
73				{
74					for (var i = 0; i < fns.length; i++)
75					{
76						content.appendChild(fns[i](content));
77					}
78		}));
79	};
80
81	Sidebar.prototype.addOfficeCommunicationsPalette = function()
82	{
83		var s = 'sketch=0;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;fillColor=#505050;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.communications.';
84
85		// Space savers
86		var sb = this;
87		var gn = 'mxgraph.office.communications';
88		var dt = 'office communication ';
89
90		var w = 1.0;
91		var h = 1.0;
92
93		var fns =
94		[
95			this.createVertexTemplateEntry(s + '3rd_party_call_center_solution;',
96					w * 98, h * 101, '', '3rd Party Call Center Solution', null, null, this.getTagsForStencil(gn, '3rd party call center solution', dt).join(' ')),
97			this.createVertexTemplateEntry(s + '3rd_party_integration;',
98					w * 54, h * 55, '', '3rd Party Integration', null, null, this.getTagsForStencil(gn, '3rd party integration', dt).join(' ')),
99			this.createVertexTemplateEntry(s + '3rd_party_service;',
100					w * 53, h * 54, '', '3rd Party Service', null, null, this.getTagsForStencil(gn, '3rd party service', dt).join(' ')),
101			this.createVertexTemplateEntry(s + 'application_sharing_workload;',
102					w * 57, h * 49, '', 'Application Sharing Workload', null, null, this.getTagsForStencil(gn, 'application sharing workload', dt).join(' ')),
103			this.createVertexTemplateEntry(s + 'audio_conferencing_application;',
104					w * 59, h * 46, '', 'Audio Conferencing Application', null, null, this.getTagsForStencil(gn, 'audio_conferencing_application', dt).join(' ')),
105			this.createVertexTemplateEntry(s + 'central_management_service;',
106					w * 52, h * 55, '', 'Central Management Service', null, null, this.getTagsForStencil(gn, 'central management service', dt).join(' ')),
107			this.createVertexTemplateEntry(s + 'chat_room;',
108					w * 46, h * 48, '', 'Chat Room', null, null, this.getTagsForStencil(gn, 'chat room', dt).join(' ')),
109			this.createVertexTemplateEntry(s + 'conference_announcement_service;',
110					w * 60, h * 60, '', 'Conference Announcement Service', null, null, this.getTagsForStencil(gn, 'conference announcement service', dt).join(' ')),
111			this.createVertexTemplateEntry(s + 'disconnected_mailbox;',
112					w * 60, h * 55, '', 'Disconnected Mailbox', null, null, this.getTagsForStencil(gn, 'disconnected mailbox', dt).join(' ')),
113			this.createVertexTemplateEntry(s + 'discovery_search_mailbox;',
114					w * 55, h * 49, '', 'Discovery Search Mailbox', null, null, this.getTagsForStencil(gn, 'discovery search mailbox', dt).join(' ')),
115			this.createVertexTemplateEntry(s + 'dynamic_distribution_group;',
116					w * 58, h * 59, '', 'Dynamic Distribution Group', null, null, this.getTagsForStencil(gn, 'dynamic distribution group', dt).join(' ')),
117			this.createVertexTemplateEntry(s + 'edge_subscription;',
118					w * 57, h * 59, '', 'Edge Subscription', null, null, this.getTagsForStencil(gn, 'edge subscription', dt).join(' ')),
119			this.createVertexTemplateEntry(s + 'email_workloaad;',
120					w * 57, h * 47, '', 'Email Workloaad', null, null, this.getTagsForStencil(gn, 'email workloaad', dt).join(' ')),
121			this.createVertexTemplateEntry(s + 'equipment_mailbox;',
122					w * 59, h * 59, '', 'Equipment Mailbox', null, null, this.getTagsForStencil(gn, 'equipment mailbox', dt).join(' ')),
123			this.createVertexTemplateEntry(s + 'exchange_active_sync;',
124					w * 49, h * 49, '', 'Exchange Active Sync', null, null, this.getTagsForStencil(gn, 'exchange_active_sync', dt).join(' ')),
125			this.createVertexTemplateEntry(s + 'exchange_active_sync;fillColor=#2072B8;',
126					w * 49, h * 49, '', 'Exchange Active Sync - Blue', null, null, this.getTagsForStencil(gn, 'exchange_active_sync', dt).join(' ')),
127			this.createVertexTemplateEntry(s + 'fax_partner;',
128					w * 45, h * 56, '', 'Fax Partner', null, null, this.getTagsForStencil(gn, 'fax partner', dt).join(' ')),
129			this.createVertexTemplateEntry(s + 'global_address_list;',
130					w * 59, h * 53, '', 'Global Address List', null, null, this.getTagsForStencil(gn, 'global address list', dt).join(' ')),
131			this.createVertexTemplateEntry(s + 'hybrid_voip_gateway;',
132					w * 59, h * 38, '', 'Hybrid VOIP Gateway', null, null, this.getTagsForStencil(gn, 'hybrid voip gateway', dt).join(' ')),
133			this.createVertexTemplateEntry(s + 'im_workload;',
134					w * 56, h * 54, '', 'IM Workload', null, null, this.getTagsForStencil(gn, 'im workload instant message', dt).join(' ')),
135			this.createVertexTemplateEntry(s + 'journaling_rule;',
136					w * 52, h * 58, '', 'Journaling Rule', null, null, this.getTagsForStencil(gn, 'journaling rule', dt).join(' ')),
137			this.createVertexTemplateEntry(s + 'local_move_request;',
138					w * 57, h * 57, '', 'Local Move Request', null, null, this.getTagsForStencil(gn, 'local move request', dt).join(' ')),
139			this.createVertexTemplateEntry(s + 'lync_control_panel;',
140					w * 69, h * 58, '', 'Lync Control Panel', null, null, this.getTagsForStencil(gn, 'lync control panel', dt).join(' ')),
141			this.createVertexTemplateEntry(s + 'lync_phone_edition;',
142					w * 80, h * 45, '', 'Lync Phone Edition', null, null, this.getTagsForStencil(gn, 'lync phone edition', dt).join(' ')),
143			this.createVertexTemplateEntry(s + 'lync_room_system;',
144					w * 80, h * 42, '', 'Lync Room System', null, null, this.getTagsForStencil(gn, 'lync room system', dt).join(' ')),
145			this.createVertexTemplateEntry(s + 'lync_server_management_tool;',
146					w * 75, h * 47, '', 'Lync Server Management Tool', null, null, this.getTagsForStencil(gn, 'lync server management tool', dt).join(' ')),
147			this.createVertexTemplateEntry(s + 'lync_storage_service;',
148					w * 66, h * 59, '', 'Lync Storage Service', null, null, this.getTagsForStencil(gn, 'lync storage service', dt).join(' ')),
149			this.createVertexTemplateEntry(s + 'lync_web_app_client;',
150					w * 83, h * 50, '', 'Lync Web App Client', null, null, this.getTagsForStencil(gn, 'lync web app client', dt).join(' ')),
151			this.createVertexTemplateEntry(s + 'mail_enabled_public_folder;',
152					w * 58, h * 52, '', 'Mail-Enabled Public Folder', null, null, this.getTagsForStencil(gn, 'mail enabled public folder', dt).join(' ')),
153			this.createVertexTemplateEntry(s + 'mailbox_assistant;',
154					w * 59, h * 57, '', 'Mailbox Assistant', null, null, this.getTagsForStencil(gn, 'mailbox assistant', dt).join(' ')),
155			this.createVertexTemplateEntry(s + 'messages_queued;',
156					w * 59, h * 57, '', 'Messages Queued', null, null, this.getTagsForStencil(gn, 'messages queued', dt).join(' ')),
157			this.createVertexTemplateEntry(s + 'offline_address_book;',
158					w * 59, h * 53, '', 'Offline Address Book', null, null, this.getTagsForStencil(gn, 'offline address book', dt).join(' ')),
159			this.createVertexTemplateEntry(s + 'personal_archive_mailbox;',
160					w * 59, h * 58, '', 'Personal Archive Mailbox', null, null, this.getTagsForStencil(gn, 'personal archive mailbox', dt).join(' ')),
161			this.createVertexTemplateEntry(s + 'public_im_cloud_service;',
162					w * 60, h * 58, '', 'Public IM Cloud Service', null, null, this.getTagsForStencil(gn, 'public im cloud service instant message', dt).join(' ')),
163			this.createVertexTemplateEntry(s + 'push_notification_service;',
164					w * 50, h * 58, '', 'Push Notification Service', null, null, this.getTagsForStencil(gn, 'push notification service', dt).join(' ')),
165			this.createVertexTemplateEntry(s + 'queue_viewer;',
166					w * 59, h * 57, '', 'Queue Viewer', null, null, this.getTagsForStencil(gn, 'queue viewer', dt).join(' ')),
167			this.createVertexTemplateEntry(s + 'remote_mailbox;',
168					w * 59, h * 57, '', 'Remote Mailbox', null, null, this.getTagsForStencil(gn, 'remote mailbox', dt).join(' ')),
169			this.createVertexTemplateEntry(s + 'remote_move_request;',
170					w * 60, h * 57, '', 'Remote Move Request', null, null, this.getTagsForStencil(gn, 'remote move request', dt).join(' ')),
171			this.createVertexTemplateEntry(s + 'response_group;',
172					w * 58, h * 54, '', 'Response Group', null, null, this.getTagsForStencil(gn, 'response group', dt).join(' ')),
173			this.createVertexTemplateEntry(s + 'room_mailbox;',
174					w * 60, h * 57, '', 'Room Mailbox', null, null, this.getTagsForStencil(gn, 'room mailbox', dt).join(' ')),
175			this.createVertexTemplateEntry(s + 'shared_mailbox;',
176					w * 60, h * 55, '', 'Shared Mailbox', null, null, this.getTagsForStencil(gn, 'shared mailbox', dt).join(' ')),
177			this.createVertexTemplateEntry(s + 'sip_uri_um_dial_plan;',
178					w * 55, h * 56, '', 'SIP URI UM Dial Plan', null, null, this.getTagsForStencil(gn, 'sip uri um dial plan', dt).join(' ')),
179			this.createVertexTemplateEntry(s + 'site_mailbox;',
180					w * 59, h * 54, '', 'Site Mailbox', null, null, this.getTagsForStencil(gn, 'site mailbox', dt).join(' ')),
181			this.createVertexTemplateEntry(s + 'skype_for_business_control_panel;',
182					w * 65, h * 59, '', 'Skype for Business Control Panel', null, null, this.getTagsForStencil(gn, 'skype for business control panel', dt).join(' ')),
183			this.createVertexTemplateEntry(s + 'skype_for_business_phone_edition;',
184					w * 76, h * 45, '', 'Skype for Business Phone Edition', null, null, this.getTagsForStencil(gn, 'skype for business phone edition', dt).join(' ')),
185			this.createVertexTemplateEntry(s + 'skype_for_business_room_system;',
186					w * 74, h * 41, '', 'Skype for Business Room System', null, null, this.getTagsForStencil(gn, 'skype for business room system', dt).join(' ')),
187			this.createVertexTemplateEntry(s + 'skype_for_business_server_management_tool;',
188					w * 72, h * 48, '', 'Skype for Business Server Management Tool', null, null, this.getTagsForStencil(gn, 'skype for business server management tool', dt).join(' ')),
189			this.createVertexTemplateEntry(s + 'skype_for_business_storage_service;',
190					w * 62, h * 58, '', 'Skype for Business Storage Service', null, null, this.getTagsForStencil(gn, 'skype for business storage service', dt).join(' ')),
191			this.createVertexTemplateEntry(s + 'skype_for_business_web_app_client;',
192					w * 80, h * 51, '', 'Skype for Business Web App Client', null, null, this.getTagsForStencil(gn, 'skype for business web app client', dt).join(' ')),
193			this.createVertexTemplateEntry(s + 'sms_gateway;',
194					w * 59, h * 37, '', 'SMS Gateway', null, null, this.getTagsForStencil(gn, 'sms gateway', dt).join(' ')),
195			this.createVertexTemplateEntry(s + 'smtp_connector;',
196					w * 47, h * 49, '', 'SMTP Connector', null, null, this.getTagsForStencil(gn, 'smtp connector', dt).join(' ')),
197			this.createVertexTemplateEntry(s + 'system_mailbox;',
198					w * 58, h * 55, '', 'System Mailbox', null, null, this.getTagsForStencil(gn, 'system mailbox', dt).join(' ')),
199			this.createVertexTemplateEntry(s + 'tdm_pbx;',
200					w * 59, h * 46, '', 'TDM PBX', null, null, this.getTagsForStencil(gn, 'tdm pbx', dt).join(' ')),
201			this.createVertexTemplateEntry(s + 'telephone_extension_dial_plan;',
202					w * 55, h * 56, '', 'Telephone Extension Dial Plan', null, null, this.getTagsForStencil(gn, 'telephone extension dial plan', dt).join(' ')),
203			this.createVertexTemplateEntry(s + 'transport_rule;',
204					w * 56, h * 57, '', 'Transport Rule', null, null, this.getTagsForStencil(gn, 'transport rule', dt).join(' ')),
205			this.createVertexTemplateEntry(s + 'ucma_application;',
206					w * 53, h * 40, '', 'UCMA Application', null, null, this.getTagsForStencil(gn, 'ucma application', dt).join(' ')),
207			this.createVertexTemplateEntry(s + 'ucwa_application;',
208					w * 53, h * 40, '', 'UCWA Application', null, null, this.getTagsForStencil(gn, 'ucwa application', dt).join(' ')),
209			this.createVertexTemplateEntry(s + 'um_auto_attendant;',
210					w * 57, h * 57, '', 'UM Auto Attendant', null, null, this.getTagsForStencil(gn, 'um auto attendant', dt).join(' ')),
211			this.createVertexTemplateEntry(s + 'um_dial_plan_e164;',
212					w * 55, h * 56, '', 'UM Dial Plan E164', null, null, this.getTagsForStencil(gn, 'um dial plan e164', dt).join(' ')),
213			this.createVertexTemplateEntry(s + 'um_dial_plan_secondary;',
214					w * 55, h * 56, '', 'UM Dial Plan Secondary', null, null, this.getTagsForStencil(gn, 'um dial plan secondary', dt).join(' ')),
215			this.createVertexTemplateEntry(s + 'um_enabled_mailbox;',
216					w * 59, h * 57, '', 'UM Enabled Mailbox', null, null, this.getTagsForStencil(gn, 'um enabled mailbox', dt).join(' ')),
217			this.createVertexTemplateEntry(s + 'um_hunt_group;',
218					w * 59, h * 48, '', 'UM Hunt Group', null, null, this.getTagsForStencil(gn, 'um hunt group', dt).join(' ')),
219			this.createVertexTemplateEntry(s + 'um_ip_gateway;',
220					w * 59, h * 38, '', 'UM IP Gateway', null, null, this.getTagsForStencil(gn, 'um ip gateway internet protocol', dt).join(' ')),
221			this.createVertexTemplateEntry(s + 'user_mailbox;',
222					w * 59, h * 55, '', 'User Mailbox', null, null, this.getTagsForStencil(gn, 'user mailbox', dt).join(' ')),
223			this.createVertexTemplateEntry(s + 'video_workload;',
224					w * 57, h * 50, '', 'Video Workload', null, null, this.getTagsForStencil(gn, 'video workload', dt).join(' ')),
225			this.createVertexTemplateEntry(s + 'voice_mail_preview;',
226					w * 46, h * 56, '', 'Voice Mail Preview', null, null, this.getTagsForStencil(gn, 'voice mail preview', dt).join(' ')),
227			this.createVertexTemplateEntry(s + 'voice_workload;',
228					w * 58, h * 51, '', 'Voice Workload', null, null, this.getTagsForStencil(gn, 'voice workload', dt).join(' ')),
229			this.createVertexTemplateEntry(s + 'voip_gateway;',
230					w * 51, h * 15, '', 'VoIP Gateway', null, null, this.getTagsForStencil(gn, 'voip gateway voice over ip internet protocol', dt).join(' ')),
231			this.createVertexTemplateEntry(s + 'watcher_node;',
232					w * 52, h * 56, '', 'Watcher Node', null, null, this.getTagsForStencil(gn, 'watcher node', dt).join(' ')),
233			this.createVertexTemplateEntry(s + 'xmpp_service;',
234					w * 58, h * 52, '', 'XMPP Service', null, null, this.getTagsForStencil(gn, 'xmpp service', dt).join(' '))
235		];
236
237		this.addPalette('officeCommunications', 'Office / Communications', false, mxUtils.bind(this, function(content)
238				{
239					for (var i = 0; i < fns.length; i++)
240					{
241						content.appendChild(fns[i](content));
242					}
243		}));
244	};
245
246	Sidebar.prototype.addOfficeConceptsPalette = function()
247	{
248		var s = 'sketch=0;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;fillColor=#505050;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.concepts.';
249		var s2 = 'sketch=0;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.concepts.';
250
251		// Space savers
252		var sb = this;
253		var gn = 'mxgraph.office.concepts';
254		var dt = 'office concept ';
255
256		var w = 1.0;
257		var h = 1.0;
258
259		var fns =
260		[
261			this.createVertexTemplateEntry(s + 'address_book;',
262					w * 55, h * 44, '', 'Address Book', null, null, this.getTagsForStencil(gn, 'address book', dt).join(' ')),
263			this.createVertexTemplateEntry(s + 'address_book;',
264					w * 40, h * 31, '', 'Address Book (small)', null, null, this.getTagsForStencil(gn, 'address book small', dt).join(' ')),
265			this.createVertexTemplateEntry(s + 'anti_spam;',
266					w * 55, h * 47, '', 'Anti-Spam', null, null, this.getTagsForStencil(gn, 'anti spam', dt).join(' ')),
267			this.createVertexTemplateEntry(s + 'application_android;',
268					w * 60, h * 51, '', 'Application Android', null, null, this.getTagsForStencil(gn, 'application android', dt).join(' ')),
269			this.createVertexTemplateEntry(s + 'application_generic;',
270					w * 53, h * 40, '', 'Application Generic', null, null, this.getTagsForStencil(gn, 'application generic', dt).join(' ')),
271			this.createVertexTemplateEntry(s + 'application_generic;',
272					w * 40, h * 30, '', 'Application Generic (small)', null, null, this.getTagsForStencil(gn, 'application generic small', dt).join(' ')),
273			this.createVertexTemplateEntry(s + 'application_hybrid;',
274					w * 59, h * 44, '', 'Application Hybrid', null, null, this.getTagsForStencil(gn, 'application hybrid', dt).join(' ')),
275			this.createVertexTemplateEntry(s + 'application_ios;',
276					w * 59, h * 49, '', 'Application iOS', null, null, this.getTagsForStencil(gn, 'application ios', dt).join(' ')),
277			this.createVertexTemplateEntry(s + 'application_web;',
278					w * 56, h * 49, '', 'Application Web', null, null, this.getTagsForStencil(gn, 'application web', dt).join(' ')),
279			this.createVertexTemplateEntry(s + 'application_windows;',
280					w * 59, h * 47, '', 'Application Windows', null, null, this.getTagsForStencil(gn, 'application windows', dt).join(' ')),
281			this.createVertexTemplateEntry(s + 'app_for_office;',
282					w * 53, h * 40, '', 'App for Office', null, null, this.getTagsForStencil(gn, 'app for office', dt).join(' ')),
283			this.createVertexTemplateEntry(s + 'app_for_sharepoint;',
284					w * 53, h * 40, '', 'App For SharePoint', null, null, this.getTagsForStencil(gn, 'app for sharepoint', dt).join(' ')),
285			this.createVertexTemplateEntry(s + 'app_part;',
286					w * 46, h * 45, '', 'App Part', null, null, this.getTagsForStencil(gn, 'app part', dt).join(' ')),
287			this.createVertexTemplateEntry(s + 'archive;',
288					w * 35, h * 55, '', 'Archive', null, null, this.getTagsForStencil(gn, 'archive', dt).join(' ')),
289			this.createVertexTemplateEntry(s + 'attachment;',
290					w * 22, h * 44, '', 'Attachment', null, null, this.getTagsForStencil(gn, 'attachment', dt).join(' ')),
291			this.createVertexTemplateEntry(s + 'backup_local;',
292					w * 48, h * 44, '', 'Backup Local', null, null, this.getTagsForStencil(gn, 'backup local', dt).join(' ')),
293			this.createVertexTemplateEntry(s + 'backup_online;',
294					w * 55, h * 60, '', 'Backup Online', null, null, this.getTagsForStencil(gn, 'backup online', dt).join(' ')),
295			this.createVertexTemplateEntry(s + 'bandwidth;',
296					w * 45, h * 45, '', 'Bandwidth', null, null, this.getTagsForStencil(gn, 'bandwidth', dt).join(' ')),
297			this.createVertexTemplateEntry(s + 'bandwidth_calculator;',
298					w * 49, h * 53, '', 'Bandwidth Calculator', null, null, this.getTagsForStencil(gn, 'bandwidth calculator', dt).join(' ')),
299			this.createVertexTemplateEntry(s + 'best_practices;',
300					w * 53, h * 53, '', 'Best Practices', null, null, this.getTagsForStencil(gn, 'best practices', dt).join(' ')),
301			this.createVertexTemplateEntry(s + 'book_journal;',
302					w * 41, h * 49, '', 'Book, Journal', null, null, this.getTagsForStencil(gn, 'book journal', dt).join(' ')),
303			this.createVertexTemplateEntry(s + 'calculator;',
304					w * 32, h * 46, '', 'Calculator', null, null, this.getTagsForStencil(gn, 'calculator', dt).join(' ')),
305			this.createVertexTemplateEntry(s + 'calendar;',
306					w * 53, h * 49, '', 'Calendar', null, null, this.getTagsForStencil(gn, 'calendar', dt).join(' ')),
307			this.createVertexTemplateEntry(s + 'clipboard;',
308					w * 40, h * 52, '', 'Clipboard', null, null, this.getTagsForStencil(gn, 'clipboard', dt).join(' ')),
309			this.createVertexTemplateEntry(s + 'clipboard;',
310					w * 30, h * 39, '', 'Clipboard (small)', null, null, this.getTagsForStencil(gn, 'clipboard small', dt).join(' ')),
311			this.createVertexTemplateEntry(s + 'clock;',
312					w * 45, h * 45, '', 'Clock', null, null, this.getTagsForStencil(gn, 'clock', dt).join(' ')),
313			this.createVertexTemplateEntry(s + 'clock;',
314					w * 35, h * 35, '', 'Clock (small)', null, null, this.getTagsForStencil(gn, 'clock small', dt).join(' ')),
315			this.createVertexTemplateEntry(s + 'column;',
316					w * 52, h * 43, '', 'Column', null, null, this.getTagsForStencil(gn, 'column', dt).join(' ')),
317			this.createVertexTemplateEntry(s + 'connector;',
318					w * 44, h * 32, '', 'Connector', null, null, this.getTagsForStencil(gn, 'connector', dt).join(' ')),
319			this.createVertexTemplateEntry(s + 'connector;',
320					w * 33, h * 24, '', 'Connector (small)', null, null, this.getTagsForStencil(gn, 'connector', dt).join(' ')),
321			this.createVertexTemplateEntry(s + 'contacts;',
322					w * 53, h * 39, '', 'Contacts', null, null, this.getTagsForStencil(gn, 'contacts', dt).join(' ')),
323			this.createVertexTemplateEntry(s + 'content_type;',
324					w * 53, h * 40, '', 'Content Type', null, null, this.getTagsForStencil(gn, 'content type', dt).join(' ')),
325			this.createVertexTemplateEntry(s + 'credit_card;',
326					w * 55, h * 36, '', 'Credit Card', null, null, this.getTagsForStencil(gn, 'credit card', dt).join(' ')),
327			this.createVertexTemplateEntry(s + 'document;',
328					w * 40, h * 47, '', 'Document', null, null, this.getTagsForStencil(gn, 'document', dt).join(' ')),
329			this.createVertexTemplateEntry(s + 'document;',
330					w * 30, h * 35, '', 'Document (small)', null, null, this.getTagsForStencil(gn, 'document', dt).join(' ')),
331			this.createVertexTemplateEntry(s + 'documents;',
332					w * 46, h * 54, '', 'Documents', null, null, this.getTagsForStencil(gn, 'documents', dt).join(' ')),
333			this.createVertexTemplateEntry(s + 'documents_shared;',
334					w * 58, h * 59, '', 'Documents Shared', null, null, this.getTagsForStencil(gn, 'documents shared', dt).join(' ')),
335			this.createVertexTemplateEntry(s + 'document_blank;',
336					w * 40, h * 47, '', 'Document Blank', null, null, this.getTagsForStencil(gn, 'document blank', dt).join(' ')),
337			this.createVertexTemplateEntry(s + 'document_blank;',
338					w * 30, h * 35, '', 'Document Blank (small)', null, null, this.getTagsForStencil(gn, 'document blank', dt).join(' ')),
339			this.createVertexTemplateEntry(s + 'document_shared;',
340					w * 52, h * 53, '', 'Document Shared', null, null, this.getTagsForStencil(gn, 'document shared', dt).join(' ')),
341			this.createVertexTemplateEntry(s + 'download;',
342					w * 48, h * 56, '', 'Download', null, null, this.getTagsForStencil(gn, 'download', dt).join(' ')),
343			this.createVertexTemplateEntry(s + 'email;',
344					w * 47, h * 36, '', 'Email', null, null, this.getTagsForStencil(gn, 'email', dt).join(' ')),
345			this.createVertexTemplateEntry(s + 'email;',
346					w * 31, h * 24, '', 'Email (small)', null, null, this.getTagsForStencil(gn, 'email', dt).join(' ')),
347			this.createVertexTemplateEntry(s + 'email_approved;',
348					w * 56, h * 46, '', 'Email Approved', null, null, this.getTagsForStencil(gn, 'email approved', dt).join(' ')),
349			this.createVertexTemplateEntry(s + 'email_expired;',
350					w * 56, h * 46, '', 'Email Expired', null, null, this.getTagsForStencil(gn, 'email expired', dt).join(' ')),
351			this.createVertexTemplateEntry(s + 'email_rejected;',
352					w * 55, h * 45, '', 'Email Rejected', null, null, this.getTagsForStencil(gn, 'email rejected', dt).join(' ')),
353			this.createVertexTemplateEntry(s + 'file_key;',
354					w * 48, h * 53, '', 'File Key', null, null, this.getTagsForStencil(gn, 'file key', dt).join(' ')),
355			this.createVertexTemplateEntry(s + 'firewall;',
356					w * 47, h * 43, '', 'Firewall', null, null, this.getTagsForStencil(gn, 'firewall', dt).join(' ')),
357			this.createVertexTemplateEntry(s2 + 'firewall;fillColor=#2072B8;',
358					w * 47, h * 43, '', 'Firewall (blue)', null, null, this.getTagsForStencil(gn, 'firewall', dt).join(' ')),
359			this.createVertexTemplateEntry(s2 + 'firewall;fillColor=#DA4026;',
360					w * 47, h * 43, '', 'Firewall (orange)', null, null, this.getTagsForStencil(gn, 'firewall', dt).join(' ')),
361			this.createVertexTemplateEntry(s2 + 'firewall;fillColor=#7FBA42;',
362					w * 47, h * 43, '', 'Firewall (green)', null, null, this.getTagsForStencil(gn, 'firewall', dt).join(' ')),
363			this.createVertexTemplateEntry(s2 + 'firewall;fillColor=#CCCBCB;',
364					w * 47, h * 43, '', 'Firewall (ghosted)', null, null, this.getTagsForStencil(gn, 'firewall', dt).join(' ')),
365			this.createVertexTemplateEntry(s + 'folder;',
366					w * 50, h * 45, '', 'Folder', null, null, this.getTagsForStencil(gn, 'folder', dt).join(' ')),
367			this.createVertexTemplateEntry(s2 + 'folder;fillColor=#2072B8;',
368					w * 50, h * 45, '', 'Folder (blue)', null, null, this.getTagsForStencil(gn, 'folder', dt).join(' ')),
369			this.createVertexTemplateEntry(s2 + 'folder;fillColor=#DA4026;',
370					w * 50, h * 45, '', 'Folder (orange)', null, null, this.getTagsForStencil(gn, 'folder', dt).join(' ')),
371			this.createVertexTemplateEntry(s2 + 'folder;fillColor=#7FBA42;',
372					w * 50, h * 45, '', 'Folder (green)', null, null, this.getTagsForStencil(gn, 'folder', dt).join(' ')),
373			this.createVertexTemplateEntry(s2 + 'folder;fillColor=#CCCBCB;',
374					w * 50, h * 45, '', 'Folder (ghosted)', null, null, this.getTagsForStencil(gn, 'folder', dt).join(' ')),
375			this.createVertexTemplateEntry(s + 'folder;',
376					w * 33, h * 30, '', 'Folder (small)', null, null, this.getTagsForStencil(gn, 'folder', dt).join(' ')),
377			this.createVertexTemplateEntry(s + 'folders;',
378					w * 57, h * 53, '', 'Folders', null, null, this.getTagsForStencil(gn, 'folders', dt).join(' ')),
379			this.createVertexTemplateEntry(s + 'folder_open;',
380					w * 56, h * 43, '', 'Folder, Open', null, null, this.getTagsForStencil(gn, 'folder open', dt).join(' ')),
381			this.createVertexTemplateEntry(s + 'folder_public;',
382					w * 58, h * 52, '', 'Folder, Public', null, null, this.getTagsForStencil(gn, 'folder public', dt).join(' ')),
383			this.createVertexTemplateEntry(s + 'folder_shared;',
384					w * 54, h * 52, '', 'Folder, Shared', null, null, this.getTagsForStencil(gn, 'folder shared', dt).join(' ')),
385			this.createVertexTemplateEntry(s + 'form;',
386					w * 56, h * 49, '', 'Form', null, null, this.getTagsForStencil(gn, 'form', dt).join(' ')),
387			this.createVertexTemplateEntry(s + 'get_started;',
388					w * 42, h * 52, '', 'Get Started', null, null, this.getTagsForStencil(gn, 'get started', dt).join(' ')),
389			this.createVertexTemplateEntry(s + 'globe_internet;',
390					w * 49, h * 49, '', 'Globe, Internet', null, null, this.getTagsForStencil(gn, 'globe internet', dt).join(' ')),
391			this.createVertexTemplateEntry(s + 'help;',
392					w * 49, h * 49, '', 'Help', null, null, this.getTagsForStencil(gn, 'help', dt).join(' ')),
393			this.createVertexTemplateEntry(s + 'help;',
394					w * 38, h * 38, '', 'Help (small)', null, null, this.getTagsForStencil(gn, 'help', dt).join(' ')),
395			this.createVertexTemplateEntry(s + 'home;',
396					w * 51, h * 50, '', 'Home', null, null, this.getTagsForStencil(gn, 'home', dt).join(' ')),
397			this.createVertexTemplateEntry(s2 + 'home;fillColor=#2072B8;',
398					w * 51, h * 50, '', 'Home (blue)', null, null, this.getTagsForStencil(gn, 'home', dt).join(' ')),
399			this.createVertexTemplateEntry(s2 + 'home;fillColor=#DA4026;',
400					w * 51, h * 50, '', 'Home (orange)', null, null, this.getTagsForStencil(gn, 'home', dt).join(' ')),
401			this.createVertexTemplateEntry(s2 + 'home;fillColor=#7FBA42;',
402					w * 51, h * 50, '', 'Home (green)', null, null, this.getTagsForStencil(gn, 'home', dt).join(' ')),
403			this.createVertexTemplateEntry(s2 + 'home;fillColor=#CCCBCB;',
404					w * 51, h * 50, '', 'Home (ghosted)', null, null, this.getTagsForStencil(gn, 'home', dt).join(' ')),
405			this.createVertexTemplateEntry(s + 'home;',
406					w * 39, h * 38, '', 'Home (small)', null, null, this.getTagsForStencil(gn, 'home', dt).join(' ')),
407			this.createVertexTemplateEntry(s + 'home_page;',
408					w * 53, h * 43, '', 'Home Page', null, null, this.getTagsForStencil(gn, 'home page', dt).join(' ')),
409			this.createVertexTemplateEntry(s2 + 'home_page;fillColor=#2072B8;',
410					w * 53, h * 43, '', 'Home Page (blue)', null, null, this.getTagsForStencil(gn, 'home page', dt).join(' ')),
411			this.createVertexTemplateEntry(s2 + 'home_page;fillColor=#DA4026;',
412					w * 53, h * 43, '', 'Home Page (orange)', null, null, this.getTagsForStencil(gn, 'home page', dt).join(' ')),
413			this.createVertexTemplateEntry(s2 + 'home_page;fillColor=#7FBA42;',
414					w * 53, h * 43, '', 'Home Page (green)', null, null, this.getTagsForStencil(gn, 'home page', dt).join(' ')),
415			this.createVertexTemplateEntry(s2 + 'home_page;fillColor=#CCCBCB;',
416					w * 53, h * 43, '', 'Home Page (ghosted)', null, null, this.getTagsForStencil(gn, 'home page', dt).join(' ')),
417			this.createVertexTemplateEntry(s + 'hybrid;',
418					w * 58, h * 52, '', 'Hybrid', null, null, this.getTagsForStencil(gn, 'hybrid', dt).join(' ')),
419			this.createVertexTemplateEntry(s + 'input_output_filter;',
420					w * 46, h * 46, '', 'Input Output Filter', null, null, this.getTagsForStencil(gn, 'input output filter', dt).join(' ')),
421			this.createVertexTemplateEntry(s + 'install;',
422					w * 45, h * 52, '', 'Install', null, null, this.getTagsForStencil(gn, 'install', dt).join(' ')),
423			this.createVertexTemplateEntry(s + 'integration;',
424					w * 44, h * 43, '', 'Integration', null, null, this.getTagsForStencil(gn, 'integration', dt).join(' ')),
425			this.createVertexTemplateEntry(s + 'lab;',
426					w * 47, h * 50, '', 'Lab', null, null, this.getTagsForStencil(gn, 'lab', dt).join(' ')),
427			this.createVertexTemplateEntry(s + 'learn;',
428					w * 56, h * 57, '', 'Learn', null, null, this.getTagsForStencil(gn, 'learn', dt).join(' ')),
429			this.createVertexTemplateEntry(s + 'license;',
430					w * 45, h * 52, '', 'License', null, null, this.getTagsForStencil(gn, 'license', dt).join(' ')),
431			this.createVertexTemplateEntry(s + 'link;',
432					w * 61, h * 21, '', 'Link', null, null, this.getTagsForStencil(gn, 'link', dt).join(' ')),
433			this.createVertexTemplateEntry(s + 'list_library;',
434					w * 52, h * 48, '', 'List Library', null, null, this.getTagsForStencil(gn, 'list library', dt).join(' ')),
435			this.createVertexTemplateEntry(s + 'mailbox;',
436					w * 53, h * 49, '', 'Mailbox', null, null, this.getTagsForStencil(gn, 'mailbox', dt).join(' ')),
437			this.createVertexTemplateEntry(s + 'mailbox;',
438					w * 40, h * 38, '', 'Mailbox (small)', null, null, this.getTagsForStencil(gn, 'mailbox', dt).join(' ')),
439			this.createVertexTemplateEntry(s + 'mailbox2;',
440					w * 53, h * 49, '', 'Mailbox', null, null, this.getTagsForStencil(gn, 'mailbox2', dt).join(' ')),
441			this.createVertexTemplateEntry(s + 'mailbox2;',
442					w * 40, h * 38, '', 'Mailbox (small)', null, null, this.getTagsForStencil(gn, 'mailbox2', dt).join(' ')),
443			this.createVertexTemplateEntry(s + 'maintenance;',
444					w * 39, h * 56, '', 'Maintenance', null, null, this.getTagsForStencil(gn, 'maintenance', dt).join(' ')),
445			this.createVertexTemplateEntry(s + 'marketplace_shopping_bag;',
446					w * 36, h * 46, '', 'Marketplace, Shopping Bag', null, null, this.getTagsForStencil(gn, 'marketplace shopping bag', dt).join(' ')),
447			this.createVertexTemplateEntry(s + 'meets_requirements;',
448					w * 56, h * 53, '', 'Meets Requirements', null, null, this.getTagsForStencil(gn, 'meets requirements', dt).join(' ')),
449			this.createVertexTemplateEntry(s + 'migration;',
450					w * 59, h * 34, '', 'Migration', null, null, this.getTagsForStencil(gn, 'migration', dt).join(' ')),
451			this.createVertexTemplateEntry(s + 'moes;',
452					w * 40, h * 47, '', 'MOEs', null, null, this.getTagsForStencil(gn, 'moes', dt).join(' ')),
453			this.createVertexTemplateEntry(s + 'navigation;',
454					w * 53, h * 40, '', 'Navigation', null, null, this.getTagsForStencil(gn, 'navigation', dt).join(' ')),
455			this.createVertexTemplateEntry(s + 'node_generic;',
456					w * 46, h * 52, '', 'Node, Generic', null, null, this.getTagsForStencil(gn, 'node generic', dt).join(' ')),
457			this.createVertexTemplateEntry(s2 + 'node_generic;fillColor=#2072B8;',
458					w * 46, h * 52, '', 'Node, Generic (blue)', null, null, this.getTagsForStencil(gn, 'node generic', dt).join(' ')),
459			this.createVertexTemplateEntry(s2 + 'node_generic;fillColor=#DA4026;',
460					w * 46, h * 52, '', 'Node, Generic (orange)', null, null, this.getTagsForStencil(gn, 'node generic', dt).join(' ')),
461			this.createVertexTemplateEntry(s2 + 'node_generic;fillColor=#7FBA42;',
462					w * 46, h * 52, '', 'Node, Generic (green)', null, null, this.getTagsForStencil(gn, 'node generic', dt).join(' ')),
463			this.createVertexTemplateEntry(s2 + 'node_generic;fillColor=#CCCBCB;',
464					w * 46, h * 52, '', 'Node, Generic (ghosted)', null, null, this.getTagsForStencil(gn, 'node generic', dt).join(' ')),
465			this.createVertexTemplateEntry(s + 'office_installed;',
466					w * 58, h * 48, '', 'Office Installed', null, null, this.getTagsForStencil(gn, 'office installed', dt).join(' ')),
467			this.createVertexTemplateEntry(s + 'on_premises;',
468					w * 34, h * 55, '', 'On Premises', null, null, this.getTagsForStencil(gn, 'on premises', dt).join(' ')),
469			this.createVertexTemplateEntry(s + 'on_premises_directory;',
470					w * 50, h * 59, '', 'On Premises Directory', null, null, this.getTagsForStencil(gn, 'on premises directory', dt).join(' ')),
471			this.createVertexTemplateEntry(s + 'phishing;',
472					w * 59, h * 47, '', 'Phishing', null, null, this.getTagsForStencil(gn, 'phishing', dt).join(' ')),
473			this.createVertexTemplateEntry(s + 'pin;',
474					w * 24, h * 44, '', 'Pin', null, null, this.getTagsForStencil(gn, 'pin', dt).join(' ')),
475			this.createVertexTemplateEntry(s + 'platform_options;',
476					w * 58, h * 52, '', 'Platform Options', null, null, this.getTagsForStencil(gn, 'platform options', dt).join(' ')),
477			this.createVertexTemplateEntry(s + 'powershell;',
478					w * 45, h * 45, '', 'PowerShell', null, null, this.getTagsForStencil(gn, 'powershell', dt).join(' ')),
479			this.createVertexTemplateEntry(s + 'properties;',
480					w * 50, h * 49, '', 'Properties', null, null, this.getTagsForStencil(gn, 'properties', dt).join(' ')),
481			this.createVertexTemplateEntry(s + 'publish;',
482					w * 57, h * 48, '', 'Publish', null, null, this.getTagsForStencil(gn, 'publish', dt).join(' ')),
483			this.createVertexTemplateEntry(s + 'remote_access;',
484					w * 59, h * 41, '', 'Remote Access', null, null, this.getTagsForStencil(gn, 'remote access', dt).join(' ')),
485			this.createVertexTemplateEntry(s + 'script;',
486					w * 53, h * 49, '', 'Script', null, null, this.getTagsForStencil(gn, 'script', dt).join(' ')),
487			this.createVertexTemplateEntry(s + 'search;',
488					w * 49, h * 49, '', 'Search', null, null, this.getTagsForStencil(gn, 'search', dt).join(' ')),
489			this.createVertexTemplateEntry(s + 'search;',
490					w * 35, h * 35, '', 'Search (small)', null, null, this.getTagsForStencil(gn, 'search', dt).join(' ')),
491			this.createVertexTemplateEntry(s + 'service_application;',
492					w * 59, h * 48, '', 'Service Application', null, null, this.getTagsForStencil(gn, 'service application', dt).join(' ')),
493			this.createVertexTemplateEntry(s + 'settings;',
494					w * 48, h * 48, '', 'Settings', null, null, this.getTagsForStencil(gn, 'settings', dt).join(' ')),
495			this.createVertexTemplateEntry(s + 'settings_office_365;',
496					w * 48, h * 48, '', 'Settings, Office 365', null, null, this.getTagsForStencil(gn, 'settings office 365', dt).join(' ')),
497			this.createVertexTemplateEntry(s + 'settings_office_365;',
498					w * 31, h * 31, '', 'Settings, Office 365 (small)', null, null, this.getTagsForStencil(gn, 'settings office 365', dt).join(' ')),
499			this.createVertexTemplateEntry(s + 'sign_up;',
500					w * 51, h * 47, '', 'Sign Up', null, null, this.getTagsForStencil(gn, 'sign up', dt).join(' ')),
501			this.createVertexTemplateEntry(s + 'sound_file;',
502					w * 40, h * 50, '', 'Sound File', null, null, this.getTagsForStencil(gn, 'sound file', dt).join(' ')),
503			this.createVertexTemplateEntry(s + 'tasks;',
504					w * 40, h * 52, '', 'Tasks', null, null, this.getTagsForStencil(gn, 'tasks', dt).join(' ')),
505			this.createVertexTemplateEntry(s + 'technical_diagram;',
506					w * 50, h * 56, '', 'Technical Diagram', null, null, this.getTagsForStencil(gn, 'technical diagram', dt).join(' ')),
507			this.createVertexTemplateEntry(s + 'upgrade_application;',
508					w * 58, h * 42, '', 'Upgrade Application', null, null, this.getTagsForStencil(gn, 'upgrade application', dt).join(' ')),
509			this.createVertexTemplateEntry(s + 'upgrade_server;',
510					w * 39, h * 52, '', 'Upgrade Server', null, null, this.getTagsForStencil(gn, 'upgrade server', dt).join(' ')),
511			this.createVertexTemplateEntry(s + 'upgrade_site;',
512					w * 59, h * 48, '', 'Upgrade Site', null, null, this.getTagsForStencil(gn, 'upgrade site', dt).join(' ')),
513			this.createVertexTemplateEntry(s + 'upload;',
514					w * 48, h * 55, '', 'Upload', null, null, this.getTagsForStencil(gn, 'upload', dt).join(' ')),
515			this.createVertexTemplateEntry(s + 'video_form;',
516					w * 58, h * 49, '', 'Video Form', null, null, this.getTagsForStencil(gn, 'video form', dt).join(' ')),
517			this.createVertexTemplateEntry(s + 'video_play;',
518					w * 50, h * 40, '', 'Video Play', null, null, this.getTagsForStencil(gn, 'video play', dt).join(' ')),
519			this.createVertexTemplateEntry(s + 'voicemail;',
520					w * 53, h * 34, '', 'Voicemail', null, null, this.getTagsForStencil(gn, 'voicemail', dt).join(' ')),
521			this.createVertexTemplateEntry(s + 'voicemail_preview;',
522					w * 57, h * 52, '', 'Voicemail Preview', null, null, this.getTagsForStencil(gn, 'voicemail preview', dt).join(' ')),
523			this.createVertexTemplateEntry(s + 'walkthrough;',
524					w * 41, h * 58, '', 'Walkthrough', null, null, this.getTagsForStencil(gn, 'walkthrough', dt).join(' ')),
525			this.createVertexTemplateEntry(s + 'website;',
526					w * 59, h * 49, '', 'Website', null, null, this.getTagsForStencil(gn, 'website', dt).join(' ')),
527			this.createVertexTemplateEntry(s + 'web_conferencing;',
528					w * 60, h * 56, '', 'Web Conferencing', null, null, this.getTagsForStencil(gn, 'web conferencing', dt).join(' ')),
529			this.createVertexTemplateEntry(s + 'web_page;',
530					w * 50, h * 54, '', 'Web Page', null, null, this.getTagsForStencil(gn, 'web page', dt).join(' ')),
531			this.createVertexTemplateEntry(s + 'web_part;',
532					w * 45, h * 52, '', 'Web Part', null, null, this.getTagsForStencil(gn, 'web part', dt).join(' ')),
533			this.createVertexTemplateEntry(s + 'web_services;',
534					w * 60, h * 56, '', 'Web Services', null, null, this.getTagsForStencil(gn, 'web services', dt).join(' ')),
535			this.createVertexTemplateEntry(s + 'whats_new;',
536					w * 55, h * 38, '', 'Whats New', null, null, this.getTagsForStencil(gn, 'whats new', dt).join(' ')),
537			this.createVertexTemplateEntry(s + 'writing_pen;',
538					w * 54, h * 54, '', 'Writing, Pen', null, null, this.getTagsForStencil(gn, 'writing pen', dt).join(' ')),
539			this.createVertexTemplateEntry(s + 'writing_pencil;',
540					w * 50, h * 50, '', 'Writing, Pencil', null, null, this.getTagsForStencil(gn, 'writing pencil', dt).join(' '))
541		];
542
543		this.addPalette('officeConcepts', 'Office / Concepts', false, mxUtils.bind(this, function(content)
544				{
545					for (var i = 0; i < fns.length; i++)
546					{
547						content.appendChild(fns[i](content));
548					}
549		}));
550	};
551
552	Sidebar.prototype.addOfficeDatabasesPalette = function()
553	{
554		var s = 'sketch=0;shadow=0;dashed=0;html=1;strokeColor=none;fillColor=#505050;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.databases.';
555		var s2 = 'sketch=0;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.databases.';
556
557		// Space savers
558		var sb = this;
559		var gn = 'mxgraph.office.databases';
560		var dt = 'office database db ';
561
562		var w = 1.0;
563		var h = 1.0;
564
565		var fns =
566		[
567			this.createVertexTemplateEntry(s + 'address_book_store;',
568					w * 50, h * 54, '', 'Address Book Store', null, null, this.getTagsForStencil(gn, 'address_book_store', dt).join(' ')),
569			this.createVertexTemplateEntry(s + 'application_store;',
570					w * 49, h * 53, '', 'Application Store', null, null, this.getTagsForStencil(gn, 'application store', dt).join(' ')),
571			this.createVertexTemplateEntry(s + 'database;',
572					w * 35, h * 49, '', 'Database', null, null, this.getTagsForStencil(gn, '', dt).join(' ')),
573			this.createVertexTemplateEntry(s2 + 'database;fillColor=#2072B8;',
574					w * 35, h * 49, '', 'Database (blue)', null, null, this.getTagsForStencil(gn, '', dt).join(' ')),
575			this.createVertexTemplateEntry(s2 + 'database;fillColor=#DA4026;',
576					w * 35, h * 49, '', 'Database (orange)', null, null, this.getTagsForStencil(gn, '', dt).join(' ')),
577			this.createVertexTemplateEntry(s2 + 'database;fillColor=#7FBA42;',
578					w * 35, h * 49, '', 'Database (green)', null, null, this.getTagsForStencil(gn, '', dt).join(' ')),
579			this.createVertexTemplateEntry(s2 + 'database;fillColor=#CCCBCB;',
580					w * 35, h * 49, '', 'Database (ghosted)', null, null, this.getTagsForStencil(gn, '', dt).join(' ')),
581			this.createVertexTemplateEntry(s + 'database;',
582					w * 28, h * 38, '', 'Database (small)', null, null, this.getTagsForStencil(gn, '', dt).join(' ')),
583			this.createVertexTemplateEntry(s + 'database_availability_group;',
584					w * 59, h * 59, '', 'Database Availability Group', null, null, this.getTagsForStencil(gn, 'availability group', dt).join(' ')),
585			this.createVertexTemplateEntry(s + 'database_cube;',
586					w * 47, h * 52, '', 'Database Cube', null, null, this.getTagsForStencil(gn, 'cube', dt).join(' ')),
587			this.createVertexTemplateEntry(s2 + 'database_cube;fillColor=#2072B8;',
588					w * 47, h * 52, '', 'Database Cube (blue)', null, null, this.getTagsForStencil(gn, 'cube', dt).join(' ')),
589			this.createVertexTemplateEntry(s2 + 'database_cube;fillColor=#DA4026;',
590					w * 47, h * 52, '', 'Database Cube (orange)', null, null, this.getTagsForStencil(gn, 'cube', dt).join(' ')),
591			this.createVertexTemplateEntry(s2 + 'database_cube;fillColor=#7FBA42;',
592					w * 47, h * 52, '', 'Database Cube (green)', null, null, this.getTagsForStencil(gn, 'cube', dt).join(' ')),
593			this.createVertexTemplateEntry(s2 + 'database_cube;fillColor=#CCCBCB;',
594					w * 47, h * 52, '', 'Database Cube (ghosted)', null, null, this.getTagsForStencil(gn, 'cube', dt).join(' ')),
595			this.createVertexTemplateEntry(s + 'database_mini_1;',
596					w * 35, h * 27, '', 'Database, Mini', null, null, this.getTagsForStencil(gn, 'Mini', dt).join(' ')),
597			this.createVertexTemplateEntry(s2 + 'database_mini_1;fillColor=#2072B8;',
598					w * 35, h * 27, '', 'Database, Mini (blue)', null, null, this.getTagsForStencil(gn, 'Mini', dt).join(' ')),
599			this.createVertexTemplateEntry(s2 + 'database_mini_1;fillColor=#DA4026;',
600					w * 35, h * 27, '', 'Database, Mini (orange)', null, null, this.getTagsForStencil(gn, 'Mini', dt).join(' ')),
601			this.createVertexTemplateEntry(s2 + 'database_mini_1;fillColor=#7FBA42;',
602					w * 35, h * 27, '', 'Database, Mini (green)', null, null, this.getTagsForStencil(gn, 'Mini', dt).join(' ')),
603			this.createVertexTemplateEntry(s2 + 'database_mini_1;fillColor=#CCCBCB;',
604					w * 35, h * 27, '', 'Database, Mini (ghosted)', null, null, this.getTagsForStencil(gn, 'Mini', dt).join(' ')),
605			this.createVertexTemplateEntry(s + 'database_mini_2;',
606					w * 35, h * 42, '', 'Database, Mini', null, null, this.getTagsForStencil(gn, 'Mini', dt).join(' ')),
607			this.createVertexTemplateEntry(s2 + 'database_mini_2;fillColor=#2072B8;',
608					w * 35, h * 42, '', 'Database, Mini (blue)', null, null, this.getTagsForStencil(gn, 'Mini', dt).join(' ')),
609			this.createVertexTemplateEntry(s2 + 'database_mini_2;fillColor=#DA4026;',
610					w * 35, h * 42, '', 'Database, Mini (orange)', null, null, this.getTagsForStencil(gn, 'Mini', dt).join(' ')),
611			this.createVertexTemplateEntry(s2 + 'database_mini_2;fillColor=#7FBA42;',
612					w * 35, h * 42, '', 'Database, Mini (green)', null, null, this.getTagsForStencil(gn, 'Mini', dt).join(' ')),
613			this.createVertexTemplateEntry(s2 + 'database_mini_2;fillColor=#CCCBCB;',
614					w * 35, h * 42, '', 'Database, Mini (ghosted)', null, null, this.getTagsForStencil(gn, 'Mini', dt).join(' ')),
615			this.createVertexTemplateEntry(s + 'database_mini_3;',
616					w * 35, h * 57, '', 'Database, Mini', null, null, this.getTagsForStencil(gn, 'Mini', dt).join(' ')),
617			this.createVertexTemplateEntry(s2 + 'database_mini_3;fillColor=#2072B8;',
618					w * 35, h * 57, '', 'Database, Mini (blue)', null, null, this.getTagsForStencil(gn, 'Mini', dt).join(' ')),
619			this.createVertexTemplateEntry(s2 + 'database_mini_3;fillColor=#DA4026;',
620					w * 35, h * 57, '', 'Database, Mini (orange)', null, null, this.getTagsForStencil(gn, 'Mini', dt).join(' ')),
621			this.createVertexTemplateEntry(s2 + 'database_mini_3;fillColor=#7FBA42;',
622					w * 35, h * 57, '', 'Database, Mini (green)', null, null, this.getTagsForStencil(gn, 'Mini', dt).join(' ')),
623			this.createVertexTemplateEntry(s2 + 'database_mini_3;fillColor=#CCCBCB;',
624					w * 35, h * 57, '', 'Database, Mini (ghosted)', null, null, this.getTagsForStencil(gn, 'Mini', dt).join(' ')),
625			this.createVertexTemplateEntry(s + 'database_mirror;',
626					w * 60, h * 59, '', 'Database Mirror', null, null, this.getTagsForStencil(gn, 'mirror', dt).join(' ')),
627			this.createVertexTemplateEntry(s + 'database_mirror_witness_node;',
628					w * 60, h * 59, '', 'Database Mirror Witness Node', null, null, this.getTagsForStencil(gn, 'mirror witness node', dt).join(' ')),
629			this.createVertexTemplateEntry(s + 'database_partition_2;',
630					w * 57, h * 59, '', 'Database Partition', null, null, this.getTagsForStencil(gn, 'partition', dt).join(' ')),
631			this.createVertexTemplateEntry(s + 'database_partition_3;',
632					w * 57, h * 59, '', 'Database Partition', null, null, this.getTagsForStencil(gn, 'partition', dt).join(' ')),
633			this.createVertexTemplateEntry(s + 'database_partition_4;',
634					w * 57, h * 59, '', 'Database Partition', null, null, this.getTagsForStencil(gn, 'partition', dt).join(' ')),
635			this.createVertexTemplateEntry(s + 'database_partition_5;',
636					w * 57, h * 59, '', 'Database Partition', null, null, this.getTagsForStencil(gn, 'partition', dt).join(' ')),
637			this.createVertexTemplateEntry(s + 'database_public_folder;',
638					w * 53, h * 54, '', 'Database Public Folder', null, null, this.getTagsForStencil(gn, 'public folder', dt).join(' ')),
639			this.createVertexTemplateEntry(s + 'database_server;',
640					w * 43, h * 57, '', 'Database Server', null, null, this.getTagsForStencil(gn, 'server', dt).join(' ')),
641			this.createVertexTemplateEntry(s + 'database_server_blue;',
642					w * 43, h * 57, '', 'Database Server (blue)', null, null, this.getTagsForStencil(gn, 'server blue', dt).join(' ')),
643			this.createVertexTemplateEntry(s + 'database_server_orange;',
644					w * 43, h * 57, '', 'Database Server (orange)', null, null, this.getTagsForStencil(gn, 'server blue', dt).join(' ')),
645			this.createVertexTemplateEntry(s + 'database_server_green;',
646					w * 43, h * 57, '', 'Database Server (green)', null, null, this.getTagsForStencil(gn, 'server blue', dt).join(' ')),
647			this.createVertexTemplateEntry(s + 'database_server_ghosted;',
648					w * 43, h * 57, '', 'Database Server (ghosted)', null, null, this.getTagsForStencil(gn, 'server blue', dt).join(' ')),
649			this.createVertexTemplateEntry(s + 'mailbox_database;',
650					w * 53, h * 55, '', 'Mailbox Database', null, null, this.getTagsForStencil(gn, 'mailbox', dt).join(' ')),
651			this.createVertexTemplateEntry(s + 'monitoring_store;',
652					w * 58, h * 58, '', 'Monitoring Store', null, null, this.getTagsForStencil(gn, 'monitoring store', dt).join(' ')),
653			this.createVertexTemplateEntry(s + 'unified_contact_store;',
654					w * 54, h * 55, '', 'Unified Contact Store', null, null, this.getTagsForStencil(gn, 'unified contact store', dt).join(' ')),
655			this.createVertexTemplateEntry(s + 'web_store;',
656					w * 50, h * 54, '', 'Web Store', null, null, this.getTagsForStencil(gn, 'web store', dt).join(' '))
657		];
658
659		this.addPalette('officeDatabases', 'Office / Databases', false, mxUtils.bind(this, function(content)
660				{
661					for (var i = 0; i < fns.length; i++)
662					{
663						content.appendChild(fns[i](content));
664					}
665		}));
666	};
667
668	Sidebar.prototype.addOfficeDevicesPalette = function()
669	{
670		var s = 'sketch=0;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;fillColor=#505050;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.devices.';
671
672		// Space savers
673		var sb = this;
674		var gn = 'mxgraph.office.devices';
675		var dt = 'office device ';
676
677		var w = 1.0;
678		var h = 1.0;
679
680		var fns =
681		[
682			this.createVertexTemplateEntry(s + 'bluetooth;',
683					w * 56, h * 57, '', 'Bluetooth', null, null, this.getTagsForStencil(gn, 'bluetooth', dt).join(' ')),
684			this.createVertexTemplateEntry(s + 'cd_dvd;',
685					w * 49, h * 49, '', 'CD, DVD', null, null, this.getTagsForStencil(gn, 'cd dvd compact disc digital video drive', dt).join(' ')),
686			this.createVertexTemplateEntry(s + 'cell_phone_android_proportional;',
687					w * 17, h * 31, '', 'Cell Phone, Android, Proportional', null, null, this.getTagsForStencil(gn, 'cell phone android proportional', dt).join(' ')),
688			this.createVertexTemplateEntry(s + 'cell_phone_android_standalone;',
689					w * 24, h * 44, '', 'Cell Phone, Android, Standalone', null, null, this.getTagsForStencil(gn, 'cell phone android standalone', dt).join(' ')),
690			this.createVertexTemplateEntry(s + 'cell_phone_generic;',
691					w * 26, h * 47, '', 'Cell Phone, Generic', null, null, this.getTagsForStencil(gn, 'cell phone generic', dt).join(' ')),
692			this.createVertexTemplateEntry(s + 'cell_phone_generic;',
693					w * 21, h * 37, '', 'Cell Phone, Generic (small)', null, null, this.getTagsForStencil(gn, 'cell phone generic small', dt).join(' ')),
694			this.createVertexTemplateEntry(s + 'cell_phone_iphone_proportional;',
695					w * 17, h * 29, '', 'Cell Phone, iPhone, Proportional', null, null, this.getTagsForStencil(gn, 'cell phone iphone proportional', dt).join(' ')),
696			this.createVertexTemplateEntry(s + 'cell_phone_iphone_standalone;',
697					w * 25, h * 42, '', 'Cell Phone, iPhone, Standalone', null, null, this.getTagsForStencil(gn, 'cell phone iphone standalone', dt).join(' ')),
698			this.createVertexTemplateEntry(s + 'cell_phone_windows_phone_proportional;',
699					w * 16, h * 29, '', 'Cell Phone, Windows Phone, Proportional', null, null, this.getTagsForStencil(gn, 'cell phone windows phone proportional', dt).join(' ')),
700			this.createVertexTemplateEntry(s + 'cell_phone_windows_phone_standalone;',
701					w * 24, h * 42, '', 'Cell Phone, Windows Phone, Standalone', null, null, this.getTagsForStencil(gn, 'cell phone windows standalone', dt).join(' ')),
702			this.createVertexTemplateEntry(s + 'data_jack;',
703					w * 47, h * 47, '', 'Data Jack', null, null, this.getTagsForStencil(gn, 'data jack', dt).join(' ')),
704			this.createVertexTemplateEntry(s + 'device_update_service;',
705					w * 50, h * 54, '', 'Device Update Service', null, null, this.getTagsForStencil(gn, 'device update service', dt).join(' ')),
706			this.createVertexTemplateEntry(s + 'fax;',
707					w * 57, h * 47, '', 'Fax', null, null, this.getTagsForStencil(gn, 'fax', dt).join(' ')),
708			this.createVertexTemplateEntry(s + 'hard_disk;',
709					w * 40, h * 54, '', 'Hard Disk', null, null, this.getTagsForStencil(gn, 'hard disk hdd drive', dt).join(' ')),
710			this.createVertexTemplateEntry(s + 'headset;',
711					w * 36, h * 48, '', 'Headset', null, null, this.getTagsForStencil(gn, 'headset', dt).join(' ')),
712			this.createVertexTemplateEntry(s + 'ipad_mini;',
713					w * 33, h * 47, '', 'iPad, Mini', null, null, this.getTagsForStencil(gn, 'ipad mini', dt).join(' ')),
714			this.createVertexTemplateEntry(s + 'ip_gateway;',
715					w * 59, h * 40, '', 'IP Gateway', null, null, this.getTagsForStencil(gn, 'ip gateway', dt).join(' ')),
716			this.createVertexTemplateEntry(s + 'ip_pbx;',
717					w * 59, h * 39, '', 'IP PBX', null, null, this.getTagsForStencil(gn, 'ip pbx', dt).join(' ')),
718			this.createVertexTemplateEntry(s + 'laptop;',
719					w * 58, h * 34, '', 'Laptop', null, null, this.getTagsForStencil(gn, 'laptop', dt).join(' ')),
720			this.createVertexTemplateEntry(s + 'lcd_monitor;',
721					w * 58, h * 48, '', 'LCD Monitor', null, null, this.getTagsForStencil(gn, 'lcd monitor', dt).join(' ')),
722			this.createVertexTemplateEntry(s + 'lcd_monitor;',
723					w * 39, h * 32, '', 'LCD Monitor (small)', null, null, this.getTagsForStencil(gn, 'lcd monitor small', dt).join(' ')),
724			this.createVertexTemplateEntry(s + 'load_balancer;',
725					w * 59, h * 39, '', 'Load Balancer', null, null, this.getTagsForStencil(gn, 'load balancer', dt).join(' ')),
726			this.createVertexTemplateEntry(s + 'mac_client;',
727					w * 58, h * 48, '', 'Mac Client', null, null, this.getTagsForStencil(gn, 'mac client', dt).join(' ')),
728			this.createVertexTemplateEntry(s + 'management_console;',
729					w * 58, h * 48, '', 'Management Console', null, null, this.getTagsForStencil(gn, 'management console', dt).join(' ')),
730			this.createVertexTemplateEntry(s + 'microphone;',
731					w * 53, h * 37, '', 'Microphone', null, null, this.getTagsForStencil(gn, 'microphone', dt).join(' ')),
732			this.createVertexTemplateEntry(s + 'modem;',
733					w * 54, h * 34, '', 'Modem', null, null, this.getTagsForStencil(gn, 'modem', dt).join(' ')),
734			this.createVertexTemplateEntry(s + 'nic;',
735					w * 57, h * 38, '', 'NIC', null, null, this.getTagsForStencil(gn, 'nic', dt).join(' ')),
736			this.createVertexTemplateEntry(s + 'phone_digital;',
737					w * 49, h * 42, '', 'Phone, Digital', null, null, this.getTagsForStencil(gn, 'phone digital', dt).join(' ')),
738			this.createVertexTemplateEntry(s + 'phone_traditional;',
739					w * 48, h * 40, '', 'Phone, Traditional', null, null, this.getTagsForStencil(gn, 'phone traditional', dt).join(' ')),
740			this.createVertexTemplateEntry(s + 'phone_usb;',
741					w * 58, h * 51, '', 'Phone, USB', null, null, this.getTagsForStencil(gn, 'phone usb', dt).join(' ')),
742			this.createVertexTemplateEntry(s + 'phone_voip;',
743					w * 57, h * 51, '', 'Phone, VoIP', null, null, this.getTagsForStencil(gn, 'phone voip voice over internet protocol', dt).join(' ')),
744			this.createVertexTemplateEntry(s + 'printer;',
745					w * 56, h * 47, '', 'Printer', null, null, this.getTagsForStencil(gn, 'printer', dt).join(' ')),
746			this.createVertexTemplateEntry(s + 'roundtable;',
747					w * 50, h * 58, '', 'Roundtable', null, null, this.getTagsForStencil(gn, 'roundtable', dt).join(' ')),
748			this.createVertexTemplateEntry(s + 'router;',
749					w * 55, h * 56, '', 'Router', null, null, this.getTagsForStencil(gn, 'router', dt).join(' ')),
750			this.createVertexTemplateEntry(s + 'session_border_controller;',
751					w * 59, h * 52, '', 'Session Border Controller', null, null, this.getTagsForStencil(gn, 'session border controller', dt).join(' ')),
752			this.createVertexTemplateEntry(s + 'shadowed_router;',
753					w * 59, h * 59, '', 'Shadowed Router', null, null, this.getTagsForStencil(gn, 'shadowed router', dt).join(' ')),
754			this.createVertexTemplateEntry(s + 'stylus;',
755					w * 57, h * 57, '', 'Stylus', null, null, this.getTagsForStencil(gn, 'stylus', dt).join(' ')),
756			this.createVertexTemplateEntry(s + 'switch;',
757					w * 55, h * 18, '', 'Switch', null, null, this.getTagsForStencil(gn, 'switch', dt).join(' ')),
758			this.createVertexTemplateEntry(s + 'tablet_android;',
759					w * 56, h * 37, '', 'Tablet, Android', null, null, this.getTagsForStencil(gn, 'tablet android', dt).join(' ')),
760			this.createVertexTemplateEntry(s + 'tablet_ipad;',
761					w * 39, h * 52, '', 'Tablet, iPad', null, null, this.getTagsForStencil(gn, 'tablet ipad', dt).join(' ')),
762			this.createVertexTemplateEntry(s + 'tablet_windows_7inch;',
763					w * 34, h * 47, '', 'Tablet, Windows, 7inch', null, null, this.getTagsForStencil(gn, 'tablet windows seven inch', dt).join(' ')),
764			this.createVertexTemplateEntry(s + 'tablet_windows_8;',
765					w * 56, h * 35, '', 'Tablet, Windows 8', null, null, this.getTagsForStencil(gn, 'tablet windows eight', dt).join(' ')),
766			this.createVertexTemplateEntry(s + 'tv;',
767					w * 59, h * 45, '', 'TV', null, null, this.getTagsForStencil(gn, 'tv television', dt).join(' ')),
768			this.createVertexTemplateEntry(s + 'video_camera;',
769					w * 52, h * 25, '', 'Video Camera', null, null, this.getTagsForStencil(gn, 'video camera', dt).join(' ')),
770			this.createVertexTemplateEntry(s + 'video_gateway;',
771					w * 59, h * 41, '', 'Video Gateway', null, null, this.getTagsForStencil(gn, 'video gateway', dt).join(' ')),
772			this.createVertexTemplateEntry(s + 'webcam;',
773					w * 40, h * 50, '', 'Webcam', null, null, this.getTagsForStencil(gn, 'webcam', dt).join(' ')),
774			this.createVertexTemplateEntry(s + 'webcam_hd;',
775					w * 56, h * 59, '', 'Webcam, HD', null, null, this.getTagsForStencil(gn, 'webcam hd high definition', dt).join(' ')),
776			this.createVertexTemplateEntry(s + 'workstation;',
777					w * 53, h * 56, '', 'Workstation', null, null, this.getTagsForStencil(gn, 'workstation', dt).join(' ')),
778			this.createVertexTemplateEntry(s + 'workstation_pc;',
779					w * 53, h * 59, '', 'Workstation, PC', null, null, this.getTagsForStencil(gn, 'workstation pc personal computer', dt).join(' ')),
780			this.createVertexTemplateEntry(s + 'workstation_visual_studio;',
781					w * 53, h * 59, '', 'Workstation, Visual Studio', null, null, this.getTagsForStencil(gn, 'workstation visual studio', dt).join(' '))
782		];
783
784		this.addPalette('officeDevices', 'Office / Devices', false, mxUtils.bind(this, function(content)
785				{
786					for (var i = 0; i < fns.length; i++)
787					{
788						content.appendChild(fns[i](content));
789					}
790		}));
791	};
792
793	Sidebar.prototype.addOfficeSecurityPalette = function()
794	{
795		var s = 'sketch=0;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;fillColor=#505050;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.security.';
796		var s2 = 'sketch=0;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.security.';
797
798		// Space savers
799		var sb = this;
800		var gn = 'mxgraph.office.security';
801		var dt = 'office security ';
802
803		var w = 1.0;
804		var h = 1.0;
805
806		var fns =
807		[
808			this.createVertexTemplateEntry(s + 'active_directory;',
809					w * 53, h * 46, '', 'Active Directory', null, null, this.getTagsForStencil(gn, 'active directory', dt).join(' ')),
810			this.createVertexTemplateEntry(s + 'address_book_policies;',
811					w * 55, h * 53, '', 'Address Book Policies', null, null, this.getTagsForStencil(gn, 'address book policies', dt).join(' ')),
812			this.createVertexTemplateEntry(s + 'certificate;',
813					w * 58, h * 50, '', 'Certificate', null, null, this.getTagsForStencil(gn, 'certificate', dt).join(' ')),
814			this.createVertexTemplateEntry(s + 'certificate;',
815					w * 39, h * 33, '', 'Certificate (small)', null, null, this.getTagsForStencil(gn, 'certificate small', dt).join(' ')),
816			this.createVertexTemplateEntry(s + 'credentials;',
817					w * 56, h * 58, '', 'Credentials', null, null, this.getTagsForStencil(gn, 'credentials', dt).join(' ')),
818			this.createVertexTemplateEntry(s + 'domain;',
819					w * 53, h * 46, '', 'Domain', null, null, this.getTagsForStencil(gn, 'domain', dt).join(' ')),
820			this.createVertexTemplateEntry(s + 'domain;',
821					w * 41, h * 36, '', 'Domain (small)', null, null, this.getTagsForStencil(gn, 'domain', dt).join(' ')),
822			this.createVertexTemplateEntry(s + 'email_address_policy;',
823					w * 55, h * 53, '', 'Email Address Policy', null, null, this.getTagsForStencil(gn, 'email address policy', dt).join(' ')),
824			this.createVertexTemplateEntry(s + 'federation_service;',
825					w * 58, h * 59, '', 'Federation Service', null, null, this.getTagsForStencil(gn, 'federation service', dt).join(' ')),
826			this.createVertexTemplateEntry(s + 'federation_trust;',
827					w * 58, h * 59, '', 'Federation Trust', null, null, this.getTagsForStencil(gn, 'federation trust', dt).join(' ')),
828			this.createVertexTemplateEntry(s + 'irm_protected_message;',
829					w * 56, h * 50, '', 'IRM-Protected Message', null, null, this.getTagsForStencil(gn, 'irm protected message', dt).join(' ')),
830			this.createVertexTemplateEntry(s + 'key_permissions;',
831					w * 25, h * 53, '', 'Key, Permissions', null, null, this.getTagsForStencil(gn, 'key permissions', dt).join(' ')),
832			this.createVertexTemplateEntry(s2 + 'key_permissions;fillColor=#2072B8;',
833					w * 25, h * 53, '', 'Key, Permissions (blue)', null, null, this.getTagsForStencil(gn, 'key permissions', dt).join(' ')),
834			this.createVertexTemplateEntry(s2 + 'key_permissions;fillColor=#DA4026;',
835					w * 25, h * 53, '', 'Key, Permissions (orange)', null, null, this.getTagsForStencil(gn, 'key permissions', dt).join(' ')),
836			this.createVertexTemplateEntry(s2 + 'key_permissions;fillColor=#7FBA42;',
837					w * 25, h * 53, '', 'Key, Permissions (green)', null, null, this.getTagsForStencil(gn, 'key permissions', dt).join(' ')),
838			this.createVertexTemplateEntry(s2 + 'key_permissions;fillColor=#CCCBCB;',
839					w * 25, h * 53, '', 'Key, Permissions (ghosted)', null, null, this.getTagsForStencil(gn, 'key permissions', dt).join(' ')),
840			this.createVertexTemplateEntry(s + 'key_permissions;',
841					w * 19, h * 40, '', 'Key, Permissions (small)', null, null, this.getTagsForStencil(gn, 'key permissions small', dt).join(' ')),
842			this.createVertexTemplateEntry(s + 'lock_protected;',
843					w * 38, h * 52, '', 'Lock, Protected', null, null, this.getTagsForStencil(gn, 'lock protected', dt).join(' ')),
844			this.createVertexTemplateEntry(s2 + 'lock_protected;fillColor=#2072B8;',
845					w * 38, h * 52, '', 'Lock, Protected (blue)', null, null, this.getTagsForStencil(gn, 'lock protected', dt).join(' ')),
846			this.createVertexTemplateEntry(s2 + 'lock_protected;fillColor=#DA4026;',
847					w * 38, h * 52, '', 'Lock, Protected (orange)', null, null, this.getTagsForStencil(gn, 'lock protected', dt).join(' ')),
848			this.createVertexTemplateEntry(s2 + 'lock_protected;fillColor=#7FBA42;',
849					w * 38, h * 52, '', 'Lock, Protected (green)', null, null, this.getTagsForStencil(gn, 'lock protected', dt).join(' ')),
850			this.createVertexTemplateEntry(s2 + 'lock_protected;fillColor=#CCCBCB;',
851					w * 38, h * 52, '', 'Lock, Protected (ghosted)', null, null, this.getTagsForStencil(gn, 'lock protected', dt).join(' ')),
852			this.createVertexTemplateEntry(s + 'lock_protected;',
853					w * 28, h * 37, '', 'Lock, Protected (small)', null, null, this.getTagsForStencil(gn, 'lock protected small', dt).join(' ')),
854			this.createVertexTemplateEntry(s + 'lock_unprotected;',
855					w * 38, h * 55, '', 'Lock, Unprotected', null, null, this.getTagsForStencil(gn, 'lock unprotected', dt).join(' ')),
856			this.createVertexTemplateEntry(s2 + 'lock_unprotected;fillColor=#2072B8;',
857					w * 38, h * 55, '', 'Lock, Unprotected (blue)', null, null, this.getTagsForStencil(gn, 'lock unprotected', dt).join(' ')),
858			this.createVertexTemplateEntry(s2 + 'lock_unprotected;fillColor=#DA4026;',
859					w * 38, h * 55, '', 'Lock, Unprotected (orange)', null, null, this.getTagsForStencil(gn, 'lock unprotected', dt).join(' ')),
860			this.createVertexTemplateEntry(s2 + 'lock_unprotected;fillColor=#7FBA42;',
861					w * 38, h * 55, '', 'Lock, Unprotected (green)', null, null, this.getTagsForStencil(gn, 'lock unprotected', dt).join(' ')),
862			this.createVertexTemplateEntry(s2 + 'lock_unprotected;fillColor=#CCCBCB;',
863					w * 38, h * 55, '', 'Lock, Unprotected (ghosted)', null, null, this.getTagsForStencil(gn, 'lock unprotected', dt).join(' ')),
864			this.createVertexTemplateEntry(s + 'lock_unprotected;',
865					w * 28, h * 40, '', 'Lock, Unprotected (small)', null, null, this.getTagsForStencil(gn, 'lock unprotected small', dt).join(' ')),
866			this.createVertexTemplateEntry(s + 'lock_with_key_security;',
867					w * 47, h * 58, '', 'Lock With Key, Security', null, null, this.getTagsForStencil(gn, 'lock with key security', dt).join(' ')),
868			this.createVertexTemplateEntry(s + 'lock_with_key_security_blue;',
869					w * 47, h * 58, '', 'Lock With Key, Security (blue)', null, null, this.getTagsForStencil(gn, 'lock with key security', dt).join(' ')),
870			this.createVertexTemplateEntry(s + 'lock_with_key_security_orange;',
871					w * 47, h * 58, '', 'Lock With Key, Security (orange)', null, null, this.getTagsForStencil(gn, 'lock with key security', dt).join(' ')),
872			this.createVertexTemplateEntry(s + 'lock_with_key_security_green;',
873					w * 47, h * 58, '', 'Lock With Key, Security (green)', null, null, this.getTagsForStencil(gn, 'lock with key security', dt).join(' ')),
874			this.createVertexTemplateEntry(s + 'lock_with_key_security_ghosted;',
875					w * 47, h * 58, '', 'Lock With Key, Security (ghosted)', null, null, this.getTagsForStencil(gn, 'lock with key security', dt).join(' ')),
876			this.createVertexTemplateEntry(s + 'management_role;',
877					w * 45, h * 45, '', 'Management Role', null, null, this.getTagsForStencil(gn, 'management role', dt).join(' ')),
878			this.createVertexTemplateEntry(s + 'policy;',
879					w * 53, h * 49, '', 'Policy', null, null, this.getTagsForStencil(gn, 'policy', dt).join(' ')),
880			this.createVertexTemplateEntry(s + 'policy;',
881					w * 39, h * 36, '', 'Policy (small)', null, null, this.getTagsForStencil(gn, 'policy small', dt).join(' ')),
882			this.createVertexTemplateEntry(s + 'protected_voice_mail;',
883					w * 59, h * 51, '', 'Protected Voice Mail', null, null, this.getTagsForStencil(gn, 'protected voice mail', dt).join(' ')),
884			this.createVertexTemplateEntry(s + 'retention_policy;',
885					w * 54, h * 55, '', 'Retention Policy', null, null, this.getTagsForStencil(gn, 'retention policy', dt).join(' ')),
886			this.createVertexTemplateEntry(s + 'retention_policy_tag;',
887					w * 56, h * 58, '', 'Retention Policy Tag', null, null, this.getTagsForStencil(gn, 'retention policy tag', dt).join(' ')),
888			this.createVertexTemplateEntry(s + 'role_assignment_policy;',
889					w * 55, h * 54, '', 'Role Assignment Policy', null, null, this.getTagsForStencil(gn, 'role assignment policy', dt).join(' ')),
890			this.createVertexTemplateEntry(s + 'role_group;',
891					w * 59, h * 56, '', 'Role Group', null, null, this.getTagsForStencil(gn, 'role group', dt).join(' ')),
892			this.createVertexTemplateEntry(s + 'secure_messaging;',
893					w * 55, h * 46, '', 'Secure Messaging', null, null, this.getTagsForStencil(gn, 'secure messaging', dt).join(' ')),
894			this.createVertexTemplateEntry(s + 'security_access_portal;',
895					w * 64, h * 55, '', 'Security Access Portal', null, null, this.getTagsForStencil(gn, 'security access portal', dt).join(' ')),
896			this.createVertexTemplateEntry(s + 'sharing_policy;',
897					w * 56, h * 53, '', 'Sharing Policy', null, null, this.getTagsForStencil(gn, 'sharing policy', dt).join(' ')),
898			this.createVertexTemplateEntry(s + 'split_domain_user;',
899					w * 59, h * 55, '', 'Split-Domain User', null, null, this.getTagsForStencil(gn, 'split domain user', dt).join(' ')),
900			this.createVertexTemplateEntry(s + 'token;',
901					w * 41, h * 52, '', 'Token', null, null, this.getTagsForStencil(gn, 'token', dt).join(' ')),
902			this.createVertexTemplateEntry(s + 'token;',
903					w * 29, h * 37, '', 'Token (small)', null, null, this.getTagsForStencil(gn, 'token small', dt).join(' ')),
904			this.createVertexTemplateEntry(s + 'token_service;',
905					w * 60, h * 56, '', 'Token Service', null, null, this.getTagsForStencil(gn, 'token service', dt).join(' ')),
906			this.createVertexTemplateEntry(s + 'trusted_application_server;',
907					w * 46, h * 57, '', 'Trusted Application Server', null, null, this.getTagsForStencil(gn, 'trusted application server', dt).join(' ')),
908			this.createVertexTemplateEntry(s + 'um_mailbox_policy;',
909					w * 55, h * 53, '', 'UM Mailbox Policy', null, null, this.getTagsForStencil(gn, 'um mailbox policy', dt).join(' ')),
910			this.createVertexTemplateEntry(s + 'universal_security_group;',
911					w * 58, h * 58, '', 'Universal Security Group', null, null, this.getTagsForStencil(gn, 'universal security group', dt).join(' '))
912		];
913
914		this.addPalette('officeSecurity', 'Office / Security', false, mxUtils.bind(this, function(content)
915				{
916					for (var i = 0; i < fns.length; i++)
917					{
918						content.appendChild(fns[i](content));
919					}
920		}));
921	};
922
923	Sidebar.prototype.addOfficeServersPalette = function()
924	{
925		var s = 'sketch=0;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;fillColor=#505050;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.servers.';
926		var s2 = 'sketch=0;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.servers.';
927
928		// Space savers
929		var sb = this;
930		var gn = 'mxgraph.office.servers';
931		var dt = 'office server ';
932
933		var w = 1.0;
934		var h = 1.0;
935
936		var fns =
937		[
938			this.createVertexTemplateEntry(s + '3rd_party_mail_server;',
939					w * 47, h * 59, '', '3rd Party Mail Server', null, null, this.getTagsForStencil(gn, '3rd party mail server', dt).join(' ')),
940			this.createVertexTemplateEntry(s + 'active_directory_federation_services_proxy;',
941					w * 44, h * 55, '', 'Active Directory Federation Services Proxy', null, null, this.getTagsForStencil(gn, 'active directory federation services proxy', dt).join(' ')),
942			this.createVertexTemplateEntry(s + 'active_directory_federation_services_server;',
943					w * 45, h * 56, '', 'Active Directory Federation Services Server', null, null, this.getTagsForStencil(gn, 'active directory federation services server', dt).join(' ')),
944			this.createVertexTemplateEntry(s + 'active_directory_federation_services_server_blue;',
945					w * 45, h * 56, '', 'Active Directory Federation Services Server (blue)', null, null, this.getTagsForStencil(gn, 'active directory federation services server', dt).join(' ')),
946			this.createVertexTemplateEntry(s + 'active_directory_federation_services_server_orange;',
947					w * 45, h * 56, '', 'Active Directory Federation Services Server (orange)', null, null, this.getTagsForStencil(gn, 'active directory federation services server', dt).join(' ')),
948			this.createVertexTemplateEntry(s + 'active_directory_federation_services_server_green;',
949					w * 45, h * 56, '', 'Active Directory Federation Services Server (green)', null, null, this.getTagsForStencil(gn, 'active directory federation services server', dt).join(' ')),
950			this.createVertexTemplateEntry(s + 'active_directory_federation_services_server_ghosted;',
951					w * 45, h * 56, '', 'Active Directory Federation Services Server (ghosted)', null, null, this.getTagsForStencil(gn, 'active directory federation services server', dt).join(' ')),
952			this.createVertexTemplateEntry(s + 'application_server;',
953					w * 46, h * 56, '', 'Application Server', null, null, this.getTagsForStencil(gn, 'application server', dt).join(' ')),
954			this.createVertexTemplateEntry(s + 'application_server_blue;',
955					w * 46, h * 56, '', 'Application Server (blue)', null, null, this.getTagsForStencil(gn, 'application server', dt).join(' ')),
956			this.createVertexTemplateEntry(s + 'application_server_orange;',
957					w * 46, h * 56, '', 'Application Server (orange)', null, null, this.getTagsForStencil(gn, 'application server', dt).join(' ')),
958			this.createVertexTemplateEntry(s + 'application_server_green;',
959					w * 46, h * 56, '', 'Application Server (green)', null, null, this.getTagsForStencil(gn, 'application server', dt).join(' ')),
960			this.createVertexTemplateEntry(s + 'application_server_ghosted;',
961					w * 46, h * 56, '', 'Application Server (ghosted)', null, null, this.getTagsForStencil(gn, 'application server', dt).join(' ')),
962			this.createVertexTemplateEntry(s + 'call_admission_control_service;',
963					w * 50, h * 60, '', 'Call Admission Control Service', null, null, this.getTagsForStencil(gn, 'call admission control service', dt).join(' ')),
964			this.createVertexTemplateEntry(s + 'certificate_authority;',
965					w * 46, h * 59, '', 'Certificate Authority', null, null, this.getTagsForStencil(gn, 'certificate authority', dt).join(' ')),
966			this.createVertexTemplateEntry(s + 'cluster_server;',
967					w * 49, h * 59, '', 'Cluster Server', null, null, this.getTagsForStencil(gn, 'cluster_server', dt).join(' ')),
968			this.createVertexTemplateEntry(s + 'database_server;',
969					w * 43, h * 56, '', 'Database Server', null, null, this.getTagsForStencil(gn, 'database_server', dt).join(' ')),
970			this.createVertexTemplateEntry(s + 'database_server_blue;',
971					w * 43, h * 56, '', 'Database Server (blue)', null, null, this.getTagsForStencil(gn, 'database_server', dt).join(' ')),
972			this.createVertexTemplateEntry(s + 'database_server_orange;',
973					w * 43, h * 56, '', 'Database Server (orange)', null, null, this.getTagsForStencil(gn, 'database_server', dt).join(' ')),
974			this.createVertexTemplateEntry(s + 'database_server_green;',
975					w * 43, h * 56, '', 'Database Server (green)', null, null, this.getTagsForStencil(gn, 'database_server', dt).join(' ')),
976			this.createVertexTemplateEntry(s + 'database_server_ghosted;',
977					w * 43, h * 56, '', 'Database Server (ghosted)', null, null, this.getTagsForStencil(gn, 'database_server', dt).join(' ')),
978			this.createVertexTemplateEntry(s + 'datacenter;',
979					w * 53, h * 53, '', 'Datacenter', null, null, this.getTagsForStencil(gn, 'datacenter', dt).join(' ')),
980			this.createVertexTemplateEntry(s + 'dirsync_server;',
981					w * 47, h * 56, '', 'DirSync Server', null, null, this.getTagsForStencil(gn, 'dirsync server', dt).join(' ')),
982			this.createVertexTemplateEntry(s + 'domain_controller;',
983					w * 45, h * 55, '', 'Domain Controller', null, null, this.getTagsForStencil(gn, 'domain controller', dt).join(' ')),
984			this.createVertexTemplateEntry(s + 'excahnge_client_access_server_role;',
985					w * 52, h * 59, '', 'Exchange Client Access Server Role', null, null, this.getTagsForStencil(gn, 'excahnge client access server role', dt).join(' ')),
986			this.createVertexTemplateEntry(s + 'exchange_edge_transport_server_role;',
987					w * 52, h * 55, '', 'Exchange Edge Transport Server Role', null, null, this.getTagsForStencil(gn, 'exchange edge transport server role', dt).join(' ')),
988			this.createVertexTemplateEntry(s + 'exchange_hub_transport_server_role;',
989					w * 52, h * 59, '', 'Exchange Hub Transport Server Role', null, null, this.getTagsForStencil(gn, 'exchange hub transport server role', dt).join(' ')),
990			this.createVertexTemplateEntry(s + 'exchange_mailbox_server_role;',
991					w * 52, h * 59, '', 'Exchange Mailbox Server Role', null, null, this.getTagsForStencil(gn, 'exchange mailbox server role', dt).join(' ')),
992			this.createVertexTemplateEntry(s + 'exchange_um_server_role;',
993					w * 52, h * 59, '', 'Exchange UM Server Role', null, null, this.getTagsForStencil(gn, 'exchange um server role', dt).join(' ')),
994			this.createVertexTemplateEntry(s + 'exchange_client_access_server;',
995					w * 57, h * 59, '', 'Exchange Client Access Server', null, null, this.getTagsForStencil(gn, 'exchange client access server', dt).join(' ')),
996			this.createVertexTemplateEntry(s + 'exchange_edge_transport_server;',
997					w * 57, h * 55, '', 'Exchange Edge Transport Server', null, null, this.getTagsForStencil(gn, 'exchange edge transport server', dt).join(' ')),
998			this.createVertexTemplateEntry(s + 'exchange_mailbox_server;',
999					w * 57, h * 59, '', 'Exchange Mailbox Server', null, null, this.getTagsForStencil(gn, 'exchange mailbox server', dt).join(' ')),
1000			this.createVertexTemplateEntry(s + 'exchange_server;',
1001					w * 57, h * 55, '', 'Exchange Server', null, null, this.getTagsForStencil(gn, 'exchange server', dt).join(' ')),
1002			this.createVertexTemplateEntry(s + 'file_server;',
1003					w * 45, h * 56, '', 'File Server', null, null, this.getTagsForStencil(gn, 'file server', dt).join(' ')),
1004			this.createVertexTemplateEntry(s + 'hybrid_server;',
1005					w * 59, h * 52, '', 'Hybrid Server', null, null, this.getTagsForStencil(gn, 'hybrid server', dt).join(' ')),
1006			this.createVertexTemplateEntry(s + 'mainframe;',
1007					w * 58, h * 42, '', 'Mainframe', null, null, this.getTagsForStencil(gn, 'mainframe', dt).join(' ')),
1008			this.createVertexTemplateEntry(s + 'mainframe_host;',
1009					w * 44, h * 42, '', 'Mainframe Host', null, null, this.getTagsForStencil(gn, 'mainframe host', dt).join(' ')),
1010			this.createVertexTemplateEntry(s + 'monitoring_sql_reporting_services;',
1011					w * 50, h * 59, '', 'Monitoring SQL Reporting Services', null, null, this.getTagsForStencil(gn, 'monitoring sql reporting services', dt).join(' ')),
1012			this.createVertexTemplateEntry(s + 'network;',
1013					w * 34, h * 57, '', 'Network', null, null, this.getTagsForStencil(gn, 'network', dt).join(' ')),
1014			this.createVertexTemplateEntry(s + 'office_web_apps_server;',
1015					w * 52, h * 56, '', 'Office Web Apps Server', null, null, this.getTagsForStencil(gn, 'office web apps server', dt).join(' ')),
1016			this.createVertexTemplateEntry(s + 'on_premises_server;',
1017					w * 44, h * 58, '', 'On Premises Server', null, null, this.getTagsForStencil(gn, 'on premises server', dt).join(' ')),
1018			this.createVertexTemplateEntry(s2 + 'physical_host;fillColor=#2072B8;',
1019					w * 27, h * 52, '', 'Physical Host', null, null, this.getTagsForStencil(gn, 'physical host', dt).join(' ')),
1020			this.createVertexTemplateEntry(s2 + 'physical_host_farm;fillColor=#2072B8;',
1021					w * 56, h * 49, '', 'Physical Host Farm', null, null, this.getTagsForStencil(gn, 'physical host farm', dt).join(' ')),
1022			this.createVertexTemplateEntry(s + 'reverse_proxy;',
1023					w * 41, h * 53, '', 'Reverse Proxy', null, null, this.getTagsForStencil(gn, 'reverse proxy', dt).join(' ')),
1024			this.createVertexTemplateEntry(s + 'scom;',
1025					w * 56, h * 53, '', 'SCOM', null, null, this.getTagsForStencil(gn, 'scom', dt).join(' ')),
1026			this.createVertexTemplateEntry(s + 'server_disaster;',
1027					w * 46, h * 57, '', 'Server Disaster', null, null, this.getTagsForStencil(gn, 'server disaster', dt).join(' ')),
1028			this.createVertexTemplateEntry(s + 'server_farm;',
1029					w * 56, h * 49, '', 'Server Farm', null, null, this.getTagsForStencil(gn, 'server_farm', dt).join(' ')),
1030			this.createVertexTemplateEntry(s + 'server_farm;fillColor=#2072B8;',
1031					w * 56, h * 49, '', 'Server Farm (blue)', null, null, this.getTagsForStencil(gn, 'server_farm', dt).join(' ')),
1032			this.createVertexTemplateEntry(s + 'server_farm;fillColor=#DA4026;',
1033					w * 56, h * 49, '', 'Server Farm (orange)', null, null, this.getTagsForStencil(gn, 'server_farm', dt).join(' ')),
1034			this.createVertexTemplateEntry(s + 'server_farm;fillColor=#7FBA42;',
1035					w * 56, h * 49, '', 'Server Farm (green)', null, null, this.getTagsForStencil(gn, 'server_farm', dt).join(' ')),
1036			this.createVertexTemplateEntry(s + 'server_farm;fillColor=#CCCBCB;',
1037					w * 56, h * 49, '', 'Server Farm (ghosted)', null, null, this.getTagsForStencil(gn, 'server_farm', dt).join(' ')),
1038			this.createVertexTemplateEntry(s + 'server_generic;',
1039					w * 27, h * 52, '', 'Server, Generic', null, null, this.getTagsForStencil(gn, 'server generic', dt).join(' ')),
1040			this.createVertexTemplateEntry(s2 + 'server_generic;fillColor=#2072B8;',
1041					w * 27, h * 52, '', 'Server, Generic (blue)', null, null, this.getTagsForStencil(gn, 'server generic', dt).join(' ')),
1042			this.createVertexTemplateEntry(s2 + 'server_generic;fillColor=#DA4026;',
1043					w * 27, h * 52, '', 'Server, Generic (orange)', null, null, this.getTagsForStencil(gn, 'server generic', dt).join(' ')),
1044			this.createVertexTemplateEntry(s2 + 'server_generic;fillColor=#7FBA42;',
1045					w * 27, h * 52, '', 'Server, Generic (green)', null, null, this.getTagsForStencil(gn, 'server generic', dt).join(' ')),
1046			this.createVertexTemplateEntry(s2 + 'server_generic;fillColor=#CCCBCB;',
1047					w * 27, h * 52, '', 'Server, Generic (ghosted)', null, null, this.getTagsForStencil(gn, 'server generic', dt).join(' ')),
1048			this.createVertexTemplateEntry(s + 'server_generic;',
1049					w * 20, h * 39, '', 'Server, Generic (small)', null, null, this.getTagsForStencil(gn, 'server generic small', dt).join(' ')),
1050			this.createVertexTemplateEntry(s + 'server_side_code;',
1051					w * 49, h * 56, '', 'Server Side Code', null, null, this.getTagsForStencil(gn, 'server side code', dt).join(' ')),
1052			this.createVertexTemplateEntry(s + 'sharepoint_server;',
1053					w * 56, h * 55, '', 'Sharepoint Server', null, null, this.getTagsForStencil(gn, 'sharepoint server', dt).join(' ')),
1054			this.createVertexTemplateEntry(s + 'skype_for_business_back_end_server;',
1055					w * 54, h * 60, '', 'Skype for Business Back End Server', null, null, this.getTagsForStencil(gn, 'skype for business back end server', dt).join(' ')),
1056			this.createVertexTemplateEntry(s + 'skype_for_business_back_end_server_mirror;',
1057					w * 54, h * 60, '', 'Skype for Business Back End Server Mirror', null, null, this.getTagsForStencil(gn, 'skype for business back end server mirror', dt).join(' ')),
1058			this.createVertexTemplateEntry(s + 'skype_for_business_director;',
1059					w * 54, h * 55, '', 'Skype for Business Director', null, null, this.getTagsForStencil(gn, 'skype for business director', dt).join(' ')),
1060			this.createVertexTemplateEntry(s + 'skype_for_business_director_array;',
1061					w * 70, h * 60, '', 'Skype for Business Director Array', null, null, this.getTagsForStencil(gn, 'skype for business director array', dt).join(' ')),
1062			this.createVertexTemplateEntry(s + 'skype_for_business_edge_server;',
1063					w * 54, h * 55, '', 'Skype for Business Edge Server', null, null, this.getTagsForStencil(gn, 'skype for business edge server', dt).join(' ')),
1064			this.createVertexTemplateEntry(s + 'skype_for_business_edge_server_pool;',
1065					w * 70, h * 60, '', 'Skype for Business Edge Server Pool', null, null, this.getTagsForStencil(gn, 'skype for business edge server pool', dt).join(' ')),
1066			this.createVertexTemplateEntry(s + 'skype_for_business_front_end_pool;',
1067					w * 70, h * 60, '', 'Skype for Business Front End Pool', null, null, this.getTagsForStencil(gn, 'skype for business front end pool', dt).join(' ')),
1068			this.createVertexTemplateEntry(s + 'skype_for_business_front_end_server;',
1069					w * 54, h * 60, '', 'Skype for Business Front End Server', null, null, this.getTagsForStencil(gn, 'skype for business front end server', dt).join(' ')),
1070			this.createVertexTemplateEntry(s + 'skype_for_business_mediation_server;',
1071					w * 54, h * 60, '', 'Skype for Business Mediation Server', null, null, this.getTagsForStencil(gn, 'skype for business mediation server', dt).join(' ')),
1072			this.createVertexTemplateEntry(s + 'skype_for_business_monitoring_server;',
1073					w * 54, h * 60, '', 'Skype for Business Monitoring Server', null, null, this.getTagsForStencil(gn, 'skype for business monitoring server', dt).join(' ')),
1074			this.createVertexTemplateEntry(s + 'skype_for_business_persistent_chat_server;',
1075					w * 54, h * 58, '', 'Skype for Business Persistent Chat Server', null, null, this.getTagsForStencil(gn, 'skype for business persistent chat server', dt).join(' ')),
1076			this.createVertexTemplateEntry(s + 'skype_for_business_server;',
1077					w * 54, h * 55, '', 'Skype for Business Server', null, null, this.getTagsForStencil(gn, 'skype for business server', dt).join(' ')),
1078			this.createVertexTemplateEntry(s + 'sql_server;',
1079					w * 43, h * 56, '', 'SQL Server', null, null, this.getTagsForStencil(gn, 'sql server', dt).join(' ')),
1080			this.createVertexTemplateEntry(s + 'survivable_branch_appliance;',
1081					w * 37, h * 59, '', 'Survivable Branch Appliance', null, null, this.getTagsForStencil(gn, 'survivable branch appliance', dt).join(' ')),
1082			this.createVertexTemplateEntry(s + 'survivable_branch_server;',
1083					w * 42, h * 58, '', 'Survivable Branch Server', null, null, this.getTagsForStencil(gn, 'survivable branch server', dt).join(' ')),
1084			this.createVertexTemplateEntry(s + 'topology_builder;',
1085					w * 59, h * 59, '', 'Topology Builder', null, null, this.getTagsForStencil(gn, 'topology builder', dt).join(' ')),
1086			this.createVertexTemplateEntry(s + 'trusted_application_pool;',
1087					w * 59, h * 59, '', 'Trusted Application Pool', null, null, this.getTagsForStencil(gn, 'trusted application pool', dt).join(' ')),
1088			this.createVertexTemplateEntry(s + 'trusted_application_server;',
1089					w * 43, h * 52, '', 'Trusted Application Server', null, null, this.getTagsForStencil(gn, 'trusted application server', dt).join(' ')),
1090			this.createVertexTemplateEntry(s + 'tunnel_angled;',
1091					w * 55, h * 35, '', 'Tunnel Angled', null, null, this.getTagsForStencil(gn, 'tunnel angled', dt).join(' ')),
1092			this.createVertexTemplateEntry(s + 'tunnel_straight;',
1093					w * 59, h * 10, '', 'Tunnel Straight', null, null, this.getTagsForStencil(gn, 'tunnel straight', dt).join(' ')),
1094			this.createVertexTemplateEntry(s + 'universal_security_group;',
1095					w * 58, h * 58, '', 'Universal Security Group', null, null, this.getTagsForStencil(gn, 'universal security group', dt).join(' ')),
1096			this.createVertexTemplateEntry(s + 'video_interop_server;',
1097					w * 54, h * 60, '', 'Video Interop Server', null, null, this.getTagsForStencil(gn, 'video interop server', dt).join(' ')),
1098			this.createVertexTemplateEntry(s + 'virtual_application_server;',
1099					w * 48, h * 55, '', 'Virtual Application Server', null, null, this.getTagsForStencil(gn, 'virtual application server', dt).join(' ')),
1100			this.createVertexTemplateEntry(s2 + 'virtual_application_server;fillColor=#2072B8;',
1101					w * 48, h * 55, '', 'Virtual Application Server (blue)', null, null, this.getTagsForStencil(gn, 'virtual application server', dt).join(' ')),
1102			this.createVertexTemplateEntry(s + 'virtual_database_server;',
1103					w * 41, h * 56, '', 'Virtual Database Server', null, null, this.getTagsForStencil(gn, 'virtual database server', dt).join(' ')),
1104			this.createVertexTemplateEntry(s2 + 'virtual_database_server;fillColor=#2072B8;',
1105					w * 41, h * 56, '', 'Virtual Database Server (blue)', null, null, this.getTagsForStencil(gn, 'virtual database server', dt).join(' ')),
1106			this.createVertexTemplateEntry(s + 'virtual_server;',
1107					w * 28, h * 52, '', 'Virtual Server', null, null, this.getTagsForStencil(gn, 'virtual server', dt).join(' ')),
1108			this.createVertexTemplateEntry(s2 + 'virtual_server;fillColor=#2072B8;',
1109					w * 28, h * 52, '', 'Virtual Server (blue)', null, null, this.getTagsForStencil(gn, 'virtual server', dt).join(' ')),
1110			this.createVertexTemplateEntry(s + 'virtual_server;',
1111					w * 20, h * 37, '', 'Virtual Server (small)', null, null, this.getTagsForStencil(gn, 'virtual server small', dt).join(' ')),
1112			this.createVertexTemplateEntry(s + 'virtual_web_server;',
1113					w * 44, h * 55, '', 'Virtual Web Server', null, null, this.getTagsForStencil(gn, 'virtual web server', dt).join(' ')),
1114			this.createVertexTemplateEntry(s2 + 'virtual_web_server;fillColor=#2072B8;',
1115					w * 44, h * 55, '', 'Virtual Web Server (blue)', null, null, this.getTagsForStencil(gn, 'virtual web server', dt).join(' ')),
1116			this.createVertexTemplateEntry(s + 'vociemail_preview_partner;',
1117					w * 46, h * 56, '', 'Vociemail Preview Partner', null, null, this.getTagsForStencil(gn, 'vociemail preview partner', dt).join(' ')),
1118			this.createVertexTemplateEntry(s + 'web_server;',
1119					w * 48, h * 57, '', 'Web Server', null, null, this.getTagsForStencil(gn, 'web server', dt).join(' ')),
1120			this.createVertexTemplateEntry(s + 'web_server_blue;',
1121					w * 48, h * 57, '', 'Web Server (blue)', null, null, this.getTagsForStencil(gn, 'web server', dt).join(' ')),
1122			this.createVertexTemplateEntry(s + 'web_server_orange;',
1123					w * 48, h * 57, '', 'Web Server (orange)', null, null, this.getTagsForStencil(gn, 'web server', dt).join(' ')),
1124			this.createVertexTemplateEntry(s + 'web_server_green;',
1125					w * 48, h * 57, '', 'Web Server (green)', null, null, this.getTagsForStencil(gn, 'web server', dt).join(' ')),
1126			this.createVertexTemplateEntry(s + 'web_server_ghosted;',
1127					w * 48, h * 57, '', 'Web Server (ghosted)', null, null, this.getTagsForStencil(gn, 'web server', dt).join(' ')),
1128			this.createVertexTemplateEntry(s + 'windows_router;',
1129					w * 52, h * 59, '', 'Windows Router', null, null, this.getTagsForStencil(gn, 'windows router', dt).join(' ')),
1130			this.createVertexTemplateEntry(s + 'windows_server;',
1131					w * 52, h * 55, '', 'Windows Server', null, null, this.getTagsForStencil(gn, 'windows server', dt).join(' '))
1132		];
1133
1134		this.addPalette('officeServers', 'Office / Servers', false, mxUtils.bind(this, function(content)
1135				{
1136					for (var i = 0; i < fns.length; i++)
1137					{
1138						content.appendChild(fns[i](content));
1139					}
1140		}));
1141	};
1142
1143	Sidebar.prototype.addOfficeServicesPalette = function()
1144	{
1145		var s = 'sketch=0;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;fillColor=#505050;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.services.';
1146
1147		// Space savers
1148		var sb = this;
1149		var gn = 'mxgraph.office.services';
1150		var dt = 'office service ';
1151
1152		var w = 1.0;
1153		var h = 1.0;
1154
1155		var fns =
1156		[
1157			this.createVertexTemplateEntry(s + '3rd_party_service;',
1158					w * 53, h * 54, '', '3rd Party Service', null, null, this.getTagsForStencil(gn, '3rd party service', dt).join(' ')),
1159			this.createVertexTemplateEntry(s + 'access_services;',
1160					w * 59, h * 49, '', 'Access Services', null, null, this.getTagsForStencil(gn, 'access services', dt).join(' ')),
1161			this.createVertexTemplateEntry(s + 'business_connectivity_services;',
1162					w * 34, h * 51, '', 'Business Connectivity Services', null, null, this.getTagsForStencil(gn, 'business connectivity services', dt).join(' ')),
1163			this.createVertexTemplateEntry(s + 'call_admission_control_service;',
1164					w * 50, h * 59, '', 'Call Admission Control Service', null, null, this.getTagsForStencil(gn, 'call admission control service', dt).join(' ')),
1165			this.createVertexTemplateEntry(s + 'central_management_service;',
1166					w * 51, h * 54, '', 'Central Management Service', null, null, this.getTagsForStencil(gn, 'central management service', dt).join(' ')),
1167			this.createVertexTemplateEntry(s + 'conference_announcement_service;',
1168					w * 59, h * 59, '', 'Conference Announcement Service', null, null, this.getTagsForStencil(gn, 'conference announcement service', dt).join(' ')),
1169			this.createVertexTemplateEntry(s + 'device_update_service;',
1170					w * 50, h * 54, '', 'Device Update Service', null, null, this.getTagsForStencil(gn, 'device update service', dt).join(' ')),
1171			this.createVertexTemplateEntry(s + 'email_service;',
1172					w * 58, h * 48, '', 'Email Service', null, null, this.getTagsForStencil(gn, 'email service', dt).join(' ')),
1173			this.createVertexTemplateEntry(s + 'excel_services;',
1174					w * 60, h * 49, '', 'Excel Services', null, null, this.getTagsForStencil(gn, 'excel services', dt).join(' ')),
1175			this.createVertexTemplateEntry(s + 'federation_service;',
1176					w * 58, h * 59, '', 'Federation Service', null, null, this.getTagsForStencil(gn, 'federation service', dt).join(' ')),
1177			this.createVertexTemplateEntry(s + 'lync_storage_service;',
1178					w * 65, h * 58, '', 'Lync Storage Service', null, null, this.getTagsForStencil(gn, 'lync storage service', dt).join(' ')),
1179			this.createVertexTemplateEntry(s + 'lync_web_app_client;',
1180					w * 83, h * 51, '', 'Lync Web App Client', null, null, this.getTagsForStencil(gn, 'lync web app client', dt).join(' ')),
1181			this.createVertexTemplateEntry(s + 'mobility_service;',
1182					w * 45, h * 53, '', 'Mobility Service', null, null, this.getTagsForStencil(gn, 'mobility service', dt).join(' ')),
1183			this.createVertexTemplateEntry(s + 'network_file_share_service;',
1184					w * 55, h * 53, '', 'Network File Share Service', null, null, this.getTagsForStencil(gn, 'network file share service', dt).join(' ')),
1185			this.createVertexTemplateEntry(s + 'online_hosted_services;',
1186					w * 56, h * 52, '', 'Online Hosted Services', null, null, this.getTagsForStencil(gn, 'online hosted services', dt).join(' ')),
1187			this.createVertexTemplateEntry(s + 'outlook_web_app;',
1188					w * 83, h * 51, '', 'Outlook Web App', null, null, this.getTagsForStencil(gn, 'outlook web app', dt).join(' ')),
1189			this.createVertexTemplateEntry(s + 'powerpoint_automation_services;',
1190					w * 59, h * 49, '', 'PowerPoint Automation Services', null, null, this.getTagsForStencil(gn, 'powerpoint automation services', dt).join(' ')),
1191			this.createVertexTemplateEntry(s + 'push_notification_service;',
1192					w * 50, h * 58, '', 'Push Notification Service', null, null, this.getTagsForStencil(gn, 'push notification service', dt).join(' ')),
1193			this.createVertexTemplateEntry(s + 'registrar_service;',
1194					w * 56, h * 52, '', 'Registrar Service', null, null, this.getTagsForStencil(gn, 'registrar service', dt).join(' ')),
1195			this.createVertexTemplateEntry(s + 'response_group_service;',
1196					w * 58, h * 54, '', 'Response Group Service', null, null, this.getTagsForStencil(gn, 'response group service', dt).join(' ')),
1197			this.createVertexTemplateEntry(s + 'skype_for_business_storage_service;',
1198					w * 62, h * 58, '', 'Skype for Business Storage Service', null, null, this.getTagsForStencil(gn, 'skype for business storage service', dt).join(' ')),
1199			this.createVertexTemplateEntry(s + 'user_services;',
1200					w * 59, h * 59, '', 'User Services', null, null, this.getTagsForStencil(gn, 'user services', dt).join(' ')),
1201			this.createVertexTemplateEntry(s + 'verification_service;',
1202					w * 57, h * 59, '', 'Verification Service', null, null, this.getTagsForStencil(gn, 'verification service', dt).join(' ')),
1203			this.createVertexTemplateEntry(s + 'web_services;',
1204					w * 60, h * 56, '', 'Web Services', null, null, this.getTagsForStencil(gn, 'web services', dt).join(' ')),
1205			this.createVertexTemplateEntry(s + 'word_automation_services;',
1206					w * 60, h * 49, '', 'Word Automation Services', null, null, this.getTagsForStencil(gn, 'word automation services', dt).join(' ')),
1207			this.createVertexTemplateEntry(s + 'xmpp_service;',
1208					w * 58, h * 52, '', 'XMPP Service', null, null, this.getTagsForStencil(gn, 'xmpp service', dt).join(' '))
1209		];
1210
1211		this.addPalette('officeServices', 'Office / Services', false, mxUtils.bind(this, function(content)
1212				{
1213					for (var i = 0; i < fns.length; i++)
1214					{
1215						content.appendChild(fns[i](content));
1216					}
1217		}));
1218	};
1219
1220	Sidebar.prototype.addOfficeSitesPalette = function()
1221	{
1222		var s = 'sketch=0;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;fillColor=#505050;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.sites.';
1223		var s2 = 'sketch=0;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.sites.';
1224
1225		// Space savers
1226		var sb = this;
1227		var gn = 'mxgraph.office.sites';
1228		var dt = 'office site ';
1229
1230		var w = 1.0;
1231		var h = 1.0;
1232
1233		var fns =
1234		[
1235			this.createVertexTemplateEntry(s + 'access_services;',
1236					w * 59, h * 49, '', 'Access Services', null, null, this.getTagsForStencil(gn, 'access services', dt).join(' ')),
1237			this.createVertexTemplateEntry(s + 'blog_site;',
1238					w * 56, h * 49, '', 'Blog Site', null, null, this.getTagsForStencil(gn, 'blog site', dt).join(' ')),
1239			this.createVertexTemplateEntry(s + 'business_connectivity_services;',
1240					w * 34, h * 51, '', 'Business Connectivity Services', null, null, this.getTagsForStencil(gn, 'business connectivity services', dt).join(' ')),
1241			this.createVertexTemplateEntry(s + 'excel_services;',
1242					w * 60, h * 49, '', 'Excel Services', null, null, this.getTagsForStencil(gn, 'excel services', dt).join(' ')),
1243			this.createVertexTemplateEntry(s + 'meeting_workspace_site;',
1244					w * 58, h * 50, '', 'Meeting Workspace Site', null, null, this.getTagsForStencil(gn, 'meeting workspace site', dt).join(' ')),
1245			this.createVertexTemplateEntry(s + 'my_site;',
1246					w * 58, h * 49, '', 'My Site', null, null, this.getTagsForStencil(gn, 'my site', dt).join(' ')),
1247			this.createVertexTemplateEntry(s + 'powerpoint_automation_services;',
1248					w * 59, h * 49, '', 'PowerPoint Automation Services', null, null, this.getTagsForStencil(gn, 'powerpoint automation services', dt).join(' ')),
1249			this.createVertexTemplateEntry(s + 'publish;',
1250					w * 57, h * 48, '', 'Publish', null, null, this.getTagsForStencil(gn, 'publish', dt).join(' ')),
1251			this.createVertexTemplateEntry(s + 'site_collection;',
1252					w * 52, h * 40, '', 'Site Collection', null, null, this.getTagsForStencil(gn, 'site collection', dt).join(' ')),
1253			this.createVertexTemplateEntry(s + 'site_shared;',
1254					w * 56, h * 50, '', 'Site Shared', null, null, this.getTagsForStencil(gn, 'site shared', dt).join(' ')),
1255			this.createVertexTemplateEntry(s + 'site_team;',
1256					w * 60, h * 49, '', 'Site, Team', null, null, this.getTagsForStencil(gn, 'site team', dt).join(' ')),
1257			this.createVertexTemplateEntry(s + 'subsite;',
1258					w * 53, h * 40, '', 'Subsite', null, null, this.getTagsForStencil(gn, 'substitute', dt).join(' ')),
1259			this.createVertexTemplateEntry(s2 + 'subsite;fillColor=#2072B8;',
1260					w * 53, h * 40, '', 'Subsite (blue)', null, null, this.getTagsForStencil(gn, 'substitute', dt).join(' ')),
1261			this.createVertexTemplateEntry(s2 + 'subsite;fillColor=#DA4026;',
1262					w * 53, h * 40, '', 'Subsite (orange)', null, null, this.getTagsForStencil(gn, 'substitute', dt).join(' ')),
1263			this.createVertexTemplateEntry(s2 + 'subsite;fillColor=#7FBA42;',
1264					w * 53, h * 40, '', 'Subsite (green)', null, null, this.getTagsForStencil(gn, 'substitute', dt).join(' ')),
1265			this.createVertexTemplateEntry(s2 + 'subsite;fillColor=#CCCBCB;',
1266					w * 53, h * 40, '', 'Subsite (ghosted)', null, null, this.getTagsForStencil(gn, 'substitute', dt).join(' ')),
1267			this.createVertexTemplateEntry(s + 'subsite;',
1268					w * 38, h * 29, '', 'Subsite (small)', null, null, this.getTagsForStencil(gn, 'substitute small', dt).join(' ')),
1269			this.createVertexTemplateEntry(s + 'upgrade_site;',
1270					w * 59, h * 48, '', 'Upgrade Site', null, null, this.getTagsForStencil(gn, 'upgrade site', dt).join(' ')),
1271			this.createVertexTemplateEntry(s + 'website;',
1272					w * 59, h * 49, '', 'Website', null, null, this.getTagsForStencil(gn, 'website', dt).join(' ')),
1273			this.createVertexTemplateEntry(s + 'website_public;',
1274					w * 58, h * 48, '', 'Website, Public', null, null, this.getTagsForStencil(gn, 'website public', dt).join(' ')),
1275			this.createVertexTemplateEntry(s + 'wiki_site;',
1276					w * 59, h * 50, '', 'Wiki Site', null, null, this.getTagsForStencil(gn, 'wiki_site', dt).join(' ')),
1277			this.createVertexTemplateEntry(s + 'word_automation_services;',
1278					w * 60, h * 49, '', 'Word Automation Services', null, null, this.getTagsForStencil(gn, 'word automation services', dt).join(' '))
1279		];
1280
1281		this.addPalette('officeSites', 'Office / Sites', false, mxUtils.bind(this, function(content)
1282				{
1283					for (var i = 0; i < fns.length; i++)
1284					{
1285						content.appendChild(fns[i](content));
1286					}
1287		}));
1288	};
1289
1290	Sidebar.prototype.addOfficeUsersPalette = function()
1291	{
1292		var s = 'sketch=0;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;fillColor=#505050;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.users.';
1293		var s2 = 'sketch=0;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.users.';
1294
1295		// Space savers
1296		var sb = this;
1297		var gn = 'mxgraph.office.users';
1298		var dt = 'office user ';
1299
1300		var w = 1.0;
1301		var h = 1.0;
1302
1303		var fns =
1304		[
1305			this.createVertexTemplateEntry(s + 'administrator;',
1306					w * 58, h * 56, '', 'Administrator', null, null, this.getTagsForStencil(gn, 'administrator', dt).join(' ')),
1307			this.createVertexTemplateEntry(s + 'approver;',
1308					w * 59, h * 55, '', 'Approver', null, null, this.getTagsForStencil(gn, 'approver', dt).join(' ')),
1309			this.createVertexTemplateEntry(s + 'call_center_agent;',
1310					w * 46, h * 55, '', 'Call Center Agent', null, null, this.getTagsForStencil(gn, 'call center agent', dt).join(' ')),
1311			this.createVertexTemplateEntry(s + 'communications;',
1312					w * 54, h * 58, '', 'Communications', null, null, this.getTagsForStencil(gn, 'communications', dt).join(' ')),
1313			this.createVertexTemplateEntry(s + 'conferencing_attendant;',
1314					w * 53, h * 59, '', 'Conferencing Attendant', null, null, this.getTagsForStencil(gn, 'conferencing attendant', dt).join(' ')),
1315			this.createVertexTemplateEntry(s + 'credentials;',
1316					w * 56, h * 58, '', 'Credentials', null, null, this.getTagsForStencil(gn, 'credentials', dt).join(' ')),
1317			this.createVertexTemplateEntry(s + 'csv_file;',
1318					w * 59, h * 43, '', 'CSV File', null, null, this.getTagsForStencil(gn, 'csv comma separated value file', dt).join(' ')),
1319			this.createVertexTemplateEntry(s + 'distribution_group;',
1320					w * 58, h * 59, '', 'Distribution Group', null, null, this.getTagsForStencil(gn, 'distribution group', dt).join(' ')),
1321			this.createVertexTemplateEntry(s + 'dynamic_distribution_group;',
1322					w * 58, h * 59, '', 'Dynamic Distribution Group', null, null, this.getTagsForStencil(gn, 'dynamic distribution group', dt).join(' ')),
1323			this.createVertexTemplateEntry(s + 'mail_user;',
1324					w * 58, h * 59, '', 'Mail User', null, null, this.getTagsForStencil(gn, 'mail user', dt).join(' ')),
1325			this.createVertexTemplateEntry(s + 'meeting;',
1326					w * 59, h * 38, '', 'Meeting', null, null, this.getTagsForStencil(gn, 'meeting', dt).join(' ')),
1327			this.createVertexTemplateEntry(s + 'mobile_user;',
1328					w * 59, h * 56, '', 'Mobile User', null, null, this.getTagsForStencil(gn, 'mobile user', dt).join(' ')),
1329			this.createVertexTemplateEntry(s + 'online_user;',
1330					w * 54, h * 43, '', 'Online User', null, null, this.getTagsForStencil(gn, 'online user', dt).join(' ')),
1331			this.createVertexTemplateEntry(s + 'on_premises_user;',
1332					w * 49, h * 59, '', 'On-Premises User', null, null, this.getTagsForStencil(gn, 'on premises user', dt).join(' ')),
1333			this.createVertexTemplateEntry(s + 'outlook_user;',
1334					w * 63, h * 55, '', 'Outlook User', null, null, this.getTagsForStencil(gn, 'outlook user', dt).join(' ')),
1335			this.createVertexTemplateEntry(s + 'response_group;',
1336					w * 58, h * 54, '', 'Response Group', null, null, this.getTagsForStencil(gn, 'response group', dt).join(' ')),
1337			this.createVertexTemplateEntry(s + 'role_group;',
1338					w * 59, h * 56, '', 'Role Group', null, null, this.getTagsForStencil(gn, 'role group', dt).join(' ')),
1339			this.createVertexTemplateEntry(s + 'skype_commercial_user;',
1340					w * 59, h * 56, '', 'Skype Commercial User', null, null, this.getTagsForStencil(gn, 'skype commercial user', dt).join(' ')),
1341			this.createVertexTemplateEntry(s + 'skype_for_business_user;',
1342					w * 59, h * 56, '', 'Skype for Business User', null, null, this.getTagsForStencil(gn, 'skype for business user', dt).join(' ')),
1343			this.createVertexTemplateEntry(s + 'tenant_admin;',
1344					w * 56, h * 58, '', 'Tenant Admin', null, null, this.getTagsForStencil(gn, 'tenant admin', dt).join(' ')),
1345			this.createVertexTemplateEntry(s + 'um_enabled_user;',
1346					w * 58, h * 59, '', 'UM-Enabled User', null, null, this.getTagsForStencil(gn, 'um enabled user', dt).join(' ')),
1347			this.createVertexTemplateEntry(s + 'universal_security_group;',
1348					w * 58, h * 58, '', 'Universal Security Group', null, null, this.getTagsForStencil(gn, 'universal security group', dt).join(' ')),
1349			this.createVertexTemplateEntry(s + 'user;',
1350					w * 46, h * 50, '', 'User', null, null, this.getTagsForStencil(gn, 'user', dt).join(' ')),
1351			this.createVertexTemplateEntry(s2 + 'user;fillColor=#2072B8;',
1352					w * 46, h * 50, '', 'User (blue)', null, null, this.getTagsForStencil(gn, 'user', dt).join(' ')),
1353			this.createVertexTemplateEntry(s2 + 'user;fillColor=#DA4026;',
1354					w * 46, h * 50, '', 'User (orange)', null, null, this.getTagsForStencil(gn, 'user', dt).join(' ')),
1355			this.createVertexTemplateEntry(s2 + 'user;fillColor=#7FBA42;',
1356					w * 46, h * 50, '', 'User (green)', null, null, this.getTagsForStencil(gn, 'user', dt).join(' ')),
1357			this.createVertexTemplateEntry(s2 + 'user;fillColor=#CCCBCB;',
1358					w * 46, h * 50, '', 'User (ghosted)', null, null, this.getTagsForStencil(gn, 'user', dt).join(' ')),
1359			this.createVertexTemplateEntry(s + 'user;',
1360					w * 32, h * 35, '', 'User (small)', null, null, this.getTagsForStencil(gn, 'user small', dt).join(' ')),
1361			this.createVertexTemplateEntry(s + 'users;',
1362					w * 46, h * 50, '', 'Users', null, null, this.getTagsForStencil(gn, 'users', dt).join(' ')),
1363			this.createVertexTemplateEntry(s2 + 'users;fillColor=#2072B8;',
1364					w * 46, h * 50, '', 'Users (blue)', null, null, this.getTagsForStencil(gn, 'users', dt).join(' ')),
1365			this.createVertexTemplateEntry(s2 + 'users;fillColor=#DA4026;',
1366					w * 46, h * 50, '', 'Users (orange)', null, null, this.getTagsForStencil(gn, 'users', dt).join(' ')),
1367			this.createVertexTemplateEntry(s2 + 'users;fillColor=#7FBA42;',
1368					w * 46, h * 50, '', 'Users (green)', null, null, this.getTagsForStencil(gn, 'users', dt).join(' ')),
1369			this.createVertexTemplateEntry(s2 + 'users;fillColor=#CCCBCB;',
1370					w * 46, h * 50, '', 'Users (ghosted)', null, null, this.getTagsForStencil(gn, 'users', dt).join(' ')),
1371			this.createVertexTemplateEntry(s + 'users_two;',
1372					w * 57, h * 43, '', 'Users, Two', null, null, this.getTagsForStencil(gn, 'users two', dt).join(' ')),
1373			this.createVertexTemplateEntry(s + 'users_two;fillColor=#2072B8;',
1374					w * 57, h * 43, '', 'Users, Two (blue)', null, null, this.getTagsForStencil(gn, 'users two', dt).join(' ')),
1375			this.createVertexTemplateEntry(s + 'users_two;fillColor=#DA4026;',
1376					w * 57, h * 43, '', 'Users, Two (orange)', null, null, this.getTagsForStencil(gn, 'users two', dt).join(' ')),
1377			this.createVertexTemplateEntry(s + 'users_two;fillColor=#7FBA42;',
1378					w * 57, h * 43, '', 'Users, Two (green)', null, null, this.getTagsForStencil(gn, 'users two', dt).join(' ')),
1379			this.createVertexTemplateEntry(s + 'users_two;fillColor=#CCCBCB;',
1380					w * 57, h * 43, '', 'Users, Two (ghosted)', null, null, this.getTagsForStencil(gn, 'users two', dt).join(' ')),
1381			this.createVertexTemplateEntry(s + 'user_accounts;',
1382					w * 59, h * 59, '', 'User Accounts', null, null, this.getTagsForStencil(gn, 'user accounts', dt).join(' ')),
1383			this.createVertexTemplateEntry(s + 'user_external;',
1384					w * 59, h * 50, '', 'User External', null, null, this.getTagsForStencil(gn, 'user external', dt).join(' ')),
1385			this.createVertexTemplateEntry(s + 'user_services;',
1386					w * 59, h * 59, '', 'User Services', null, null, this.getTagsForStencil(gn, 'user services', dt).join(' ')),
1387			this.createVertexTemplateEntry(s + 'user_store;',
1388					w * 50, h * 55, '', 'User Store', null, null, this.getTagsForStencil(gn, 'user store', dt).join(' ')),
1389			this.createVertexTemplateEntry(s + 'writer;',
1390					w * 54, h * 59, '', 'Writer', null, null, this.getTagsForStencil(gn, 'writer', dt).join(' '))
1391		];
1392
1393		this.addPalette('officeUsers', 'Office / Users', false, mxUtils.bind(this, function(content)
1394				{
1395					for (var i = 0; i < fns.length; i++)
1396					{
1397						content.appendChild(fns[i](content));
1398					}
1399		}));
1400	};
1401})();
1402