1{
2	"socket.io": {
3		"scripts": [
4			"lib/socket.io-client/socket.io.min.js"
5		]
6	},
7	"jquery": {
8		"scripts": [
9			"lib/jquery/jquery.js"
10		]
11	},
12	"qunit": {
13		"scripts": [
14			"node_modules/qunit/qunit/qunit.js"
15		],
16		"styles": [
17			{ "file": "node_modules/qunit/qunit/qunit.css", "test": true }
18		]
19	},
20	"jsdifflib": {
21		"scripts": [
22			"lib/jsdifflib/diffview.js",
23			"lib/jsdifflib/difflib.js"
24		],
25		"styles": [
26			{ "file": "lib/jsdifflib/diffview.css", "test": true }
27		]
28	},
29	"treeDiffer": {
30		"scripts": [
31			"lib/treeDiffer/treeDiffer-dist.js"
32		]
33	},
34	"diffMatchPatch": {
35		"scripts": [
36			"lib/diff-match-patch/diff_match_patch_uncompressed.js"
37		]
38	},
39	"dompurify": {
40		"scripts": [
41			"lib/dompurify/purify.js"
42		]
43	},
44	"color-picker": {
45		"scripts": [
46			"lib/color-picker/color-picker.js"
47		],
48		"styles": [
49			"lib/color-picker/color-picker.css"
50		]
51	},
52	"oojs": {
53		"scripts": [
54			"lib/oojs/oojs.js"
55		],
56		"dependencies": [
57			"jquery"
58		]
59	},
60	"oojs.noJQuery": {
61		"scripts": [
62			"lib/oojs/oojs.js"
63		]
64	},
65	"oojs-ui": {
66		"scripts": [
67			"lib/oojs-ui/oojs-ui-core.js",
68			"lib/oojs-ui/oojs-ui-widgets.js",
69			"lib/oojs-ui/oojs-ui-toolbars.js",
70			"lib/oojs-ui/oojs-ui-windows.js"
71		],
72		"dependencies": [
73			"oojs",
74			"jquery"
75		]
76	},
77	"oojs-ui-apex": {
78		"scripts": [
79			"lib/oojs-ui/oojs-ui-apex.js"
80		],
81		"styles": [
82			"lib/oojs-ui/oojs-ui-apex.css",
83			"lib/oojs-ui/oojs-ui-apex-icons-alerts.css",
84			"lib/oojs-ui/oojs-ui-apex-icons-content.css",
85			"lib/oojs-ui/oojs-ui-apex-icons-interactions.css",
86			"lib/oojs-ui/oojs-ui-apex-icons-layout.css",
87			"lib/oojs-ui/oojs-ui-apex-icons-moderation.css",
88			"lib/oojs-ui/oojs-ui-apex-icons-movement.css",
89			"lib/oojs-ui/oojs-ui-apex-icons-user.css",
90			"lib/oojs-ui/oojs-ui-apex-icons-editing-core.css",
91			"lib/oojs-ui/oojs-ui-apex-icons-editing-advanced.css",
92			"lib/oojs-ui/oojs-ui-apex-icons-editing-styling.css",
93			"lib/oojs-ui/oojs-ui-apex-icons-editing-list.css"
94		],
95		"styleGroup": "read",
96		"dependencies": [
97			"oojs-ui"
98		]
99	},
100	"oojs-ui-wikimediaui": {
101		"scripts": [
102			"lib/oojs-ui/oojs-ui-wikimediaui.js"
103		],
104		"styles": [
105			"lib/oojs-ui/oojs-ui-wikimediaui.css",
106			"lib/oojs-ui/oojs-ui-wikimediaui-icons-alerts.css",
107			"lib/oojs-ui/oojs-ui-wikimediaui-icons-content.css",
108			"lib/oojs-ui/oojs-ui-wikimediaui-icons-interactions.css",
109			"lib/oojs-ui/oojs-ui-wikimediaui-icons-layout.css",
110			"lib/oojs-ui/oojs-ui-wikimediaui-icons-moderation.css",
111			"lib/oojs-ui/oojs-ui-wikimediaui-icons-movement.css",
112			"lib/oojs-ui/oojs-ui-wikimediaui-icons-user.css",
113			"lib/oojs-ui/oojs-ui-wikimediaui-icons-editing-core.css",
114			"lib/oojs-ui/oojs-ui-wikimediaui-icons-editing-advanced.css",
115			"lib/oojs-ui/oojs-ui-wikimediaui-icons-editing-styling.css",
116			"lib/oojs-ui/oojs-ui-wikimediaui-icons-editing-list.css"
117		],
118		"styleGroup": "read",
119		"dependencies": [
120			"oojs-ui"
121		]
122	},
123	"unicodejs": {
124		"scripts": [
125			"lib/unicodejs/unicodejs.js"
126		]
127	},
128	"rangefix": {
129		"scripts": [
130			"lib/rangefix/rangefix.js"
131		]
132	},
133	"spark-md5": {
134		"scripts": [
135			"lib/spark-md5/spark-md5.js"
136		]
137	},
138	"jquery.i18n": {
139		"scripts": [
140			"lib/jquery.i18n/src/jquery.i18n.js",
141			"lib/jquery.i18n/src/jquery.i18n.messagestore.js",
142			"lib/jquery.i18n/src/jquery.i18n.parser.js",
143			"lib/jquery.i18n/src/jquery.i18n.emitter.js",
144			"lib/jquery.i18n/src/jquery.i18n.emitter.bidi.js",
145			"lib/jquery.i18n/src/jquery.i18n.language.js",
146			"lib/jquery.i18n/src/jquery.i18n.fallbacks.js",
147			"lib/jquery.i18n/src/languages/bs.js",
148			"lib/jquery.i18n/src/languages/dsb.js",
149			"lib/jquery.i18n/src/languages/fi.js",
150			"lib/jquery.i18n/src/languages/ga.js",
151			"lib/jquery.i18n/src/languages/he.js",
152			"lib/jquery.i18n/src/languages/hsb.js",
153			"lib/jquery.i18n/src/languages/hu.js",
154			"lib/jquery.i18n/src/languages/hy.js",
155			"lib/jquery.i18n/src/languages/la.js",
156			"lib/jquery.i18n/src/languages/ml.js",
157			"lib/jquery.i18n/src/languages/os.js",
158			"lib/jquery.i18n/src/languages/ru.js",
159			"lib/jquery.i18n/src/languages/sl.js",
160			"lib/jquery.i18n/src/languages/uk.js"
161		],
162		"dependencies": [
163			"jquery",
164			"CLDRPluralRuleParser"
165		]
166	},
167	"CLDRPluralRuleParser": {
168		"scripts": [
169			"lib/jquery.i18n/libs/CLDRPluralRuleParser/src/CLDRPluralRuleParser.js"
170		]
171	},
172	"jquery.i18n.dist": {
173		"scripts": [
174			"dist/lib/jquery.i18n.js"
175		],
176		"dependencies": [
177			"jquery"
178		]
179	},
180	"jquery.uls.data": {
181		"scripts": [
182			"lib/jquery.uls/src/jquery.uls.data.js",
183			"lib/jquery.uls/src/jquery.uls.data.utils.js"
184		],
185		"dependencies": [
186			"jquery"
187		]
188	},
189	"jquery.uls.data.dist": {
190		"scripts": [
191			"dist/lib/jquery.uls.data.js"
192		],
193		"dependencies": [
194			"jquery"
195		]
196	},
197	"papaparse": {
198		"scripts": [
199			"lib/papaparse/papaparse.js"
200		],
201		"dependencies": [
202			"jquery"
203		]
204	},
205	"jquery.client": {
206		"scripts": [
207			"lib/jquery.client/jquery.client.js"
208		],
209		"dependencies": [
210			"jquery"
211		]
212	},
213	"baselibs": {
214		"dependencies": [
215			"jquery",
216			"oojs",
217			"oojs-ui",
218			"jquery.i18n",
219			"jquery.uls.data",
220			"jquery.client",
221			"papaparse"
222		]
223	},
224	"baselibs.dist": {
225		"dependencies": [
226			"jquery",
227			"oojs",
228			"oojs-ui",
229			"jquery.i18n.dist",
230			"jquery.uls.data.dist",
231			"jquery.client",
232			"papaparse"
233		]
234	},
235	"visualEditor.supportCheck": {
236		"scripts": [
237			"src/init/ve.init.SupportCheck.js"
238		]
239	},
240	"visualEditor.sanitize": {
241		"scripts": [
242			"src/ve.sanitize.js"
243		],
244		"dependencies": [
245			"visualEditor.core.ve",
246			"dompurify"
247		]
248	},
249	"visualEditor.base": {
250		"dependencies": [
251			"baselibs",
252			"visualEditor.base.build"
253		]
254	},
255	"visualEditor.base.build": {
256		"dependencies": [
257			"unicodejs",
258			"rangefix",
259			"spark-md5",
260			"visualEditor.core.utils",
261			"visualEditor.core.utils.parsing",
262			"visualEditor.core.init"
263		]
264	},
265	"visualEditor.core": {
266		"dependencies": [
267			"visualEditor.base",
268			"visualEditor.core.build"
269		]
270	},
271	"visualEditor.core.ve": {
272		"scripts": [
273			"src/ve.js"
274		]
275	},
276	"visualEditor.core.utils": {
277		"scripts": [
278			"src/ve.utils.js",
279			"src/ve.TriggerListener.js",
280			{ "file": "src/ve.debug.js", "debug": true },
281			{ "file": "src/ve.freeze.js", "debug": true },
282			"src/ve.track.js"
283		],
284		"dependencies": [
285			"visualEditor.core.ve"
286		]
287	},
288	"visualEditor.core.utils.parsing": {
289		"scripts": [
290			"src/ve.utils.parsing.js"
291		],
292		"dependencies": [
293			"visualEditor.core.ve"
294		]
295	},
296	"visualEditor.core.utils.client": {
297		"scripts": [
298			"src/ve.utils.client.js"
299		],
300		"dependencies": [
301			"visualEditor.core.ve"
302		]
303	},
304	"visualEditor.core.init": {
305		"scripts": [
306			"src/init/ve.init.js",
307			"src/init/ve.init.SafeStorage.js",
308			"src/init/ve.init.ListStorage.js",
309			"src/init/ve.init.Platform.js",
310			"src/init/ve.init.Target.js"
311		],
312		"dependencies": [
313			"visualEditor.supportCheck",
314			"visualEditor.core.utils.client"
315		]
316	},
317	"visualEditor.core.build": {
318		"dependencies": [
319			"visualEditor.base.build",
320			"visualEditor.sanitize",
321			"visualEditor.core.utils.client",
322			"visualEditor.core.root",
323			"visualEditor.core.model",
324			"visualEditor.core.view",
325			"visualEditor.core.ui"
326		]
327	},
328	"visualEditor.core.root": {
329		"scripts": [
330			"src/ve.Range.js",
331			"src/ve.SelectionState.js",
332			"src/ve.Node.js",
333			"src/ve.PositionStep.js",
334			"src/ve.BranchNode.js",
335			"src/ve.LeafNode.js",
336			"src/ve.Document.js",
337			"src/ve.EventSequencer.js",
338			"src/ve.Scheduler.js",
339			{ "file": "src/ve.Filibuster.js", "debug": true }
340		]
341	},
342	"visualEditor.core.model": {
343		"scripts": [
344			"src/dm/ve.dm.js",
345			"src/dm/ve.dm.Model.js",
346			"src/dm/ve.dm.ModelFactory.js",
347			"src/dm/ve.dm.ModelRegistry.js",
348			"src/dm/ve.dm.NodeFactory.js",
349			"src/dm/ve.dm.AnnotationFactory.js",
350			"src/dm/ve.dm.AnnotationSet.js",
351			"src/dm/ve.dm.ClassAttributeNode.js",
352			"src/dm/ve.dm.AlignableNode.js",
353			"src/dm/ve.dm.FocusableNode.js",
354			"src/dm/ve.dm.ResizableNode.js",
355			"src/dm/ve.dm.TableCellableNode.js",
356			"src/dm/ve.dm.Scalable.js",
357			"src/dm/ve.dm.Node.js",
358			"src/dm/ve.dm.BranchNode.js",
359			"src/dm/ve.dm.ContentBranchNode.js",
360			"src/dm/ve.dm.LeafNode.js",
361			"src/dm/ve.dm.Annotation.js",
362			"src/dm/ve.dm.InternalList.js",
363			"src/dm/ve.dm.MetaItem.js",
364			"src/dm/ve.dm.MetaList.js",
365			"src/dm/ve.dm.TableMatrix.js",
366			"src/dm/ve.dm.TransactionProcessor.js",
367			"src/dm/ve.dm.Transaction.js",
368			"src/dm/ve.dm.TransactionBuilder.js",
369			"src/dm/ve.dm.TransactionSquasher.js",
370			"src/dm/ve.dm.Change.js",
371			"src/dm/ve.dm.TreeCursor.js",
372			"src/dm/ve.dm.TreeModifier.js",
373			"src/dm/ve.dm.Selection.js",
374			"src/dm/ve.dm.Surface.js",
375			"src/dm/ve.dm.SurfaceFragment.js",
376			"src/dm/ve.dm.SourceSurfaceFragment.js",
377			"src/dm/ve.dm.DataString.js",
378			"src/dm/ve.dm.Document.js",
379			"src/dm/ve.dm.DocumentSlice.js",
380			"src/dm/ve.dm.TableSlice.js",
381			"src/dm/ve.dm.LinearData.js",
382			"src/dm/ve.dm.HashValueStore.js",
383			"src/dm/ve.dm.Converter.js",
384			"src/dm/ve.dm.SourceConverter.js",
385			"src/dm/selections/ve.dm.LinearSelection.js",
386			"src/dm/selections/ve.dm.NullSelection.js",
387			"src/dm/selections/ve.dm.TableSelection.js",
388			"src/dm/lineardata/ve.dm.FlatLinearData.js",
389			"src/dm/lineardata/ve.dm.ElementLinearData.js",
390			"src/dm/nodes/ve.dm.GeneratedContentNode.js",
391			"src/dm/nodes/ve.dm.AlienNode.js",
392			"src/dm/nodes/ve.dm.AlienBlockNode.js",
393			"src/dm/nodes/ve.dm.AlienInlineNode.js",
394			"src/dm/nodes/ve.dm.AlienTableCellNode.js",
395			"src/dm/nodes/ve.dm.ArticleNode.js",
396			"src/dm/nodes/ve.dm.BlockquoteNode.js",
397			"src/dm/nodes/ve.dm.BreakNode.js",
398			"src/dm/nodes/ve.dm.CenterNode.js",
399			"src/dm/nodes/ve.dm.DefinitionListItemNode.js",
400			"src/dm/nodes/ve.dm.DefinitionListNode.js",
401			"src/dm/nodes/ve.dm.DivNode.js",
402			"src/dm/nodes/ve.dm.DocumentNode.js",
403			"src/dm/nodes/ve.dm.HeadingNode.js",
404			"src/dm/nodes/ve.dm.HorizontalRuleNode.js",
405			"src/dm/nodes/ve.dm.InternalItemNode.js",
406			"src/dm/nodes/ve.dm.InternalListNode.js",
407			"src/dm/nodes/ve.dm.ListItemNode.js",
408			"src/dm/nodes/ve.dm.ListNode.js",
409			"src/dm/nodes/ve.dm.ParagraphNode.js",
410			"src/dm/nodes/ve.dm.PreformattedNode.js",
411			"src/dm/nodes/ve.dm.SectionNode.js",
412			"src/dm/nodes/ve.dm.TableCaptionNode.js",
413			"src/dm/nodes/ve.dm.TableCellNode.js",
414			"src/dm/nodes/ve.dm.TableNode.js",
415			"src/dm/nodes/ve.dm.TableRowNode.js",
416			"src/dm/nodes/ve.dm.TableSectionNode.js",
417			"src/dm/nodes/ve.dm.TextNode.js",
418			"src/dm/nodes/ve.dm.ImageNode.js",
419			"src/dm/nodes/ve.dm.BlockImageNode.js",
420			"src/dm/nodes/ve.dm.BlockImageCaptionNode.js",
421			"src/dm/nodes/ve.dm.InlineImageNode.js",
422			"src/dm/annotations/ve.dm.TextStyleAnnotation.js",
423			"src/dm/annotations/ve.dm.LanguageAnnotation.js",
424			"src/dm/annotations/ve.dm.LinkAnnotation.js",
425			"src/dm/annotations/ve.dm.AbbreviationAnnotation.js",
426			"src/dm/annotations/ve.dm.BidiAnnotation.js",
427			"src/dm/annotations/ve.dm.BigAnnotation.js",
428			"src/dm/annotations/ve.dm.BoldAnnotation.js",
429			"src/dm/annotations/ve.dm.CodeSampleAnnotation.js",
430			"src/dm/annotations/ve.dm.CodeAnnotation.js",
431			"src/dm/annotations/ve.dm.DatetimeAnnotation.js",
432			"src/dm/annotations/ve.dm.DefinitionAnnotation.js",
433			"src/dm/annotations/ve.dm.DeleteAnnotation.js",
434			"src/dm/annotations/ve.dm.FontAnnotation.js",
435			"src/dm/annotations/ve.dm.HighlightAnnotation.js",
436			"src/dm/annotations/ve.dm.InsertAnnotation.js",
437			"src/dm/annotations/ve.dm.ItalicAnnotation.js",
438			"src/dm/annotations/ve.dm.QuotationAnnotation.js",
439			"src/dm/annotations/ve.dm.SmallAnnotation.js",
440			"src/dm/annotations/ve.dm.SpanAnnotation.js",
441			"src/dm/annotations/ve.dm.StrikethroughAnnotation.js",
442			"src/dm/annotations/ve.dm.SubscriptAnnotation.js",
443			"src/dm/annotations/ve.dm.SuperscriptAnnotation.js",
444			"src/dm/annotations/ve.dm.UnderlineAnnotation.js",
445			"src/dm/annotations/ve.dm.UserInputAnnotation.js",
446			"src/dm/annotations/ve.dm.VariableAnnotation.js",
447			"src/dm/metaitems/ve.dm.AlienMetaItem.js",
448			"src/dm/metaitems/ve.dm.RemovableAlienMetaItem.js",
449			"src/dm/metaitems/ve.dm.CommentMetaItem.js",
450			"src/dm/nodes/ve.dm.CommentNode.js",
451			"src/dm/nodes/ve.dm.FakeCommentNode.js",
452			"src/dm/nodes/ve.dm.RealCommentNode.js"
453		]
454	},
455	"visualEditor.core.view": {
456		"scripts": [
457			"src/ce/ve.ce.js",
458			{ "file": "src/ce/ve.ce.debug.js", "debug": true },
459			"src/ce/ve.ce.TextStateChunk.js",
460			"src/ce/ve.ce.TextState.js",
461			"src/ce/ve.ce.RangeState.js",
462			"src/ce/ve.ce.AnnotationFactory.js",
463			"src/ce/ve.ce.NodeFactory.js",
464			"src/ce/ve.ce.Document.js",
465			"src/ce/ve.ce.View.js",
466			"src/ce/ve.ce.Annotation.js",
467			"src/ce/ve.ce.Node.js",
468			"src/ce/ve.ce.BranchNode.js",
469			"src/ce/ve.ce.ContentBranchNode.js",
470			"src/ce/ve.ce.LeafNode.js",
471			"src/ce/ve.ce.MetaItem.js",
472			"src/ce/ve.ce.ClassAttributeNode.js",
473			"src/ce/ve.ce.AlignableNode.js",
474			"src/ce/ve.ce.FocusableNode.js",
475			"src/ce/ve.ce.ResizableNode.js",
476			"src/ce/ve.ce.TableCellableNode.js",
477			"src/ce/ve.ce.Selection.js",
478			"src/ce/ve.ce.Surface.js",
479			"src/ce/ve.ce.SurfaceObserver.js",
480			"src/ce/ve.ce.KeyDownHandlerFactory.js",
481			"src/ce/ve.ce.KeyDownHandler.js",
482			"src/ce/selections/ve.ce.LinearSelection.js",
483			"src/ce/selections/ve.ce.NullSelection.js",
484			"src/ce/selections/ve.ce.TableSelection.js",
485			"src/ce/keydownhandlers/ve.ce.LinearArrowKeyDownHandler.js",
486			"src/ce/keydownhandlers/ve.ce.LinearDeleteKeyDownHandler.js",
487			"src/ce/keydownhandlers/ve.ce.LinearEnterKeyDownHandler.js",
488			"src/ce/keydownhandlers/ve.ce.LinearEscapeKeyDownHandler.js",
489			"src/ce/keydownhandlers/ve.ce.TableArrowKeyDownHandler.js",
490			"src/ce/keydownhandlers/ve.ce.TableDeleteKeyDownHandler.js",
491			"src/ce/keydownhandlers/ve.ce.LinearTabKeyDownHandler.js",
492			"src/ce/nodes/ve.ce.GeneratedContentNode.js",
493			"src/ce/nodes/ve.ce.ContentEditableNode.js",
494			"src/ce/nodes/ve.ce.ActiveNode.js",
495			"src/ce/nodes/ve.ce.AlienNode.js",
496			"src/ce/nodes/ve.ce.AlienBlockNode.js",
497			"src/ce/nodes/ve.ce.AlienInlineNode.js",
498			"src/ce/nodes/ve.ce.AlienTableCellNode.js",
499			"src/ce/nodes/ve.ce.ArticleNode.js",
500			"src/ce/nodes/ve.ce.BlockquoteNode.js",
501			"src/ce/nodes/ve.ce.BreakNode.js",
502			"src/ce/nodes/ve.ce.CenterNode.js",
503			"src/ce/nodes/ve.ce.CommentNode.js",
504			"src/ce/nodes/ve.ce.DefinitionListItemNode.js",
505			"src/ce/nodes/ve.ce.DefinitionListNode.js",
506			"src/ce/nodes/ve.ce.DivNode.js",
507			"src/ce/nodes/ve.ce.DocumentNode.js",
508			"src/ce/nodes/ve.ce.HeadingNode.js",
509			"src/ce/nodes/ve.ce.HorizontalRuleNode.js",
510			"src/ce/nodes/ve.ce.InternalItemNode.js",
511			"src/ce/nodes/ve.ce.InternalListNode.js",
512			"src/ce/nodes/ve.ce.ListItemNode.js",
513			"src/ce/nodes/ve.ce.ListNode.js",
514			"src/ce/nodes/ve.ce.ParagraphNode.js",
515			"src/ce/nodes/ve.ce.PreformattedNode.js",
516			"src/ce/nodes/ve.ce.SectionNode.js",
517			"src/ce/nodes/ve.ce.TableCaptionNode.js",
518			"src/ce/nodes/ve.ce.TableCellNode.js",
519			"src/ce/nodes/ve.ce.TableNode.js",
520			"src/ce/nodes/ve.ce.TableRowNode.js",
521			"src/ce/nodes/ve.ce.TableSectionNode.js",
522			"src/ce/nodes/ve.ce.TextNode.js",
523			"src/ce/nodes/ve.ce.UnrenderedNode.js",
524			"src/ce/nodes/ve.ce.ImageNode.js",
525			"src/ce/nodes/ve.ce.BlockImageNode.js",
526			"src/ce/nodes/ve.ce.BlockImageCaptionNode.js",
527			"src/ce/nodes/ve.ce.InlineImageNode.js",
528			"src/ce/annotations/ve.ce.NailedAnnotation.js",
529			"src/ce/annotations/ve.ce.TextStyleAnnotation.js",
530			"src/ce/annotations/ve.ce.LanguageAnnotation.js",
531			"src/ce/annotations/ve.ce.LinkAnnotation.js",
532			"src/ce/annotations/ve.ce.AbbreviationAnnotation.js",
533			"src/ce/annotations/ve.ce.BidiAnnotation.js",
534			"src/ce/annotations/ve.ce.BigAnnotation.js",
535			"src/ce/annotations/ve.ce.BoldAnnotation.js",
536			"src/ce/annotations/ve.ce.CodeAnnotation.js",
537			"src/ce/annotations/ve.ce.CodeSampleAnnotation.js",
538			"src/ce/annotations/ve.ce.DatetimeAnnotation.js",
539			"src/ce/annotations/ve.ce.DefinitionAnnotation.js",
540			"src/ce/annotations/ve.ce.DeleteAnnotation.js",
541			"src/ce/annotations/ve.ce.FontAnnotation.js",
542			"src/ce/annotations/ve.ce.HighlightAnnotation.js",
543			"src/ce/annotations/ve.ce.InsertAnnotation.js",
544			"src/ce/annotations/ve.ce.ItalicAnnotation.js",
545			"src/ce/annotations/ve.ce.QuotationAnnotation.js",
546			"src/ce/annotations/ve.ce.SmallAnnotation.js",
547			"src/ce/annotations/ve.ce.SpanAnnotation.js",
548			"src/ce/annotations/ve.ce.StrikethroughAnnotation.js",
549			"src/ce/annotations/ve.ce.SubscriptAnnotation.js",
550			"src/ce/annotations/ve.ce.SuperscriptAnnotation.js",
551			"src/ce/annotations/ve.ce.UnderlineAnnotation.js",
552			"src/ce/annotations/ve.ce.UserInputAnnotation.js",
553			"src/ce/annotations/ve.ce.VariableAnnotation.js"
554		],
555		"styles": [
556			"src/ce/styles/nodes/ve.ce.FocusableNode.css",
557			"src/ce/styles/nodes/ve.ce.ActiveNode.css",
558			"src/ce/styles/nodes/ve.ce.AlienNode.css",
559			"src/ce/styles/nodes/ve.ce.BranchNode.css",
560			"src/ce/styles/nodes/ve.ce.ContentBranchNode.css",
561			"src/ce/styles/nodes/ve.ce.RootNode.css",
562			"src/ce/styles/nodes/ve.ce.GeneratedContentNode.css",
563			"src/ce/styles/nodes/ve.ce.HorizontalRuleNode.css",
564			"src/ce/styles/nodes/ve.ce.CommentNode.css",
565			"src/ce/styles/annotations/ve.ce.LanguageAnnotation.css",
566			"src/ce/styles/annotations/ve.ce.LinkAnnotation.css",
567			"src/ce/styles/nodes/ve.ce.ResizableNode.css",
568			"src/ce/styles/nodes/ve.ce.SectionNode.css",
569			"src/ce/styles/nodes/ve.ce.TableCellNode.css",
570			"src/ce/styles/nodes/ve.ce.TableNode.css",
571			"src/ce/styles/ve.ce.css",
572			"src/ce/styles/ve.ce.Surface.css"
573		],
574		"styleGroup": "ve"
575	},
576	"visualEditor.core.ui": {
577		"scripts": [
578			"src/ui/ve.ui.js",
579			"src/ui/ve.ui.Overlay.js",
580			"src/ui/ve.ui.Surface.js",
581			"src/ui/ve.ui.Context.js",
582			"src/ui/contexts/ve.ui.LinearContext.js",
583			"src/ui/contexts/ve.ui.TableLineContext.js",
584			"src/ui/ve.ui.ModeledFactory.js",
585			"src/ui/ve.ui.ContextItem.js",
586			"src/ui/ve.ui.ContextItemFactory.js",
587			"src/ui/contextitems/ve.ui.LinearContextItem.js",
588			"src/ui/contextitems/ve.ui.AnnotationContextItem.js",
589			"src/ui/contextitems/ve.ui.TableLineContextItem.js",
590			"src/ui/contextitems/ve.ui.AlienContextItem.js",
591			"src/ui/contextitems/ve.ui.AlignableContextItem.js",
592			"src/ui/contextitems/ve.ui.CommentContextItem.js",
593			"src/ui/contextitems/ve.ui.LanguageContextItem.js",
594			"src/ui/contextitems/ve.ui.LinkContextItem.js",
595			"src/ui/contextitems/ve.ui.ToolContextItem.js",
596			"src/ui/contextitems/ve.ui.TableContextItem.js",
597			"src/ui/contextitems/ve.ui.MergeCellsContextItem.js",
598			"src/ui/contextitems/ve.ui.SumCellsContextItem.js",
599			"src/ui/ve.ui.Tool.js",
600			"src/ui/ve.ui.Toolbar.js",
601			"src/ui/ve.ui.TargetToolbar.js",
602			"src/ui/ve.ui.PositionedTargetToolbar.js",
603			{ "file": "src/ui/ve.ui.DebugBar.js", "debug": true },
604			"src/ui/ve.ui.ToolFactory.js",
605			"src/ui/ve.ui.Command.js",
606			"src/ui/ve.ui.CommandRegistry.js",
607			"src/ui/ve.ui.CommandHelpRegistry.js",
608			"src/ui/ve.ui.Trigger.js",
609			"src/ui/ve.ui.TriggerRegistry.js",
610			"src/ui/ve.ui.Sequence.js",
611			"src/ui/ve.ui.SequenceRegistry.js",
612			"src/ui/ve.ui.Action.js",
613			"src/ui/ve.ui.ActionFactory.js",
614			"src/ui/ve.ui.DataTransferHandler.js",
615			"src/ui/ve.ui.FileTransferHandler.js",
616			"src/ui/ve.ui.DataTransferHandlerFactory.js",
617			"src/ui/ve.ui.DataTransferItem.js",
618			"src/ui/ve.ui.WindowManager.js",
619			"src/ui/ve.ui.FragmentWindow.js",
620			"src/ui/ve.ui.NodeWindow.js",
621			"src/ui/ve.ui.TabIndexScope.js",
622			"src/ui/windowmanagers/ve.ui.SurfaceWindowManager.js",
623			"src/ui/actions/ve.ui.AnnotationAction.js",
624			"src/ui/actions/ve.ui.BlockquoteAction.js",
625			"src/ui/actions/ve.ui.CompletionAction.js",
626			"src/ui/actions/ve.ui.ContentAction.js",
627			"src/ui/actions/ve.ui.FormatAction.js",
628			"src/ui/actions/ve.ui.HistoryAction.js",
629			"src/ui/actions/ve.ui.IndentationAction.js",
630			"src/ui/actions/ve.ui.LinkAction.js",
631			"src/ui/actions/ve.ui.ListAction.js",
632			"src/ui/actions/ve.ui.TableAction.js",
633			"src/ui/actions/ve.ui.WindowAction.js",
634			"src/ui/commands/ve.ui.ClearAnnotationCommand.js",
635			"src/ui/commands/ve.ui.HistoryCommand.js",
636			"src/ui/commands/ve.ui.IndentationCommand.js",
637			"src/ui/commands/ve.ui.MergeCellsCommand.js",
638			"src/ui/dialogs/ve.ui.FragmentDialog.js",
639			"src/ui/dialogs/ve.ui.NodeDialog.js",
640			"src/ui/dialogs/ve.ui.ToolbarDialog.js",
641			"src/ui/dialogs/ve.ui.CommandHelpDialog.js",
642			"src/ui/dialogs/ve.ui.FindAndReplaceDialog.js",
643			"src/ui/dialogs/ve.ui.ProgressDialog.js",
644			"src/ui/dialogs/ve.ui.SpecialCharacterDialog.js",
645			"src/ui/dialogs/ve.ui.TableDialog.js",
646			"src/ui/datatransferhandlers/ve.ui.HTMLStringTransferHandler.js",
647			"src/ui/datatransferhandlers/ve.ui.PlainTextStringTransferHandler.js",
648			"src/ui/datatransferhandlers/ve.ui.DSVFileTransferHandler.js",
649			"src/ui/datatransferhandlers/ve.ui.PlainTextFileTransferHandler.js",
650			"src/ui/datatransferhandlers/ve.ui.HTMLFileTransferHandler.js",
651			"src/ui/datatransferhandlers/ve.ui.UrlStringTransferHandler.js",
652			"src/ui/elements/ve.ui.PreviewElement.js",
653			"src/ui/windowmanagers/ve.ui.ToolbarDialogWindowManager.js",
654			"src/ui/widgets/ve.ui.AlignWidget.js",
655			"src/ui/widgets/ve.ui.LanguageSearchWidget.js",
656			"src/ui/widgets/ve.ui.LanguageResultWidget.js",
657			"src/ui/dialogs/ve.ui.LanguageSearchDialog.js",
658			"src/ui/widgets/ve.ui.LanguageInputWidget.js",
659			"src/ui/widgets/ve.ui.TargetWidget.js",
660			"src/ui/widgets/ve.ui.LinkAnnotationWidget.js",
661			"src/ui/widgets/ve.ui.CompletionWidget.js",
662			"src/ui/widgets/ve.ui.ContextSelectWidget.js",
663			"src/ui/widgets/ve.ui.ContextOptionWidget.js",
664			"src/ui/widgets/ve.ui.DimensionsWidget.js",
665			"src/ui/widgets/ve.ui.MediaSizeWidget.js",
666			"src/ui/widgets/ve.ui.NoFocusButtonWidget.js",
667			"src/ui/widgets/ve.ui.WhitespacePreservingTextInputWidget.js",
668			"src/ui/tools/ve.ui.AnnotationTool.js",
669			"src/ui/tools/ve.ui.ChangeDirectionalityTool.js",
670			"src/ui/tools/ve.ui.ClearAnnotationTool.js",
671			"src/ui/tools/ve.ui.WindowTool.js",
672			"src/ui/tools/ve.ui.FragmentWindowTool.js",
673			"src/ui/tools/ve.ui.FragmentInspectorTool.js",
674			"src/ui/tools/ve.ui.LinkInspectorTool.js",
675			"src/ui/tools/ve.ui.CommentInspectorTool.js",
676			"src/ui/tools/ve.ui.ToolbarDialogTool.js",
677			"src/ui/tools/ve.ui.FormatTool.js",
678			"src/ui/tools/ve.ui.HistoryTool.js",
679			"src/ui/tools/ve.ui.IndentationTool.js",
680			"src/ui/tools/ve.ui.LanguageInspectorTool.js",
681			"src/ui/tools/ve.ui.ListTool.js",
682			"src/ui/tools/ve.ui.TableTool.js",
683			"src/ui/inspectors/ve.ui.FragmentInspector.js",
684			"src/ui/inspectors/ve.ui.AnnotationInspector.js",
685			"src/ui/inspectors/ve.ui.NodeInspector.js",
686			"src/ui/inspectors/ve.ui.LinkAnnotationInspector.js",
687			"src/ui/inspectors/ve.ui.CommentInspector.js",
688			"src/ui/inspectors/ve.ui.LanguageInspector.js",
689			"src/ui/pages/ve.ui.SpecialCharacterPage.js"
690		],
691		"styles": [
692			"src/ui/styles/dialogs/ve.ui.ToolbarDialog.css",
693			"src/ui/styles/dialogs/ve.ui.CommandHelpDialog.css",
694			"src/ui/styles/dialogs/ve.ui.FindAndReplaceDialog.css",
695			"src/ui/styles/dialogs/ve.ui.ProgressDialog.css",
696			"src/ui/styles/dialogs/ve.ui.SpecialCharacterDialog.css",
697			"src/ui/styles/dialogs/ve.ui.TableDialog.css",
698			"src/ui/styles/elements/ve.ui.PreviewElement.css",
699			"src/ui/styles/tools/ve.ui.FormatTool.css",
700			"src/ui/styles/widgets/ve.ui.LanguageInputWidget.css",
701			"src/ui/styles/widgets/ve.ui.LanguageSearchWidget.css",
702			"src/ui/styles/widgets/ve.ui.CompletionWidget.css",
703			"src/ui/styles/widgets/ve.ui.ContextOptionWidget.css",
704			"src/ui/styles/widgets/ve.ui.ContextSelectWidget.css",
705			"src/ui/styles/widgets/ve.ui.DimensionsWidget.css",
706			"src/ui/styles/widgets/ve.ui.MediaSizeWidget.css",
707			"src/ui/styles/inspectors/ve.ui.CommentInspector.css",
708			"src/ui/styles/inspectors/ve.ui.FragmentInspector.css",
709			"src/ui/styles/inspectors/ve.ui.LanguageInspector.css",
710			"src/ui/styles/ve.ui.Context.css",
711			"src/ui/styles/ve.ui.ContextItem.css",
712			"src/ui/styles/contextitems/ve.ui.LinearContextItem.css",
713			"src/ui/styles/contextitems/ve.ui.TableLineContextItem.css",
714			"src/ui/styles/contextitems/ve.ui.AlignableContextItem.css",
715			"src/ui/styles/contextitems/ve.ui.CommentContextItem.css",
716			"src/ui/styles/contextitems/ve.ui.LanguageContextItem.css",
717			"src/ui/styles/contextitems/ve.ui.LinkContextItem.css",
718			"src/ui/styles/contextitems/ve.ui.ToolContextItem.css",
719			"src/ui/styles/ve.ui.Overlay.css",
720			"src/ui/styles/ve.ui.Surface.css",
721			"src/ui/styles/widgets/ve.ui.TargetWidget.css",
722			"src/ui/styles/ve.ui.TableLineContext.css",
723			"src/ui/styles/ve.ui.Toolbar.css"
724		],
725		"styleGroup": "ve"
726	},
727	"visualEditor.checkList": {
728		"scripts": [
729			"src/dm/nodes/ve.dm.CheckListNode.js",
730			"src/dm/nodes/ve.dm.CheckListItemNode.js",
731			"src/ce/nodes/ve.ce.CheckListNode.js",
732			"src/ce/nodes/ve.ce.CheckListItemNode.js",
733			"src/ui/tools/ve.ui.CheckListTool.js"
734		],
735		"styles": [
736			"src/ce/styles/nodes/ve.ce.CheckListNode.css"
737		],
738		"dependencies": [
739			"visualEditor.core.build"
740		]
741	},
742	"visualEditor.diffing": {
743		"scripts": [
744			"src/ve.DiffTreeNode.js",
745			"src/ve.DiffMatchPatch.js",
746			"src/dm/ve.dm.VisualDiff.js",
747			"src/ui/elements/ve.ui.DiffElement.js",
748			"src/ui/widgets/ve.ui.ChangeDescriptionsSelectWidget.js"
749		],
750		"styles": [
751			"src/ui/styles/elements/ve.ui.DiffElement.css"
752		],
753		"dependencies": [
754			"visualEditor.core.build",
755			"treeDiffer",
756			"diffMatchPatch"
757		]
758	},
759	"visualEditor.diffing.standalone": {
760		"scripts": [
761			"src/ui/dialogs/ve.ui.DiffDialog.js"
762		],
763		"dependencies": [
764			"visualEditor.diffing"
765		]
766	},
767	"visualEditor.commentAnnotation": {
768		"scripts": [
769			"src/dm/annotations/ve.dm.CommentAnnotation.js",
770			"src/ce/annotations/ve.ce.CommentAnnotation.js",
771			"src/ui/contextitems/ve.ui.CommentAnnotationContextItem.js",
772			"src/ui/tools/ve.ui.CommentAnnotationInspectorTool.js",
773			"src/ui/inspectors/ve.ui.CommentAnnotationInspector.js"
774		],
775		"styles": [
776			"src/ce/styles/annotations/ve.ce.CommentAnnotation.css",
777			"src/ui/styles/contextitems/ve.ui.CommentAnnotationContextItem.css"
778		],
779		"dependencies": [
780			"visualEditor.core.build"
781		]
782	},
783	"visualEditor.rebase": {
784		"scripts": [
785			"src/dm/ve.dm.RebaseClient.js",
786			"src/dm/ve.dm.SurfaceSynchronizer.js",
787			"src/ui/widgets/ve.ui.AuthorItemWidget.js",
788			"src/ui/tools/ve.ui.AuthorListPopupTool.js"
789		],
790		"styles": [
791			"src/ui/styles/widgets/ve.ui.AuthorItemWidget.css"
792		],
793		"dependencies": [
794			"visualEditor.sanitize",
795			"socket.io",
796			"color-picker",
797			"visualEditor.commentAnnotation",
798			"visualEditor.checkList"
799		]
800	},
801	"visualEditor.rebase.build": {
802		"dependencies": [
803			"visualEditor.build",
804			"visualEditor.rebase",
805			"visualEditor.theme.apex"
806		]
807	},
808	"visualEditor.test": {
809		"scripts": [
810			"src/ve.freeze.js",
811
812			"rebaser/src/dm/ve.dm.RebaseDocState.js",
813			"rebaser/src/dm/ve.dm.RebaseServer.js",
814			"rebaser/src/dm/ve.dm.DocumentStore.js",
815			"rebaser/src/dm/ve.dm.ProtocolServer.js",
816			"rebaser/src/dm/ve.dm.TransportServer.js",
817
818			"tests/ve.qunit.js",
819			"tests/ve.qunit.local.js",
820			"tests/ve.test.utils.js",
821			"tests/ve.test.js",
822			"tests/ve.DiffMatchPatch.test.js",
823			"tests/ve.EventSequencer.test.js",
824			"tests/ve.Scheduler.test.js",
825			"tests/ve.Range.test.js",
826			"tests/ve.Document.test.js",
827			"tests/ve.Node.test.js",
828			"tests/ve.BranchNode.test.js",
829			"tests/ve.LeafNode.test.js",
830			"tests/dm/ve.dm.example.js",
831			"tests/dm/ve.dm.Annotation.test.js",
832			"tests/dm/ve.dm.AnnotationSet.test.js",
833			"tests/dm/ve.dm.LinkAnnotation.test.js",
834			"tests/dm/ve.dm.NodeFactory.test.js",
835			"tests/dm/ve.dm.Node.test.js",
836			"tests/dm/ve.dm.Converter.test.js",
837			"tests/dm/ve.dm.SourceConverter.test.js",
838			"tests/dm/ve.dm.BranchNode.test.js",
839			"tests/dm/ve.dm.LeafNode.test.js",
840			"tests/dm/nodes/ve.dm.TextNode.test.js",
841			"tests/dm/ve.dm.Document.test.js",
842			"tests/dm/ve.dm.HashValueStore.test.js",
843			"tests/dm/ve.dm.InternalList.test.js",
844			"tests/dm/ve.dm.LinearData.test.js",
845			"tests/dm/ve.dm.Transaction.test.js",
846			"tests/dm/ve.dm.TransactionBuilder.test.js",
847			"tests/dm/ve.dm.TransactionSquasher.test.js",
848			"tests/dm/ve.dm.Change.test.js",
849			"tests/dm/ve.dm.TestRebaseClient.js",
850			"tests/dm/ve.dm.TestRebaseServer.js",
851			"tests/dm/ve.dm.RebaseServer.test.js",
852			"tests/dm/ve.dm.FakeMongo.js",
853			"tests/dm/ve.dm.FakeSocket.js",
854			"tests/dm/ve.dm.DocumentStore.test.js",
855			"tests/dm/ve.dm.TransportServer.test.js",
856			"tests/dm/ve.dm.TreeModifier.test.js",
857			"tests/dm/ve.dm.TransactionProcessor.test.js",
858			"tests/dm/ve.dm.Surface.test.js",
859			"tests/dm/ve.dm.SurfaceFragment.test.js",
860			"tests/dm/ve.dm.SourceSurfaceFragment.test.js",
861			"tests/dm/ve.dm.ModelRegistry.test.js",
862			"tests/dm/ve.dm.MetaList.test.js",
863			"tests/dm/ve.dm.Scalable.test.js",
864			"tests/dm/selections/ve.dm.LinearSelection.test.js",
865			"tests/dm/selections/ve.dm.NullSelection.test.js",
866			"tests/dm/selections/ve.dm.TableSelection.test.js",
867			"tests/dm/lineardata/ve.dm.FlatLinearData.test.js",
868			"tests/dm/lineardata/ve.dm.ElementLinearData.test.js",
869			"tests/ce/ve.ce.test.js",
870			"tests/ce/ve.ce.Document.test.js",
871			"tests/ce/ve.ce.Surface.test.js",
872			"tests/ce/ve.ce.RangeState.test.js",
873			"tests/ce/ve.ce.TextState.test.js",
874			"tests/ce/ve.ce.NodeFactory.test.js",
875			"tests/ce/ve.ce.AnnotationFactory.test.js",
876			"tests/ce/ve.ce.Node.test.js",
877			"tests/ce/ve.ce.BranchNode.test.js",
878			"tests/ce/ve.ce.ContentBranchNode.test.js",
879			"tests/ce/ve.ce.LeafNode.test.js",
880			"tests/ce/ve.ce.Selection.test.js",
881			"tests/ce/keydownhandlers/ve.ce.LinearArrowKeyDownHandler.test.js",
882			"tests/ce/keydownhandlers/ve.ce.LinearDeleteKeyDownHandler.test.js",
883			"tests/ce/keydownhandlers/ve.ce.LinearEnterKeyDownHandler.test.js",
884			"tests/ce/keydownhandlers/ve.ce.LinearEscapeKeyDownHandler.test.js",
885			"tests/ce/keydownhandlers/ve.ce.TableArrowKeyDownHandler.test.js",
886			"tests/ce/keydownhandlers/ve.ce.TableDeleteKeyDownHandler.test.js",
887			"tests/ce/keydownhandlers/ve.ce.TableEnterKeyDownHandler.test.js",
888			"tests/ce/keydownhandlers/ve.ce.TableF2KeyDownHandler.test.js",
889			"tests/ce/nodes/ve.ce.ResizableNode.test.js",
890			"tests/ce/nodes/ve.ce.TextNode.test.js",
891			"tests/ce/nodes/ve.ce.TableNode.test.js",
892			"tests/init/ve.init.sa.Platform.test.js",
893			"tests/ui/ve.ui.DataTransferHandlerFactory.test.js",
894			"tests/ui/ve.ui.Trigger.test.js",
895			"tests/ui/ve.ui.Sequence.test.js",
896			"tests/ui/ve.ui.DiffElement.test.js",
897			"tests/ui/ve.ui.PreviewElement.test.js",
898			"tests/ui/actions/ve.ui.AnnotationAction.test.js",
899			"tests/ui/actions/ve.ui.BlockquoteAction.test.js",
900			"tests/ui/actions/ve.ui.ContentAction.test.js",
901			"tests/ui/actions/ve.ui.FormatAction.test.js",
902			"tests/ui/actions/ve.ui.IndentationAction.test.js",
903			"tests/ui/actions/ve.ui.LinkAction.test.js",
904			"tests/ui/actions/ve.ui.ListAction.test.js",
905			"tests/ui/actions/ve.ui.TableAction.test.js",
906			"tests/ui/actions/ve.ui.WindowAction.test.js",
907			"tests/ui/datatransferhandlers/ve.ui.DSVFileTransferHandler.test.js",
908			"tests/ui/datatransferhandlers/ve.ui.UrlStringTransferHandler.test.js",
909			"tests/ui/dialogs/ve.ui.FindAndReplaceDialog.test.js",
910			"tests/ui/inspectors/ve.ui.FragmentInspector.test.js",
911			"tests/ce/ve.ce.TestRunner.js",
912			"tests/ce/ve.ce.imetests.test.js",
913			"tests/ce/imetests/backspace-chromium-ubuntu-none.js",
914			"tests/ce/imetests/backspace-firefox-ubuntu-none.js",
915			"tests/ce/imetests/backspace-ie9-win7-none.js",
916			"tests/ce/imetests/home-firefox-win7-none.js",
917			"tests/ce/imetests/input-chrome-mac-native-japanese-hiragana.js",
918			"tests/ce/imetests/input-chrome-mac-native-japanese-katakana.js",
919			"tests/ce/imetests/input-chrome-win7-chinese-traditional-handwriting.js",
920			"tests/ce/imetests/input-chrome-win7-greek.js",
921			"tests/ce/imetests/input-chrome-win7-polish.js",
922			"tests/ce/imetests/input-chrome-win7-welsh.js",
923			"tests/ce/imetests/input-chromium-ubuntu-ibus-chinese-cantonese.js",
924			"tests/ce/imetests/input-chromium-ubuntu-ibus-japanese-anthy--hiraganaonly.js",
925			"tests/ce/imetests/input-chromium-ubuntu-ibus-japanese-mozc.js",
926			"tests/ce/imetests/input-chromium-ubuntu-ibus-korean-korean.js",
927			"tests/ce/imetests/input-chromium-ubuntu-ibus-malayalam-swanalekha.js",
928			"tests/ce/imetests/input-firefox-mac-native-japanese-hiragana.js",
929			"tests/ce/imetests/input-firefox-mac-native-japanese-katakana.js",
930			"tests/ce/imetests/input-firefox-ubuntu-ibus-chinese-cantonese.js",
931			"tests/ce/imetests/input-firefox-ubuntu-ibus-japanese-anthy--hiraganaonly.js",
932			"tests/ce/imetests/input-firefox-ubuntu-ibus-japanese-mozc.js",
933			"tests/ce/imetests/input-firefox-ubuntu-ibus-korean-korean.js",
934			"tests/ce/imetests/input-firefox-ubuntu-ibus-malayalam.swanalekha.js",
935			"tests/ce/imetests/input-firefox-win7-chinese-traditional-handwriting.js",
936			"tests/ce/imetests/input-firefox-win7-greek.js",
937			"tests/ce/imetests/input-firefox-win7-welsh.js",
938			"tests/ce/imetests/input-ie9-win7-chinese-traditional-handwriting.js",
939			"tests/ce/imetests/input-ie9-win7-greek.js",
940			"tests/ce/imetests/input-ie9-win7-korean.js",
941			"tests/ce/imetests/input-ie9-win7-welsh.js",
942			"tests/ce/imetests/input-ie11-win8.1-korean.js",
943			"tests/ce/imetests/input-safari-mac-native-japanese-hiragana.js",
944			"tests/ce/imetests/input-safari-mac-native-japanese-katakana.js",
945			"tests/ce/imetests/leftarrow-chromium-ubuntu-none.js",
946			"tests/ce/imetests/leftarrow-firefox-ubuntu-none.js",
947			"tests/ce/imetests/leftarrow-ie9-win7-none.js"
948		],
949		"dependencies": [
950			"jsdifflib",
951			"qunit",
952			"visualEditor.desktop.standalone.apex",
953			"visualEditor.rebase"
954		]
955	},
956	"visualEditor.theme.apex": {
957		"styles": [
958			"src/themes/apex.css"
959		]
960	},
961	"visualEditor.theme.wikimediaui": {
962		"styles": [
963			"src/themes/wikimediaui.css"
964		]
965	},
966	"visualEditor.desktop.build": {
967		"scripts": [
968			"src/ui/contexts/ve.ui.DesktopContext.js",
969			"src/ui/windowmanagers/ve.ui.DesktopInspectorWindowManager.js"
970		],
971		"styles": [
972			"src/ui/styles/ve.ui.DesktopContext.css"
973		],
974		"dependencies": [
975			"visualEditor.core.build"
976		]
977	},
978	"visualEditor.mobile": {
979		"dependencies": [
980			"visualEditor.core",
981			"visualEditor.mobile.build",
982			"visualEditor.theme.wikimediaui",
983			"visualEditor.diffing.standalone"
984		]
985	},
986	"visualEditor.mobile.build": {
987		"scripts": [
988			"src/ui/contexts/ve.ui.MobileContext.js",
989			"src/ui/windowmanagers/ve.ui.MobileWindowManager.js"
990		],
991		"styles": [
992			"src/ui/styles/ve.ui.MobileContext.css"
993		],
994		"dependencies": [
995			"visualEditor.core.build"
996		]
997	},
998	"visualEditor.standalone": {
999		"dependencies": [
1000			"visualEditor.base",
1001			"visualEditor.standalone.build"
1002		]
1003	},
1004	"visualEditor.standalone.read": {
1005		"styles": [
1006			"src/init/sa/styles/ve.init.sa.css"
1007		],
1008		"styleGroup": "read"
1009	},
1010	"visualEditor.standalone.build": {
1011		"scripts": [
1012			"src/init/sa/ve.init.sa.js",
1013			"src/init/sa/ve.init.sa.SafeStorage.js",
1014			"src/init/sa/ve.init.sa.Platform.js",
1015			"src/init/sa/ve.init.sa.Target.js"
1016		],
1017		"styles": [
1018			"src/init/sa/styles/ve.init.sa.Platform.css",
1019			{ "file": "src/ui/styles/ve.ui.DebugBar.css", "debug": true }
1020		],
1021		"dependencies": [
1022			"visualEditor.base.build",
1023			"visualEditor.diffing.standalone",
1024			"visualEditor.sanitize"
1025		]
1026	},
1027	"visualEditor.desktop.standalone": {
1028		"scripts": [
1029			"src/init/sa/ve.init.sa.DesktopTarget.js"
1030		],
1031		"dependencies": [
1032			"visualEditor.standalone",
1033			"visualEditor.core",
1034			"visualEditor.desktop.build"
1035		]
1036	},
1037	"visualEditor.desktop.standalone.apex": {
1038		"dependencies": [
1039			"oojs-ui-apex",
1040			"visualEditor.desktop.standalone",
1041			"visualEditor.theme.apex"
1042		]
1043	},
1044	"visualEditor.desktop.standalone.apex.dist": {
1045		"scripts": [
1046			"src/init/sa/ve.init.sa.DesktopTarget.js"
1047		],
1048		"dependencies": [
1049			"visualEditor.standalone.apex.dist"
1050		]
1051	},
1052	"visualEditor.desktop.standalone.wikimediaui": {
1053		"dependencies": [
1054			"oojs-ui-wikimediaui",
1055			"visualEditor.desktop.standalone",
1056			"visualEditor.theme.wikimediaui"
1057		]
1058	},
1059	"visualEditor.desktop.standalone.wikimediaui.dist": {
1060		"scripts": [
1061			"src/init/sa/ve.init.sa.DesktopTarget.js"
1062		],
1063		"dependencies": [
1064			"visualEditor.standalone.wikimediaui.dist"
1065		]
1066	},
1067	"visualEditor.mobile.standalone": {
1068		"scripts": [
1069			"src/init/sa/ve.init.sa.MobileTarget.js"
1070		],
1071		"dependencies": [
1072			"oojs-ui-wikimediaui",
1073			"visualEditor.standalone",
1074			"visualEditor.mobile"
1075		]
1076	},
1077	"visualEditor.mobile.standalone.dist": {
1078		"scripts": [
1079			"src/init/sa/ve.init.sa.MobileTarget.js"
1080		],
1081		"dependencies": [
1082			"visualEditor.standalone.wikimediaui.dist"
1083		]
1084	},
1085	"visualEditor.standalone.demo": {
1086		"scripts": [
1087			"demos/ve/ve.demo.js",
1088			"demos/ve/ve.demo.SurfaceContainer.js"
1089		],
1090		"styles": [
1091			"demos/ve/demo.css"
1092		],
1093		"styleGroup": "read"
1094	},
1095	"visualEditor.desktop.standalone.demo": {
1096		"scripts": [
1097			"demos/ve/demo.desktop.js",
1098			"demos/ve/ve.demo.init.js"
1099		],
1100		"styles": [
1101			"demos/ve/demo.desktop.css"
1102		],
1103		"styleGroup": "read",
1104		"dependencies": [
1105			"visualEditor.standalone.demo"
1106		]
1107	},
1108	"visualEditor.desktop.standalone.apex.demo": {
1109		"styles": [
1110			"demos/ve/demo.apex.css"
1111		],
1112		"dependencies": [
1113			"visualEditor.desktop.standalone.demo"
1114		]
1115	},
1116	"visualEditor.desktop.standalone.wikimediaui.demo": {
1117		"styles": [
1118			"demos/ve/demo.wikimediaui.css"
1119		],
1120		"dependencies": [
1121			"visualEditor.desktop.standalone.demo"
1122		]
1123	},
1124	"visualEditor.mobile.standalone.demo": {
1125		"scripts": [
1126			"demos/ve/demo.mobile.js",
1127			"demos/ve/ve.demo.init.js"
1128		],
1129		"styles": [
1130			"demos/ve/demo.mobile.css",
1131			"demos/ve/demo.wikimediaui.css"
1132		],
1133		"styleGroup": "read",
1134		"dependencies": [
1135			"visualEditor.standalone.demo"
1136		]
1137	},
1138	"visualEditor.minimal.standalone.demo": {
1139		"scripts": [
1140			"demos/ve/demo.minimal.js"
1141		],
1142		"styles": [
1143			"demos/ve/demo.minimal.css"
1144		]
1145	},
1146	"visualEditor.test.performance": {
1147		"scripts": [
1148			"demos/ve/performance.js"
1149		]
1150	},
1151	"rebaser.build": {
1152		"scripts": [
1153			"src/dm/ve.dm.HashValueStore.js",
1154			"src/dm/ve.dm.Transaction.js",
1155			"src/dm/ve.dm.Change.js",
1156			"rebaser/src/dm/ve.dm.RebaseDocState.js",
1157			"rebaser/src/dm/ve.dm.RebaseServer.js",
1158			"rebaser/src/dm/ve.dm.DocumentStore.js",
1159			"rebaser/src/dm/ve.dm.ProtocolServer.js",
1160			"rebaser/src/dm/ve.dm.TransportServer.js",
1161			"src/ve.Range.js",
1162			"src/dm/ve.dm.Selection.js",
1163			"src/dm/selections/ve.dm.NullSelection.js",
1164			"src/dm/selections/ve.dm.LinearSelection.js",
1165			"src/dm/selections/ve.dm.TableSelection.js"
1166		],
1167		"dependencies": [
1168			"oojs.noJQuery"
1169		]
1170	},
1171	"visualEditor.build": {
1172		"dependencies": [
1173			"visualEditor.standalone.build",
1174			"visualEditor.desktop.build",
1175			"visualEditor.mobile.build"
1176		]
1177	},
1178	"visualEditor.build.apex": {
1179		"dependencies": [
1180			"visualEditor.build",
1181			"visualEditor.theme.apex"
1182		]
1183	},
1184	"visualEditor.build.wikimediaui": {
1185		"dependencies": [
1186			"visualEditor.build",
1187			"visualEditor.theme.wikimediaui"
1188		]
1189	},
1190	"visualEditor.dist.apex": {
1191		"styles": [
1192			"dist/visualEditor-apex.css"
1193		],
1194		"styleGroup": "ve",
1195		"dependencies": [
1196			"visualEditor.dist"
1197		]
1198	},
1199	"visualEditor.dist.wikimediaui": {
1200		"styles": [
1201			"dist/visualEditor-wikimediaui.css"
1202		],
1203		"styleGroup": "ve",
1204		"dependencies": [
1205			"visualEditor.dist"
1206		]
1207	},
1208	"visualEditor.dist": {
1209		"scripts": [
1210			"dist/visualEditor.js"
1211		]
1212	},
1213	"visualEditor.standalone.apex.dist": {
1214		"dependencies": [
1215			"baselibs.dist",
1216			"oojs-ui-apex",
1217			"visualEditor.dist.apex"
1218		]
1219	},
1220	"visualEditor.standalone.wikimediaui.dist": {
1221		"dependencies": [
1222			"baselibs.dist",
1223			"oojs-ui-wikimediaui",
1224			"visualEditor.dist.wikimediaui"
1225		]
1226	}
1227}
1228