<commit_before>/**
@namespace
@name $
*/
$.extend({
	/**
	Namespace for core boom classes and functions.
	@class
	@name $.boom
	*/
	boom : {
		/** @lends $.boom */

		/**
		Boom bootstrap/setup. Initialises boom.config and does some browser detection.
		*/
		setup: function(){

			$.extend(this, { config: window.boomConfig });

			$.boom.isMobile = $.boom.util.isMobileDevice();

			$.boom.isIE6 = $.boom.util.isIE6();

			if ($.boom.isIE6) {
				try {
					document.execCommand('BackgroundImageCache', false, true);
				} catch(e) {};
			}

			// reference boom from the site window too.
			top.$.boom = $.boom;
		},

		/**
		Initialise boom classes. Create top bar and UI.
		@param type FIXME: who knows?
		@param {Object} options Boom options. Extends and overrides defaults in boom.config.
		*/
		init: function( type, options ){

			this.type = type;

			( options ) && $.extend( this.config, options );

			var classes = $.boom.data.boomInit;

			if ( $.isArray(classes) ) {
				$.each(classes, function(){
					$.boom[this].init();
				});
			}

			$.boom.loader.init();

			$('#boom-topbar').exists(function(){

				this.find('.ui-tabs-nav li').bind('mouseenter mouseleave', function(){

					$( this ).toggleClass( 'ui-state-hover' );
				});
			});

			$(window).bind('scroll', function(event){

				//$(this).scrollTop(0);

				return false;

			}).trigger('scroll');

			if ( options === undefined || options.ui === undefined || options.ui ) {

				$('body').ui();
			}
		}
	}
});

$.extend($.boom, {
	/** @lends $.boom */

	/**
	Boom data storage.
	@class
	*/
	data: {
		benchmarks: {
			boom_setup_before_classes_load: (new Date).getTime()
		}
	}
});

