/*
	Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojox.highlight.languages._www"]){
dojo._hasResource["dojox.highlight.languages._www"]=true;
dojo.provide("dojox.highlight.languages._www");
dojo.require("dojox.highlight.languages.xml");
dojo.require("dojox.highlight.languages.html");
dojo.require("dojox.highlight.languages.css");
dojo.require("dojox.highlight.languages.django");
dojo.require("dojox.highlight.languages.javascript");
}
