anchor.diff:  			}
   			return sb.toString();
   		</cfscript>
  -	
  +
  +	</cffunction>
  +
  +	<cffunction name="writeSessionDump" output="true" hint="Helper function to quickly dump all of key/values in the specified HTTP session.">
  +		<cfargument required="true" name="httpSession">
  +		<cfargument type="boolean" name="abort" default="false">
  +		<cfscript>
  +			var result = {};
  +			var names = arguments.httpSession.getAttributeNames();
  +			var key = "";
  +
  +			while (names.hasMoreElements()) {
  +				key = names.nextElement().toString();
  +				result[key] = arguments.httpSession.getAttribute(key);
  +			}
  +			writedump(var=result, abort=arguments.abort);
  +		</cfscript>
   	</cffunction>
   
   </cfcomponent>
positive.code: 
  		<cffile action="write" file="#expandPath(filePath)#" output="#writer#"/>
  	</cffunction>
  	
  	<cffunction access="public" returntype="String" name="getBoolean" output="false"
  		hint="Provides a consistent true/false return for a boolean value regardless of whether true/false, yes/no, or 1/0 were provided.">
  		<cfargument required="true" type="String" name="bool">
  	
  		<cfscript>
  			if (!len(trim(arguments.bool)) || !isBoolean(arguments.bool)) {
  				return "";
  			}
  	
  			// NOTE: do not include on/off - they are NOT valid booleans
  			if (listFindNoCase("false,no,0", arguments.bool)) {
  				return false;
  			}
  			return true;
  		</cfscript>
  	
  	</cffunction>
  	
  	<cffunction access="public" name="getSecurityType" output="false">
  		<cfargument required="true" type="String" name="type"/>
  	
  		<cfscript>
  			var logger = createObject("java", "org.owasp.esapi.Logger");
  			if(createObject("component", "org.owasp.esapi.util.Version").getESAPI4JVersion() == 2) {
  
negative.code: 			<cfthrow type="#arguments.exception.getType()#" message="#arguments.exception.getUserMessage()#" detail="#arguments.exception.getLogMessage()#" extendedinfo="#arguments.exception.getCause()#"/>
  		</cfif>
  	</cffunction>
  
  	<cffunction access="public" returntype="String" name="toUnicode" output="false">
  		<cfargument required="true" type="String" name="string"/>
  
  		<cfscript>
  			// CF8 requires 'var' at the top
  			var i = "";
  			var thisChr = "";
  
  			var sb = createObject("java", "java.lang.StringBuffer").init();
  			for(i = 1; i <= len(arguments.string); i++) {
  				thisChr = mid(arguments.string, i, 6);
  