! ( function () {
	function o() {
		b.keyboardSupport && H( 'keydown', w );
	}

	function p() {
		if ( ! f && document.body ) {
			f = ! 0;
			const a = document.body,
				e = document.documentElement,
				k = window.innerHeight,
				l = a.scrollHeight;
			if (
				( ( g = document.compatMode.indexOf( 'CSS' ) >= 0 ? e : a ),
				( h = a ),
				o(),
				top != self )
			)
				d = ! 0;
			else if (
				l > k &&
				( a.offsetHeight <= k || e.offsetHeight <= k )
			) {
				const m = document.createElement( 'div' );
				( m.style.cssText =
					'position:absolute; z-index:-10000; top:0; left:0; right:0; height:' +
					g.scrollHeight +
					'px' ),
					document.body.appendChild( m );
				let n;
				( j = function () {
					n ||
						( n = setTimeout( function () {
							c ||
								( ( m.style.height = '0' ),
								( m.style.height = g.scrollHeight + 'px' ),
								( n = null ) );
						}, 500 ) );
				} ),
					setTimeout( j, 10 ),
					H( 'resize', j );
				const p = {
					attributes: ! 0,
					childList: ! 0,
					characterData: ! 1,
				};
				if (
					( ( i = new R( j ) ),
					i.observe( a, p ),
					g.offsetHeight <= k )
				) {
					const q = document.createElement( 'div' );
					( q.style.clear = 'both' ), a.appendChild( q );
				}
			}
			b.fixedBackground ||
				c ||
				( ( a.style.backgroundAttachment = 'scroll' ),
				( e.style.backgroundAttachment = 'scroll' ) );
		}
	}

	function q() {
		i && i.disconnect(),
			I( Y, v ),
			I( 'mousedown', x ),
			I( 'keydown', w ),
			I( 'resize', j ),
			I( 'load', p );
	}

	function u( a, c, d ) {
		if ( ( K( c, d ), 1 != b.accelerationMax ) ) {
			const e = Date.now(),
				f = e - t;
			if ( f < b.accelerationDelta ) {
				let g = ( 1 + 50 / f ) / 2;
				g > 1 &&
					( ( g = Math.min( g, b.accelerationMax ) ),
					( c *= g ),
					( d *= g ) );
			}
			t = Date.now();
		}
		if (
			( r.push( {
				x: c,
				y: d,
				lastX: 0 > c ? 0.99 : -0.99,
				lastY: 0 > d ? 0.99 : -0.99,
				start: Date.now(),
			} ),
			! s )
		) {
			var h = a === document.body,
				i = function ( e ) {
					for (
						var f = Date.now(), g = 0, j = 0, k = 0;
						k < r.length;
						k++
					) {
						let l = r[ k ],
							m = f - l.start,
							n = m >= b.animationTime,
							o = n ? 1 : m / b.animationTime;
						b.pulseAlgorithm && ( o = U( o ) );
						const p = ( l.x * o - l.lastX ) >> 0,
							q = ( l.y * o - l.lastY ) >> 0;
						( g += p ),
							( j += q ),
							( l.lastX += p ),
							( l.lastY += q ),
							n && ( r.splice( k, 1 ), k-- );
					}
					h
						? window.scrollBy( g, j )
						: ( g && ( a.scrollLeft += g ),
						  j && ( a.scrollTop += j ) ),
						c || d || ( r = [] ),
						r.length
							? Q( i, a, 1e3 / b.frameRate + 1 )
							: ( s = ! 1 );
				};
			Q( i, a, 0 ), ( s = ! 0 );
		}
	}

	function v( a ) {
		f || p();
		const c = a.target,
			d = D( c );
		if ( ! d || a.defaultPrevented || a.ctrlKey ) return ! 0;
		if (
			J( h, 'embed' ) ||
			( J( c, 'embed' ) && /\.pdf/i.test( c.src ) ) ||
			J( h, 'object' ) ||
			c.shadowRoot
		)
			return ! 0;
		let e = -a.wheelDeltaX || a.deltaX || 0,
			g = -a.wheelDeltaY || a.deltaY || 0;
		return (
			l &&
				( a.wheelDeltaX &&
					N( a.wheelDeltaX, 120 ) &&
					( e =
						-120 * ( a.wheelDeltaX / Math.abs( a.wheelDeltaX ) ) ),
				a.wheelDeltaY &&
					N( a.wheelDeltaY, 120 ) &&
					( g =
						-120 *
						( a.wheelDeltaY / Math.abs( a.wheelDeltaY ) ) ) ),
			e || g || ( g = -a.wheelDelta || 0 ),
			1 === a.deltaMode && ( ( e *= 40 ), ( g *= 40 ) ),
			! b.touchpadSupport && M( g )
				? ! 0
				: ( Math.abs( e ) > 1.2 && ( e *= b.stepSize / 120 ),
				  Math.abs( g ) > 1.2 && ( g *= b.stepSize / 120 ),
				  u( d, e, g ),
				  a.preventDefault(),
				  void B() )
		);
	}

	function w( a ) {
		const c = a.target,
			d =
				a.ctrlKey ||
				a.altKey ||
				a.metaKey ||
				( a.shiftKey && a.keyCode !== m.spacebar );
		document.body.contains( h ) || ( h = document.activeElement );
		const e = /^(textarea|select|embed|object)$/i,
			f = /^(button|submit|radio|checkbox|file|color|image)$/i;
		if (
			a.defaultPrevented ||
			e.test( c.nodeName ) ||
			( J( c, 'input' ) && ! f.test( c.type ) ) ||
			J( h, 'video' ) ||
			P( a ) ||
			c.isContentEditable ||
			d
		)
			return ! 0;
		if (
			( J( c, 'button' ) || ( J( c, 'input' ) && f.test( c.type ) ) ) &&
			a.keyCode === m.spacebar
		)
			return ! 0;
		if ( J( c, 'input' ) && 'radio' == c.type && n[ a.keyCode ] )
			return ! 0;
		let g,
			i = 0,
			j = 0,
			k = D( h ),
			l = k.clientHeight;
		switch (
			( k == document.body && ( l = window.innerHeight ), a.keyCode )
		) {
			case m.up:
				j = -b.arrowScroll;
				break;
			case m.down:
				j = b.arrowScroll;
				break;
			case m.spacebar:
				( g = a.shiftKey ? 1 : -1 ), ( j = -g * l * 0.9 );
				break;
			case m.pageup:
				j = 0.9 * -l;
				break;
			case m.pagedown:
				j = 0.9 * l;
				break;
			case m.home:
				j = -k.scrollTop;
				break;
			case m.end:
				var o = k.scrollHeight - k.scrollTop - l;
				j = o > 0 ? o + 10 : 0;
				break;
			case m.left:
				i = -b.arrowScroll;
				break;
			case m.right:
				i = b.arrowScroll;
				break;
			default:
				return ! 0;
		}
		u( k, i, j ), a.preventDefault(), B();
	}

	function x( a ) {
		h = a.target;
	}

	function B() {
		clearTimeout( A ),
			( A = setInterval( function () {
				z = {};
			}, 1e3 ) );
	}

	function C( a, b ) {
		for ( let c = a.length; c--;  ) z[ y( a[ c ] ) ] = b;
		return b;
	}

	function D( a ) {
		const b = [],
			c = document.body,
			e = g.scrollHeight;
		do {
			const f = z[ y( a ) ];
			if ( f ) return C( b, f );
			if ( ( b.push( a ), e === a.scrollHeight ) ) {
				const h = F( g ) && F( c ),
					i = h || G( g );
				if ( ( d && E( g ) ) || ( ! d && i ) ) return C( b, S() );
			} else if ( E( a ) && G( a ) ) return C( b, a );
		} while ( ( a = a.parentElement ) );
	}

	function E( a ) {
		return a.clientHeight + 10 < a.scrollHeight;
	}

	function F( a ) {
		const b = getComputedStyle( a, '' ).getPropertyValue( 'overflow-y' );
		return 'hidden' !== b;
	}

	function G( a ) {
		const b = getComputedStyle( a, '' ).getPropertyValue( 'overflow-y' );
		return 'scroll' === b || 'auto' === b;
	}

	function H( a, b ) {
		window.addEventListener( a, b, ! 1 );
	}

	function I( a, b ) {
		window.removeEventListener( a, b, ! 1 );
	}

	function J( a, b ) {
		return ( a.nodeName || '' ).toLowerCase() === b.toLowerCase();
	}

	function K( a, b ) {
		( a = a > 0 ? 1 : -1 ),
			( b = b > 0 ? 1 : -1 ),
			( e.x !== a || e.y !== b ) &&
				( ( e.x = a ), ( e.y = b ), ( r = [] ), ( t = 0 ) );
	}

	function M( a ) {
		return a
			? ( k.length || ( k = [ a, a, a ] ),
			  ( a = Math.abs( a ) ),
			  k.push( a ),
			  k.shift(),
			  clearTimeout( L ),
			  ( L = setTimeout( function () {
					window.localStorage &&
						( localStorage.SS_deltaBuffer = k.join( ',' ) );
			  }, 1e3 ) ),
			  ! O( 120 ) && ! O( 100 ) )
			: void 0;
	}

	function N( a, b ) {
		return Math.floor( a / b ) == a / b;
	}

	function O( a ) {
		return N( k[ 0 ], a ) && N( k[ 1 ], a ) && N( k[ 2 ], a );
	}

	function P( a ) {
		let b = a.target,
			c = ! 1;
		if ( -1 != document.URL.indexOf( 'www.youtube.com/watch' ) )
			do
				if (
					( c =
						b.classList &&
						b.classList.contains( 'html5-video-controls' ) )
				)
					break;
			while ( ( b = b.parentNode ) );
		return c;
	}

	function T( a ) {
		let c, d, e;
		return (
			( a *= b.pulseScale ),
			1 > a
				? ( c = a - ( 1 - Math.exp( -a ) ) )
				: ( ( d = Math.exp( -1 ) ),
				  ( a -= 1 ),
				  ( e = 1 - Math.exp( -a ) ),
				  ( c = d + e * ( 1 - d ) ) ),
			c * b.pulseNormalize
		);
	}

	function U( a ) {
		return a >= 1
			? 1
			: 0 >= a
			? 0
			: ( 1 == b.pulseNormalize && ( b.pulseNormalize /= T( 1 ) ),
			  T( a ) );
	}

	function Z( c ) {
		for ( const d in c ) a.hasOwnProperty( d ) && ( b[ d ] = c[ d ] );
	}
	var h,
		i,
		j,
		A,
		L,
		a = {
			frameRate: 150,
			animationTime: php_vars.speed,
			stepSize: php_vars.step,
			pulseAlgorithm: ! 0,
			pulseScale: 4,
			pulseNormalize: 1,
			accelerationDelta: 50,
			accelerationMax: 3,
			keyboardSupport: ! 0,
			arrowScroll: 50,
			touchpadSupport: ! 1,
			fixedBackground: ! 0,
			excluded: '',
		},
		b = a,
		c = ! 1,
		d = ! 1,
		e = {
			x: 0,
			y: 0,
		},
		f = ! 1,
		g = document.documentElement,
		k = [],
		l = /^Mac/.test( navigator.platform ),
		m = {
			left: 37,
			up: 38,
			right: 39,
			down: 40,
			spacebar: 32,
			pageup: 33,
			pagedown: 34,
			end: 35,
			home: 36,
		},
		n = {
			37: 1,
			38: 1,
			39: 1,
			40: 1,
		},
		r = [],
		s = ! 1,
		t = Date.now(),
		y = ( function () {
			let a = 0;
			return function ( b ) {
				return b.uniqueID || ( b.uniqueID = a++ );
			};
		} )(),
		z = {};
	window.localStorage &&
		localStorage.SS_deltaBuffer &&
		( k = localStorage.SS_deltaBuffer.split( ',' ) );
	var Y,
		Q = ( function () {
			return (
				window.requestAnimationFrame ||
				window.webkitRequestAnimationFrame ||
				window.mozRequestAnimationFrame ||
				function ( a, b, c ) {
					window.setTimeout( a, c || 1e3 / 60 );
				}
			);
		} )(),
		R =
			window.MutationObserver ||
			window.WebKitMutationObserver ||
			window.MozMutationObserver,
		S = ( function () {
			let a;
			return function () {
				if ( ! a ) {
					const b = document.createElement( 'div' );
					( b.style.cssText = 'height:10000px;width:1px;' ),
						document.body.appendChild( b );
					const c = document.body.scrollTop;
					document.documentElement.scrollTop;
					window.scrollBy( 0, 3 ),
						( a =
							document.body.scrollTop != c
								? document.body
								: document.documentElement ),
						window.scrollBy( 0, -3 ),
						document.body.removeChild( b );
				}
				return a;
			};
		} )(),
		V = window.navigator.userAgent,
		W = /mobile/i.test( V ),
		X = ! W;
	'onwheel' in document.createElement( 'div' )
		? ( Y = 'wheel' )
		: 'onmousewheel' in document.createElement( 'div' ) &&
		  ( Y = 'mousewheel' ),
		Y && X && ( H( Y, v ), H( 'mousedown', x ), H( 'load', p ) ),
		( Z.destroy = q ),
		window.SmoothScrollOptions && Z( window.SmoothScrollOptions ),
		'function' === typeof define && define.amd
			? define( function () {
					return Z;
			  } )
			: 'object' === typeof exports
			? ( module.exports = Z )
			: ( window.SmoothScroll = Z );
} )();