$.extend($.boom, {
	/** @lends $.boom */

	/**
	Boom cookie management.
	@class
	*/
	cookie : {
		
		/** @property */
		ids: {},

		/** @function */
		init : function(){

			$.boom.log('Init cookie');

			this.config = $.boom.config.cookie;
			this.ids[ this.config.name ] = this.get( this.config.name ).split( this.config.delimiter );
		},

		/** @function */
		_set : function(name, val, expiredays){

			expiredays = expiredays || this.config.expiredays;

			var expiredate = new Date();

			expiredate.setDate(expiredate.getDate() + expiredays);

			document.cookie = name + '=' + escape(val) + ((expiredays == null) ? '' : ';expires=' + expiredate.toGMTString()) + ';path=' + this.config.path;

			$.boom.log('Set cookie var: ' + name + ' => ' + val);
		},

		/** @function */
		get : function(name){

			if (document.cookie.length){

				var start = document.cookie.indexOf(name + '=');

				if (start === -1) return '';

				start = start + name.length + 1;

				var end = document.cookie.indexOf(';', start);

				if (end === -1) end = document.cookie.length;

				return unescape(document.cookie.substring(start, end));
			}
			return '';
		},

		/** @function */
		add : function(id, name){
			
			var name = name ? name : this.config.name;

			var ids = ( this.ids[ name ] ) ? this.ids[ name ] : this.get( name ).split( this.config.delimiter );

			if ( $.inArray( id, ids ) !== -1 ) return;

			ids.push(id);

			this._set( name || this.config.name, ids.join( this.config.delimiter ) );
		},

		/** @function */
		remove : function(id, name){

			if (!id) return;

			var name = name ? name : this.config.name;

			var ids = ( this.ids[ name ] ) ? this.ids[ name ] : this.get( name ).split( this.config.delimiter );

			for(var i in ids) ( ids[i] == id ) && ids.splice( i, 1 );

			this._set( name || this.config.name, ids.join( this.config.delimiter ) );
		},
		
		/** @function */
		toggle : function(id, name){

			if (!id) return;

			var name = name ? name : this.config.name;

			var ids = ( this.ids[ name ] ) ? this.ids[ name ] : this.get( name ).split( this.config.delimiter );

			if ( $.inArray( id, ids ) !== -1 ) {
				
				this.remove( id, name );
			} else {
				this.add( id, name );
			};
		},
		
		/** @function */<commit_msg>store updated cookie values<commit_after>/**
@namespace
@name $
*/
$.extend({
	/**
	Namespace for core boom classes and functions.
	@class
	@name $.boom
	*/
	boom : {
		/** @lends $.boom */

		/**
		Boom bootstrap/setup. Initialises boom.config and does some browser detection.
		*/
		setup: function(){

			$.extend(this, { config: window.boomConfig });

			$.boom.isMobile = $.boom.util.isMobileDevice();

			$.boom.isIE6 = $.boom.util.isIE6();

			if ($.boom.isIE6) {
				try {
					document.execCommand('BackgroundImageCache', false, true);
				} catch(e) {};
			}

			// reference boom from the site window too.
			top.$.boom = $.boom;
		},

		/**
		Initialise boom classes. Create top bar and UI.
		@param type FIXME: who knows?
		@param {Object} options Boom options. Extends and overrides defaults in boom.config.
		*/
		init: function( type, options ){

			this.type = type;

			( options ) && $.extend( this.config, options );

			var classes = $.boom.data.boomInit;

			if ( $.isArray(classes) ) {
				$.each(classes, function(){
					$.boom[this].init();
				});
			}

			$.boom.loader.init();

			$('#boom-topbar').exists(function(){

				this.find('.ui-tabs-nav li').bind('mouseenter mouseleave', function(){

					$( this ).toggleClass( 'ui-state-hover' );
				});
			});

			$(window).bind('scroll', function(event){

				//$(this).scrollTop(0);

				return false;

			}).trigger('scroll');

			if ( options === undefined || options.ui === undefined || options.ui ) {

				$('body').ui();
			}
		}
	}
});

$.extend($.boom, {
	/** @lends $.boom */

	/**
	Boom data storage.
	@class
	*/
	data: {
		benchmarks: {
			boom_setup_before_classes_load: (new Date).getTime()
		}
	}
});

$.extend($.boom, {
	/** @lends $.boom */

	/**
	Boom cookie management.
	@class
	*/
	cookie : {
		
		/** @property */
		ids: {},

		/** @function */
		init : function(){

			$.boom.log('Init cookie');

			this.config = $.boom.config.cookie;
			this.ids[ this.config.name ] = this.get( this.config.name ).split( this.config.delimiter );
		},

		/** @function */
		_set : function(name, val, expiredays){

			expiredays = expiredays || this.config.expiredays;

			var expiredate = new Date();

			expiredate.setDate(expiredate.getDate() + expiredays);

			document.cookie = name + '=' + escape(val) + ((expiredays == null) ? '' : ';expires=' + expiredate.toGMTString()) + ';path=' + this.config.path;

			$.boom.log('Set cookie var: ' + name + ' => ' + val);
		},

		/** @function */
		get : function(name){

			if (document.cookie.length){

				var start = document.cookie.indexOf(name + '=');

				if (start === -1) return '';

				start = start + name.length + 1;

				var end = document.cookie.indexOf(';', start);

				if (end === -1) end = document.cookie.length;

				return unescape(document.cookie.substring(start, end));
			}
			return '';
		},

		/** @function */
		add : function(id, name){
			
			var name = name ? name : this.config.name;

			var ids = ( this.ids[ name ] ) ? this.ids[ name ] : this.get( name ).split( this.config.delimiter );

			if ( $.inArray( id, ids ) !== -1 ) return;

			ids.push(id);

			this.ids[ name ] = ids;
			this._set( name || this.config.name, ids.join( this.config.delimiter ) );
		},

		/** @function */
		remove : function(id, name){

			if (!id) return;

			var name = name ? name : this.config.name;

			var ids = ( this.ids[ name ] ) ? this.ids[ name ] : this.get( name ).split( this.config.delimiter );

			for(var i in ids) ( ids[i] == id ) && ids.splice( i, 1 );

			this.ids[ name ] = ids;
			this._set( name || this.config.name, ids.join( this.config.delimiter ) );
		},
		
		/** @function */
		toggle : function(id, name){

			if (!id) return;

			var name = name ? name : this.config.name;

			var ids = ( this.ids[ name ] ) ? this.ids[ name ] : this.get( name ).split( this.config.delimiter );

			if ( $.inArray( id, ids ) !== -1 ) {
				
				this.remove( id, name );
			} else {
				this.add( id, name );
			};
		},
		
		/** @function */
{'fraction_non_alphanumeric': 0.19858514401212735, 'fraction_numerical': 0.0025265285497726125, 'mean_word_length': 2.615068493150685, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '328313', 'n_tokens_mistral': 3266, 'n_tokens_neox': 2723, 'n_words': 627}