<commit_before>import SlideContent from './controllers/slidecontent.js'
import SlideNumber from './controllers/slidenumber.js'
import Backgrounds from './controllers/backgrounds.js'
import AutoAnimate from './controllers/autoanimate.js'
import Fragments from './controllers/fragments.js'
import Overview from './controllers/overview.js'
import Keyboard from './controllers/keyboard.js'
import Location from './controllers/location.js'
import Plugins from './controllers/plugins.js'
import Print from './controllers/print.js'
import Touch from './controllers/touch.js'
import Playback from './components/playback.js'
import defaultConfig from './config.js'
import { isMobile, isChrome, isAndroid, supportsZoom } from './utils/device.js'
import {
	SLIDES_SELECTOR,
	HORIZONTAL_SLIDES_SELECTOR,
	VERTICAL_SLIDES_SELECTOR,
	POST_MESSAGE_METHOD_BLACKLIST
} from './utils/constants.js'
import {
	extend,
	toArray,
	deserialize,
	transformElement,
	createSingletonNode,
	closestParent,
	getQueryHash
} from './utils/util.js'

/**
 * reveal.js
 * http://revealjs.com
 * MIT licensed
 *
 * Copyright (C) 2020 <NAME>, https://hakim.se
 */
export default function( revealElement, options ) {

	const Reveal = {};

	// The reveal.js version
	const VERSION = '4.0.0-dev';

	// Configuration defaults, can be overridden at initialization time
	let config,

		// Flags if reveal.js is loaded (has dispatched the 'ready' event)
		ready = false,

		// The horizontal and vertical index of the currently active slide
		indexh,
		indexv,

		// The previous and current slide HTML elements
		previousSlide,
		currentSlide,

		// Remember which directions that the user has navigated towards
		hasNavigatedHorizontally = false,
		hasNavigatedVertically = false,

		// Slides may hold a data-state attribute which we pick up and apply
		// as a class to the body. This list contains the combined state of
		// all current slides.
		state = [],

		// The current scale of the presentation (see width/height config)
		scale = 1,

		// Controls loading and playback of slide content
		slideContent = new SlideContent( Reveal ),

		// Controls the optional slide number display
		slideNumber = new SlideNumber( Reveal ),

		// Creates and updates slide backgrounds
		backgrounds = new Backgrounds( Reveal ),

		// Controls auto-animations between slides
		autoAnimate = new AutoAnimate( Reveal ),

		// Controls navigation between slide fragments
		fragments = new Fragments( Reveal ),

		// Controls the birds-eye overview of slides
		overview = new Overview( Reveal ),

		// Controls all keyboard interactions
		keyboard = new Keyboard( Reveal ),

		// Controls the current location/URL
		location = new Location( Reveal ),

		// Controller for plugin loading
		plugins = new Plugins(),

		// Handles exporting to PDF
		print = new Print( Reveal ),

		// Controls touch/swipe navigation for our deck
		touch = new Touch( Reveal ),

		// CSS transform that is currently applied to the slides container,
		// split into two groups
		slidesTransform = { layout: '', overview: '' },

		// Cached references to DOM elements
		dom = {},

		// List of asynchronously loaded reveal.js dependencies
		asyncDependencies = [],

		// Throttles mouse wheel navigation<commit_msg>reduce comments related to controller initialization<commit_after>import SlideContent from './controllers/slidecontent.js'
import SlideNumber from './controllers/slidenumber.js'
import Backgrounds from './controllers/backgrounds.js'
import AutoAnimate from './controllers/autoanimate.js'
import Fragments from './controllers/fragments.js'
import Overview from './controllers/overview.js'
import Keyboard from './controllers/keyboard.js'
import Location from './controllers/location.js'
import Plugins from './controllers/plugins.js'
import Print from './controllers/print.js'
import Touch from './controllers/touch.js'
import Playback from './components/playback.js'
import defaultConfig from './config.js'
import { isMobile, isChrome, isAndroid, supportsZoom } from './utils/device.js'
import {
	SLIDES_SELECTOR,
	HORIZONTAL_SLIDES_SELECTOR,
	VERTICAL_SLIDES_SELECTOR,
	POST_MESSAGE_METHOD_BLACKLIST
} from './utils/constants.js'
import {
	extend,
	toArray,
	deserialize,
	transformElement,
	createSingletonNode,
	closestParent,
	getQueryHash
} from './utils/util.js'

/**
 * reveal.js
 * http://revealjs.com
 * MIT licensed
 *
 * Copyright (C) 2020 <NAME>, https://hakim.se
 */
export default function( revealElement, options ) {

	const Reveal = {};

	// The reveal.js version
	const VERSION = '4.0.0-dev';

	// Configuration defaults, can be overridden at initialization time
	let config,

		// Flags if reveal.js is loaded (has dispatched the 'ready' event)
		ready = false,

		// The horizontal and vertical index of the currently active slide
		indexh,
		indexv,

		// The previous and current slide HTML elements
		previousSlide,
		currentSlide,

		// Remember which directions that the user has navigated towards
		hasNavigatedHorizontally = false,
		hasNavigatedVertically = false,

		// Slides may hold a data-state attribute which we pick up and apply
		// as a class to the body. This list contains the combined state of
		// all current slides.
		state = [],

		// The current scale of the presentation (see width/height config)
		scale = 1,

		// Controllers for different aspects of our presentation. They're
		// all given direct references to this Reveal instance since there
		// may be multiple presentations running in parallel.
		slideContent = new SlideContent( Reveal ),
		slideNumber = new SlideNumber( Reveal ),
		autoAnimate = new AutoAnimate( Reveal ),
		backgrounds = new Backgrounds( Reveal ),
		fragments = new Fragments( Reveal ),
		overview = new Overview( Reveal ),
		keyboard = new Keyboard( Reveal ),
		location = new Location( Reveal ),
		plugins = new Plugins( Reveal ),
		print = new Print( Reveal ),
		touch = new Touch( Reveal ),

		// CSS transform that is currently applied to the slides container,
		// split into two groups
		slidesTransform = { layout: '', overview: '' },

		// Cached references to DOM elements
		dom = {},

		// List of asynchronously loaded reveal.js dependencies
		asyncDependencies = [],

		// Throttles mouse wheel navigation
{'fraction_non_alphanumeric': 0.09541372674791533, 'fraction_numerical': 0.0025657472738935213, 'mean_word_length': 3.8199381761978364, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 2, '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': '3653016', 'n_tokens_mistral': 1923, 'n_tokens_neox': 1734, 'n_words': 627}