PageSourceSearch

https://dynamic-applications.org/_static/??-eJytktFOwzAMRX+INJuQgD…3VEnQcl2UT2RuAHmBK+hdft827zst1sn3b9FySWUhc=

js dynamic-applications.org collected 2026-10-05 19:51:29 UTC 221,636 bytes, 2,633 lines download raw bytes

1/**
2 * Comment Likes - JavaScript
3 *
4 * This handles liking and unliking comments, as well as viewing who has
5 * liked a particular comment.
6 *
7 * @dependency  Swipe (dynamically loaded when needed)
8 *
9 * @package     Comment_Likes
10 * @subpackage  JavaScript
11 */
12(function () {
13	function init() {
14		let extWin;
15		let extWinCheck;
16		let commentLikeEvent;
17
18		// Only run once.
19		if (window.comment_likes_loaded) {
20			return;
21		}
22		window.comment_likes_loaded = true;
23
24		// Client-side cache of who liked a particular comment to avoid
25		// having to hit the server multiple times for the same data.
26		const commentLikeCache = {};
27
28		let swipeLibPromise;
29
30		// Load the Swipe library, if it's not already loaded.
31		function swipeLibLoader() {
32			if (!swipeLibPromise) {
33				swipeLibPromise = new Promise((resolve, reject) => {
34					if (window.Swipe) {
35						resolve(window.Swipe);
36					} else {
37						const swipeScript = document.createElement('script');
38						swipeScript.src = comment_like_text.swipeUrl;
39						swipeScript.async = true;
40						document.body.appendChild(swipeScript);
41						swipeScript.addEventListener('load', () => resolve(window.Swipe));
42						swipeScript.addEventListener('error', error => reject(error));
43					}
44				});
45			}
46			return swipeLibPromise;
47		}
48
49		/**
50		 * Parse the comment ID from a comment like link.
51		 */
52		function getCommentId(link) {
53			const commentId =
54				link && link.getAttribute('href') && link.getAttribute('href').split('like_comment=');
55			return commentId[1].split('&_wpnonce=')[0];
56		}
57
58		/**
59		 * Handle an ajax action on the comment like link.
60		 */
61		function handleLinkAction(link, action, commentId, callback) {
62			const nonce =
63				link && link.getAttribute('href') && link.getAttribute('href').split('_wpnonce=')[1];
64
65			fetch('/wp-admin/admin-ajax.php', {
66				method: 'POST',
67				body: new URLSearchParams({
68					action: action,
69					_wpnonce: nonce,
70					like_comment: commentId,
71					blog_id: Number(link.dataset.blog),
72				}),
73				headers: {
74					'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
75					'X-Requested-With': 'XMLHttpRequest',
76					Accept: 'application/json',
77					'cache-control': 'no-cache',
78					pragma: 'no-cache',
79				},
80			})
81				.then(response => response.json())
82				.then(callback);
83		}
84
85		function startPolling() {
86			// Append cookie polling login iframe to this window to wait for user to finish logging in (or cancel)
87			const loginIframe = document.createElement('iframe');
88			loginIframe.id = 'wp-login-polling-iframe';
89			loginIframe.src = 'https://wordpress.com/public.api/connect/?iframe=true';
90			document.body.appendChild(loginIframe);
91			loginIframe.style.display = 'none';
92		}
93
94		function stopPolling() {
95			const iframe = document.querySelector('#wp-login-polling-iframe');
96			if (iframe) {
97				iframe.remove();
98			}
99		}
100
101		function hide(el) {
102			if (el && el.style) {
103				el.style.display = 'none';
104			}
105		}
106
107		function show(el) {
108			if (el && el.style) {
109				el.style.removeProperty('display');
110			}
111		}
112
113		// Overlay used for displaying comment like info.
114		class Overlay {
115			constructor() {
116				// Overlay element.
117				this.el = document.createElement('div');
118				this.el.classList.add('comment-likes-overlay');
119				document.body.appendChild(this.el);
120				hide(this.el);
121
122				this.el.addEventListener('mouseenter', () => {
123					// Don't hide the overlay if the user is mousing over it.
124					overlay.cancelHide();
125				});
126
127				this.el.addEventListener('mouseleave', () => overlay.requestHide());
128
129				// Inner contents of overlay.
130				this.innerEl = null;
131
132				// Instance of the Swipe library.
133				this.swipe = null;
134
135				// Timeout used for hiding the overlay.
136				this.hideTimeout = null;
137			}
138
139			// Initialise the overlay for use, removing any old content.
140			clear() {
141				// Unload any previous instance of Swipe (to avoid leaking a global
142				// event handler). This is done before clearing the contents of the
143				// overlay because Swipe expects the slides to still be present.
144				if (this.swipe) {
145					this.swipe.kill();
146					this.swipe = null;
147				}
148				this.el.innerHTML = '';
149				this.innerEl = document.createElement('div');
150				this.innerEl.classList.add('inner');
151				this.el.appendChild(this.innerEl);
152			}
153
154			/**
155			 * Construct a list (<ul>) of user (gravatar, name) details.
156			 *
157			 * @param  data     liker data returned from the server
158			 * @param  klass    CSS class to apply to the <ul> element
159			 * @param  start    index of user to start at
160			 * @param  length   number of users to include in the list
161			 *
162			 * @return          A container element with the list
163			 */
164			getUserBits(data, klass, start, length) {
165				start = start || 0;
166				let last = start + (length || data.length);
167				last = last > data.length ? data.length : last;
168				const container = document.createElement('div');
169				container.classList.add('liker-list');
170				let html = `<ul class="${klass || ''}">`;
171				for (let i = start; i < last; ++i) {
172					const user = data[i];
173					html += `
174						<li>
175							<a rel="nofollow" title="${user.display_name_esc}" href="${user.profile_url_esc}">
176								<img src="${user.avatar_url_esc}" alt="${user.display_name_esc}" />
177								<span class="user-name">${user.display_name_esc}</span>
178							</a>
179						</li>
180					`;
181				}
182				html += '</ul>';
183				container.innerHTML = html;
184				return container;
185			}
186
187			/**
188			 * Render the display of who has liked this comment. The type of
189			 * display depends on how many people have liked the comment.
190			 * If more than 10 people have liked the comment, this function
191			 * renders navigation controls and sets up the Swipe library for
192			 * changing between pages.
193			 *
194			 * @param link  the element over which the user is hovering
195			 * @param data  the results retrieved from the server
196			 */
197			showLikes(link, data) {
198				this.clear();
199
200				link.dataset.likeCount = data.length;
201				if (data.length === 0) {
202					// No likers after all.
203					hide(this.el);
204					return;
205				}
206
207				this.innerEl.style.padding = '12px';
208
209				if (data.length < 6) {
210					// Only one column needed.
211					this.innerEl.style.maxWidth = '200px';
212					this.innerEl.innerHTML = '';
213					this.innerEl.appendChild(this.getUserBits(data, 'single'));
214					this.setPosition(link);
215				} else if (data.length < 11) {
216					// Two columns, but only one page.
217					this.innerEl.innerHTML = '';
218					this.innerEl.appendChild(this.getUserBits(data, 'double'));
219					this.setPosition(link);
220				} else {
221					// Multiple pages.
222					this.renderLikesWithPagination(data, link);
223				}
224			}
225
226			/**
227			 * Render multiple pages of likes with pagination controls.
228			 * This function is intended to be called by `showLikes` above.
229			 *
230			 * @param data  the results retrieved from the server
231			 */
232			renderLikesWithPagination(data, link) {
233				swipeLibLoader().then(() => {
234					const page_count = Math.ceil(data.length / 10);
235					// Swipe requires two nested containers.
236					const swipe = document.createElement('div');
237					swipe.classList.add('swipe');
238					this.innerEl.appendChild(swipe);
239
240					const wrap = document.createElement('div');
241					wrap.classList.add('swipe-wrap');
242					swipe.appendChild(wrap);
243
244					for (let i = 0; i < page_count; ++i) {
245						wrap.appendChild(this.getUserBits(data, 'double', i * 10, 10));
246					}
247
248					/**
249					 * Navigation controls.
250					 * This is based on the Newdash controls found in
251					 *    reader/recommendations-templates.php
252					 */
253					const nav = document.createElement('nav');
254					nav.classList.add('slider-nav');
255
256					let navContents = `
257						<a href="#" class="prev">
258							<span class="noticon noticon-previous" title="Previous" alt="<"></span>
259						</a>
260						<span class="position">
261					`;
262					for (let i = 0; i < page_count; ++i) {
263						navContents += `<em data-page="${i}" class="${i === 0 ? 'on' : ''}">&bull;</em>`;
264					}
265					navContents += `
266						</span>
267						<a href="#" class="next">
268							<span class="noticon noticon-next" title="Next" alt=">"></span>
269						</a>
270					`;
271					this.innerEl.appendChild(nav);
272					nav.innerHTML = navContents;
273
274					/** Set up Swipe. **/
275					// Swipe cannot be set up successfully unless its container
276					// is visible, so we show it now.
277					show(this.el);
278					this.setPosition(link);
279
280					this.swipe = new Swipe(swipe, {
281						callback: function (pos) {
282							// Update the pagination indicators.
283							//
284							// If there are exactly two pages, Swipe has a weird
285							// special case where it duplicates both pages and
286							// can return index 2 and 3 even though those aren't
287							// real pages (see swipe.js, line 47). To deal with
288							// this, we use the expression `pos % page_count`.
289							pos = pos % page_count;
290							nav.querySelectorAll('em').forEach(em => {
291								const page = Number(em.dataset.page);
292								em.setAttribute('class', pos === page ? 'on' : '');
293							});
294						},
295					});
296
297					nav.querySelectorAll('em').forEach(em => {
298						em.addEventListener('click', e => {
299							// Go to the page corresponding to the indicator clicked.
300							this.swipe.slide(Number(em.dataset.page));
301							e.preventDefault();
302						});
303					});
304					// Previous and next buttons.
305					nav.querySelector('.prev').addEventListener('click', e => {
306						this.swipe.prev();
307						e.preventDefault();
308					});
309					nav.querySelector('.next').addEventListener('click', e => {
310						this.swipe.next();
311						e.preventDefault();
312					});
313				});
314			}
315
316			/**
317			 * Open the overlay and show a loading message.
318			 */
319			showLoadingMessage(link) {
320				this.clear();
321				this.innerEl.textContent = comment_like_text.loading;
322				this.setPosition(link);
323			}
324
325			/**
326			 * Position the overlay near the current comment.
327			 *
328			 * @param link  element near which to position the overlay
329			 */
330			setPosition(link) {
331				// Prepare a down arrow icon for the bottom of the overlay.
332				const icon = document.createElement('span');
333				this.el.appendChild(icon);
334				icon.classList.add('icon', 'noticon', 'noticon-downarrow');
335				icon.style.textShadow = '0px 1px 1px rgb(223, 223, 223)';
336
337				const rect = link.getBoundingClientRect();
338				const win = document.defaultView;
339				const offset = {
340					top: rect.top + win.scrollY,
341					left: rect.left + win.scrollX,
342				};
343
344				// Take measurements with the element fully visible.
345				show(this.el);
346				let left = offset.left - (this.el.offsetWidth - link.offsetWidth) / 2;
347				left = left < 5 ? 5 : left;
348				let top = offset.top - this.el.offsetHeight + 5;
349				hide(this.el);
350
351				const adminBar = document.querySelector('#wpadminbar');
352
353				// Check if the overlay would appear off the screen.
354				if (top < win.scrollY + ((adminBar && adminBar.offsetHeight) || 0)) {
355					// We'll display the overlay beneath the link instead.
356					top = offset.top + link.offsetHeight;
357					// Instead of using the down arrow icon, use an up arrow.
358					icon.remove();
359					this.el.prepend(icon);
360					icon.classList.remove('noticon-downarrow');
361					icon.classList.add('noticon-uparrow');
362					icon.style.textShadow = '0px -1px 1px rgb(223, 223, 223)';
363					icon.style.verticalAlign = 'bottom';
364				}
365
366				this.el.style.left = `${left}px`;
367				this.el.style.top = `${top}px`;
368				show(this.el);
369
370				// The height of the arrow icon differs slightly between browsers,
371				// so we compute the margin here to make sure it isn't disjointed
372				// from the overlay.
373				icon.style.marginTop = `${icon.scrollHeight - 26}px`;
374				icon.style.marginBottom = `${20 - icon.scrollHeight}px`;
375
376				// Position the arrow to be horizontally centred on the link.
377				icon.style.paddingLeft = `${
378					offset.left - left + (link.offsetWidth - icon.scrollWidth) / 2
379				}px`;
380			}
381
382			/**
383			 * Return whether the overlay is visible.
384			 */
385			isVisible() {
386				return this.el.style.getPropertyValue('display') !== 'none';
387			}
388
389			/**
390			 * Request that the overlay be hidden after a short delay.
391			 */
392			requestHide() {
393				if (this.hideTimeout !== null) {
394					return;
395				}
396				this.hideTimeout = setTimeout(() => {
397					hide(this.el);
398					this.clear();
399				}, 300);
400			}
401
402			/**
403			 * Cancel a request to hide the overlay.
404			 */
405			cancelHide() {
406				if (this.hideTimeout !== null) {
407					clearTimeout(this.hideTimeout);
408					this.hideTimeout = null;
409				}
410			}
411		}
412
413		// Overlay used for displaying comment like info.
414		const overlay = new Overlay();
415
416		// The most recent comment for which the user has requested to see
417		// who liked it.
418		var relevantComment;
419
420		// Precache after this timeout.
421		var precacheTimeout = null;
422
423		/**
424		 * Fetch the like data for a particular comment.
425		 */
426		function fetchLikeData(link, commentId) {
427			commentLikeCache[commentId] = null;
428
429			const container = link && link.parentElement && link.parentElement.parentElement;
430			const star = container.querySelector('a.comment-like-link');
431			star &&
432				handleLinkAction(star, 'view_comment_likes', commentId, data => {
433					// Populate the cache.
434					commentLikeCache[commentId] = data;
435
436					// Only show the overlay if the user is interested.
437					if (overlay.isVisible() && relevantComment === commentId) {
438						overlay.showLikes(link, data);
439					}
440				});
441		}
442
443		function readCookie(c) {
444			const nameEQ = c + '=';
445			const cookieStrings = document.cookie.split(';');
446
447			for (let i = 0; i < cookieStrings.length; i++) {
448				let cookieString = cookieStrings[i];
449				while (cookieString.charAt(0) === ' ') {
450					cookieString = cookieString.substring(1, cookieString.length);
451				}
452				if (cookieString.indexOf(nameEQ) === 0) {
453					const chunk = cookieString.substring(nameEQ.length, cookieString.length);
454					const pairs = chunk.split('&');
455					const cookieData = {};
456					for (let num = pairs.length - 1; num >= 0; num--) {
457						const pair = pairs[num].split('=');
458						cookieData[pair[0]] = decodeURIComponent(pair[1]);
459					}
460					return cookieData;
461				}
462			}
463			return null;
464		}
465
466		function getServiceData() {
467			const data = readCookie('wpc_wpc');
468			if (data === null || typeof data.access_token === 'undefined' || !data.access_token) {
469				return false;
470			}
471			return data;
472		}
473
474		function readMessage(msg) {
475			const event = msg.data;
476
477			if (typeof event.event === 'undefined') {
478				return;
479			}
480
481			if (event.event === 'login' && event.success) {
482				extWinCheck = setInterval(function () {
483					if (!extWin || extWin.closed) {
484						clearInterval(extWinCheck);
485						if (getServiceData()) {
486							// Load page in an iframe to get the current comment nonce
487							const nonceIframe = document.createElement('iframe');
488							nonceIframe.id = 'wp-login-comment-nonce-iframe';
489							nonceIframe.style.display = 'none';
490							nonceIframe.src = commentLikeEvent + '';
491							document.body.appendChild(nonceIframe);
492
493							const commentLikeId = (commentLikeEvent + '')
494								.split('like_comment=')[1]
495								.split('&_wpnonce=')[0];
496							let c;
497
498							// Set a 5 second timeout to redirect to the comment page without doing the Like as a fallback
499							const commentLikeTimeout = setTimeout(() => {
500								window.location = commentLikeEvent;
501							}, 5000);
502
503							// Check for a new nonced redirect and use that if available before timing out
504							const commentLikeCheck = setInterval(() => {
505								const iframe = document.querySelector('#wp-login-comment-nonce-iframe');
506								if (iframe) {
507									c = iframe.querySelector(`#comment-like-${commentLikeId} .comment-like-link`);
508								}
509								if (c && typeof c.href !== 'undefined') {
510									clearTimeout(commentLikeTimeout);
511									clearInterval(commentLikeCheck);
512									window.location = c.href;
513								}
514							}, 100);
515						}
516					}
517				}, 100);
518
519				if (extWin) {
520					if (!extWin.closed) {
521						extWin.close();
522					}
523					extWin = false;
524				}
525
526				stopPolling();
527			}
528		}
529
530		if (typeof window.postMessage !== 'undefined') {
531			window.addEventListener('message', e => {
532				let message = e && e.data;
533				if (typeof message === 'string') {
534					try {
535						message = JSON.parse(message);
536					} catch (err) {
537						return;
538					}
539				}
540
541				const type = message && message.type;
542				if (type === 'loginMessage') {
543					readMessage(message);
544				}
545			});
546		}
547
548		document.body.addEventListener('click', e => {
549			let target = e.target;
550
551			// Don't do anything when clicking on the "X people" link.
552			if (target.matches('p.comment-likes a.view-likers')) {
553				e.preventDefault();
554				return;
555			}
556
557			// Retrieve the surrounding paragraph to the star, if it hasn't been liked.
558			const notLikedPar = target.closest('p.comment-not-liked');
559
560			// Return if not clicking on star or surrounding paragraph.
561			if (!target.matches('a.comment-like-link') && !notLikedPar) {
562				return;
563			}
564
565			// When a comment hasn't been liked, make the text clickable, too.
566			if (notLikedPar) {
567				target = notLikedPar.querySelector('a.comment-like-link');
568				if (!target) {
569					return;
570				}
571			}
572
573			if (target.classList.contains('needs-login')) {
574				e.preventDefault();
575				commentLikeEvent = target;
576				if (extWin) {
577					if (!extWin.closed) {
578						extWin.close();
579					}
580					extWin = false;
581				}
582
583				stopPolling();
584
585				const url = 'https://wordpress.com/public.api/connect/?action=request&service=wordpress';
586				extWin = window.open(
587					url,
588					'likeconn',
589					'status=0,toolbar=0,location=1,menubar=0,directories=0,resizable=1,scrollbars=1,height=560,width=500'
590				);
591
592				startPolling();
593
594				return false;
595			}
596
597			// Record that the user likes or does not like this comment.
598			const commentId = getCommentId(target);
599			target.classList.add('loading');
600
601			let commentEl = document.querySelector(`p#comment-like-${commentId}`);
602			// Determine whether to like or unlike based on whether the comment is
603			// currently liked.
604			const action =
605				commentEl && commentEl.dataset.liked === 'comment-liked'
606					? 'unlike_comment'
607					: 'like_comment';
608			handleLinkAction(target, action, commentId, data => {
609				// Invalidate the like cache for this comment.
610				delete commentLikeCache[commentId];
611
612				const countEl = document.querySelector(`#comment-like-count-${data.context}`);
613				if (countEl) {
614					countEl.innerHTML = data.display;
615				}
616
617				commentEl = document.querySelector(`p#comment-like-${data.context}`);
618				if (action === 'like_comment') {
619					commentEl.classList.remove('comment-not-liked');
620					commentEl.classList.add('comment-liked');
621					commentEl.dataset.liked = 'comment-liked';
622				} else {
623					commentEl.classList.remove('comment-liked');
624					commentEl.classList.add('comment-not-liked');
625					commentEl.dataset.liked = 'comment-not-liked';
626				}
627
628				// Prefetch new data for this comment (if there are likers left).
629				const parent = target.closest('.comment-likes');
630				const link = parent && parent.querySelector('a.view-likers');
631				if (link) {
632					fetchLikeData(link, commentId);
633				}
634
635				target.classList.remove('loading');
636			});
637			e.preventDefault();
638			e.stopPropagation();
639		});
640
641		document.body.addEventListener(
642			'mouseenter',
643			function (e) {
644				if (!e.target.matches('p.comment-likes a.view-likers')) {
645					return;
646				}
647				// Show the user a list of who has liked this comment.
648
649				const link = e.target;
650				if (Number(link.dataset.likeCount || 0) === 0) {
651					// No one has liked this comment.
652					return;
653				}
654
655				// Don't hide the overlay.
656				overlay.cancelHide();
657
658				// Get the comment ID.
659				const container = link.parentElement && link.parentElement.parentElement;
660				const star = container && container.querySelector('a.comment-like-link');
661				const commentId = star && getCommentId(star);
662				relevantComment = commentId;
663
664				// Check if the list of likes for this comment is already in
665				// the cache.
666				if (commentId in commentLikeCache) {
667					const entry = commentLikeCache[commentId];
668					// Only display the likes if the ajax request is
669					// actually done.
670					if (entry !== null) {
671						overlay.showLikes(link, entry);
672					} else {
673						// Make sure the overlay is visible (in case
674						// the user moved the mouse away while loading
675						// but then came back before it finished
676						// loading).
677						overlay.showLoadingMessage(link);
678					}
679					return;
680				}
681
682				// Position the "Loading..." overlay.
683				overlay.showLoadingMessage(link);
684
685				// Fetch the data.
686				fetchLikeData(link, commentId);
687			},
688			true
689		);
690
691		document.body.addEventListener(
692			'mouseleave',
693			e => {
694				if (!e.target.matches('p.comment-likes a.view-likers')) {
695					return;
696				}
697				// User has moved cursor away - hide the overlay.
698				overlay.requestHide();
699			},
700			true
701		);
702
703		document.body.addEventListener(
704			'mouseenter',
705			e => {
706				if (!e.target.matches('.comment') || !e.target.querySelector('a.comment-like-link')) {
707					return;
708				}
709				// User is moving over a comment - precache the comment like data.
710				if (precacheTimeout !== null) {
711					clearTimeout(precacheTimeout);
712					precacheTimeout = null;
713				}
714
715				const star = e.target.querySelector('a.comment-like-link');
716				const parent = star.closest('.comment-likes');
717				const link = parent && parent.querySelector('a.view-likers');
718				if (!link || Number(link.dataset.likeCount || 0) === 0) {
719					// No likes.
720					return;
721				}
722				const commentId = getCommentId(star);
723				if (commentId in commentLikeCache) {
724					// Already in cache.
725					return;
726				}
727
728				precacheTimeout = setTimeout(() => {
729					precacheTimeout = null;
730					if (commentId in commentLikeCache) {
731						// Was cached in the interim.
732						return;
733					}
734					fetchLikeData(link, commentId);
735				}, 1000);
736			},
737			true
738		);
739	}
740
741	if (document.readyState !== 'loading') {
742		init();
743	} else {
744		document.addEventListener('DOMContentLoaded', init);
745	}
746})();
747;
748/*
749 * jQuery FlexSlider v2.6.0
750 * Copyright 2012 WooThemes
751 * Contributing Author: Tyler Smith
752 */
753;
754(function ($) {
755
756  var focused = true;
757
758  //FlexSlider: Object Instance
759  $.flexslider = function(el, options) {
760    var slider = $(el);
761
762    // making variables public
763    slider.vars = $.extend({}, $.flexslider.defaults, options);
764
765    var namespace = slider.vars.namespace,
766        msGesture = window.navigator && window.navigator.msPointerEnabled && window.MSGesture,
767        touch = (( "ontouchstart" in window ) || msGesture || window.DocumentTouch && document instanceof DocumentTouch) && slider.vars.touch,
768        // depricating this idea, as devices are being released with both of these events
769        eventType = "click touchend MSPointerUp keyup",
770        watchedEvent = "",
771        watchedEventClearTimer,
772        vertical = slider.vars.direction === "vertical",
773        reverse = slider.vars.reverse,
774        carousel = (slider.vars.itemWidth > 0),
775        fade = slider.vars.animation === "fade",
776        asNav = slider.vars.asNavFor !== "",
777        methods = {};
778
779    // Store a reference to the slider object
780    $.data(el, "flexslider", slider);
781
782    // Private slider methods
783    methods = {
784      init: function() {
785        slider.animating = false;
786        // Get current slide and make sure it is a number
787        slider.currentSlide = parseInt( ( slider.vars.startAt ? slider.vars.startAt : 0), 10 );
788        if ( isNaN( slider.currentSlide ) ) { slider.currentSlide = 0; }
789        slider.animatingTo = slider.currentSlide;
790        slider.atEnd = (slider.currentSlide === 0 || slider.currentSlide === slider.last);
791        slider.containerSelector = slider.vars.selector.substr(0,slider.vars.selector.search(' '));
792        slider.slides = $(slider.vars.selector, slider);
793        slider.container = $(slider.containerSelector, slider);
794        slider.count = slider.slides.length;
795        // SYNC:
796        slider.syncExists = $(slider.vars.sync).length > 0;
797        // SLIDE:
798        if (slider.vars.animation === "slide") { slider.vars.animation = "swing"; }
799        slider.prop = (vertical) ? "top" : "marginLeft";
800        slider.args = {};
801        // SLIDESHOW:
802        slider.manualPause = false;
803        slider.stopped = false;
804        //PAUSE WHEN INVISIBLE
805        slider.started = false;
806        slider.startTimeout = null;
807        // TOUCH/USECSS:
808        slider.transitions = !slider.vars.video && !fade && slider.vars.useCSS && (function() {
809          var obj = document.createElement('div'),
810              props = ['perspectiveProperty', 'WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective'];
811          for (var i in props) {
812            if ( obj.style[ props[i] ] !== undefined ) {
813              slider.pfx = props[i].replace('Perspective','').toLowerCase();
814              slider.prop = "-" + slider.pfx + "-transform";
815              return true;
816            }
817          }
818          return false;
819        }());
820        slider.ensureAnimationEnd = '';
821        // CONTROLSCONTAINER:
822        if (slider.vars.controlsContainer !== "") slider.controlsContainer = $(slider.vars.controlsContainer).length > 0 && $(slider.vars.controlsContainer);
823        // MANUAL:
vendor: 23,129 bytes, lines 824-1361
824        if (slider.vars.manualControls !== "") slider.manualControls = $(slider.vars.manualControls).length > 0 && $(slider.vars.manualControls);
825
826        // CUSTOM DIRECTION NAV:
827        if (slider.vars.customDirectionNav !== "") slider.customDirectionNav = $(slider.vars.customDirectionNav).length === 2 && $(slider.vars.customDirectionNav);
828
829        // RANDOMIZE:
830        if (slider.vars.randomize) {
831          slider.slides.sort(function() { return (Math.round(Math.random())-0.5); });
832          slider.container.empty().append(slider.slides);
833        }
834
835        slider.doMath();
836
837        // INIT
838        slider.setup("init");
839
840        // CONTROLNAV:
841        if (slider.vars.controlNav) { methods.controlNav.setup(); }
842
843        // DIRECTIONNAV:
844        if (slider.vars.directionNav) { methods.directionNav.setup(); }
845
846        // KEYBOARD:
847        if (slider.vars.keyboard && ($(slider.containerSelector).length === 1 || slider.vars.multipleKeyboard)) {
848          $(document).bind('keyup', function(event) {
849            var keycode = event.keyCode;
850            if (!slider.animating && (keycode === 39 || keycode === 37)) {
851              var target = (keycode === 39) ? slider.getTarget('next') :
852                           (keycode === 37) ? slider.getTarget('prev') : false;
853              slider.flexAnimate(target, slider.vars.pauseOnAction);
854            }
855          });
856        }
857        // MOUSEWHEEL:
858        if (slider.vars.mousewheel) {
859          slider.bind('mousewheel', function(event, delta, deltaX, deltaY) {
860            event.preventDefault();
861            var target = (delta < 0) ? slider.getTarget('next') : slider.getTarget('prev');
862            slider.flexAnimate(target, slider.vars.pauseOnAction);
863          });
864        }
865
866        // PAUSEPLAY
867        if (slider.vars.pausePlay) { methods.pausePlay.setup(); }
868
869        //PAUSE WHEN INVISIBLE
870        if (slider.vars.slideshow && slider.vars.pauseInvisible) { methods.pauseInvisible.init(); }
871
872        // SLIDSESHOW
873        if (slider.vars.slideshow) {
874          if (slider.vars.pauseOnHover) {
875            slider.hover(function() {
876              if (!slider.manualPlay && !slider.manualPause) { slider.pause(); }
877            }, function() {
878              if (!slider.manualPause && !slider.manualPlay && !slider.stopped) { slider.play(); }
879            });
880          }
881          // initialize animation
882          //If we're visible, or we don't use PageVisibility API
883          if(!slider.vars.pauseInvisible || !methods.pauseInvisible.isHidden()) {
884            (slider.vars.initDelay > 0) ? slider.startTimeout = setTimeout(slider.play, slider.vars.initDelay) : slider.play();
885          }
886        }
887
888        // ASNAV:
889        if (asNav) { methods.asNav.setup(); }
890
891        // TOUCH
892        if (touch && slider.vars.touch) { methods.touch(); }
893
894        // FADE&&SMOOTHHEIGHT || SLIDE:
895        if (!fade || (fade && slider.vars.smoothHeight)) { $(window).bind("resize orientationchange focus", methods.resize); }
896
897        slider.find("img").attr("draggable", "false");
898
899        // API: start() Callback
900        setTimeout(function(){
901          slider.vars.start(slider);
902        }, 200);
903      },
904      asNav: {
905        setup: function() {
906          slider.asNav = true;
907          slider.animatingTo = Math.floor(slider.currentSlide/slider.move);
908          slider.currentItem = slider.currentSlide;
909          slider.slides.removeClass(namespace + "active-slide").eq(slider.currentItem).addClass(namespace + "active-slide");
910          if(!msGesture){
911              slider.slides.on(eventType, function(e){
912                e.preventDefault();
913                var $slide = $(this),
914                    target = $slide.index();
915                var posFromLeft = $slide.offset().left - $(slider).scrollLeft(); // Find position of slide relative to left of slider container
916                if( posFromLeft <= 0 && $slide.hasClass( namespace + 'active-slide' ) ) {
917                  slider.flexAnimate(slider.getTarget("prev"), true);
918                } else if (!$(slider.vars.asNavFor).data('flexslider').animating && !$slide.hasClass(namespace + "active-slide")) {
919                  slider.direction = (slider.currentItem < target) ? "next" : "prev";
920                  slider.flexAnimate(target, slider.vars.pauseOnAction, false, true, true);
921                }
922              });
923          }else{
924              el._slider = slider;
925              slider.slides.each(function (){
926                  var that = this;
927                  that._gesture = new MSGesture();
928                  that._gesture.target = that;
929                  that.addEventListener("MSPointerDown", function (e){
930                      e.preventDefault();
931                      if(e.currentTarget._gesture) {
932                        e.currentTarget._gesture.addPointer(e.pointerId);
933                      }
934                  }, false);
935                  that.addEventListener("MSGestureTap", function (e){
936                      e.preventDefault();
937                      var $slide = $(this),
938                          target = $slide.index();
939                      if (!$(slider.vars.asNavFor).data('flexslider').animating && !$slide.hasClass('active')) {
940                          slider.direction = (slider.currentItem < target) ? "next" : "prev";
941                          slider.flexAnimate(target, slider.vars.pauseOnAction, false, true, true);
942                      }
943                  });
944              });
945          }
946        }
947      },
948      controlNav: {
949        setup: function() {
950          if (!slider.manualControls) {
951            methods.controlNav.setupPaging();
952          } else { // MANUALCONTROLS:
953            methods.controlNav.setupManual();
954          }
955        },
956        setupPaging: function() {
957          var type = (slider.vars.controlNav === "thumbnails") ? 'control-thumbs' : 'control-paging',
958              j = 1,
959              item,
960              slide;
961
962          slider.controlNavScaffold = $('<ol class="'+ namespace + 'control-nav ' + namespace + type + '"></ol>');
963
964          if (slider.pagingCount > 1) {
965            for (var i = 0; i < slider.pagingCount; i++) {
966              slide = slider.slides.eq(i);
967
968              if ( undefined === slide.attr( 'data-thumb-alt' ) ) { 
969                slide.attr( 'data-thumb-alt', '' ); 
970              }
971              
972              item = $( '<a></a>' ).attr( 'href', '#' ).text( j );
973              if ( slider.vars.controlNav === "thumbnails" ) {
974                item = $( '<img/>' ).attr( 'src', slide.attr( 'data-thumb' ) );
975              }
976              
977              if ( '' !== slide.attr( 'data-thumb-alt' ) ) {
978                item.attr( 'alt', slide.attr( 'data-thumb-alt' ) );
979              }
980
981              if ( 'thumbnails' === slider.vars.controlNav && true === slider.vars.thumbCaptions ) {
982                var captn = slide.attr( 'data-thumbcaption' );
983                if ( '' !== captn && undefined !== captn ) { 
984                  var caption = $('<span></span>' ).addClass( namespace + 'caption' ).text( captn );
985                  item.append( caption );
986                }
987              }
988              
989              var liElement = $( '<li>' );
990              item.appendTo( liElement );
991              liElement.append( '</li>' );
992
993              slider.controlNavScaffold.append(liElement);
994              j++;
995            }
996          }
997
998          // CONTROLSCONTAINER:
999          (slider.controlsContainer) ? $(slider.controlsContainer).append(slider.controlNavScaffold) : slider.append(slider.controlNavScaffold);
1000          methods.controlNav.set();
1001
1002          methods.controlNav.active();
1003
1004          slider.controlNavScaffold.delegate('a, img', eventType, function(event) {
1005            event.preventDefault();
1006
1007            if (watchedEvent === "" || watchedEvent === event.type) {
1008              var $this = $(this),
1009                  target = slider.controlNav.index($this);
1010
1011              if (!$this.hasClass(namespace + 'active')) {
1012                slider.direction = (target > slider.currentSlide) ? "next" : "prev";
1013                slider.flexAnimate(target, slider.vars.pauseOnAction);
1014              }
1015            }
1016
1017            // setup flags to prevent event duplication
1018            if (watchedEvent === "") {
1019              watchedEvent = event.type;
1020            }
1021            methods.setToClearWatchedEvent();
1022
1023          });
1024        },
1025        setupManual: function() {
1026          slider.controlNav = slider.manualControls;
1027          methods.controlNav.active();
1028
1029          slider.controlNav.bind(eventType, function(event) {
1030            event.preventDefault();
1031
1032            if (watchedEvent === "" || watchedEvent === event.type) {
1033              var $this = $(this),
1034                  target = slider.controlNav.index($this);
1035
1036              if (!$this.hasClass(namespace + 'active')) {
1037                (target > slider.currentSlide) ? slider.direction = "next" : slider.direction = "prev";
1038                slider.flexAnimate(target, slider.vars.pauseOnAction);
1039              }
1040            }
1041
1042            // setup flags to prevent event duplication
1043            if (watchedEvent === "") {
1044              watchedEvent = event.type;
1045            }
1046            methods.setToClearWatchedEvent();
1047          });
1048        },
1049        set: function() {
1050          var selector = (slider.vars.controlNav === "thumbnails") ? 'img' : 'a';
1051          slider.controlNav = $('.' + namespace + 'control-nav li ' + selector, (slider.controlsContainer) ? slider.controlsContainer : slider);
1052        },
1053        active: function() {
1054          slider.controlNav.removeClass(namespace + "active").eq(slider.animatingTo).addClass(namespace + "active");
1055        },
1056        update: function(action, pos) {
1057          if (slider.pagingCount > 1 && action === "add") {
1058            slider.controlNavScaffold.append($('<li><a href="#">' + slider.count + '</a></li>'));
1059          } else if (slider.pagingCount === 1) {
1060            slider.controlNavScaffold.find('li').remove();
1061          } else {
1062            slider.controlNav.eq(pos).closest('li').remove();
1063          }
1064          methods.controlNav.set();
1065          (slider.pagingCount > 1 && slider.pagingCount !== slider.controlNav.length) ? slider.update(pos, action) : methods.controlNav.active();
1066        }
1067      },
1068      directionNav: {
1069        setup: function() {
1070          var directionNavScaffold = $('<ul class="' + namespace + 'direction-nav"><li class="' + namespace + 'nav-prev"><a class="' + namespace + 'prev" href="#">' + slider.vars.prevText + '</a></li><li class="' + namespace + 'nav-next"><a class="' + namespace + 'next" href="#">' + slider.vars.nextText + '</a></li></ul>');
1071
1072          // CUSTOM DIRECTION NAV:
1073          if (slider.customDirectionNav) {
1074            slider.directionNav = slider.customDirectionNav;
1075          // CONTROLSCONTAINER:
1076          } else if (slider.controlsContainer) {
1077            $(slider.controlsContainer).append(directionNavScaffold);
1078            slider.directionNav = $('.' + namespace + 'direction-nav li a', slider.controlsContainer);
1079          } else {
1080            slider.append(directionNavScaffold);
1081            slider.directionNav = $('.' + namespace + 'direction-nav li a', slider);
1082          }
1083
1084          methods.directionNav.update();
1085
1086          slider.directionNav.bind(eventType, function(event) {
1087            event.preventDefault();
1088            var target;
1089
1090            if (watchedEvent === "" || watchedEvent === event.type) {
1091              target = ($(this).hasClass(namespace + 'next')) ? slider.getTarget('next') : slider.getTarget('prev');
1092              slider.flexAnimate(target, slider.vars.pauseOnAction);
1093            }
1094
1095            // setup flags to prevent event duplication
1096            if (watchedEvent === "") {
1097              watchedEvent = event.type;
1098            }
1099            methods.setToClearWatchedEvent();
1100          });
1101        },
1102        update: function() {
1103          var disabledClass = namespace + 'disabled';
1104          if (slider.pagingCount === 1) {
1105            slider.directionNav.addClass(disabledClass).attr('tabindex', '-1');
1106          } else if (!slider.vars.animationLoop) {
1107            if (slider.animatingTo === 0) {
1108              slider.directionNav.removeClass(disabledClass).filter('.' + namespace + "prev").addClass(disabledClass).attr('tabindex', '-1');
1109            } else if (slider.animatingTo === slider.last) {
1110              slider.directionNav.removeClass(disabledClass).filter('.' + namespace + "next").addClass(disabledClass).attr('tabindex', '-1');
1111            } else {
1112              slider.directionNav.removeClass(disabledClass).removeAttr('tabindex');
1113            }
1114          } else {
1115            slider.directionNav.removeClass(disabledClass).removeAttr('tabindex');
1116          }
1117        }
1118      },
1119      pausePlay: {
1120        setup: function() {
1121          var pausePlayScaffold = $('<div class="' + namespace + 'pauseplay"><a href="#"></a></div>');
1122
1123          // CONTROLSCONTAINER:
1124          if (slider.controlsContainer) {
1125            slider.controlsContainer.append(pausePlayScaffold);
1126            slider.pausePlay = $('.' + namespace + 'pauseplay a', slider.controlsContainer);
1127          } else {
1128            slider.append(pausePlayScaffold);
1129            slider.pausePlay = $('.' + namespace + 'pauseplay a', slider);
1130          }
1131
1132          methods.pausePlay.update((slider.vars.slideshow) ? namespace + 'pause' : namespace + 'play');
1133
1134          slider.pausePlay.bind(eventType, function(event) {
1135            event.preventDefault();
1136
1137            if (watchedEvent === "" || watchedEvent === event.type) {
1138              if ($(this).hasClass(namespace + 'pause')) {
1139                slider.manualPause = true;
1140                slider.manualPlay = false;
1141                slider.pause();
1142              } else {
1143                slider.manualPause = false;
1144                slider.manualPlay = true;
1145                slider.play();
1146              }
1147            }
1148
1149            // setup flags to prevent event duplication
1150            if (watchedEvent === "") {
1151              watchedEvent = event.type;
1152            }
1153            methods.setToClearWatchedEvent();
1154          });
1155        },
1156        update: function(state) {
1157          (state === "play") ? slider.pausePlay.removeClass(namespace + 'pause').addClass(namespace + 'play').html(slider.vars.playText) : slider.pausePlay.removeClass(namespace + 'play').addClass(namespace + 'pause').html(slider.vars.pauseText);
1158        }
1159      },
1160      touch: function() {
1161        var startX,
1162          startY,
1163          offset,
1164          cwidth,
1165          dx,
1166          startT,
1167          onTouchStart,
1168          onTouchMove,
1169          onTouchEnd,
1170          scrolling = false,
1171          localX = 0,
1172          localY = 0,
1173          accDx = 0;
1174
1175        if(!msGesture){
1176            onTouchStart = function(e) {
1177              if (slider.animating) {
1178                e.preventDefault();
1179              } else if ( ( window.navigator.msPointerEnabled ) || e.touches.length === 1 ) {
1180                slider.pause();
1181                // CAROUSEL:
1182                cwidth = (vertical) ? slider.h : slider. w;
1183                startT = Number(new Date());
1184                // CAROUSEL:
1185
1186                // Local vars for X and Y points.
1187                localX = e.touches[0].pageX;
1188                localY = e.touches[0].pageY;
1189
1190                offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 :
1191                         (carousel && reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) :
1192                         (carousel && slider.currentSlide === slider.last) ? slider.limit :
1193                         (carousel) ? ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.currentSlide :
1194                         (reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth;
1195                startX = (vertical) ? localY : localX;
1196                startY = (vertical) ? localX : localY;
1197
1198                el.addEventListener('touchmove', onTouchMove, false);
1199                el.addEventListener('touchend', onTouchEnd, false);
1200              }
1201            };
1202
1203            onTouchMove = function(e) {
1204              // Local vars for X and Y points.
1205
1206              localX = e.touches[0].pageX;
1207              localY = e.touches[0].pageY;
1208
1209              dx = (vertical) ? startX - localY : startX - localX;
1210              scrolling = (vertical) ? (Math.abs(dx) < Math.abs(localX - startY)) : (Math.abs(dx) < Math.abs(localY - startY));
1211
1212              var fxms = 500;
1213
1214              if ( ! scrolling || Number( new Date() ) - startT > fxms ) {
1215                e.preventDefault();
1216                if (!fade && slider.transitions) {
1217                  if (!slider.vars.animationLoop) {
1218                    dx = dx/((slider.currentSlide === 0 && dx < 0 || slider.currentSlide === slider.last && dx > 0) ? (Math.abs(dx)/cwidth+2) : 1);
1219                  }
1220                  slider.setProps(offset + dx, "setTouch");
1221                }
1222              }
1223            };
1224
1225            onTouchEnd = function(e) {
1226              // finish the touch by undoing the touch session
1227              el.removeEventListener('touchmove', onTouchMove, false);
1228
1229              if (slider.animatingTo === slider.currentSlide && !scrolling && !(dx === null)) {
1230                var updateDx = (reverse) ? -dx : dx,
1231                    target = (updateDx > 0) ? slider.getTarget('next') : slider.getTarget('prev');
1232
1233                if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth/2)) {
1234                  slider.flexAnimate(target, slider.vars.pauseOnAction);
1235                } else {
1236                  if (!fade) { slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true); }
1237                }
1238              }
1239              el.removeEventListener('touchend', onTouchEnd, false);
1240
1241              startX = null;
1242              startY = null;
1243              dx = null;
1244              offset = null;
1245            };
1246
1247            el.addEventListener('touchstart', onTouchStart, false);
1248        }else{
1249            el.style.msTouchAction = "none";
1250            el._gesture = new MSGesture();
1251            el._gesture.target = el;
1252            el.addEventListener("MSPointerDown", onMSPointerDown, false);
1253            el._slider = slider;
1254            el.addEventListener("MSGestureChange", onMSGestureChange, false);
1255            el.addEventListener("MSGestureEnd", onMSGestureEnd, false);
1256
1257            function onMSPointerDown(e){
1258                e.stopPropagation();
1259                if (slider.animating) {
1260                    e.preventDefault();
1261                }else{
1262                    slider.pause();
1263                    el._gesture.addPointer(e.pointerId);
1264                    accDx = 0;
1265                    cwidth = (vertical) ? slider.h : slider. w;
1266                    startT = Number(new Date());
1267                    // CAROUSEL:
1268
1269                    offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 :
1270                        (carousel && reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) :
1271                            (carousel && slider.currentSlide === slider.last) ? slider.limit :
1272                                (carousel) ? ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.currentSlide :
1273                                    (reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth;
1274                }
1275            }
1276
1277            function onMSGestureChange(e) {
1278                e.stopPropagation();
1279                var slider = e.target._slider;
1280                if(!slider){
1281                    return;
1282                }
1283                var transX = -e.translationX,
1284                    transY = -e.translationY;
1285
1286                //Accumulate translations.
1287                accDx = accDx + ((vertical) ? transY : transX);
1288                dx = accDx;
1289                scrolling = (vertical) ? (Math.abs(accDx) < Math.abs(-transX)) : (Math.abs(accDx) < Math.abs(-transY));
1290
1291                if(e.detail === e.MSGESTURE_FLAG_INERTIA){
1292                    setImmediate(function (){
1293                        el._gesture.stop();
1294                    });
1295
1296                    return;
1297                }
1298
1299                if (!scrolling || Number(new Date()) - startT > 500) {
1300                    e.preventDefault();
1301                    if (!fade && slider.transitions) {
1302                        if (!slider.vars.animationLoop) {
1303                            dx = accDx / ((slider.currentSlide === 0 && accDx < 0 || slider.currentSlide === slider.last && accDx > 0) ? (Math.abs(accDx) / cwidth + 2) : 1);
1304                        }
1305                        slider.setProps(offset + dx, "setTouch");
1306                    }
1307                }
1308            }
1309
1310            function onMSGestureEnd(e) {
1311                e.stopPropagation();
1312                var slider = e.target._slider;
1313                if(!slider){
1314                    return;
1315                }
1316                if (slider.animatingTo === slider.currentSlide && !scrolling && !(dx === null)) {
1317                    var updateDx = (reverse) ? -dx : dx,
1318                        target = (updateDx > 0) ? slider.getTarget('next') : slider.getTarget('prev');
1319
1320                    if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth/2)) {
1321                        slider.flexAnimate(target, slider.vars.pauseOnAction);
1322                    } else {
1323                        if (!fade) { slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true); }
1324                    }
1325                }
1326
1327                startX = null;
1328                startY = null;
1329                dx = null;
1330                offset = null;
1331                accDx = 0;
1332            }
1333        }
1334      },
1335      resize: function() {
1336        if (!slider.animating && slider.is(':visible')) {
1337          if (!carousel) { slider.doMath(); }
1338
1339          if (fade) {
1340            // SMOOTH HEIGHT:
1341            methods.smoothHeight();
1342          } else if (carousel) { //CAROUSEL:
1343            slider.slides.width(slider.computedW);
1344            slider.update(slider.pagingCount);
1345            slider.setProps();
1346          }
1347          else if (vertical) { //VERTICAL:
1348            slider.viewport.height(slider.h);
1349            slider.setProps(slider.h, "setTotal");
1350          } else {
1351            // SMOOTH HEIGHT:
1352            if (slider.vars.smoothHeight) { methods.smoothHeight(); }
1353            slider.newSlides.width(slider.computedW);
1354            slider.setProps(slider.computedW, "setTotal");
1355          }
1356        }
1357      },
1358      smoothHeight: function(dur) {
1359        if (!vertical || fade) {
1360          var $obj = (fade) ? slider : slider.viewport;
1361          (dur) ? $obj.animate({"height": slider.slides.eq(slider.animatingTo).height()}, dur) : $obj.height(slider.slides.eq(slider.animatingTo).h
vendor: 7,569 bytes, lines 1361-1545
1361eight());
1362        }
1363      },
1364      sync: function(action) {
1365        var $obj = $(slider.vars.sync).data("flexslider"),
1366            target = slider.animatingTo;
1367
1368        switch (action) {
1369          case "animate": $obj.flexAnimate(target, slider.vars.pauseOnAction, false, true); break;
1370          case "play": if (!$obj.playing && !$obj.asNav) { $obj.play(); } break;
1371          case "pause": $obj.pause(); break;
1372        }
1373      },
1374      uniqueID: function($clone) {
1375        // Append _clone to current level and children elements with id attributes
1376        $clone.filter( '[id]' ).add($clone.find( '[id]' )).each(function() {
1377          var $this = $(this);
1378          $this.attr( 'id', $this.attr( 'id' ) + '_clone' );
1379        });
1380        return $clone;
1381      },
1382      pauseInvisible: {
1383        visProp: null,
1384        init: function() {
1385          var visProp = methods.pauseInvisible.getHiddenProp();
1386          if (visProp) {
1387            var evtname = visProp.replace(/[H|h]idden/,'') + 'visibilitychange';
1388            document.addEventListener(evtname, function() {
1389              if (methods.pauseInvisible.isHidden()) {
1390                if(slider.startTimeout) {
1391                  clearTimeout(slider.startTimeout); //If clock is ticking, stop timer and prevent from starting while invisible
1392                } else {
1393                  slider.pause(); //Or just pause
1394                }
1395              }
1396              else {
1397                if(slider.started) {
1398                  slider.play(); //Initiated before, just play
1399                } else {
1400                  if (slider.vars.initDelay > 0) {
1401                    setTimeout(slider.play, slider.vars.initDelay);
1402                  } else {
1403                    slider.play(); //Didn't init before: simply init or wait for it
1404                  }
1405                }
1406              }
1407            });
1408          }
1409        },
1410        isHidden: function() {
1411          var prop = methods.pauseInvisible.getHiddenProp();
1412          if (!prop) {
1413            return false;
1414          }
1415          return document[prop];
1416        },
1417        getHiddenProp: function() {
1418          var prefixes = ['webkit','moz','ms','o'];
1419          // if 'hidden' is natively supported just return it
1420          if ('hidden' in document) {
1421            return 'hidden';
1422          }
1423          // otherwise loop over all the known prefixes until we find one
1424          for ( var i = 0; i < prefixes.length; i++ ) {
1425              if ((prefixes[i] + 'Hidden') in document) {
1426                return prefixes[i] + 'Hidden';
1427              }
1428          }
1429          // otherwise it's not supported
1430          return null;
1431        }
1432      },
1433      setToClearWatchedEvent: function() {
1434        clearTimeout(watchedEventClearTimer);
1435        watchedEventClearTimer = setTimeout(function() {
1436          watchedEvent = "";
1437        }, 3000);
1438      }
1439    };
1440
1441    // public methods
1442    slider.flexAnimate = function(target, pause, override, withSync, fromNav) {
1443      if (!slider.vars.animationLoop && target !== slider.currentSlide) {
1444        slider.direction = (target > slider.currentSlide) ? "next" : "prev";
1445      }
1446
1447      if (asNav && slider.pagingCount === 1) slider.direction = (slider.currentItem < target) ? "next" : "prev";
1448
1449      if (!slider.animating && (slider.canAdvance(target, fromNav) || override) && slider.is(":visible")) {
1450        if (asNav && withSync) {
1451          var master = $(slider.vars.asNavFor).data('flexslider');
1452          slider.atEnd = target === 0 || target === slider.count - 1;
1453          master.flexAnimate(target, true, false, true, fromNav);
1454          slider.direction = (slider.currentItem < target) ? "next" : "prev";
1455          master.direction = slider.direction;
1456
1457          if (Math.ceil((target + 1)/slider.visible) - 1 !== slider.currentSlide && target !== 0) {
1458            slider.currentItem = target;
1459            slider.slides.removeClass(namespace + "active-slide").eq(target).addClass(namespace + "active-slide");
1460            target = Math.floor(target/slider.visible);
1461          } else {
1462            slider.currentItem = target;
1463            slider.slides.removeClass(namespace + "active-slide").eq(target).addClass(namespace + "active-slide");
1464            return false;
1465          }
1466        }
1467
1468        slider.animating = true;
1469        slider.animatingTo = target;
1470
1471        // SLIDESHOW:
1472        if (pause) { slider.pause(); }
1473
1474        // API: before() animation Callback
1475        slider.vars.before(slider);
1476
1477        // SYNC:
1478        if (slider.syncExists && !fromNav) { methods.sync("animate"); }
1479
1480        // CONTROLNAV
1481        if (slider.vars.controlNav) { methods.controlNav.active(); }
1482
1483        // !CAROUSEL:
1484        // CANDIDATE: slide active class (for add/remove slide)
1485        if (!carousel) { slider.slides.removeClass(namespace + 'active-slide').eq(target).addClass(namespace + 'active-slide'); }
1486
1487        // INFINITE LOOP:
1488        // CANDIDATE: atEnd
1489        slider.atEnd = target === 0 || target === slider.last;
1490
1491        // DIRECTIONNAV:
1492        if (slider.vars.directionNav) { methods.directionNav.update(); }
1493
1494        if (target === slider.last) {
1495          // API: end() of cycle Callback
1496          slider.vars.end(slider);
1497          // SLIDESHOW && !INFINITE LOOP:
1498          if (!slider.vars.animationLoop) { slider.pause(); }
1499        }
1500
1501        // SLIDE:
1502        if (!fade) {
1503          var dimension = (vertical) ? slider.slides.filter(':first').height() : slider.computedW,
1504              margin, slideString, calcNext;
1505
1506          // INFINITE LOOP / REVERSE:
1507          if (carousel) {
1508            margin = slider.vars.itemMargin;
1509            calcNext = ((slider.itemW + margin) * slider.move) * slider.animatingTo;
1510            slideString = (calcNext > slider.limit && slider.visible !== 1) ? slider.limit : calcNext;
1511          } else if (slider.currentSlide === 0 && target === slider.count - 1 && slider.vars.animationLoop && slider.direction !== "next") {
1512            slideString = (reverse) ? (slider.count + slider.cloneOffset) * dimension : 0;
1513          } else if (slider.currentSlide === slider.last && target === 0 && slider.vars.animationLoop && slider.direction !== "prev") {
1514            slideString = (reverse) ? 0 : (slider.count + 1) * dimension;
1515          } else {
1516            slideString = (reverse) ? ((slider.count - 1) - target + slider.cloneOffset) * dimension : (target + slider.cloneOffset) * dimension;
1517          }
1518          slider.setProps(slideString, "", slider.vars.animationSpeed);
1519          if (slider.transitions) {
1520            if (!slider.vars.animationLoop || !slider.atEnd) {
1521              slider.animating = false;
1522              slider.currentSlide = slider.animatingTo;
1523            }
1524
1525            // Unbind previous transitionEnd events and re-bind new transitionEnd event
1526            slider.container.unbind("webkitTransitionEnd transitionend");
1527            slider.container.bind("webkitTransitionEnd transitionend", function() {
1528              clearTimeout(slider.ensureAnimationEnd);
1529              slider.wrapup(dimension);
1530            });
1531
1532            // Insurance for the ever-so-fickle transitionEnd event
1533            clearTimeout(slider.ensureAnimationEnd);
1534            slider.ensureAnimationEnd = setTimeout(function() {
1535              slider.wrapup(dimension);
1536            }, slider.vars.animationSpeed + 100);
1537
1538          } else {
1539            slider.container.animate(slider.args, slider.vars.animationSpeed, slider.vars.easing, function(){
1540              slider.wrapup(dimension);
1541            });
1542          }
1543        } else { // FADE:
1544          if (!touch) {
1545            
vendor: 13,743 bytes, lines 1545-1859
1545//slider.slides.eq(slider.currentSlide).fadeOut(slider.vars.animationSpeed, slider.vars.easing);
1546            //slider.slides.eq(target).fadeIn(slider.vars.animationSpeed, slider.vars.easing, slider.wrapup);
1547
1548            slider.slides.eq(slider.currentSlide).css({"zIndex": 1}).animate({"opacity": 0}, slider.vars.animationSpeed, slider.vars.easing);
1549            slider.slides.eq(target).css({"zIndex": 2}).animate({"opacity": 1}, slider.vars.animationSpeed, slider.vars.easing, slider.wrapup);
1550
1551          } else {
1552            slider.slides.eq(slider.currentSlide).css({ "opacity": 0, "zIndex": 1 });
1553            slider.slides.eq(target).css({ "opacity": 1, "zIndex": 2 });
1554            slider.wrapup(dimension);
1555          }
1556        }
1557        // SMOOTH HEIGHT:
1558        if (slider.vars.smoothHeight) { methods.smoothHeight(slider.vars.animationSpeed); }
1559      }
1560    };
1561    slider.wrapup = function(dimension) {
1562      // SLIDE:
1563      if (!fade && !carousel) {
1564        if (slider.currentSlide === 0 && slider.animatingTo === slider.last && slider.vars.animationLoop) {
1565          slider.setProps(dimension, "jumpEnd");
1566        } else if (slider.currentSlide === slider.last && slider.animatingTo === 0 && slider.vars.animationLoop) {
1567          slider.setProps(dimension, "jumpStart");
1568        }
1569      }
1570      slider.animating = false;
1571      slider.currentSlide = slider.animatingTo;
1572      // API: after() animation Callback
1573      slider.vars.after(slider);
1574    };
1575
1576    // SLIDESHOW:
1577    slider.animateSlides = function() {
1578      if (!slider.animating && focused ) { slider.flexAnimate(slider.getTarget("next")); }
1579    };
1580    // SLIDESHOW:
1581    slider.pause = function() {
1582      clearInterval(slider.animatedSlides);
1583      slider.animatedSlides = null;
1584      slider.playing = false;
1585      // PAUSEPLAY:
1586      if (slider.vars.pausePlay) { methods.pausePlay.update("play"); }
1587      // SYNC:
1588      if (slider.syncExists) { methods.sync("pause"); }
1589    };
1590    // SLIDESHOW:
1591    slider.play = function() {
1592      if (slider.playing) { clearInterval(slider.animatedSlides); }
1593      slider.animatedSlides = slider.animatedSlides || setInterval(slider.animateSlides, slider.vars.slideshowSpeed);
1594      slider.started = slider.playing = true;
1595      // PAUSEPLAY:
1596      if (slider.vars.pausePlay) { methods.pausePlay.update("pause"); }
1597      // SYNC:
1598      if (slider.syncExists) { methods.sync("play"); }
1599    };
1600    // STOP:
1601    slider.stop = function () {
1602      slider.pause();
1603      slider.stopped = true;
1604    };
1605    slider.canAdvance = function(target, fromNav) {
1606      // ASNAV:
1607      var last = (asNav) ? slider.pagingCount - 1 : slider.last;
1608      return (fromNav) ? true :
1609             (asNav && slider.currentItem === slider.count - 1 && target === 0 && slider.direction === "prev") ? true :
1610             (asNav && slider.currentItem === 0 && target === slider.pagingCount - 1 && slider.direction !== "next") ? false :
1611             (target === slider.currentSlide && !asNav) ? false :
1612             (slider.vars.animationLoop) ? true :
1613             (slider.atEnd && slider.currentSlide === 0 && target === last && slider.direction !== "next") ? false :
1614             (slider.atEnd && slider.currentSlide === last && target === 0 && slider.direction === "next") ? false :
1615             true;
1616    };
1617    slider.getTarget = function(dir) {
1618      slider.direction = dir;
1619      if (dir === "next") {
1620        return (slider.currentSlide === slider.last) ? 0 : slider.currentSlide + 1;
1621      } else {
1622        return (slider.currentSlide === 0) ? slider.last : slider.currentSlide - 1;
1623      }
1624    };
1625
1626    // SLIDE:
1627    slider.setProps = function(pos, special, dur) {
1628      var target = (function() {
1629        var posCheck = (pos) ? pos : ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo,
1630            posCalc = (function() {
1631              if (carousel) {
1632                return (special === "setTouch") ? pos :
1633                       (reverse && slider.animatingTo === slider.last) ? 0 :
1634                       (reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) :
1635                       (slider.animatingTo === slider.last) ? slider.limit : posCheck;
1636              } else {
1637                switch (special) {
1638                  case "setTotal": return (reverse) ? ((slider.count - 1) - slider.currentSlide + slider.cloneOffset) * pos : (slider.currentSlide + slider.cloneOffset) * pos;
1639                  case "setTouch": return (reverse) ? pos : pos;
1640                  case "jumpEnd": return (reverse) ? pos : slider.count * pos;
1641                  case "jumpStart": return (reverse) ? slider.count * pos : pos;
1642                  default: return pos;
1643                }
1644              }
1645            }());
1646
1647            return (posCalc * -1) + "px";
1648          }());
1649
1650      if (slider.transitions) {
1651        target = (vertical) ? "translate3d(0," + target + ",0)" : "translate3d(" + target + ",0,0)";
1652        dur = (dur !== undefined) ? (dur/1000) + "s" : "0s";
1653        slider.container.css("-" + slider.pfx + "-transition-duration", dur);
1654         slider.container.css("transition-duration", dur);
1655      }
1656
1657      slider.args[slider.prop] = target;
1658      if (slider.transitions || dur === undefined) { slider.container.css(slider.args); }
1659
1660      slider.container.css('transform',target);
1661    };
1662
1663    slider.setup = function(type) {
1664      // SLIDE:
1665      if (!fade) {
1666        var sliderOffset, arr;
1667
1668        if (type === "init") {
1669          slider.viewport = $('<div class="' + namespace + 'viewport"></div>').css({"overflow": "hidden", "position": "relative"}).appendTo(slider).append(slider.container);
1670          // INFINITE LOOP:
1671          slider.cloneCount = 0;
1672          slider.cloneOffset = 0;
1673          // REVERSE:
1674          if (reverse) {
1675            arr = $.makeArray(slider.slides).reverse();
1676            slider.slides = $(arr);
1677            slider.container.empty().append(slider.slides);
1678          }
1679        }
1680        // INFINITE LOOP && !CAROUSEL:
1681        if (slider.vars.animationLoop && !carousel) {
1682          slider.cloneCount = 2;
1683          slider.cloneOffset = 1;
1684          // clear out old clones
1685          if (type !== "init") { slider.container.find('.clone').remove(); }
1686          slider.container.append(methods.uniqueID(slider.slides.first().clone().addClass('clone')).attr('aria-hidden', 'true'))
1687                          .prepend(methods.uniqueID(slider.slides.last().clone().addClass('clone')).attr('aria-hidden', 'true'));
1688        }
1689        slider.newSlides = $(slider.vars.selector, slider);
1690
1691        sliderOffset = (reverse) ? slider.count - 1 - slider.currentSlide + slider.cloneOffset : slider.currentSlide + slider.cloneOffset;
1692        // VERTICAL:
1693        if (vertical && !carousel) {
1694          slider.container.height((slider.count + slider.cloneCount) * 200 + "%").css("position", "absolute").width("100%");
1695          setTimeout(function(){
1696            slider.newSlides.css({"display": "block"});
1697            slider.doMath();
1698            slider.viewport.height(slider.h);
1699            slider.setProps(sliderOffset * slider.h, "init");
1700          }, (type === "init") ? 100 : 0);
1701        } else {
1702          slider.container.width((slider.count + slider.cloneCount) * 200 + "%");
1703          slider.setProps(sliderOffset * slider.computedW, "init");
1704          setTimeout(function(){
1705            slider.doMath();
1706            slider.newSlides.css({"width": slider.computedW, "marginRight" : slider.computedM, "float": "left", "display": "block"});
1707            // SMOOTH HEIGHT:
1708            if (slider.vars.smoothHeight) { methods.smoothHeight(); }
1709          }, (type === "init") ? 100 : 0);
1710        }
1711      } else { // FADE:
1712        slider.slides.css({"width": "100%", "float": "left", "marginRight": "-100%", "position": "relative"});
1713        if (type === "init") {
1714          if (!touch) {
1715            //slider.slides.eq(slider.currentSlide).fadeIn(slider.vars.animationSpeed, slider.vars.easing);
1716            if (slider.vars.fadeFirstSlide == false) {
1717              slider.slides.css({ "opacity": 0, "display": "block", "zIndex": 1 }).eq(slider.currentSlide).css({"zIndex": 2}).css({"opacity": 1});
1718            } else {
1719              slider.slides.css({ "opacity": 0, "display": "block", "zIndex": 1 }).eq(slider.currentSlide).css({"zIndex": 2}).animate({"opacity": 1},slider.vars.animationSpeed,slider.vars.easing);
1720            }
1721          } else {
1722            slider.slides.css({ "opacity": 0, "display": "block", "webkitTransition": "opacity " + slider.vars.animationSpeed / 1000 + "s ease", "zIndex": 1 }).eq(slider.currentSlide).css({ "opacity": 1, "zIndex": 2});
1723          }
1724        }
1725        // SMOOTH HEIGHT:
1726        if (slider.vars.smoothHeight) { methods.smoothHeight(); }
1727      }
1728      // !CAROUSEL:
1729      // CANDIDATE: active slide
1730      if (!carousel) { slider.slides.removeClass(namespace + "active-slide").eq(slider.currentSlide).addClass(namespace + "active-slide"); }
1731
1732      //FlexSlider: init() Callback
1733      slider.vars.init(slider);
1734    };
1735
1736    slider.doMath = function() {
1737      var slide = slider.slides.first(),
1738          slideMargin = slider.vars.itemMargin,
1739          minItems = slider.vars.minItems,
1740          maxItems = slider.vars.maxItems;
1741
1742      slider.w = (slider.viewport===undefined) ? slider.width() : slider.viewport.width();
1743      slider.h = slide.height();
1744      slider.boxPadding = slide.outerWidth() - slide.width();
1745
1746      // CAROUSEL:
1747      if (carousel) {
1748        slider.itemT = slider.vars.itemWidth + slideMargin;
1749        slider.itemM = slideMargin;
1750        slider.minW = (minItems) ? minItems * slider.itemT : slider.w;
1751        slider.maxW = (maxItems) ? (maxItems * slider.itemT) - slideMargin : slider.w;
1752        slider.itemW = (slider.minW > slider.w) ? (slider.w - (slideMargin * (minItems - 1)))/minItems :
1753                       (slider.maxW < slider.w) ? (slider.w - (slideMargin * (maxItems - 1)))/maxItems :
1754                       (slider.vars.itemWidth > slider.w) ? slider.w : slider.vars.itemWidth;
1755
1756        slider.visible = Math.floor(slider.w/(slider.itemW));
1757        slider.move = (slider.vars.move > 0 && slider.vars.move < slider.visible ) ? slider.vars.move : slider.visible;
1758        slider.pagingCount = Math.ceil(((slider.count - slider.visible)/slider.move) + 1);
1759        slider.last =  slider.pagingCount - 1;
1760        slider.limit = (slider.pagingCount === 1) ? 0 :
1761                       (slider.vars.itemWidth > slider.w) ? (slider.itemW * (slider.count - 1)) + (slideMargin * (slider.count - 1)) : ((slider.itemW + slideMargin) * slider.count) - slider.w - slideMargin;
1762      } else {
1763        slider.itemW = slider.w;
1764        slider.itemM = slideMargin;
1765        slider.pagingCount = slider.count;
1766        slider.last = slider.count - 1;
1767      }
1768      slider.computedW = slider.itemW - slider.boxPadding;
1769      slider.computedM = slider.itemM;
1770    };
1771
1772    slider.update = function(pos, action) {
1773      slider.doMath();
1774
1775      // update currentSlide and slider.animatingTo if necessary
1776      if (!carousel) {
1777        if (pos < slider.currentSlide) {
1778          slider.currentSlide += 1;
1779        } else if (pos <= slider.currentSlide && pos !== 0) {
1780          slider.currentSlide -= 1;
1781        }
1782        slider.animatingTo = slider.currentSlide;
1783      }
1784
1785      // update controlNav
1786      if (slider.vars.controlNav && !slider.manualControls) {
1787        if ((action === "add" && !carousel) || slider.pagingCount > slider.controlNav.length) {
1788          methods.controlNav.update("add");
1789        } else if ((action === "remove" && !carousel) || slider.pagingCount < slider.controlNav.length) {
1790          if (carousel && slider.currentSlide > slider.last) {
1791            slider.currentSlide -= 1;
1792            slider.animatingTo -= 1;
1793          }
1794          methods.controlNav.update("remove", slider.last);
1795        }
1796      }
1797      // update directionNav
1798      if (slider.vars.directionNav) { methods.directionNav.update(); }
1799
1800    };
1801
1802    slider.addSlide = function(obj, pos) {
1803      var $obj = $(obj);
1804
1805      slider.count += 1;
1806      slider.last = slider.count - 1;
1807
1808      // append new slide
1809      if (vertical && reverse) {
1810        (pos !== undefined) ? slider.slides.eq(slider.count - pos).after($obj) : slider.container.prepend($obj);
1811      } else {
1812        (pos !== undefined) ? slider.slides.eq(pos).before($obj) : slider.container.append($obj);
1813      }
1814
1815      // update currentSlide, animatingTo, controlNav, and directionNav
1816      slider.update(pos, "add");
1817
1818      // update slider.slides
1819      slider.slides = $(slider.vars.selector + ':not(.clone)', slider);
1820      // re-setup the slider to accomdate new slide
1821      slider.setup();
1822
1823      //FlexSlider: added() Callback
1824      slider.vars.added(slider);
1825    };
1826    slider.removeSlide = function(obj) {
1827      var pos = (isNaN(obj)) ? slider.slides.index($(obj)) : obj;
1828
1829      // update count
1830      slider.count -= 1;
1831      slider.last = slider.count - 1;
1832
1833      // remove slide
1834      if (isNaN(obj)) {
1835        $(obj, slider.slides).remove();
1836      } else {
1837        (vertical && reverse) ? slider.slides.eq(slider.last).remove() : slider.slides.eq(obj).remove();
1838      }
1839
1840      // update currentSlide, animatingTo, controlNav, and directionNav
1841      slider.doMath();
1842      slider.update(pos, "remove");
1843
1844      // update slider.slides
1845      slider.slides = $(slider.vars.selector + ':not(.clone)', slider);
1846      // re-setup the slider to accomdate new slide
1847      slider.setup();
1848
1849      // FlexSlider: removed() Callback
1850      slider.vars.removed(slider);
1851    };
1852
1853    //FlexSlider: Initialize
1854    methods.init();
1855  };
1856
1857  // Ensure the slider isn't focussed if the window loses focus.
1858  $( window ).blur( function ( e ) {
1859    focused = false;
1860  }).focus( function ( e ) {
1861    focused = true;
1862  });
1863
1864  //FlexSlider: Default Settings
1865  $.flexslider.defaults = {
1866    namespace: "flex-",             //{NEW} String: Prefix string attached to the class of every element generated by the plugin
1867    selector: ".slides > li",       //{NEW} Selector: Must match a simple pattern. '{container} > {slide}' -- Ignore pattern at your own peril
1868    animation: "fade",              //String: Select your animation type, "fade" or "slide"
1869    easing: "swing",                //{NEW} String: Determines the easing method used in jQuery transitions. jQuery easing plugin is supported!
1870    direction: "horizontal",        //String: Select the sliding direction, "horizontal" or "vertical"
1871    reverse: false,                 //{NEW} Boolean: Reverse the animation direction
1872    animationLoop: true,            //Boolean: Should the animation loop? If false, directionNav will received "disable" classes at either end
1873    smoothHeight: false,            //{NEW} Boolean: Allow height of the slider to animate smoothly in horizontal mode
1874    startAt: 0,                     //Integer: The slide that the slider should start on. Array notation (0 = first slide)
1875    slideshow: true,                //Boolean: Animate slider automatically
1876    slideshowSpeed: 7000,           //Integer: Set the speed of the slideshow cycling, in milliseconds
1877    animationSpeed: 600,            //Integer: Set the speed of animations, in milliseconds
1878    initDelay: 0,                   //{NEW} Integer: Set an initialization delay, in milliseconds
1879    randomize: false,               //Boolean: Randomize slide order
1880    fadeFirstSlide: true,           //Boolean: Fade in the first slide when animation type is "fade"
1881    thumbCaptions: false,           //Boolean: Whether or not to put captions on thumbnails when using the "thumbnails" controlNav.
1882
1883    // Usability features
1884    pauseOnAction: true,            //Boolean: Pause the slideshow when interacting with control elements, highly recommended.
1885    pauseOnHover: false,            //Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering
1886    pauseInvisible: true,   		//{NEW} Boolean: Pause the slideshow when tab is invisible, resume when visible. Provides better UX, lower CPU usage.
1887    useCSS: true,                   //{NEW} Boolean: Slider will use CSS3 transitions if available
1888    touch: true,                    //{NEW} Boolean: Allow touch swipe navigation of the slider on touch-enabled devices
1889    video: false,                   //{NEW} Boolean: If using video in the slider, will prevent CSS3 3D Transforms to avoid graphical glitches
1890
1891    // Primary Controls
1892    controlNav: true,               //Boolean: Create navigation for paging control of each slide? Note: Leave true for manualControls usage
1893    directionNav: true,             //Boolean: Create navigation for previous/next navigation? (true/false)
1894    prevText: "Previous",           //String: Set the text for the "previous" directionNav item
1895    nextText: "Next",               //String: Set the text for the "next" directionNav item
1896
1897    // Secondary Navigation
1898    keyboard: true,                 //Boolean: Allow slider navigating via keyboard left/right keys
1899    multipleKeyboard: false,        //{NEW} Boolean: Allow keyboard navigation to affect multiple sliders. Default behavior cuts out keyboard navigation with more than one slider present.
1900    mousewheel: false,              //{UPDATED} Boolean: Requires jquery.mousewheel.js (https://github.com/brandonaaron/jquery-mousewheel) - Allows slider navigating via mousewheel
1901    pausePlay: false,               //Boolean: Create pause/play dynamic element
1902    pauseText: "Pause",             //String: Set the text for the "pause" pausePlay item
1903    playText: "Play",               //String: Set the text for the "play" pausePlay item
1904
1905    // Special properties
1906    controlsContainer: "",          //{UPDATED} jQuery Object/Selector: Declare which container the navigation elements should be appended too. Default container is the FlexSlider element. Example use would be $(".flexslider-container"). Property is ignored if given element is not found.
1907    manualControls: "",             //{UPDATED} jQuery Object/Selector: Declare custom control navigation. Examples would be $(".flex-control-nav li") or "#tabs-nav li img", etc. The number of elements in your controlNav should match the number of slides/tabs.
1908    customDirectionNav: "",         //{NEW}
1908 jQuery Object/Selector: Custom prev / next button. Must be two jQuery elements. In order to make the events work they have to have the classes "prev" and "next" (plus namespace)
1909    sync: "",                       //{NEW} Selector: Mirror the actions performed on this slider with another slider. Use with care.
1910    asNavFor: "",                   //{NEW} Selector: Internal property exposed for turning the slider into a thumbnail navigation for another slider
1911
1912    // Carousel Options
1913    itemWidth: 0,                   //{NEW} Integer: Box-model width of individual carousel items, including horizontal borders and padding.
1914    itemMargin: 0,                  //{NEW} Integer: Margin between carousel items.
1915    minItems: 1,                    //{NEW} Integer: Minimum number of carousel items that should be visible. Items will resize fluidly when below this.
1916    maxItems: 0,                    //{NEW} Integer: Maxmimum number of carousel items that should be visible. Items will resize fluidly when above this limit.
1917    move: 0,                        //{NEW} Integer: Number of carousel items that should move on animation. If 0, slider will move all visible items.
1918    allowOneSlide: true,           //{NEW} Boolean: Whether or not to allow a slider comprised of a single slide
1919
1920    // Callback API
1921    start: function(){},            //Callback: function(slider) - Fires when the slider loads the first slide
1922    before: function(){},           //Callback: function(slider) - Fires asynchronously with each slider animation
1923    after: function(){},            //Callback: function(slider) - Fires after each slider animation completes
1924    end: function(){},              //Callback: function(slider) - Fires when the slider reaches the last slide (asynchronous)
1925    added: function(){},            //{NEW} Callback: function(slider) - Fires after a slide is added
1926    removed: function(){},           //{NEW} Callback: function(slider) - Fires after a slide is removed
1927    init: function() {}             //{NEW} Callback: function(slider) - Fires after the slider is initially setup
1928  };
1929
1930  //FlexSlider: Plugin Function
1931  $.fn.flexslider = function(options) {
1932    if (options === undefined) { options = {}; }
1933
1934    if (typeof options === "object") {
1935      return this.each(function() {
1936        var $this = $(this),
1937            selector = (options.selector) ? options.selector : ".slides > li",
1938            $slides = $this.find(selector);
1939
1940      if ( ( $slides.length === 1 && options.allowOneSlide === true ) || $slides.length === 0 ) {
1941          $slides.fadeIn(400);
1942          if (options.start) { options.start($this); }
1943        } else if ($this.data('flexslider') === undefined) {
1944          new $.flexslider(this, options);
1945        }
1946      });
1947    } else {
1948      // Helper strings to quickly perform functions on the slider
1949      var $slider = $(this).data('flexslider');
1950      switch (options) {
1951        case "play": $slider.play(); break;
1952        case "pause": $slider.pause(); break;
1953        case "stop": $slider.stop(); break;
1954        case "next": $slider.flexAnimate($slider.getTarget("next"), true); break;
1955        case "prev":
1956        case "previous": $slider.flexAnimate($slider.getTarget("prev"), true); break;
1957        default: if (typeof options === "number") { $slider.flexAnimate(options, true); }
1958      }
1959    }
1960  };
1961})(jQuery);
1962;
1963/*! This file is auto-generated */
1964/*!
1965 * imagesLoaded PACKAGED v5.0.0
1966 * JavaScript is all like "You images are done yet or what?"
1967 * MIT License
1968 */
1969!function(t,e){"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,(function(){function t(){}let e=t.prototype;return e.on=function(t,e){if(!t||!e)return this;let i=this._events=this._events||{},s=i[t]=i[t]||[];return s.includes(e)||s.push(e),this},e.once=function(t,e){if(!t||!e)return this;this.on(t,e);let i=this._onceEvents=this._onceEvents||{};return(i[t]=i[t]||{})[e]=!0,this},e.off=function(t,e){let i=this._events&&this._events[t];if(!i||!i.length)return this;let s=i.indexOf(e);return-1!=s&&i.splice(s,1),this},e.emitEvent=function(t,e){let i=this._events&&this._events[t];if(!i||!i.length)return this;i=i.slice(0),e=e||[];let s=this._onceEvents&&this._onceEvents[t];for(let n of i){s&&s[n]&&(this.off(t,n),delete s[n]),n.apply(this,e)}return this},e.allOff=function(){return delete this._events,delete this._onceEvents,this},t})),
1970/*!
1971 * imagesLoaded v5.0.0
1972 * JavaScript is all like "You images are done yet or what?"
1973 * MIT License
1974 */
1975function(t,e){"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter")):t.imagesLoaded=e(t,t.EvEmitter)}("undefined"!=typeof window?window:this,(function(t,e){let i=t.jQuery,s=t.console;
1975function n(t,e,o){if(!(this instanceof n))return new n(t,e,o);let r=t;var h;("string"==typeof t&&(r=document.querySelectorAll(t)),r)?(this.elements=(h=r,Array.isArray(h)?h:"object"==typeof h&&"number"==typeof h.length?[...h]:[h]),this.options={},"function"==typeof e?o=e:Object.assign(this.options,e),o&&this.on("always",o),this.getImages(),i&&(this.jqDeferred=new i.Deferred),setTimeout(this.check.bind(this))):s.error(`Bad element for imagesLoaded ${r||t}`)}n.prototype=Object.create(e.prototype),n.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)};const o=[1,9,11];n.prototype.addElementImages=function(t){"IMG"===t.nodeName&&this.addImage(t),!0===this.options.background&&this.addElementBackgroundImages(t);let{nodeType:e}=t;if(!e||!o.includes(e))return;let i=t.querySelectorAll("img");for(let t of i)this.addImage(t);if("string"==typeof this.options.background){let e=t.querySelectorAll(this.options.background);for(let t of e)this.addElementBackgroundImages(t)}};const r=/url\((['"])?(.*?)\1\)/gi;function h(t){this.img=t}function d(t,e){this.url=t,this.element=e,this.img=new Image}return n.prototype.addElementBackgroundImages=function(t){let e=getComputedStyle(t);if(!e)return;let i=r.exec(e.backgroundImage);for(;null!==i;){let s=i&&i[2];s&&this.addBackground(s,t),i=r.exec(e.backgroundImage)}},n.prototype.addImage=function(t){let e=new h(t);this.images.push(e)},n.prototype.addBackground=function(t,e){let i=new d(t,e);this.images.push(i)},n.prototype.check=function(){if(this.progressedCount=0,this.hasAnyBroken=!1,!this.images.length)return void this.complete();let t=(t,e,i)=>{setTimeout((()=>{this.progress(t,e,i)}))};this.images.forEach((function(e){e.once("progress",t),e.check()}))},n.prototype.progress=function(t,e,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!t.isLoaded,this.emitEvent("progress",[this,t,e]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,t),this.progressedCount===this.images.length&&this.complete(),this.options.debug&&s&&s.log(`progress: ${i}`,t,e)},n.prototype.complete=function(){let t=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(t,[this]),this.emitEvent("always",[this]),this.jqDeferred){let t=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[t](this)}},h.prototype=Object.create(e.prototype),h.prototype.check=function(){this.getIsImageComplete()?this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.img.crossOrigin&&(this.proxyImage.crossOrigin=this.img.crossOrigin),this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.proxyImage.src=this.img.currentSrc||this.img.src)},h.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth},h.prototype.confirm=function(t,e){this.isLoaded=t;let{parentNode:i}=this.img,s="PICTURE"===i.nodeName?i:this.img;this.emitEvent("progress",[this,s,e])},h.prototype.handleEvent=function(t){let e="on"+t.type;this[e]&&this[e](t)},h.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},h.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},h.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},d.prototype=Object.create(h.prototype),d.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url,this.getIsImageComplete()&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},d.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},d.prototype.confirm=function(t,e){this.isLoaded=t,this.emitEvent("progress",[this,this.element,e])},n.makeJQueryPlugin=function(e){(e=e||t.jQuery)&&(i=e,i.fn.imagesLoaded=function(t,e){return new n(this,t,e).jqDeferred.promise(i(this))})},n.makeJQueryPlugin(),n}));;
1976/**
1977 * navigation.js
1978 *
1979 * Handles toggling the navigation menu for small screens and enables tab
1980 * support for dropdown menus.
1981 */
1982( function() {
1983	var container, button, menu, links, subMenus;
1984
1985	container = document.getElementById( 'site-navigation' );
1986	if ( ! container ) {
1987		return;
1988	}
1989
1990	button = container.getElementsByTagName( 'button' )[0];
1991	if ( 'undefined' === typeof button ) {
1992		return;
1993	}
1994
1995	menu = container.getElementsByTagName( 'ul' )[0];
1996
1997	// Hide menu toggle button if menu is empty and return early.
1998	if ( 'undefined' === typeof menu ) {
1999		button.style.display = 'none';
2000		return;
2001	}
2002
2003	menu.setAttribute( 'aria-expanded', 'false' );
2004	if ( -1 === menu.className.indexOf( 'nav-menu' ) ) {
2005		menu.className += ' nav-menu';
2006	}
2007
2008	button.onclick = function() {
2009		if ( -1 !== container.className.indexOf( 'toggled' ) ) {
2010			container.className = container.className.replace( ' toggled', '' );
2011			button.setAttribute( 'aria-expanded', 'false' );
2012			menu.setAttribute( 'aria-expanded', 'false' );
2013		} else {
2014			container.className += ' toggled';
2015			button.setAttribute( 'aria-expanded', 'true' );
2016			menu.setAttribute( 'aria-expanded', 'true' );
2017		}
2018	};
2019
2020	// Get all the link elements within the menu.
2021	links    = menu.getElementsByTagName( 'a' );
2022	subMenus = menu.getElementsByTagName( 'ul' );
2023
2024	// Set menu items with submenus to aria-haspopup="true".
2025	for ( var i = 0, len = subMenus.length; i < len; i++ ) {
2026		subMenus[i].parentNode.setAttribute( 'aria-haspopup', 'true' );
2027	}
2028
2029	// Each time a menu link is focused or blurred, toggle focus.
2030	for ( i = 0, len = links.length; i < len; i++ ) {
2031		links[i].addEventListener( 'focus', toggleFocus, true );
2032		links[i].addEventListener( 'blur', toggleFocus, true );
2033	}
2034
2035	/**
2036	 * Sets or removes .focus class on an element.
2037	 */
2038	function toggleFocus() {
2039		var self = this;
2040
2041		// Move up through the ancestors of the current link until we hit .nav-menu.
2042		while ( -1 === self.className.indexOf( 'nav-menu' ) ) {
2043
2044			// On li elements toggle the class .focus.
2045			if ( 'li' === self.tagName.toLowerCase() ) {
2046				if ( -1 !== self.className.indexOf( 'focus' ) ) {
2047					self.className = self.className.replace( ' focus', '' );
2048				} else {
2049					self.className += ' focus';
2050				}
2051			}
2052
2053			self = self.parentElement;
2054		}
2055	}
2056} )();
2057;
2058/**
2059 * skip-link-focus-fix.js
2060 *
2061 * Helps with accessibility for keyboard only users.
2062 *
2063 * Learn more: https://git.io/vWdr2
2064 */
2065( function() {
2066	var is_webkit = navigator.userAgent.toLowerCase().indexOf( 'webkit' ) > -1,
2067	    is_opera  = navigator.userAgent.toLowerCase().indexOf( 'opera' ) > -1,
2068	    is_ie     = navigator.userAgent.toLowerCase().indexOf( 'msie' ) > -1;
2069
2070	if ( ( is_webkit || is_opera || is_ie ) && document.getElementById && window.addEventListener ) {
2071		window.addEventListener( 'hashchange', function() {
2072			var id = location.hash.substring( 1 ),
2073				element;
2074
2075			if ( ! ( /^[A-z0-9_-]+$/.test( id ) ) ) {
2076				return;
2077			}
2078
2079			element = document.getElementById( id );
2080
2081			if ( element ) {
2082				if ( ! ( /^(?:a|select|input|button|textarea)$/i.test( element.tagName ) ) ) {
2083					element.tabIndex = -1;
2084				}
2085
2086				element.focus();
2087			}
2088		}, false );
2089	}
2090})();
2091;
2092/*! This file is auto-generated */
vendor: 24,103 bytes, lines 2093-2101
2093/*!
2094 * Masonry PACKAGED v4.2.2
2095 * Cascading grid layout library
2096 * https://masonry.desandro.com
2097 * MIT License
2098 * by David DeSandro
2099 */
2100
2101!function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,r,a){function h(t,e,n){var o,r="$()."+i+'("'+e+'")';return t.each(function(t,h){var u=a.data(h,i);if(!u)return void s(i+" not initialized. Cannot call methods, i.e. "+r);var d=u[e];if(!d||"_"==e.charAt(0))return void s(r+" is not a valid method");var l=d.apply(u,n);o=void 0===o?l:o}),void 0!==o?o:t}function u(t,e){t.each(function(t,n){var o=a.data(n,i);o?(o.option(e),o._init()):(o=new r(n,e),a.data(n,i,o))})}a=a||e||t.jQuery,a&&(r.prototype.option||(r.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=o.call(arguments,1);return h(this,t,e)}return u(this,t),this},n(a))}function n(t){!t||t&&t.bridget||(t.bridget=i)}var o=Array.prototype.slice,r=t.console,s="undefined"==typeof r?function(){}:function(t){r.error(t)};return n(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||{};return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var n=this._onceEvents&&this._onceEvents[t],o=0;o<i.length;o++){var r=i[o],s=n&&n[r];s&&(this.off(t,r),delete n[r]),r.apply(this,e)}return this}},e.allOff=function(){delete this._events,delete this._onceEvents},t}),function(t,e){"function"==typeof define&&define.amd?define("get-size/get-size",e):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function t(t){var e=parseFloat(t),i=-1==t.indexOf("%")&&!isNaN(e);return i&&e}function e(){}function i(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;u>e;e++){var i=h[e];t[i]=0}return t}function n(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),e}function o(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var o=n(e);s=200==Math.round(t(o.width)),r.isBoxSizeOuter=s,i.removeChild(e)}}function r(e){if(o(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var r=n(e);if("none"==r.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==r.boxSizing,l=0;u>l;l++){var c=h[l],f=r[c],m=parseFloat(f);a[c]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,g=a.paddingTop+a.paddingBottom,y=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,z=a.borderTopWidth+a.borderBottomWidth,E=d&&s,b=t(r.width);b!==!1&&(a.width=b+(E?0:p+_));var x=t(r.height);return x!==!1&&(a.height=x+(E?0:g+z)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(g+z),a.outerWidth=a.width+y,a.outerHeight=a.height+v,a}}var s,a="undefined"==typeof console?e:function(t){console.error(t)},h=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],u=h.length,d=!1;return r}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var n=e[i],o=n+"MatchesSelector";if(t[o])return o}}();return function(e,i){return e[t](i)}}),function(t,e){"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["desandro-matches-selector/matches-selector"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("desandro-matches-selector")):t.fizzyUIUtils=e(t,t.matchesSelector)}(window,function(t,e){var i={};i.extend=function(t,e){for(var i in e)t[i]=e[i];return t},i.modulo=function(t,e){return(t%e+e)%e};var n=Array.prototype.slice;i.makeArray=function(t){if(Array.isArray(t))return t;if(null===t||void 0===t)return[];var e="object"==typeof t&&"number"==typeof t.length;return e?n.call(t):[t]},i.removeFrom=function(t,e){var i=t.indexOf(e);-1!=i&&t.splice(i,1)},i.getParent=function(t,i){for(;t.parentNode&&t!=document.body;)if(t=t.parentNode,e(t,i))return t},i.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.filterFindElements=function(t,n){t=i.makeArray(t);var o=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!n)return void o.push(t);e(t,n)&&o.push(t);for(var i=t.querySelectorAll(n),r=0;r<i.length;r++)o.push(i[r])}}),o},i.debounceMethod=function(t,e,i){i=i||100;var n=t.prototype[e],o=e+"Timeout";t.prototype[e]=function(){var t=this[o];clearTimeout(t);var e=arguments,r=this;this[o]=setTimeout(function(){n.apply(r,e),delete r[o]},i)}},i.docReady=function(t){var e=document.readyState;"complete"==e||"interactive"==e?setTimeout(t):document.addEventListener("DOMContentLoaded",t)},i.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var o=t.console;return i.htmlInit=function(e,n){i.docReady(function(){var r=i.toDashed(n),s="data-"+r,a=document.querySelectorAll("["+s+"]"),h=document.querySelectorAll(".js-"+r),u=i.makeArray(a).concat(i.makeArray(h)),d=s+"-options",l=t.jQuery;u.forEach(function(t){var i,r=t.getAttribute(s)||t.getAttribute(d);try{i=r&&JSON.parse(r)}catch(a){return void(o&&o.error("Error parsing "+s+" on "+t.className+": "+a))}var h=new e(t,i);l&&l.data(t,n,h)})})},i}),function(t,e){"function"==typeof define&&define.amd?define("outlayer/item",["ev-emitter/ev-emitter","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("ev-emitter"),require("get-size")):(t.Outlayer={},t.Outlayer.Item=e(t.EvEmitter,t.getSize))}(window,function(t,e){"use strict";function i(t){for(var e in t)return!1;return e=null,!0}function n(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}function o(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}var r=document.documentElement.style,s="string"==typeof r.transition?"transition":"WebkitTransition",a="string"==typeof r.transform?"transform":"WebkitTransform",h={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[s],u={transform:a,transition:s,transitionDuration:s+"Duration",transitionProperty:s+"Property",transitionDelay:s+"Delay"},d=n.prototype=Object.create(t.prototype);d.constructor=n,d._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},d.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},d.getSize=function(){this.size=e(this.element)},d.css=function(t){var e=this.element.style;for(var i in t){var n=u[i]||i;e[n]=t[i]}},d.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption("originLeft"),i=this.layout._getOption("originTop"),n=t[e?"left":"right"],o=t[i?"top":"bottom"],r=parseFloat(n),s=parseFloat(o),a=this.layout.size;-1!=n.indexOf("%")&&(r=r/100*a.width),-1!=o.indexOf("%")&&(s=s/100*a.height),r=isNaN(r)?0:r,s=isNaN(s)?0:s,r-=e?a.paddingLeft:a.paddingRight,s-=i?a.paddingTop:a.paddingBottom,this.position.x=r,this.position.y=s},d.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop"),o=i?"paddingLeft":"paddingRight",r=i?"left":"right",s=i?"right":"left",a=this.position.x+t[o];e[r]=this.getXValue(a),e[s]="";var h=n?"paddingTop":"paddingBottom",u=n?"top":"bottom",d=n?"bottom":"top",l=this.position.y+t[h];e[u]=this.getYValue(l),e[d]="",this.css(e),this.emitEvent("layout",[this])},d.getXValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+"%":t+"px"},d.getYValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+"%":t+"px"},d._transitionTo=function(t,e){this.getPosition();var i=this.position.x,n=this.position.y,o=t==this.position.x&&e==this.position.y;if(this.setPosition(t,e),o&&!this.isTransitioning)return void this.layoutPosition();var r=t-i,s=e-n,a={};a.transform=this.getTranslate(r,s),this.transition({to:a,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},d.getTranslate=function(t,e){var i=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop");return t=i?t:-t,e=n?e:-e,"translate3d("+t+"px, "+e+"px, 0)"},d.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},d.moveTo=d._transitionTo,d.setPosition=function(t,e){this.position.x=parseFloat(t),this.position.y=parseFloat(e)},d._nonTransition=function(t){this.css(t.to),t.isCleaning&&this._removeStyles(t.to);for(var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)},d.transition=function(t){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(t);var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);var n=this.element.offsetHeight;n=null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0};var l="opacity,"+o(a);d.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t="number"==typeof t?t+"ms":t,this.css({transitionProperty:l,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(h,this,!1)}},d.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},d.onotransitionend=function(t){this.ontransitionend(t)};var c={"-webkit-transform":"transform"};d.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,n=c[t.propertyName]||t.propertyName;if(delete e.ingProperties[n],i(e.ingProperties)&&this.disableTransition(),n in e.clean&&(this.element.style[t.propertyName]="",delete e.clean[n]),n in e.onEnd){var o=e.onEnd[n];o.call(this),delete e.onEnd[n]}this.emitEvent("transitionEnd",[this])}},d.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(h,this,!1),this.isTransitioning=!1},d._removeStyles=function(t){var e={};for(var i in t)e[i]="";this.css(e)};var f={transitionProperty:"",transitionDuration:"",transitionDelay:""};return d.removeTransitionStyles=function(){this.css(f)},d.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+"ms"},d.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},d.remove=function(){return s&&parseFloat(this.layout.options.transitionDuration)?(this.once("transitionEnd",function(){this.removeElem()}),void this.hide()):void this.removeElem()},d.reveal=function(){delete this.isHidden,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("visibleStyle");e[i]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},d.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},d.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return"opacity";for(var i in e)return i},d.hide=function(){this.isHidden=!0,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("hiddenStyle");e[i]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},d.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},d.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},n}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("outlayer/outlayer",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./item"],function(i,n,o,r){return e(t,i,n,o,r)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./item")):t.Outlayer=e(t,t.EvEmitter,t.getSize,t.fizzyUIUtils,t.Outlayer.Item)}(window,function(t,e,i,n,o){"use strict";function r(t,e){var i=n.getQueryElement(t);if(!i)return void(h&&h.error("Bad element for "+this.constructor.namespace+": "+(i||t)));this.element=i,u&&(this.$element=u(this.element)),this.options=n.extend({},this.constructor.defaults),this.option(e);var o=++l;this.element.outlayerGUID=o,c[o]=this,this._create();var r=this._getOption("initLayout");r&&this.layout()}function s(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e}function a(t){if("number"==typeof t)return t;var e=t.match(/(^\d*\.?\d*)(\w*)/),i=e&&e[1],n=e&&e[2];if(!i.length)return 0;i=parseFloat(i);var o=m[n]||1;return i*o}var h=t.console,u=t.jQuery,d=function(){},l=0,c={};r.namespace="outlayer",r.Item=o,r.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var f=r.prototype;n.extend(f,e.prototype),f.option=function(t){n.extend(this.options,t)},f._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},r.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},f._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),n.extend(this.element.style,this.options.containerStyle);var t=this._getOption("resize");t&&this.bindResize()},f.reloadItems=function(){this.items=this._itemize(this.element.children)},f._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,n=[],o=0;o<e.length;o++){var r=e[o],s=new i(r,this);n.push(s)}return n},f._filterFindItemElements=function(t){return n.filterFindElements(t,this.options.itemSelector)},f.getItemElements=function(){return this.items.map(function(t){return t.element})},f.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},f._init=f.layout,f._resetLayout=function(){this.getSize()},f.getSize=function(){this.size=i(this.element)},f._getMeasurement=function(t,e){var n,o=this.options[t];o?("string"==typeof o?n=this.element.querySelector(o):o instanceof HTMLElement&&(n=o),this[t]=n?i(n)[e]:o):this[t]=0},f.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},f._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},f._layoutItems=function(t,e){if(this._emitCompleteOnItems("layout",t),t&&t.length){var i=[];t.forEach(function(t){var n=this._getItemLayoutPosition(t);n.item=t,n.isInstant=e||t.isLayoutInstant,i.push(n)},this),this._processLayoutQueue(i)}},f._getItemLayoutPosition=function(){return{x:0,y:0}},f._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},f.updateStagger=function(){var t=this.options.stagger;return null===t||void 0===t?void(this.stagger=0):(this.stagger=a(t),this.stagger)},f._positionItem=function(t,e,i,n,o){n?t.goTo(e,i):(t.stagger(o*this.stagger),t.moveTo(e,i))},f._postLayout=function(){this.resizeContainer()},f.resizeContainer=function(){var t=this._getOption("resizeContainer");if(t){var e=this._getContainerSize();e&&(this._setContainerMeasure(e.width,!0),this._setContainerMeasure(e.height,!1))}},f._getContainerSize=d,f._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?"width":"height"]=t+"px"}},f._emitCompleteOnItems=function(t,e){function i(){o.dispatchEvent(t+"Complete",null,[e])}function n(){s++,s==r&&i()}var o=this,r=e.length;if(!e||!r)return void i();var s=0;e.forEach(function(e){e.once(t,n)})},f.dispatchEvent=function(t,e,i){var n=e?[e].concat(i):i;if(this.emitEvent(t,n),u)if(this.$element=this.$element||u(this.element),e){var o=u.Event(e);o.type=t,this.$element.trigger(o,i)}else this.$element.trigger(t,i)},f.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},f.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},f.stamp=function(t){t=this._find(t),t&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},f.unstamp=function(t){t=this._find(t),t&&t.forEach(function(t){n.removeFrom(this.stamps,t),this.unignore(t)},this)},f._find=function(t){return t?("string"==typeof t&&(t=this.element.querySelectorAll(t)),t=n.makeArray(t)):void 0},f._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},f._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},f._manageStamp=d,f._getElementOffset=function(t){var e=t.getBoundingClientRect(),n=this._boundingRect,o=i(t),r={left:e.left-n.left-o.marginLeft,top:e.top-n.top-o.marginTop,right:n.right-e.right-o.marginRight,bottom:n.bottom-e.bottom-o.marginBottom};return r},f.handleEvent=n.handleEvent,f.bindResize=function(){t.addEventListener("resize",this),this.isResizeBound=!0},f.unbindResize=function(){t.removeEventListener("resize",this),this.isResizeBound=!1},f.onresize=function(){this.resize()},n.debounceMethod(r,"onresize",100),f.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},f.needsResizeLayout=function(){var t=i(this.element),e=this.size&&t;return e&&t.innerWidth!==this.size.innerWidth},f.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},f.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},f.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},f.reveal=function(t){if(this._emitCompleteOnItems("reveal",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.reveal()})}},f.hide=function(t){if(this._emitCompleteOnItems("hide",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.hide()})}},f.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},f.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},f.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},f.getItems=function(t){t=n.makeArray(t);var e=[];return t.forEach(function(t){var i=this.getItem(t);i&&e.push(i)},this),e},f.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems("remove",e),e&&e.length&&e.forEach(function(t){t.remove(),n.removeFrom(this.items,t)},this)},f.destroy=function(){var t=this.element.style;t.height="",t.position="",t.width="",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete c[e],delete this.element.outlayerGUID,u&&u.removeData(this.element,this.constructor.namespace)},r.data=function(t){t=n.getQueryElement(t);var e=t&&t.outlayerGUID;return e&&c[e]},r.create=function(t,e){var i=s(r);return i.defaults=n.extend({},r.defaults),n.extend(i.defaults,e),i.compatOptions=n.extend({},r.compatOptions),i.namespace=t,i.data=r.data,i.Item=s(o),n.htmlInit(i,t),u&&u.bridget&&u.bridget(t,i),i};var m={ms:1,s:1e3};return r.Item=o,r}),function(t,e){"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer"),require("get-size")):t.Masonry=e(t.Outlayer,t.getSize)}(window,function(t,e){var i=t.create("masonry");i.compatOptions.fitWidth="isFitWidth";var n=i.prototype;return n._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns(),this.colYs=[];for(var t=0;t<this.cols;t++)this.colYs.push(0);this.maxY=0,this.horizontalColIndex=0},n.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var t=this.items[0],i=t&&t.element;this.columnWidth=i&&e(i).outerWidth||this.containerWidth}var n=this.columnWidth+=this.gutter,o=this.containerWidth+this.gutter,r=o/n,s=n-o%n,a=s&&1>s?"round":"floor";r=Math[a](r),this.cols=Math.max(r,1)},n.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,n=e(i);this.containerWidth=n&&n.innerWidth},n._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&1>e?"round":"ceil",n=Math[i](t.size.outerWidth/this.columnWidth);n=Math.min(n,this.cols);for(var o=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",r=this[o](n,t),s={x:this.columnWidth*r.col,y:r.y},a=r.y+t.size.outerHeight,h=n+r.col,u=r.col;h>u;u++)this.colYs[u]=a;return s},n._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},n._getTopColGroup=function(t){if(2>t)return this.colYs;for(var e=[],i=this.cols+1-t,n=0;i>n;n++)e[n]=this._getColGroupY(n,t);return e},n._getColGroupY=function(t,e){if(2>e)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},n._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,n=t>1&&i+t>this.cols;i=n?0:i;var o=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=o?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},n._manageStamp=function(t){var i=e(t),n=this._getElementOffset(t),o=this._getOption("originLeft"),r=o?n.left:n.right,s=r+i.outerWidth,a=Math.floor(r/this.columnWidth);a=Math.max(0,a);var h=Math.floor(s/this.columnWidth);h-=s%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var u=this._getOption("originTop"),d=(u?n.top:n.bottom)+i.outerHeight,l=a;h>=l;l++)this.colYs[l]=Math.max(d,this.colYs[l])},n._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},n._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},n.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i});
2101;
2102/**
2103 * global.js
2104 *
2105 * General JavaScript used throughout the theme.
2106 *
2107 */
2108
2109( function( $ ) {
2110
2111	/**
2112	 *
2113	 * Slideshow magic!
2114	 *
2115	 */
2116
2117	var $slideCount = $(".slides").find("li").length;
2118
2119	$( '#featured-slideshow .wrap .slideshow' ).flexslider( {
2120		animation: 'slide',
2121		directionNav: false,
2122	} );
2123
2124	/* wrapping the dot nav in a div, and sticking the prev/next links in there for placement */
2125	$( '.flex-control-nav' ).wrap( '<div class="slideshow-navigation"></div>' );
2126
2127	// make sure there's more than one slide before appending prev/next links
2128	if ( $slideCount > 1 ) {
2129		$( '.slideshow-navigation' ).append( '<span class="next-slide"><span class="screen-reader-text">' + toujours_script_strings.next_link + '</span></span>' );
2130		$( '.slideshow-navigation' ).prepend( '<span class="prev-slide"><span class="screen-reader-text">' + toujours_script_strings.previous_link + '</span></span>' );
2131
2132		/* ... then add some click events to those new buttons */
2133		$( 'body' ).on( 'click', '.prev-slide', function() {
2134			$('#featured-slideshow .wrap .slideshow').flexslider('prev');
2135		} );
2136
2137		$( 'body' ).on( 'click', '.next-slide', function() {
2138			$('#featured-slideshow .wrap .slideshow').flexslider('next');
2139		} );
2140	}
2141
2142	/* Make it possible to click the whole slide to get ot the post */
2143	$( '.slide' ).each( function() {
2144		// make sure the page isn't loaded in an iframe, like in the Customizer
2145		if ( self == top ) {
2146			var $link = $( '.posted-on a', this ).attr( 'href' );
2147			$( this ).css( 'cursor', 'pointer' ).click( function(){
2148				window.location = $link;
2149			});
2150		}
2151	} );
2152	/**
2153	 * Search
2154	 * Adding some JS so the faux button has a hover state
2155	 */
2156	$( '.search-submit' ).mouseenter( function() {
2157		$( this ).parent().addClass( 'hover-button' );
2158	} ).mouseleave( function() {
2159		$( this ).parent().removeClass( 'hover-button' );
2160	} );
2161
2162	/**
2163	 * Masonry for footer widgets
2164	 */
2165
2166	var ltr = true;
2167	if ( $( 'html' ).attr( 'dir' ) == 'rtl') {
2168		ltr = false;
2169	}
2170
2171	function footerMasonry() {
2172		var $footerContainer = $( '#footer-widgets .grid-layout' );
2173		$footerContainer.imagesLoaded( function() {
2174			$footerContainer.masonry( {
2175				itemSelector: '.widget',
2176				columnWidth: '#footer-widgets aside',
2177				isOriginLeft: ltr,
2178				gutter: 30,
2179			} );
2180		} );
2181	}
2182
2183	/**
2184	 * Masonry for Guestbook template
2185	 */
2186	function guestbookMasonry() {
2187		var $guestbookContainer = $( '.page-template-guestbook #comments .comment-list');
2188		$guestbookContainer.imagesLoaded( function() {
2189			$guestbookContainer.masonry( {
2190				itemSelector: '.comment',
2191				isOriginLeft: ltr,
2192				gutter: 30,
2193			} );
2194		} );
2195	}
2196
2197	/**
2198	 * Add class to tables to help make them responsive
2199	 */
2200	$( 'table' ).addClass( 'table' );
2201	$( 'table' ).wrap( '<div class="table-responsive" />' );
2202
2203	var infiniteCount = 0;
2204
2205	$( document.body ).on( 'post-load', function() {
2206		infiniteCount = infiniteCount + 1;
2207		var infiniteItems = jQuery( '.infinite-wrap.infinite-view-' + infiniteCount );
2208		infiniteItems.find( 'table' ).addClass( 'table' ).wrap( '<div class="table-responsive" />' );
2209	});
2210
2211	/* Functions to fire on pageload */
2212	$( window ).load( function() {
2213
2214		guestbookMasonry();
2215		footerMasonry();
2216
2217		// re-fire widgets after a delay, for widgets loaded via JS
2218		setTimeout( footerMasonry, 2500 );
2219	} );
2220
2221} )( jQuery );
2222;
2223!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JetpackScriptDataModule=t():e.JetpackScriptDataModule=t()}(globalThis,()=>(()=>{"use strict";var e={729(e,t,r){r.d(t,{$8:()=>n.$8,IT:()=>n.IT,KS:()=>n.KS,L2:()=>n.L2,Sy:()=>n.Sy,au:()=>n.au,d_:()=>n.d_,e5:()=>n.e5,hT:()=>n.hT,lI:()=>n.lI,mH:()=>n.mH,oQ:()=>n.oQ,sV:()=>n.sV});var n=r(336)},336(e,t,r){function n(){return window.JetpackScriptData}function o(){return n()?.site}function i(e=""){return`${n()?.site.admin_url}${e}`}function u(e=""){return i(`admin.php?page=jetpack${e}`)}function a(e=""){return i(`admin.php?page=my-jetpack${e}`)}function c(){return n()?.site.plan?.features?.active??[]}function s(e){return-1!==c().indexOf(e)}function p(){return"wpcom"===n()?.site?.host}function f(){return"woa"===n()?.site?.host}function d(){return n()?.site?.is_wpcom_platform}function l(){return"unknown"===n()?.site?.host}function m(){return p()?"simple":f()?"woa":"jetpack"}function S(e){return n()?.user.current_user.capabilities[e]}r.d(t,{$8:()=>d,IT:()=>s,KS:()=>m,L2:()=>l,Sy:()=>p,au:()=>n,d_:()=>S,e5:()=>a,hT:()=>i,lI:()=>f,mH:()=>c,oQ:()=>u,sV:()=>o})}};const t={};function r(n){const o=t[n];if(void 0!==o)return o.exports;const i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.hasOwn(e,t),r.r=e=>{Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};let n={};r.r(n),r.d(n,{currentUserCan:()=>o.d_,getActiveFeatures:()=>o.mH,getAdminUrl:()=>o.hT,getJetpackAdminPageUrl:()=>o.oQ,getMyJetpackUrl:()=>o.e5,getScriptData:()=>o.au,getSiteData:()=>o.sV,getSiteType:()=>o.KS,isJetpackSelfHostedSite:()=>o.L2,isSimpleSite:()=>o.Sy,isWoASite:()=>o.lI,isWpcomPlatformSite:()=>o.$8,siteHasFeature:()=>o.IT});var o=r(729);return n})());;
2224!function(){"use strict";var e,t={noop:function(){},texturize:function(e){return(e=(e=(e=(e+="").replace(/'/g,"&#8217;").replace(/&#039;/g,"&#8217;")).replace(/"/g,"&#8221;").replace(/&#034;/g,"&#8221;").replace(/&quot;/g,"&#8221;").replace(/[\u201D]/g,"&#8221;")).replace(/([\w]+)=&#[\d]+;(.+?)&#[\d]+;/g,'$1="$2"')).trim()},applyReplacements:function(e,t){if(e)return t?e.replace(/{(\d+)}/g,function(e,r){return void 0!==t[r]?t[r]:e}):e},getBackgroundImage:function(e){var t=document.createElement("canvas"),r=t.getContext&&t.getContext("2d");if(e){r.filter="blur(20px) ",r.drawImage(e,0,0);var o=t.toDataURL("image/png");return t=null,o}}},r=function(){function e(e,t){return Element.prototype.matches?e.matches(t):Element.prototype.msMatchesSelector?e.msMatchesSelector(t):void 0}function r(e,t,r,o){if(!e)return o();e.jpCarouselCancelFade&&e.jpCarouselCancelFade(),e.classList.remove("jp-carousel-fade"),e.style.removeProperty("display"),e.style.opacity=t,e.style.pointerEvents="none",e.offsetWidth,e.classList.add("jp-carousel-fade"),e.style.opacity=r;var a=1e3*parseFloat(getComputedStyle(e).transitionDuration)||0,n=setTimeout(function(){e.jpCarouselCancelFade=null,e.style.removeProperty("pointer-events"),o()},a+50);e.jpCarouselCancelFade=function(){clearTimeout(n),e.jpCarouselCancelFade=null}}return{closest:function(t,r){if(t.closest)return t.closest(r);var o=t;do{if(e(o,r))return o;o=o.parentElement||o.parentNode}while(null!==o&&1===o.nodeType);return null},matches:e,hide:function(e){e&&(e.style.display="none")},show:function(e){e&&(e.style.display="block")},fadeIn:function(e,o){r(e,0,1,o=o||t.noop)},fadeOut:function(e,o){o=o||t.noop,r(e,1,0,function(){e&&(e.style.display="none"),o()})},scrollToElement:function(e,t,r){if(!e||!t)return r?r():void 0;var o=t.querySelector(".jp-carousel-info-extra");o&&(o.style.minHeight=window.innerHeight-64+"px");var a=!0,n=Date.now(),i=t.scrollTop,l=Math.max(0,e.offsetTop-Math.max(0,window.innerHeight-function(e){var t=e.querySelector(".jp-carousel-info-footer"),r=e.querySelector(".jp-carousel-info-extra"),o=e.querySelector(".jp-carousel-info-content-wrapper");if(t&&r&&o){var a=window.getComputedStyle(r),n=parseInt(a.paddingTop,10)+parseInt(a.paddingBottom,10);return n=isNaN(n)?0:n,o.offsetHeight+t.offsetHeight+n}return 0}(t)))-t.scrollTop;function s(){a=!1}
2224l=Math.min(l,t.scrollHeight-window.innerHeight),t.addEventListener("wheel",s),function e(){var c,u=Date.now(),d=(c=(u-n)/300)<.5?2*c*c:1-Math.pow(-2*c+2,2)/2,m=(d=d>1?1:d)*l;if(t.scrollTop=i+m,u<=n+300&&a)return requestAnimationFrame(e);r&&r(),o&&(o.style.minHeight=""),a=!1,t.removeEventListener("wheel",s)}()},getJSONAttribute:function(e,t){if(e&&e.hasAttribute(t))try{return JSON.parse(e.getAttribute(t))}catch{return}},convertToPlainText:function(e){var t=document.createElement("div");return t.textContent=e,t.innerHTML},stripHTML:function(e){var t=document.createElement("div");return t.innerHTML=e.replace(/<[^>]*>?/gm,""),t.textContent},emitEvent:function(e,t,r){var o;try{o=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:r||null})}catch{(o=document.createEvent("CustomEvent")).initCustomEvent(t,!0,!0,r||null)}e.dispatchEvent(o)},isTouch:function(){return"ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch},prefersReducedMotion:function(){return!!window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}}}();function o(){var o,a,n,i,l={},s={},c="",u=!1,d="div.gallery, div.tiled-gallery, ul.wp-block-gallery, ul.blocks-gallery-grid, figure.wp-block-gallery.has-nested-images, div.wp-block-jetpack-tiled-gallery, a.single-image-gallery",m=".gallery-item, .tiled-gallery-item, .blocks-gallery-item,  .tiled-gallery__item",p=m+", .wp-block-image",g={},h="undefined"!=typeof wpcom&&wpcom.carousel&&wpcom.carousel.stat?wpcom.carousel.stat:t.noop,f="undefined"!=typeof wpcom&&wpcom.carousel&&wpcom.carousel.pageview?wpcom.carousel.pageview:t.noop;function v(t){if(!u)switch(t.which){case 38:t.preventDefault(),g.overlay.scrollTop-=100;break;case 40:t.preventDefault(),g.overlay.scrollTop+=100;break;case 39:t.preventDefault(),e.slideNext();break;case 37:case 8:t.preventDefault(),e.slidePrev();break;case 27:t.preventDefault(),k()}}function y(){u=!0}function w(){u=!1}function S(e){e.role="button",e.tabIndex=0,e.ariaLabel=jetpackCarouselStrings.image_label}function j(){g.overlay||(g.overlay=document.querySelector(".jp-carousel-overlay"),g.container=g.overlay.querySelector(".jp-carousel-wrap"),g.gallery=g.container.querySelector(".jp-carousel"),g.info=g.overlay.querySelector(".jp-carousel-info"),g.caption=g.info.querySelector(".jp-carousel-caption"),g.commentField=g.overlay.querySelector("#jp-carousel-comment-form-comment-field"),g.emailField=g.overlay.querySelector("#jp-carousel-comment-form-email-field"),g.authorField=g.overlay.querySelector("#jp-carousel-comment-form-author-field"),g.urlField=g.overlay.querySelector("#jp-carousel-comment-form-url-field"),window.innerWidth<=760&&Math.round(window.innerWidth/760*110)<40&&r.isTouch(),[g.commentField,g.emailField,g.authorField,g.urlField].forEach(function(e){e&&(e.addEventListener("focus",y),e.addEventListener("blur",w))}),g.overlay.addEventListener("click",function(e){var t,o,a=e.target,n=!!r.closest(a,".jp-carousel-close-hint"),i=!!window.matchMedia("(max-device-width: 760px)").matches;a===g.overlay?i||k():n?k():a.classList.contains("jp-carousel-image-download")?h("download_original_click"):a.classList.contains("jp-carousel-comment-login")?(t=g.currentSlide,o=t?t.attrs.attachmentId:"0",window.location.href=jetpackCarouselStrings.login_url+"%23jp-carousel-"+o):r.closest(a,"#jp-carousel-comment-form-container")?function(e){var t=e.target,o=r.getJSONAttribute(g.container,"data-carousel-extra")||{},a=g.currentSlide.attrs.attachmentId,n=document.querySelector("#jp-carousel-comment-form-submit-and-info-wrapper"),i=document.querySelector("#jp-carousel-comment-form-spinner"),s=document.querySelector("#jp-carousel-comment-form-button-submit"),c=document.querySelector("#jp-carousel-comment-form");if(g.commentField&&g.commentField.getAttribute("id")===t.getAttribute("id"))y(),r.show(n);else if(r.matches(t,'input[type="submit"]')){e.preventDefault(),e.stopPropagation(),r.show(i),c.classList.add("jp-carousel-is-disabled");var u={action:"post_attachment_comment",nonce:jetpackCarouselStrings.nonce,blog_id:o.blog_id,id:a,comment:g.commentField.value};if(!u.comment.length)return void b(jetpackCarouselStrings.no_comment_text,!1);if(1!==Number(jetpackCarouselStrings.is_logged_in)&&(u.email=g.emailField.value,u.author=g.authorField.value,u.url=g.urlField.value,1===Number(jetpackCarouselStrings.require_name_email))){if(!u.email.length||!u.email.match("@"))return void b(jetpackCarouselStrings.no_comment_email,!1);if(!u.author.length)return void b(jetpackCarouselStrings.no_comment_author,!1)}var d=new XMLHttpRequest;d.open("POST",jetpackCarouselStrings.ajaxurl,!0),d.setRequestHeader("X-Requested-With","XMLHttpRequest"),d.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"),d.onreadystatechange=function(){if(this.readyState===XMLHttpRequest.DONE&&this.status>=200&&this.status<300){var e;try{e=JSON.parse(this.response)}catch{return void b(jetpackCarouselStrings.comment_post_error,!1)}if("approved"===e.comment_status){b(jetpackCarouselStrings.comment_approved,!0);var t=function(e){for(var t=0;t<g.slides.length;t++)if(g.slides[t].attrs.attachmentId===e)return g.slides[t];return null}(a);t&&(t.attrs.commentsCount=(parseInt(t.attrs.commentsCount,10)||0)+1)}else"unapproved"===e.comment_status?b(jetpackCarouselStrings.comment_unapproved,!0):b(jetpackCarouselStrings.comment_post_error,!1);W(),delete l[a],_(a,void 0,!0),s.value=jetpackCarouselStrings.post_comment,r.hide(i),c.classList.remove("jp-carousel-is-disabled")}else b(jetpackCarouselStrings.comment_post_error,!1)};var m=[];for(var p in u)if(p){var h=encodeURIComponent(p)+"="+encodeURIComponent(u[p]);m.push(h.replace(/%20/g,"+"))}var f=m.join("&");d.send(f)}}(e):(r.closest(a,".jp-carousel-photo-icons-container")||a.classList.contains("jp-carousel-photo-title"))&&function(e){e.preventDefault();var t=e.target,o=g.info.querySelector(".jp-carousel-info-extra"),a=g.info.querySelector(".jp-carousel-image-meta"),n=g.info.querySelector(".jp-carousel-comments-wrapper"),i=g.info.querySelector(".jp-carousel-icon-info"),s=g.info.querySelector(".jp-carousel-icon-comments");function c(){s&&s.classList.remove("jp-carousel-selected"),i.classList.toggle("jp-carousel-selected"),n&&n.classList.remove("jp-carousel-show"),a&&(a.classList.toggle("jp-carousel-show"),a.classList.contains("jp-carousel-show")?o.classList.add("jp-carousel-show"):o.classList.remove("jp-carousel-show"))}function u(){if(i&&i.classList.remove("jp-carousel-selected"),s.classList.toggle("jp-carousel-selected"),a&&a.classList.remove("jp-carousel-show"),n)if(n.classList.toggle("jp-carousel-show"),n.classList.contains("jp-carousel-show")){o.classList.add("jp-carousel-show");var e=g.currentSlide;if(e){var t=l[e.attrs.attachmentId];t?t.hasMore&&T(e.attrs.attachmentId,t.nextOffset):_(e.attrs.attachmentId)}}else o.classList.remove("jp-carousel-show")}(r.closest(t,".jp-carousel-icon-info")||t.classList.contains("jp-carousel-photo-title"))&&(a&&a.classList.contains("jp-carousel-show")?r.scrollToElement(g.overlay,g.overlay,c):(c(),r.scrollToElement(g.info,g.overlay))),r.closest(t,".jp-carousel-icon-comments")&&(n&&n.classList.contains("jp-carousel-show")?r.scrollToElement(g.overlay,g.overlay,u):(u(),r.scrollToElement(g.info,g.overlay)))}(e)}),window.addEventListener("keydown",v),g.overlay.addEventListener("jp_carousel.afterOpen",function(){w(),g.slides.length<=1||(g.slides.length<=5?r.show(g.info.querySelector(".jp-swiper-pagination")):r.show(g.info.querySelector(".jp-carousel-pagination")))}),g.overlay.addEventListener("jp_carousel.beforeClose",function(){y(),document.documentElement.style.removeProperty("height"),e&&e.enable(),r.hide(g.info.querySelector(".jp-swiper-pagination")),r.hide(g.info.querySelector(".jp-carousel-pagination"))}),g.overlay.addEventListener("jp_carousel.afterClose",function(){window.history.pushState?history.pushState("",document.title,window.location.pathname+window.location.search):window.location.href="",c="",g.isOpen=!1}),g.overlay.addEventListener("touchstart",function(e){e.touches.length>1&&e.preventDefault()}))}function b(e,t){var o=g.overlay.querySelector("#jp-carousel-comment-post-results"),a="jp-carousel-comment-post-"+(t?"success":"error");o.innerHTML='<span class="'+a+'">'+e+"</span>",r.hide(g.overlay.querySelector("#jp-carousel-comment-form-spinner")),g.overlay.querySelector("#jp-carousel-comment-form").classList.remove("jp-carousel-is-disabled"),r.show(o)}function L(){var e=document.querySelectorAll("a img[data-attachment-id]");Array.prototype.forEach.call(e,function(e){var t=e.parentElement,o=t.parentElement;if(!o.classList.contains("gallery-icon")&&!r.closest(o,m)&&t.hasAttribute("href")){var a=!1;t.getAttribute("href").split("?")[0]===e.getAttribute("data-orig-file").split("?")[0]&&1===Number(jetpackCarouselStrings.single_image_gallery_media_file)&&(a=!0),t.getAttribute("href")===e.getAttribute("data-permalink")&&(a=!0),a&&(S(e),t.classList.add("single-image-gallery"),t.setAttribute("data-carousel-extra",JSON.stringify({blog_id:Number(jetpackCarouselStrings.blog_id)})))}})}function x(t,r){g.isOpen?(C(r),e.slideTo(r+1)):z(t,{startIndex:r})}function C(e){(!e||e<0||e>g.slides.length)&&(e=0),g.currentSlide=g.slides[e];var a,n,i=g.currentSlide,s=i.attrs.attachmentId;M(g.slides[e]),function(e){var t=[],r=g.slides.length;if(r>1){var o=e>0?e-1:r-1;t.push(o);var a=e<r-1?e+1:0;t.push(a)}t.forEach(function(e){var t=g.slides[e];t&&(M(t),1!==Number(jetpackCarouselStrings.display_background_image)||t.backgroundImage||F(t))})}(e),1!==Number(jetpackCarouselStrings.display_background_image)||g.slides[e].backgroundImage||F(g.slides[e]),r.hide(g.caption),function(e){var t,o,a,n,i,l,s;if(n=g.overlay.querySelector(".jp-carousel-photo-caption"),i=g.overlay.querySelector(".jp-carousel-caption"),l=g.overlay.querySelector(".jp-carousel-photo-title"),s=g.overlay.querySelector(".jp-carousel-photo-description"),r.hide(n),r.hide(i),r.hide(l),r.hide(s),t=A(e.caption)||"",o=A(e.title)||"",a=A(e.desc)||"",(t||o||a)&&(t&&(n.innerHTML=t,i.innerHTML=t,r.show(n),r.show(i)),r.stripHTML(t)===r.stripHTML(o)&&(o=""),r.stripHTML(t)===r.stripHTML(a)&&(a=""),r.stripHTML(o)===r.stripHTML(a)&&(a=""),a&&(s.innerHTML=a,r.show(s),o||t||(n.textContent=r.stripHTML(a),r.show(n))),o)){var c=r.stripHTML(o);l.textContent=c,t||(n.textContent=c,i.textContent=c,r.show(n)),r.show(l)}}
2224({caption:i.attrs.caption,title:i.attrs.title,desc:i.attrs.desc}),function(e){if(!e||1!==Number(jetpackCarouselStrings.display_exif))return!1;var t=g.info.querySelector(".jp-carousel-image-meta");if(!t)return!1;var r="";for(var o in e){var a=e[o],n=jetpackCarouselStrings.meta_data||[];if(0!==parseFloat(a)&&a.length&&-1!==n.indexOf(o)){switch(o){case"focal_length":a+="mm";break;case"shutter_speed":a=E(a);break;case"aperture":a="f/"+a}r+="<li><h5>"+jetpackCarouselStrings[o]+"</h5>"+a+"</li>"}}var i=t.querySelector("ul.jp-carousel-image-exif");if(""!==r){if(!i){(i=document.createElement("ul")).className="jp-carousel-image-exif";var l=t.querySelector(".jp-carousel-title-and-caption");l&&l.nextSibling?t.insertBefore(i,l.nextSibling):t.insertBefore(i,t.firstChild)}i.innerHTML=r,i.style.removeProperty("display")}else i&&i.parentNode.removeChild(i)}(g.slides[e].attrs.imageMeta),function(e){if(!e)return!1;var r,o=[e.attrs.origWidth,e.attrs.origHeight],a=document.createElement("a");a.href=e.attrs.src.replace(/\?.+$/,""),r=null!==a.hostname.match(/^i[\d]{1}\.wp\.com$/i)?a.href:e.attrs.origFile.replace(/\?.+$/,"");var n=g.info.querySelector(".jp-carousel-download-text"),i=g.info.querySelector(".jp-carousel-image-download");n.innerHTML=t.applyReplacements(jetpackCarouselStrings.download_original,o),i.setAttribute("href",r),i.style.removeProperty("display")}(i),1===Number(jetpackCarouselStrings.display_comments)&&(a=g.slides[e].attrs.commentsOpened,n=g.info.querySelector("#jp-carousel-comment-form-container"),1===parseInt(a,10)?r.fadeIn(n):r.fadeOut(n),function(e){var t=e.attrs.attachmentId,a=g.info.querySelector(".jp-carousel-comments"),n=l[t];if(clearInterval(o),r.hide(g.info.querySelector("#jp-carousel-comments-loading")),n)return a.innerHTML=n.html,H(n.count),r.show(a),void(n.hasMore&&I()&&T(t,n.nextOffset));a.innerHTML="",r.hide(a),H(parseInt(e.attrs.commentsCount,10)||0),I()&&_(t)}(i),r.hide(g.info.querySelector("#jp-carousel-comment-post-results")));var u=g.info.querySelector(".jp-carousel-pagination");if(u&&g.slides.length>5){var d=e+1;u.innerHTML="<span>"+d+" / "+g.slides.length+"</span>"}jetpackCarouselStrings.stats&&g.isOpen&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?"+jetpackCarouselStrings.stats+"&post="+encodeURIComponent(s)+"&rand="+Math.random()),g.isOpen&&f(s),c="#jp-carousel-"+s,window.location.hash=c}function k(){document.body.style.overflow=a,document.documentElement.style.overflow=n,W(),y(),r.emitEvent(g.overlay,"jp_carousel.beforeClose"),window.scrollTo(window.scrollX||window.pageXOffset||0,i||0),g.isOpen=!1,e.destroy(),g.slides=[],l={},s={},g.currentSlide=void 0,g.gallery.innerHTML="",r.fadeOut(g.overlay,function(){r.emitEvent(g.overlay,"jp_carousel.afterClose")})}function q(e){if("object"!=typeof e&&(e={}),void 0===e.origFile)return"";if(void 0===e.origWidth||void 0===e.maxWidth)return e.origFile;if(!e.largeFile)return e.origFile;var t=document.createElement("a");t.href=e.largeFile;var r=/^i[0-2]\.wp\.com$/i.test(t.hostname),o=function(e,t,r){var o,a=r?e.replace(/.*=([\d]+%2C[\d]+).*$/,"$1"):e.replace(/.*-([\d]+x[\d]+)\..+$/,"$1");return"9999"===(o=a!==e?r?a.split("%2C"):a.split("x"):[t,0])[0]&&(o[0]="0"),"9999"===o[1]&&(o[1]="0"),o}(e.largeFile,e.origWidth,r),a=parseInt(o[0],10),n=parseInt(o[1],10);e.origMaxWidth=e.maxWidth,e.origMaxHeight=e.maxHeight,void 0!==window.devicePixelRatio&&window.devicePixelRatio>1&&(e.maxWidth=e.maxWidth*window.devicePixelRatio,e.maxHeight=e.maxHeight*window.devicePixelRatio);var i=e.zoomHeadroom||1;if(i>1&&(e.maxWidth=e.maxWidth*i,e.maxHeight=e.maxHeight*i),a>=e.maxWidth||n>=e.maxHeight)return e.largeFile;if(r){if(-1===e.largeFile.lastIndexOf("?"))return e.largeFile;var l=function(e){var t;try{t=new URL(e)}catch(t){return e}var r=["quality","ssl","filter","brightness","contrast","colorize","smooth"],o=Array.from(t.searchParams.entries());return t.search="",o.forEach(([e,o])=>{r.includes(e)&&t.searchParams.append(e,o)}),t}(e.largeFile);return(e.origWidth>e.maxWidth||e.origHeight>e.maxHeight)&&(e.origMaxWidth=e.maxWidth,e.origMaxHeight=e.maxHeight,l.searchParams.set("fit",e.origMaxWidth+","+e.origMaxHeight)),l.toString()}return e.origFile}function E(e){return e>=1?Math.round(10*e)/10+"s":"1/"+Math.round(1/e)+"s"}
2224function A(e){return!e.match(" ")&&e.match("_")?"":e}function I(){var e=g.info.querySelector(".jp-carousel-comments-wrapper");return!!e&&e.classList.contains("jp-carousel-show")}function H(e){var t=g.info.querySelector(".jp-carousel-icon-comments .jp-carousel-has-comments-indicator");t&&(e>0?(t.innerText=e,t.classList.add("jp-carousel-show")):t.classList.remove("jp-carousel-show"))}function T(e,t){clearInterval(o),o=setInterval(function(){g.container.scrollTop+150>window.innerHeight&&(clearInterval(o),_(e,t))},300)}function _(e,t,a){var n=void 0===t;if(clearInterval(o),e&&g.currentSlide&&g.currentSlide.attrs.attachmentId===e&&(!s[e]||a)){(!t||t<1)&&(t=0);var i=g.info.querySelector(".jp-carousel-comments"),c=g.info.querySelector("#jp-carousel-comments-loading");r.show(c),n&&(r.hide(i),i.innerHTML="");var u=new XMLHttpRequest;s[e]=u;var d=function(){return s[e]===u},m=jetpackCarouselStrings.ajaxurl+"?action=get_attachment_comments&nonce="+jetpackCarouselStrings.nonce+"&id="+e+"&offset="+t;u.open("GET",m),u.setRequestHeader("X-Requested-With","XMLHttpRequest");var p=function(){r.fadeIn(i),r.fadeOut(c)};u.onload=function(){if(d()&&(delete s[e],g.currentSlide&&g.currentSlide.attrs.attachmentId===e)){var o,a=u.status>=200&&u.status<300;try{o=JSON.parse(u.responseText)}catch{}if(a&&o&&Array.isArray(o)){n&&(i.innerHTML="");for(var m=0;m<o.length;m++){var h=o[m];if(!i.querySelector("#jp-carousel-comment-"+h.id)){var f=document.createElement("div");f.classList.add("jp-carousel-comment"),f.setAttribute("id","jp-carousel-comment-"+h.id),f.innerHTML='<div class="comment-gravatar">'+h.gravatar_markup+'</div><div class="comment-content"><div class="comment-author">'+h.author_markup+'</div><div class="comment-date">'+h.date_gmt+"</div>"+h.content+"</div>",i.appendChild(f)}}var v=o.length>=10,y=t+10;v&&T(e,y);var w=i.querySelectorAll(".jp-carousel-comment").length,S=Math.max(parseInt(g.currentSlide.attrs.commentsCount,10)||0,w);o.length>0&&(r.show(i),H(S)),l[e]={html:i.innerHTML,count:S,hasMore:v,nextOffset:y},r.hide(c)}else p()}},u.onerror=function(){d()&&(delete s[e],g.currentSlide&&g.currentSlide.attrs.attachmentId===e&&p())},u.send()}}function M(e){var t=e.attrs,r=e.el.querySelector("img");if(!r.hasAttribute("data-loaded"))if(r.setAttribute("itemprop","image"),r.setAttribute("data-loaded",1),t.previewImage&&t.previewImage!==t.src){r.src=t.previewImage,r.style.filter="blur(8px)";var o=new window.Image;o.addEventListener("load",function(){r.hasAttribute("data-zoom-loaded")||(r.src=t.src),r.style.filter=""},{once:!0}),o.addEventListener("error",function(){r.style.filter=""},{once:!0}),o.src=t.src}else r.src=t.src}function F(e){var t=e.attrs.originalElement;if(t)if(t.complete&&0!==t.naturalHeight)O(e,t);else{var r=function(){t.removeEventListener("error",o),O(e,t)},o=function(){t.removeEventListener("load",r)};t.addEventListener("load",r,{once:!0}),t.addEventListener("error",o,{once:!0})}}function O(e,r){var o=t.getBackgroundImage(r);o&&(e.backgroundImage=o,e.el.style.backgroundImage="url("+o+")",e.el.style.backgroundSize="cover",e.el.style.backgroundPosition="center")}function W(){g.commentField&&(g.commentField.value="")}function N(e,o){g.slides=[];var a={width:window.innerWidth,height:window.innerHeight-64};0!==o&&null!==e[o].getAttribute("data-gallery-src")&&((new Image).src=e[o].getAttribute("data-gallery-src")),Array.prototype.forEach.call(e,function(e,o){var n=r.closest(e,"a"),i=e.getAttribute("data-orig-file")||e.getAttribute("src-orig"),l=e.getAttribute("data-attachment-id")||e.getAttribute("data-id")||"0",s=document.querySelector('img[data-attachment-id="'+l+'"] + figcaption');s=s?s.innerHTML:e.getAttribute("data-image-caption");var c={originalElement:e,attachmentId:l,commentsOpened:e.getAttribute("data-comments-opened")||"0",commentsCount:e.getAttribute("data-comments-count")||"0",imageMeta:r.getJSONAttribute(e,"data-image-meta")||{},title:e.getAttribute("data-image-title")||"",desc:e.getAttribute("data-image-description")||"",largeFile:e.getAttribute("data-large-file")||"",origFile:i||"",thumbSize:{width:e.naturalWidth,height:e.naturalHeight},caption:s||"",permalink:n&&n.getAttribute("href"),src:i||e.getAttribute("src")||""},u=r.closest(e,".tiled-gallery-item"),d=u&&u.querySelector(".tiled-gallery-caption"),m=d&&d.innerHTML;m&&(c.caption=m);var p=function(e){var t=e.getAttribute("data-orig-size")||"";if(t){var r=t.split(",");return{width:parseInt(r[0],10),height:parseInt(r[1],10)}}return{width:e.getAttribute("data-original-width")||e.getAttribute("width")||void 0,height:e.getAttribute("data-original-height")||e.getAttribute("height")||void 0}}(e);if(c.origWidth=p.width||c.thumbSize.width,c.origHeight=p.height||c.thumbSize.height,"undefined"!=typeof wpcom&&wpcom.carousel&&wpcom.carousel.generateImgSrc)c.src=wpcom.carousel.generateImgSrc(e,a);else{var h=function(e){return{origFile:c.src,origWidth:c.origWidth,origHeight:c.origHeight,maxWidth:a.width,maxHeight:a.height,largeFile:c.largeFile,zoomHeadroom:e}};c.zoomSrc=q(h(2)),c.src=q(h(1))}if(e.setAttribute("data-gallery-src",c.src),"0"!==c.attachmentId){c.title=t.texturize(c.title),c.desc=t.texturize(c.desc),c.caption=t.texturize(c.caption);var f=new Image,v=document.createElement("div");v.classList.add("swiper-slide"),v.setAttribute("itemprop","associatedMedia"),v.setAttribute("itemscope",""),v.setAttribute("itemtype","https://schema.org/ImageObject");var y=document.createElement("div");y.classList.add("swiper-zoom-container"),g.gallery.appendChild(v),v.appendChild(y),y.appendChild(f),v.setAttribute("data-attachment-id",c.attachmentId),v.setAttribute("data-permalink",c.permalink),v.setAttribute("data-orig-file",c.origFile),c.previewImage=e.currentSrc||e.getAttribute("src")||"";var w={el:v,attrs:c,index:o};g.slides.push(w)}})}function z(e,t){if(!window.JetpackSwiper){var o=document.querySelector("#jp-carousel-loading-overlay");r.show(o);var a=document.createElement("script");return a.id="jetpack-carousel-swiper-js",a.src=window.jetpackSwiperLibraryPath.url,a.async=!0,a.onload=function(){r.hide(o),R(e,t)},a.onerror=function(){r.hide(o)},void document.head.appendChild(a)}R(e,t)}function R(t,o){var c,u={imgSelector:".gallery-item [data-attachment-id], .tiled-gallery-item [data-attachment-id], img[data-attachment-id], img[data-id]",startIndex:0},d=r.getJSONAttribute(t,"data-carousel-extra");if(!d)return;const m=t.querySelectorAll(u.imgSelector);if(m.length&&(j(),!g.isOpen)){for(var p in g.isOpen=!0,a=getComputedStyle(document.body).overflow,document.body.style.overflow="hidden",n=getComputedStyle(document.documentElement).overflow,document.documentElement.style.overflow="hidden",i=window.scrollY||window.pageYOffset||0,g.container.setAttribute("data-carousel-extra",JSON.stringify(d)),h(["open","view_image"]),o||{})u[p]=o[p];-1===u.startIndex&&(u.startIndex=0),r.emitEvent(g.overlay,"jp_carousel.beforeOpen"),g.gallery.innerHTML="",l={},s={},g.overlay.style.opacity=1,g.overlay.style.display="block",N(m,u.startIndex),(e=new window.JetpackSwiper(".jp-carousel-swiper-container",{centeredSlides:!0,speed:r.prefersReducedMotion()?0:250,zoom:!0,loop:g.slides.length>1,enabled:g.slides.length>1,pagination:{el:".jp-swiper-pagination",clickable:!0},navigation:{nextEl:".jp-swiper-button-next",prevEl:".jp-swiper-button-prev"},initialSlide:u.startIndex,on:{init:function(){C(u.startIndex)}},preventClicks:!1,preventClicksPropagation:!1,preventInteractionOnTransition:!r.isTouch(),threshold:5})).on("slideChange",function(e){g.isOpen&&(C(e.realIndex),g.overlay.classList.remove("jp-carousel-hide-control
2224s"))}),e.on("zoomChange",function(e,t){t>1&&(function(e){if(e&&e.attrs.zoomSrc&&e.attrs.zoomSrc!==e.attrs.src){var t=e.el.querySelector("img");t&&!t.hasAttribute("data-zoom-loaded")&&(t.setAttribute("data-zoom-loaded",1),t.src=e.attrs.zoomSrc)}}(g.currentSlide),g.overlay.classList.add("jp-carousel-hide-controls")),1===t&&g.overlay.classList.remove("jp-carousel-hide-controls")}),e.on("doubleTap",function(e){if(clearTimeout(c),1===e.zoom.scale)var t=setTimeout(function(){g.overlay.classList.remove("jp-carousel-hide-controls"),clearTimeout(t)},150)}),e.on("tap",function(){e.zoom.scale>1&&(c=setTimeout(function(){g.overlay.classList.toggle("jp-carousel-hide-controls")},150))}),r.fadeIn(g.overlay,function(){r.emitEvent(g.overlay,"jp_carousel.afterOpen")})}}function P(e){if("click"!==e.type){if("keydown"===e.type){const t=document.activeElement.parentElement,r=t&&t.classList.contains("tiled-gallery__item");" "!==e.key&&"Enter"!==e.key||!r||$(e)}}else $(e)}function D(e){return(e||"").split("?")[0].replace(/\/$/,"")}function J(e){"A"===e.tagName&&(e=e.querySelector("img")||e);var t=e.parentElement,o=t?t.parentElement:null,a=null;if(o&&o.classList.contains("wp-block-image")?a=t.getAttribute("href"):t&&t.classList.contains("wp-block-image")&&t.querySelector(":scope > a")&&(a=t.querySelector(":scope > a").getAttribute("href")),a){var n=D(a),i=D(e.getAttribute("data-orig-file")),l=D(e.getAttribute("data-permalink"));if(n!==i&&n!==l)return!1}return!(t&&t.classList.contains("gallery-caption")||r.matches(t,"figcaption"))}function $(e){if(window.CSS&&window.CSS.supports&&window.CSS.supports("display","grid")){var t,o=e.target,a=r.closest(o,d);if(a){if(!(t=a)||!t.getAttribute("data-carousel-extra"))return;if(!J(o))return;document.documentElement.style.height="auto",e.preventDefault(),e.stopPropagation();var n=r.closest(o,p),i=Array.prototype.indexOf.call(a.querySelectorAll(p),n);z(a,{startIndex:i})}}}document.body.addEventListener("click",P),document.body.addEventListener("keydown",P),document.querySelectorAll(m+"img").forEach(function(e){J(e)&&S(e)}),1===Number(jetpackCarouselStrings.single_image_gallery)&&(L(),document.body.addEventListener("is.post-load",function(){L()})),window.addEventListener("hashchange",function(){var e=/jp-carousel-(\d+)/;if(window.location.hash&&e.test(window.location.hash)){if(window.location.hash!==c||!g.isOpen)if(window.location.hash&&g.gallery&&!g.isOpen&&history.back)history.back();else{c=window.location.hash;for(var t=window.location.hash.match(e),r=parseInt(t[1],10),o=document.querySelectorAll(d),a=0;a<o.length;a++){for(var n,i=o[a],l=i.querySelectorAll("img"),s=0;s<l.length;s++)if(parseInt(l[s].getAttribute("data-attachment-id"),10)===r||parseInt(l[s].getAttribute("data-id"),10)===r){n=s;break}if(void 0!==n){x(i,n);break}}}}else g.isOpen&&k()}),window.location.hash&&r.emitEvent(window,"hashchange")}"loading"!==document.readyState?o():document.addEventListener("DOMContentLoaded",o)}();;
2225/*! For license information please see dependencies.min.js.LICENSE.txt */
2226(()=>{var e={8395(){!function(e,t,n,s){"use strict";var i,a,r,o=(i=t.createElement("dummy").style,a="Webkit Moz O ms Khtml".split(" "),r={},function(e){if(void 0===r[e]){var t=e.charAt(0).toUpperCase()+e.substr(1),n=(e+" "+a.join(t+" ")+t).split(" ");for(var o in r[e]=null,n)if(i[n[o]]!==s){r[e]=n[o];break}}return r[e]});function c(e){if(e){var t=1+e.substr(1).search(/[A-Z]/);return"-"+e.substr(0,t).toLowerCase()+"-"+e.substr(t).toLowerCase()}}function l(e){return e?e+",":""}function u(e){return e.length>0?e:null}var f={stepSelector:".step",containerClass:"",canvasClass:"",areaClass:"",notSupportedClass:"not-supported",fullscreen:!0,animation:{transformOrigin:"top left",transitionProperty:l(c(o("transform")))+l(c(o("perspective")))+"opacity",transitionDuration:"1s",transitionDelay:"500ms",transitionTimingFunction:"ease-in-out",transformStyle:"preserve-3d"},transitionDuration:1500},p={beforeChange:1,beforeInitStep:1,initStep:1,beforeInit:1,afterInit:1,beforeDeinit:1,afterDeinit:1,applyStep:1,unapplyStep:1,setInactive:1,beforeActive:1,setActive:1,selectInitialStep:1,selectPrev:1,selectNext:1,selectHome:1,selectEnd:1,idle:1,applyTarget:1};for(var d in p)f[d]=[];function h(i){i=e.extend(!0,{},i||{});var a={},r=null;for(r in p)a[r]=e.isFunction(i[r])?[i[r]]:i[r],i[r]=[];var o=e.extend(!0,{},f,i);for(r in p)a[r]&&Array.prototype.push.apply(o[r],a[r]);var c=e(this),l=null,d=null,h={container:"",area:""},y=null,g=null,x=!1,b=null,w=!1;function S(t,n){var s=v(t),i={oldStyle:e(t).attr("style")||""},a={data:s,stepData:i};C.call(this,"beforeInitStep",e(t),a),i.delegate=s.delegate,C.call(this,"initStep",e(t),a),e(t).data("stepData",i),e(t).attr("id")||e(t).attr("id","step-"+(n+1)),C.call(this,"applyStep",e(t),a)}function I(t){var n=e(t).data("stepData");e(t).attr("style",n.oldStyle),C.call(this,"unapplyStep",e(t),{stepData:n})}function j(){x&&C.call(this,"setInactive",x,{stepData:e(x).data("stepData"),reason:"deinit"}),g.jmpressClass&&e(c).removeClass(g.jmpressClass),C.call(this,"beforeDeinit",e(this),{}),e(o.stepSelector,c).each(function(e){I.call(c,this)}),l.attr("style",h.container),o.fullscreen&&e("html").attr("style",""),d.attr("style",h.area),e(y).children().each(function(){c.append(e(this))}
2226),o.fullscreen?y.remove():(y.remove(),d.remove()),C.call(this,"afterDeinit",e(this),{}),e(c).data("jmpressmethods",!1)}function C(t,n,s){s.settings=o,s.current=g,s.container=l,s.parents=n?e(n).parentsUntil(c).not(c).filter(o.stepSelector):null,s.current=g,s.jmpress=this;var i={};return e.each(o[t],function(e,t){i.value=t.call(c,n,s)||i.value}),i.value}function D(t,n){var i;if(e.isPlainObject(t)&&(i=t.substep,t=t.step),"string"==typeof t&&(t=c.find(t).first()),!t||!e(t).data("stepData"))return!1;T.call(this);var a=e(t).data("stepData"),r=!1;if(C.call(this,"beforeChange",t,{stepData:a,reason:n,cancel:function(){r=!0}}),r)return s;var l={},f=t;e(t).data("stepData").delegate&&((f=u(e(t).parentsUntil(c).filter(o.stepSelector).filter(a.delegate))||u(e(t).near(a.delegate))||u(e(t).near(a.delegate,!0))||u(e(a.delegate,c)))?a=f.data("stepData"):f=t),w&&C.call(this,"setInactive",w,{stepData:e(w).data("stepData"),delegatedFrom:x,reason:n,target:l,nextStep:f,nextSubstep:i,nextStepData:a});var p={stepData:a,delegatedFrom:t,reason:n,target:l,substep:i,prevStep:w,prevSubstep:b,prevStepData:w&&e(w).data("stepData")};return C.call(this,"beforeActive",f,p),C.call(this,"setActive",f,p),g.jmpressClass&&e(c).removeClass(g.jmpressClass),e(c).addClass(g.jmpressClass="step-"+e(f).attr("id")),g.jmpressDelegatedClass&&e(c).removeClass(g.jmpressDelegatedClass),e(c).addClass(g.jmpressDelegatedClass="delegating-step-"+e(t).attr("id")),C.call(this,"applyTarget",f,e.extend({canvas:y,area:d,beforeActive:w},p)),x=t,b=p.substep,w=f,g.idleTimeout&&clearTimeout(g.idleTimeout),g.idleTimeout=setTimeout(function(){C.call(this,"idle",f,p)},Math.max(1,o.transitionDuration-100)),f}function T(){!function t(){if("BODY"===e(l)[0].tagName)try{n.scrollTo(0,0)}catch(e){}function s(){0===e(l).scrollTop()&&0===e(l).scrollLeft()||t()}e(l).scrollTop(0),e(l).scrollLeft(0),setTimeout(s,1),setTimeout(s,10),setTimeout(s,100),setTimeout(s,200),setTimeout(s,400)}()}if(c.data("jmpressmethods",{select:D,reselect:function(e){return D({step:x,substep:b},e)},scrollFix:T,goTo:function(e){return D.call(this,e,"jump")},next:function(){return D.call(this,C.call(this,"selectNext",x,{stepData:e(x).data("stepData"),substep:b}),"next")},prev:function(){return D.call(this,C.call(this,"selectPrev",x,{stepData:e(x).data("stepData"),substep:b}),"prev")},home:function(){return D.call(this,C.call(this,"selectHome",x,{stepData:e(x).data("stepData")}),"home")},end:function(){return D.call(this,C.call(this,"selectEnd",x,{stepData:e(x).data("stepData")}),"end")},canvas:function(t){return m(y,t||{}),e(y)},container:function(){return l},settings:function(){return o},active:function(){return w&&e(w)},current:function(){return g},fire:function(t,n,s){if(p[t])return C.call(this,t,n,s);e.error("callback "+t+" is not registered.")},init:function(t){S.call(this,e(t),g.nextIdNumber++)},deinit:function(t){t?I.call(this,e(t)):j.call(this)},reapply:function(t){C.call(this,"unapplyStep",e(t),{stepData:t.data("stepData")}),C.call(this,"applyStep",e(t),{stepData:t.data("stepData")})}}),!1!=(-1===(B=navigator.userAgent.toLowerCase()).search(/(iphone)|(ipod)|(android)/)||-1!==B.search(/(chrome)/))){var B;o.notSupportedClass&&c.removeClass(o.notSupportedClass);var O=e(o.stepSelector,c);l=c,d=e("<div />"),y=e("<div />"),e(c).children().filter(O).each(function(){y.append(e(this))}),o.fullscreen&&(l=e("body"),e("html").css({overflow:"hidden"}),d=c),h.area=d.attr("style")||"",h.container=l.attr("style")||"",o.fullscreen?(l.css({height:"100%"}),c.append(y)):(l.css({position:"relative"}),d.append(y),c.append(d)),e(l).addClass(o.containerClass),e(d).addClass(o.areaClass),e(y).addClass(o.canvasClass),t.documentElement.style.height="100%",l.css({overflow:"hidden"});var P={position:"absolute",transitionDuration:"0s"};P=e.extend({},o.animation,P),m(d,P),m(d,{top:"50%",left:"50%",perspective:"1000px"}),m(y,P),g={},C.call(this,"beforeInit",null,{}),O.each(function(e){S.call(c,this,e)}),g.nextIdNumber=O.length,C.call(this,"afterInit",null,{}),D.call(this,C.call(this,"selectInitialStep","init",{})),o.initClass&&e(O).removeClass(o.initClass)}else o.notSupportedClass&&c.addClass(o.notSupportedClass)}function m(t,n){var s,i,a={};for(s in n)n.hasOwnProperty(s)&&null!==(i=o(s))&&(a[i]=n[s]);return e(t).css(a),t}function v(t){if(e(t)[0].dataset)return e.extend({},e(t)[0].dataset);var n={},s=e(t)[0].attributes;return e.each(s,function(e,t){"data-"===t.nodeName.substr(0,5)&&(n[function(e){e=e.split("-");for(var t=1;t<e.length;t++)e[t]=e[t].substr(0,1).toUpperCase()+e[t].substr(1);return e.join("")}(t.nodeName.substr(5))]=t.nodeValue)}),n}var y={init:h,initialized:function(){return!!e(this).data("jmpressmethods")},deinit:function(){},css:m,pfx:o,defaults:function(){return f}
2226,register:function(t,n){e.isFunction(n)?y[t]?e.error("function "+t+" is already registered."):y[t]=n:p[t]?e.error("callback "+t+" is already registered."):(p[t]=1,f[t]=[])},dataset:v};e.fn.jmpress=function(t){function n(){var n=e(this).data("jmpressmethods");if(n&&n[t])return n[t].apply(this,Array.prototype.slice.call(arguments,1));if(y[t])return y[t].apply(this,Array.prototype.slice.call(arguments,1));if(p[t]&&n){var s=n.settings(),i=Array.prototype.slice.call(arguments,1)[0];e.isFunction(i)&&(s[t]=s[t]||[],s[t].push(i))}else{if("object"==typeof t||!t)return h.apply(this,arguments);e.error("Method "+t+" does not exist on jQuery.jmpress")}return this}var s,i=arguments;return e(this).each(function(e,t){s=n.apply(t,i)}),s},e.extend({jmpress:function(t){if(y[t])return y[t].apply(this,Array.prototype.slice.call(arguments,1));if(p[t]){var n=Array.prototype.slice.call(arguments,1)[0];e.isFunction(n)?f[t].push(n):e.error("Second parameter should be a function: $.jmpress( callbackName, callbackFunction )")}else e.error("Method "+t+" does not exist on jQuery.jmpress")}})}(jQuery,document,window),function(e){"use strict";function t(t,n,s,i){var a;return t.each(function(t,r){return(!i||!(a=n(r,s,i)))&&(e(r).is(s)?(a=r,!1):!(!i&&(a=n(r,s,i)))&&void 0)}),a}function n(s,i,a){var r=e(s).children();return a&&(r=e(r.get().reverse())),t(r,n,i,a)}function s(s,i,a){return t(e(s)[a?"prevAll":"nextAll"](),n,i,a)}e.fn.near=function(t,i){var a=[];return e(this).each(function(r,o){var c=!i&&n(o,t,i)||s(o,t,i)||function(t,n,i){var a,r=e(t).parents();return r=e(r.get()),e.each(r.get(),function(t,r){return i&&e(r).is(n)?(a=r,!1):!(a=s(r,n,i))&&void 0}),a}(o,t,i);c&&a.push(c)}),e(a)}}(jQuery,document,window),function(e){"use strict";function t(e){return Math.round(1e4*e)/1e4+""}var n={3:{transform:function(n,s){var i="translate(-50%,-50%)";e.each(s,function(e,n){var s,a=["X","Y","Z"];if("translate"===n[0])i+=" translate3d("+t(n[1]||0)+"px,"+t(n[2]||0)+"px,"+t(n[3]||0)+"px)";else if("rotate"===n[0]){var r=n[4]?[1,2,3]:[3,2,1];for(s=0;s<3;s++)i+=" rotate"+a[r[s]-1]+"("+t(n[r[s]]||0)+"deg)"}else if("scale"===n[0])for(s=0;s<3;s++)i+=" scale"+a[s]+"("+t(n[s+1]||1)+")"}),e.jmpress("css",n,e.extend({},{transform:i}))}},2:{transform:function(n,s){var i="translate(-50%,-50%)";e.each(s,function(e,n){var s=["X","Y"];if("translate"===n[0])i+=" translate("+t(n[1]||0)+"px,"+t(n[2]||0)+"px)";else if("rotate"===n[0])i+=" rotate("+t(n[3]||0)+"deg)";else if("scale"===n[0])for(var a=0;a<2;a++)i+=" scale"+s[a]+"("+t(n[a+1]||1)+")"}),e.jmpress("css",n,e.extend({},{transform:i}))}},1:{transform:function(t,n){var s={top:0,left:0};e.each(n,function(e,t){"translate"===t[0]&&(s.left=Math.round(t[1]||0)+"px",s.top=Math.round(t[2]||0)+"px")}),t.animate(s,1e3)}}},s=e.jmpress("pfx","perspective")?n[3]:e.jmpress("pfx","transform")?n[2]:n[1];e.jmpress("defaults").reasonableAnimation={},e.jmpress("initStep",function(t,n){var s=n.data,i=n.stepData,a=parseFloat;e.extend(i,{x:a(s.x)||0,y:a(s.y)||0,z:a(s.z)||0,r:a(s.r)||0,phi:a(s.phi)||0,rotate:a(s.rotate)||0,rotateX:a(s.rotateX)||0,rotateY:a(s.rotateY)||0,rotateZ:a(s.rotateZ)||0,revertRotate:!1,scale:a(s.scale)||1,scaleX:a(s.scaleX)||!1,scaleY:a(s.scaleY)||!1,scaleZ:a(s.scaleZ)||1})}),e.jmpress("afterInit",function(t,n){var s=n.settings.stepSelector,i=n.current;i.perspectiveScale=1,i.maxNestedDepth=0;for(var a=e(n.jmpress).find(s).children(s);a.length;)i.maxNestedDepth++,a=a.children(s)}),e.jmpress("applyStep",function(t,n){e.jmpress("css",e(t),{position:"absolute",transformStyle:"preserve-3d"}),n.parents.length>0&&e.jmpress("css",e(t),{top:"50%",left:"50%"});var i=n.stepData,a=[["translate",i.x||i.r*Math.sin(i.phi*Math.PI/180),i.y||-i.r*Math.cos(i.phi*Math.PI/180),i.z],["rotate",i.rotateX,i.rotateY,i.rotateZ||i.rotate,!0],["scale",i.scaleX||i.scale,i.scaleY||i.scale,i.scaleZ||i.scale]];s.transform(t,a)}),e.jmpress("setActive",function(t,n){var s=n.target,i=n.stepData,a=s.transform=[];s.perspectiveScale=1;for(var r=n.current.maxNestedDepth;r>(n.parents.length||0);r--)a.push(["scale"],["rotate"],["translate"]);a.push(["scale",1/(i.scaleX||i.scale),1/(i.scaleY||i.scale),1/i.scaleZ]),a.push(["rotate",-i.rotateX,-i.rotateY,-(i.rotateZ||i.rotate)]),a.push(["translate",-(i.x||i.r*Math.sin(i.phi*Math.PI/180)
2226),-(i.y||-i.r*Math.cos(i.phi*Math.PI/180)),-i.z]),s.perspectiveScale*=i.scaleX||i.scale,e.each(n.parents,function(t,n){var i=e(n).data("stepData");a.push(["scale",1/(i.scaleX||i.scale),1/(i.scaleY||i.scale),1/i.scaleZ]),a.push(["rotate",-i.rotateX,-i.rotateY,-(i.rotateZ||i.rotate)]),a.push(["translate",-(i.x||i.r*Math.sin(i.phi*Math.PI/180)),-(i.y||-i.r*Math.cos(i.phi*Math.PI/180)),-i.z]),s.perspectiveScale*=i.scaleX||i.scale}),e.each(a,function(e,t){function s(s){void 0===n.current["rotate"+s+"-"+e]&&(n.current["rotate"+s+"-"+e]=t[s]||0);var i=n.current["rotate"+s+"-"+e],a=i%360,r=(t[s]||0)%360;a<0&&(a+=360),r<0&&(r+=360);var o=r-a;o<-180?o+=360:o>180&&(o-=360),n.current["rotate"+s+"-"+e]=t[s]=i+o}"rotate"===t[0]&&(s(1),s(2),s(3))})}),e.jmpress("applyTarget",function(t,n){var i,a=n.target,r=(n.stepData,n.settings),o=1.3*a.perspectiveScale<n.current.perspectiveScale,c=a.perspectiveScale>1.3*n.current.perspectiveScale,l=-1;e.each(a.transform,function(e,t){if(!(t.length<=1||"rotate"===t[0]&&t[1]%360==0&&t[2]%360==0&&t[3]%360==0))return"scale"===t[0]&&void(l=e)}),l!==n.current.oldLastScale&&(o=c=!1,n.current.oldLastScale=l);var u=[];if(-1!==l)for(;l>=0;)"scale"===a.transform[l][0]&&(u.push(a.transform[l]),a.transform[l]=["scale"]),l--;var f=r.animation;r.reasonableAnimation[n.reason]&&(f=e.extend({},f,r.reasonableAnimation[n.reason])),i={perspective:Math.round(1e3*a.perspectiveScale)+"px"},i=e.extend({},f,i),o||(i.transitionDelay="0s"),n.beforeActive||(i.transitionDuration="0s",i.transitionDelay="0s"),e.jmpress("css",n.area,i),s.transform(n.area,u),i=e.extend({},f),c||(i.transitionDelay="0s"),n.beforeActive||(i.transitionDuration="0s",i.transitionDelay="0s"),n.current.perspectiveScale=a.perspectiveScale,e.jmpress("css",n.canvas,i),s.transform(n.canvas,a.transform)})}(jQuery,document,window),function(e){"use strict";var t=e.jmpress,n="activeClass",s="nestedActiveClass",i=t("defaults");i[s]="nested-active",i[n]="active",t("setInactive",function(t,i){var a=i.settings,r=a[n],o=a[s];r&&e(t).removeClass(r),o&&e.each(i.parents,function(t,n){e(n).removeClass(o)})}),t("setActive",function(t,i){var a=i.settings,r=a[n],o=a[s];r&&e(t).addClass(r),o&&e.each(i.parents,function(t,n){e(n).addClass(o)})})}(jQuery,document,window),function(e){"use strict";var t=e.jmpress;function n(t,n){return e(this).find(n.settings.stepSelector).first()}function s(t,n,s,i){if(!n)return!1;var a=s.settings.stepSelector;n=e(n);do{var r=n.near(a,i);if(0!==r.length&&0!==r.closest(t).length||(r=e(t).find(a)[i?"last":"first"]()),!r.length)return!1;n=r}while(n.data("stepData").exclude);return n}t("initStep",function(e,t){t.stepData.exclude=t.data.exclude&&-1===["false","no"].indexOf(t.data.exclude)}),t("selectInitialStep",n),t("selectHome",n),t("selectEnd",function(t,n){return e(this).find(n.settings.stepSelector).last()}),t("selectPrev",function(e,t){return s(this,e,t,!0)}),t("selectNext",function(e,t){return s(this,e,t)})}(jQuery,document,window),function(e){"use strict";e.jmpress("selectInitialStep",function(e,t){return t.settings.start})}(jQuery,document,window),function(e){"use strict";var t=e.jmpress;function n(t,n,s){for(var i=0;i<n.length-1;i++){var a=n[i],r=n[i+1];e(t).jmpress("initialized")?e(a,t).data("stepData")[s]=r:e(a,t).attr("data-"+s,r)}}function s(t,n,s,i){var a=n.stepData;if(a[s]){var r=e(t).near(a[s],i);if(r&&r.length)return r;if((r=e(a[s],this)[i?"last":"first"]())&&r.length)return r}}t("register","route",function(e,t,s){"string"==typeof e&&(e=[e,e]),n(this,e,s?"prev":"next"),t||n(this,e.reverse(),s?"next":"prev")}),t("initStep",function(e,t){for(var n in{next:1,prev:1})t.stepData[n]=t.data[n]}),t("selectNext",function(e,t){return s.call(this,e,t,"next")}),t("selectPrev",function(e,t){return s.call(this,e,t,"prev",!0)})}(jQuery,document,window),function(e){"use strict";var t=e.jmpress,n="ajax:afterStepLoaded",s="ajax:loadStep";t("register",s),t("register",n),t("defaults").ajaxLoadedClass="loaded",t("initStep",function(t,n){n.stepData.src=e(t).attr("href")||n.data.src||!1,n.stepData.srcLoaded=!1}),t(s,function(t,s){var i=s.stepData,a=i&&i.src,r=s.settings;a&&(e(t).addClass(r.ajaxLoadedClass),i.srcLoaded=!0,e(t).load(a,function(i,a,r){e(s.jmpress).jmpress("fire",n,t,e.extend({},s,{response:i,status:a,xhr:r}))}))}),t("idle",function(t,n){if(t){var i=n.settings,a=e(this);n.stepData;e(t).add(e(t).near(i.stepSelector)).add(e(t).near(i.stepSelector,!0)).add(a.jmpress("fire","selectPrev",t,{stepData:e(t).data("stepData")})).add(a.jmpress("fire","selectNext",t,{stepData:e(t).data("stepData")})).each(function(){var t=this,n=e(t).data("stepData");n.src&&!n.srcLoaded&&a.jmpress("fire",s,t,{stepData:e(t).data("stepData")})})}}),t("setActive",function(t,n){var i=e(t).data("stepData");i.src&&!i.srcLoaded&&e(this).jmpress("fire",s,t,{stepData:e(t).data("stepData")})})}(jQuery,document,window),function(e,t,n){"use strict";var s=e.jmpress,i="a[href^=#]";function a(t){try{var s=e("#"+n.location.hash.replace(/^#\/?/,""));return s.length>0&&s.is(t.stepSelector)?s:void 0}catch(e){}}
2226function r(e){var t="#/"+e;n.history&&n.history.pushState?n.location.hash!==t&&n.history.pushState({},"",t):n.location.hash!==t&&(n.location.hash=t)}s("defaults").hash={use:!0,update:!0,bindChange:!0},s("selectInitialStep",function(t,s){var o=s.settings,c=o.hash,l=s.current,u=e(this);if(s.current.hashNamespace=".jmpress-"+Math.round(1e5*Math.random(),0),c.use)return c.bindChange&&(e(n).bind("hashchange"+l.hashNamespace,function(e){var t=a(o);u.jmpress("initialized")&&u.jmpress("scrollFix"),t&&t.length&&(t.attr("id")!==u.jmpress("active").attr("id")&&u.jmpress("select",t),r(t.attr("id"))),e.preventDefault()}),e(i).on("click"+l.hashNamespace,function(t){var n=e(this).attr("href");try{e(n).is(o.stepSelector)&&(u.jmpress("select",n),t.preventDefault(),t.stopPropagation())}catch(e){}})),a(o)}),s("afterDeinit",function(t,s){e(i).off(s.current.hashNamespace),e(n).unbind(s.current.hashNamespace)}),s("setActive",function(t,n){var s=n.settings,i=n.current;s.hash.use&&s.hash.update&&(clearTimeout(i.hashtimeout),i.hashtimeout=setTimeout(function(){r(e(n.delegatedFrom).attr("id"))},s.transitionDuration+200))})}(jQuery,document,window),function(e,t){"use strict";var n=e.jmpress,s="next",i="prev";function a(e){e.preventDefault(),e.stopPropagation()}n("defaults").keyboard={use:!0,keys:{33:i,37:i,38:i,9:s+":"+i,32:s,34:s,39:s,40:s,36:"home",35:"end"},ignore:{INPUT:[32,37,38,39,40],TEXTAREA:[32,37,38,39,40],SELECT:[38,40]},tabSelector:"a[href]:visible, :input:visible"},n("afterInit",function(n,s){var i=s.settings,r=i.keyboard,o=r.ignore,c=s.current,l=e(this);i.fullscreen||l.attr("tabindex",0),c.keyboardNamespace=".jmpress-"+Math.round(1e5*Math.random(),0),e(i.fullscreen?t:l).bind("keypress"+c.keyboardNamespace,function(e){for(var t in o)if(e.target.nodeName===t&&-1!==o[t].indexOf(e.which))return;(e.which>=37&&e.which<=40||32===e.which)&&a(e)}),e(i.fullscreen?t:l).bind("keydown"+c.keyboardNamespace,function(t){var n=e(t.target);if((i.fullscreen||n.closest(l).length)&&r.use){for(var s in o)if(n[0].nodeName===s&&-1!==o[s].indexOf(t.which))return;var c,u=!1;if(9===t.which){if(n.closest(l.jmpress("active")).length?(c=n.near(r.tabSelector,t.shiftKey),e(c).closest(i.stepSelector).is(l.jmpress("active"))||(c=void 0)):t.shiftKey?u=!0:c=l.jmpress("active").find("a[href], :input").filter(":visible").first(),c&&c.length>0)return c.focus(),l.jmpress("scrollFix"),void a(t);t.shiftKey&&(u=!0)}var f=r.keys[t.which];"string"==typeof f?(-1!==f.indexOf(":")&&(f=f.split(":"),f=t.shiftKey?f[1]:f[0]),l.jmpress(f),a(t)):e.isFunction(f)?f.call(l,t):f&&(l.jmpress.apply(l,f),a(t)),u&&((c=l.jmpress("active").find("a[href], :input").filter(":visible").last()).focus(),l.jmpress("scrollFix"))}})}),n("afterDeinit",function(n,s){e(t).unbind(s.current.keyboardNamespace)})}(jQuery,document,window),function(e,t,n){"use strict";var s,i=(s=navigator.userAgent.toLowerCase(),(/(chrome)[ \/]([\w.]+)/.exec(s)||/(webkit)[ \/]([\w.]+)/.exec(s)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(s)||/(msie) ([\w.]+)/.exec(s)||s.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(s)||[])[1]||""),a=e.jmpress("defaults");a.viewPort={width:!1,height:!1,maxScale:0,minScale:0,zoomable:0,zoomBindMove:!0,zoomBindWheel:!0};var r=a.keyboard.keys;function o(e,t){return Math.max(Math.min(e,t),-t)}function c(t,n,s){var i=e(this).jmpress("current"),a=e(this).jmpress("settings"),r=e(this).jmpress("active").data("stepData"),c=e(this).jmpress("container");if(!(0===i.userZoom&&s<0)){var l=r.viewPortZoomable||a.viewPort.zoomable;if(!(i.userZoom===l&&s>0)){i.userZoom+=s;var u=e(c).innerWidth()/2,f=e(c).innerHeight()/2;t=t?t-u:t,n=n?n-f:n,i.userTranslateX=o(i.userTranslateX-s*t/i.zoomOriginWindowScale/l,u*i.userZoom*i.userZoom/l),i.userTranslateY=o(i.userTranslateY-s*n/i.zoomOriginWindowScale/l,f*i.userZoom*i.userZoom/l),e(this).jmpress("reselect","zoom")}}}r["mozilla"===i?107:187]="zoomIn",r["mozilla"===i?109:189]="zoomOut",a.reasonableAnimation.resize={transitionDuration:"0s",transitionDelay:"0ms"},a.reasonableAnimation.zoom={transitionDuration:"0s",transitionDelay:"0ms"},e.jmpress("initStep",function(e,t){for(var n in{viewPortHeight:1,viewPortWidth:1,viewPortMinScale:1,viewPortMaxScale:1,viewPortZoomable:1})t.stepData[n]=t.data[n]&&parseFloat(t.data[n])}),e.jmpress("afterInit",function(s,i){var a=this;i.current.viewPortNamespace=".jmpress-"+Math.round(1e5*Math.random(),0),e(n).bind("resize"+i.current.viewPortNamespace,function(t){e(a).jmpress("reselect","resize")}),i.current.userZoom=0,i.current.userTranslateX=0,i.current.userTranslateY=0,i.settings.viewPort.zoomBindWheel&&e(i.settings.fullscreen?t:this).bind("mousewheel"+i.current.viewPortNamespace+" DOMMouseScroll"+i.current.viewPortNamespace,function(t,n){var s=(n=n||t.originalEvent.wheelDelta||-t.originalEvent.detail)/Math.abs(n);return s<0?e(i.jmpress).jmpress("zoomOut",t.originalEvent.x,t.originalEvent.y):s>0&&e(i.jmpress).jmpress("zoomIn",t.originalEvent.x,t.originalEvent.y),!1}),i.settings.viewPort.zoomBindMove&&e(i.settings.fullscreen?t:this).bind("mousedown"+i.current.viewPortNamespace,function(e){i.current.userZoom&&(i.current.userTranslating={x:e.clientX,y:e.clientY},e.preventDefault(),e.stopImmediatePropagation())}).bind("mousemove"+i.current.viewPortNamespace,function(t){var n=i.current.userTranslating;n&&(e(a).jmpress("zoomTranslate",t.clientX-n.x,t.clientY-n.y),n.x=t.clientX,n.y=t.clientY,t.preventDefault(),t.stopImmediatePropagation())}).bind("mouseup"+i.current.viewPortNamespace,function(e){i.current.userTranslating&&(i.current.userTranslating=void 0,e.preventDefault(),e.stopImmediatePropagation())})}),e.jmpress("register","zoomIn",function(e,t){c.call(this,e||0,t||0,1)}),e.jmpress("register","zoomOut",function(e,t){c.call(this,e||0,t||0,-1)}),e.jmpress("register","zoomTranslate",function(t,n){var s=e(this).jmpress("current"),i=e(this).jmpress("settings"),a=e(this).jmpress("active").data("stepData"),r=e(this).jmpress("container"),c=a.viewPortZoomable||i.viewPort.zoomable,l=e(r).innerWidth(),u=e(r).innerHeight();s.userTranslateX=o(s.userTranslateX+t/s.zoomOriginWindowScale,l*s.userZoom*s.userZoom/c),s.userTranslateY=o(s.userTranslateY+n/s.zoomOriginWindowScale,u*s.userZoom*s.userZoom/c),e(this).jmpress("reselect","zoom")}),e.jmpress("afterDeinit",function(s,i){e(i.settings.fullscreen?t:this).unbind(i.current.viewPortNamespace),e(n).unbind(i.current.viewPortNamespace)}),e.jmpress("setActive",function(t,n){var s=n.settings.viewPort,i=n.stepData.viewPortHeight||s.height,a=n.stepData.viewPortWidth||s.width,r=n.stepData.viewPortMaxScale||s.maxScale,o=n.stepData.viewPortMinScale||s.minScale,c=i&&e(n.container).innerHeight()/i,l=a&&e(n.container).innerWidth()/a,u=(l||c)&&Math.min(l||c,c||l);if(u){u=u||1,r&&(u=Math.min(u,r)),o&&(u=Math.max(u,o));var f=n.stepData.viewPortZoomable||n.settings.viewPort.zoomable;if(f){var p=1/u-1/r;u=1/(1/u-(p/=f)*n.current.userZoom)}n.target.transform.reverse(),n.current.userTranslateX&&n.current.userTranslateY?n.target.transform.push(["translate",n.current.userTranslateX,n.current.userTranslateY,0]):n.target.transform.push(["translate"]),n.target.transform.push(["scale",u,u,1]),n.target.transform.reverse(),n.target.perspectiveScale/=u}n.current.zoomOriginWindowScale=u}),e.jmpress("setInactive",function(t,n){n.nextStep&&t&&e(n.nextStep).attr("id")===e(t).attr("id")||(n.current.userZoom=0,n.current.userTranslateX=0,n.current.userTranslateY=0)})}(jQuery,document,window),function(e){"use strict";var t=e.jmpress;t("defaults").mouse={clickSelects:!0},t("afterInit",function(t,n){var s=n.settings,i=s.stepSelector,a=n.current,r=e(this);a.clickableStepsNamespace=".jmpress-"+Math.round(1e5*Math.random(),0),r.bind("click"+a.clickableStepsNamespace,function(t){if(s.mouse.clickSelects&&
2226!a.userZoom){var n=e(t.target).closest(i);n.is(r.jmpress("active"))||n.length&&(r.jmpress("select",n[0],"click"),t.preventDefault(),t.stopPropagation())}})}),t("afterDeinit",function(t,n){e(this).unbind(n.current.clickableStepsNamespace)})}(jQuery,document,window),function(e,t){"use strict";var n=e.jmpress;n("afterInit",function(n,s){var i=s.settings,a=s.current,r=s.jmpress;a.mobileNamespace=".jmpress-"+Math.round(1e5*Math.random(),0);var o,c=[0,0];e(i.fullscreen?t:r).bind("touchstart"+a.mobileNamespace,function(e){o=e.originalEvent.touches[0],c=[o.pageX,o.pageY]}).bind("touchmove"+a.mobileNamespace,function(e){return o=e.originalEvent.touches[0],e.preventDefault(),!1}).bind("touchend"+a.mobileNamespace,function(t){var n=[o.pageX,o.pageY],s=[n[0]-c[0],n[1]-c[1]];if(Math.max(Math.abs(s[0]),Math.abs(s[1]))>50)return s=Math.abs(s[0])>Math.abs(s[1])?s[0]:s[1],e(r).jmpress(s>0?"prev":"next"),t.preventDefault(),!1})}),n("afterDeinit",function(n,s){var i=s.settings,a=s.current,r=s.jmpress;e(i.fullscreen?t:r).unbind(a.mobileNamespace)})}(jQuery,document,window),function(e){"use strict";var t=e.jmpress,n="_template_",s="_applied_template_",i={};function a(t,n,s){for(var i in n){var r=i;s&&(r=s+r.substr(0,1).toUpperCase()+r.substr(1)),e.isPlainObject(n[i])?a(t,n[i],r):void 0===t[r]&&(t[r]=n[i])}}function r(t,s){e.isArray(s)?s.length<t.length?e.error("more nested steps than children in template"):t.each(function(t,i){var r=(i=e(i)).data(n)||{};a(r,s[t]),i.data(n,r)}):e.isFunction(s)&&t.each(function(i,r){var o=(r=e(r)).data(n)||{};a(o,s(i,r,t)),r.data(n,o)})}function o(e,t,n,s){n.children&&r(t.children(s.settings.stepSelector),n.children);!function(e,t){a(e,t)}(e,n)}t("beforeInitStep",function(t,a){t=e(t);var r=a.data,c=r.template,l=t.data(s),u=t.data(n);c&&e.each(c.split(" "),function(e,n){var s=i[n];o(r,t,s,a)}),l&&o(r,t,l,a),u&&(o(r,t,u,a),t.data(n,null),u.template&&e.each(u.template.split(" "),function(e,n){var s=i[n];o(r,t,s,a)}))}),t("beforeInit",function(n,s){var a=t("dataset",this).template,o=s.settings.stepSelector;if(a){var c=i[a];r(e(this).find(o).filter(function(){return!e(this).parent().is(o)}),c.children)}}),t("register","template",function(t,n){i[t]?i[t]=e.extend(!0,{},i[t],n):i[t]=e.extend(!0,{},n)}),t("register","apply",function(t,n){if(n)if(e.isArray(n))r(e(t),n);else{var o;o="string"==typeof n?i[n]:e.extend(!0,{},n),e(t).each(function(t,n){var i=(n=e(n)).data(s)||{};a(i,o),n.data(s,i)})}else{var c=e(this).jmpress("settings").stepSelector;r(e(this).find(c).filter(function(){return!e(this).parent().is(c)}),t)}})}(jQuery,document,window),function(e){"use strict";e.jmpress("setActive",function(t,n){n.prevStep!==t&&e(t).triggerHandler("enterStep")}),e.jmpress("setInactive",function(t,n){n.nextStep!==t&&e(t).triggerHandler("leaveStep")})}(jQuery,document,window),function(e,t,n,s){"use strict";function i(t,n,s,i){i=i||t.length-1;for(var a=s=s||0;a<i+1;a++)if(e(t[a].element).is(n))return a}function a(t,n,s){e.each(n._on,function(e,n){t.push({substep:n.substep,delay:n.delay+s}),a(t,n.substep,n.delay+s)})}e.jmpress("defaults").customAnimationDataAttribute="jmpress",e.jmpress("afterInit",function(e,t){t.current.animationTimeouts=[],t.current.animationCleanupWaiting=[]}),e.jmpress("applyStep",function(t,n){var r={},o=[];if(e(t).find("[data-"+n.settings.customAnimationDataAttribute+"]").each(function(s,i){e(i).closest(n.settings.stepSelector).is(t)&&o.push({element:i})}),0!==o.length){e.each(o,function(t,s){s.info=function(t){for(var n=t.split(" "),s=n[0],i={willClass:"will-"+s,doClass:"do-"+s,hasClass:"has-"+s},a="",r=1;r<n.length;r++){var o=n[r];switch(a){case"":"after"===o?a="after":e.warn("unknown keyword in '"+t+"'. '"+o+"' unknown.");break;case"after":if(o.match(/^[1-9][0-9]*m?s?/)){var c=parseFloat(o);-1!==o.indexOf("ms")?c*=1:-1!==o.indexOf("s")?c*=1e3:-1!==o.indexOf("m")&&(c*=6e4),i.delay=c}else i.after=Array.prototype.slice.call(n,r).join(" "),r=n.length}}return i}(e(s.element).data(n.settings.customAnimationDataAttribute)),e(s.element).addClass(s.info.willClass),s._on=[],s._after=null});var c={_after:s,_on:[],info:{}};if(e.each(o,function(e,t){var n=t.info.after;if(n)if("step"===n)n=c;else if("prev"===n)n=o[e-1];else{var a=i(o,n,0,e-1);a===s&&(a=i(o,n)),n=a===s||a===e?o[e-1]:o[a]}else n=o[e-1];if(n){if(!t.info.delay){if(!n._after)return void(n._after=t);n=n._after}n._on.push({substep:t,delay:t.info.delay||0})}}),c._after===s&&0===c._on.length){var l=i(o,n.stepData.startSubstep)||0;c._after=o[l]}var u=[];do{var f=[{substep:c,delay:0}];a(f,c,0),u.push(f),c=null,e.each(f,p)}while(c);r.list=u,e(t).data("substepsData",r)}function p(e,t){if(t.substep._after)return c=t.substep._after,!1}}),e.jmpress("unapplyStep",function(t,n){var s=e(t).data("substepsData");s&&e.each(s.list,function(t,n){e.each(n,function(t,n){n.substep.info.willClass&&e(n.substep.element).removeClass(n.substep.info.willClass),n.substep.info.hasClass&&e(n.substep.element).removeClass(n.substep.info.hasClass),n.substep.info.doClass&&e(n.substep.element).removeClass(n.substep.info.doClass)})})}),e.jmpress("setActive",function(t,n){var i=e(t).data("substepsData");if(i){n.substep===s&&(n.substep="prev"===n.reason?i.list.length-1:0);var a=n.substep;e.each(n.current.animationTimeouts,function(e,t){clearTimeout(t)}),n.current.animationTimeouts=[],e.each(i.list,function(t,s){var i=t<a,r=t<=a;e.each(s,function(t,s){s.substep.info.hasClass&&e(s.substep.element)[(i?"add":"remove")+"Class"](s.substep.info.hasClass),r&&!i&&s.delay&&"prev"!==n.reason?s.substep.info.doClass&&(e(s.substep.element).removeClass(s.substep.info.doClass),n.current.animationTimeouts.push(setTimeout(function(){e(s.substep.element).addClass(s.substep.info.doClass)},s.delay))):s.substep.info.doClass&&e(s.substep.element)[(r?"add":"remove")+"Class"](s.substep.info.doClass)})})}}),e.jmpress("setInactive",function(t,n){if(n.nextStep!==t){e.each(n.current.animationCleanupWaiting,function(t,n){!function(t){e.each(t.list,function(t,n){e.each(n,function(t,n){n.substep.info.hasClass&&e(n.substep.element).removeClass(n.substep.info.hasClass),n.substep.info.doClass&&e(n.substep.element).removeClass(n.substep.info.doClass)})})}(n)}),n.current.animationCleanupWaiting=[];var s=e(t).data("substepsData");s&&n.current.animationCleanupWaiting.push(s)}}),e.jmpress("selectNext",function(t,n){if(n.substep!==s){var i=e(t).data("substepsData");
2226if(i)return n.substep<i.list.length-1?{step:t,substep:n.substep+1}:void 0}}),e.jmpress("selectPrev",function(t,n){if(n.substep!==s&&e(t).data("substepsData"))return n.substep>0?{step:t,substep:n.substep-1}:void 0})}(jQuery,document,window)},5896(e,t,n){var s,i,a;i=[n(428)],s=function(e,t){"use strict";var n="3.0.3";function s(t){e.fn.cycle.debug&&i(t)}function i(){window.console&&console.log&&console.log("[cycle] "+Array.prototype.join.call(arguments," "))}function a(t,n,s){var i=e(t).data("cycle.opts");if(i){var a=!!t.cyclePause;a&&i.paused?i.paused(t,i,n,s):!a&&i.resumed&&i.resumed(t,i,n,s)}}function r(n,s,r){if(n.cycleStop===t&&(n.cycleStop=0),s!==t&&null!==s||(s={}),s.constructor==String){switch(s){case"destroy":case"stop":var o=e(n).data("cycle.opts");return!!o&&(n.cycleStop++,n.cycleTimeout&&clearTimeout(n.cycleTimeout),n.cycleTimeout=0,o.elements&&e(o.elements).stop(),e(n).removeData("cycle.opts"),"destroy"==s&&c(n,o),!1);case"toggle":return n.cyclePause=1===n.cyclePause?0:1,u(n.cyclePause,r,n),a(n),!1;case"pause":return n.cyclePause=1,a(n),!1;case"resume":return n.cyclePause=0,u(!1,r,n),a(n),!1;case"prev":case"next":return(o=e(n).data("cycle.opts"))?("string"==typeof r&&(o.oneTimeFx=r),e.fn.cycle[s](o),!1):(i('options not found, "prev/next" ignored'),!1);default:s={fx:s}}return s}if(s.constructor==Number){var l=s;return(s=e(n).data("cycle.opts"))?l<0||l>=s.elements.length?(i("invalid slide index: "+l),!1):(s.nextSlide=l,n.cycleTimeout&&(clearTimeout(n.cycleTimeout),n.cycleTimeout=0),"string"==typeof r&&(s.oneTimeFx=r),d(s.elements,s,1,l>=s.currSlide),!1):(i("options not found, can not advance slide"),!1)}return s;function u(t,n,s){if(!t&&!0===n){var a=e(s).data("cycle.opts");if(!a)return i("options not found, can not resume"),!1;s.cycleTimeout&&(clearTimeout(s.cycleTimeout),s.cycleTimeout=0),d(a.elements,a,1,!a.backwards)}}}function o(t,n){if(!e.support.opacity&&n.cleartype&&t.style.filter)try{t.style.removeAttribute("filter")}catch(e){}}function c(t,n){n.next&&e(n.next).unbind(n.prevNextEvent),n.prev&&e(n.prev).unbind(n.prevNextEvent),(n.pager||n.pagerAnchorBuilder)&&e.each(n.pagerAnchors||[],function(){this.unbind().remove()}),n.pagerAnchors=null,e(t).unbind("mouseenter.cycle mouseleave.cycle"),n.destroy&&n.destroy(n)}function l(n,s,r,c,l){var h,g=e.extend({},e.fn.cycle.defaults,c||{},e.metadata?n.metadata():e.meta?n.data():{}),x=e.isFunction(n.data)?n.data(g.metaAttr):null;x&&(g=e.extend(g,x)),g.autostop&&(g.countdown=g.autostopCount||r.length);var b=n[0];if(n.data("cycle.opts",g),g.$cont=n,g.stopCount=b.cycleStop,g.elements=r,g.before=g.before?[g.before]:[],g.after=g.after?[g.after]:[],!e.support.opacity&&g.cleartype&&g.after.push(function(){o(this,g)}),g.continuous&&g.after.push(function(){d(r,g,0,!g.backwards)}),u(g),e.support.opacity||!g.cleartype||g.cleartypeNoBg||y(s),"static"==n.css("position")&&n.css("position","relative"),g.width&&n.width(g.width),g.height&&"auto"!=g.height&&n.height(g.height),g.startingSlide!==t?(g.startingSlide=parseInt(g.startingSlide,10),g.startingSlide>=r.length||g.startSlide<0?g.startingSlide=0:h=!0):g.backwards?g.startingSlide=r.length-1:g.startingSlide=0,g.random){g.randomMap=[];for(var w=0;w<r.length;w++)g.randomMap.push(w);if(g.randomMap.sort(function(e,t){return Math.random()-.5}),h)for(var S=0;S<r.length;S++)g.startingSlide==g.randomMap[S]&&(g.randomIndex=S);else g.randomIndex=1,g.startingSlide=g.randomMap[1]}else g.startingSlide>=r.length&&(g.startingSlide=0);g.currSlide=g.startingSlide||0;var I=g.startingSlide;if(s.css({position:"absolute",top:0,left:0}).hide().each(function(t){var n;n=g.backwards?I?t<=I?r.length+(t-I):I-t:r.length-t:I?t>=I?r.length-(t-I):I-t:r.length-t,e(this).css("z-index",n)}),e(r[I]).css("opacity",1).show(),o(r[I],g),g.fit&&(g.aspect?s.each(function(){var t=e(this),n=!0===g.aspect?t.width()/t.height():g.aspect;g.width&&t.width()!=g.width&&(t.width(g.width),t.height(g.width/n)),g.height&&t.height()<g.height&&(t.height(g.height),t.width(g.height*n))}):(g.width&&s.width(g.width),g.height&&"auto"!=g.height&&s.height(g.height))),!g.center||g.fit&&!g.aspect||s.each(function(){var t=e(this);t.css({"margin-left":g.width?(g.width-t.width())/2+"px":0,"margin-top":g.height?(g.height-t.height())/2+"px":0})}),!g.center||g.fit||g.slideResize||s.each(function(){var t=e(this);t.css({"margin-left":g.width?(g.width-t.width())/2+"px":0,"margin-top":g.height?(g.height-t.height())/2+"px":0})}),(g.containerResize||g.containerResizeHeight)&&n.innerHeight()<1){for(var j=0,C=0,D=0;D<r.length;D++){var T=e(r[D]),B=T[0],O=T.outerWidth(),P=T.outerHeight();O||(O=B.offsetWidth||B.width||T.attr("width")),P||(P=B.offsetHeight||B.height||T.attr("height")),j=O>j?O:j,C=P>C?P:C}g.containerResize&&j>0&&C>0&&n.css({width:j+"px",height:C+"px"}),g.containerResizeHeight&&C>0&&n.css({height:C+"px"})}var A=!1;if(g.pause&&n.bind("mouseenter.cycle",function(){A=!0,this.cyclePause++,a(b,!0)}).bind("mouseleave.cycle",function(){A&&this.cyclePause--,a(b,!0)}),!1===f(g))return!1;var k=!1;if(c.requeueAttempts=c.requeueAttempts||0,s.each(function(){var t=e(this);if(this.cycleH=g.fit&&g.height?g.height:t.height()||this.offsetHeight||this.height||t.attr("height")||0,this.cycleW=g.fit&&g.width?g.width:t.width()||this.offsetWidth||this.width||t.attr("width")||0,t.is("img")&&0===this.cycleH&&0===this.cycleW&&!this.complete){if(l.s&&g.requeueOnImageNotLoaded&&++c.requeueAttempts<100)return i(c.requeueAttempts," - img slide not loaded, requeuing slideshow: ",this.src,this.cycleW,this.cycleH),setTimeout(function(){e(l.s,l.c).cycle(c)},g.requeueTimeout),k=!0,!1;i("could not determine size of image: "+this.src,this.cycleW,this.cycleH)}return!0}),k)return!1;if(g.cssBefore=g.cssBefore||{},g.cssAfter=g.cssAfter||{},g.cssFirst=g.cssFirst||{},g.animIn=g.animIn||{},g.animOut=g.animOut||{},s.not(":eq("+I+")").css(g.cssBefore),e(s[I]).css(g.cssFirst),g.timeout){g.timeout=parseInt(g.timeout,10),g.speed.constructor==String&&(g.speed=e.fx.speeds[g.speed]||parseInt(g.speed,10)),g.sync||(g.speed=g.speed/2);for(var M="none"==g.fx?0:"shuffle"==g.fx?500:250;g.timeout-g.speed<M;)g.timeout+=g.speed}if(g.easing&&(g.easeIn=g.easeOut=g.easing),g.speedIn||(g.speedIn=g.speed),g.speedOut||(g.speedOut=g.speed),g.slideCount=r.length,g.currSlide=g.lastSlide=I,g.random?(++g.randomIndex==r.length&&(g.randomIndex=0),g.nextSlide=g.randomMap[g.randomIndex]):g.backwards?g.nextSlide=0===g.startingSlide?r.length-1:g.startingSlide-1:g.nextSlide=g.startingSlide>=r.length-1?0:g.startingSlide+1,!g.multiFx){var F=e.fn.cycle.transitions[g.fx];if(e.isFunction(F))F(n,s,g);else if("custom"!=g.fx&&!g.multiFx)return i("unknown transition: "+g.fx,"; slideshow terminating"),!1}var z=s[I];
vendor: 4,353 bytes, line 2226
2226return g.skipInitializationCallbacks||(g.before.length&&g.before[0].apply(z,[z,z,g,!0]),g.after.length&&g.after[0].apply(z,[z,z,g,!0])),g.next&&e(g.next).bind(g.prevNextEvent,function(){return m(g,1)}),g.prev&&e(g.prev).bind(g.prevNextEvent,function(){return m(g,0)}),(g.pager||g.pagerAnchorBuilder)&&v(r,g),p(g,r),g}function u(t){t.original={before:[],after:[]},t.original.cssBefore=e.extend({},t.cssBefore),t.original.cssAfter=e.extend({},t.cssAfter),t.original.animIn=e.extend({},t.animIn),t.original.animOut=e.extend({},t.animOut),e.each(t.before,function(){t.original.before.push(this)}),e.each(t.after,function(){t.original.after.push(this)})}function f(t){var n,a,r=e.fn.cycle.transitions;if(t.fx.indexOf(",")>0){for(t.multiFx=!0,t.fxs=t.fx.replace(/\s*/g,"").split(","),n=0;n<t.fxs.length;n++){var o=t.fxs[n];(a=r[o])&&r.hasOwnProperty(o)&&e.isFunction(a)||(i("discarding unknown transition: ",o),t.fxs.splice(n,1),n--)}if(!t.fxs.length)return i("No valid transitions named; slideshow terminating."),!1}else if("all"==t.fx)for(var c in t.multiFx=!0,t.fxs=[],r)r.hasOwnProperty(c)&&(a=r[c],r.hasOwnProperty(c)&&e.isFunction(a)&&t.fxs.push(c));if(t.multiFx&&t.randomizeEffects){var l=Math.floor(20*Math.random())+30;for(n=0;n<l;n++){var u=Math.floor(Math.random()*t.fxs.length);t.fxs.push(t.fxs.splice(u,1)[0])}s("randomized fx sequence: ",t.fxs)}return!0}function p(t,n){t.addSlide=function(s,i){var a=e(s),r=a[0];t.autostopCount||t.countdown++,n[i?"unshift":"push"](r),t.els&&t.els[i?"unshift":"push"](r),t.slideCount=n.length,t.random&&(t.randomMap.push(t.slideCount-1),t.randomMap.sort(function(e,t){return Math.random()-.5})),a.css("position","absolute"),a[i?"prependTo":"appendTo"](t.$cont),i&&(t.currSlide++,t.nextSlide++),e.support.opacity||!t.cleartype||t.cleartypeNoBg||y(a),t.fit&&t.width&&a.width(t.width),t.fit&&t.height&&"auto"!=t.height&&a.height(t.height),r.cycleH=t.fit&&t.height?t.height:a.height(),r.cycleW=t.fit&&t.width?t.width:a.width(),a.css(t.cssBefore),(t.pager||t.pagerAnchorBuilder)&&e.fn.cycle.createPagerAnchor(n.length-1,r,e(t.pager),n,t),e.isFunction(t.onAddSlide)?t.onAddSlide(a):a.hide()}}function d(n,i,a,r){var o=i.$cont[0],c=n[i.currSlide],l=n[i.nextSlide];if(a&&i.busy&&i.manualTrump&&(s("manualTrump in go(), stopping active transition"),e(n).stop(!0,!0),i.busy=0,clearTimeout(o.cycleTimeout)),i.busy)s("transition active, ignoring new tx request");else if(o.cycleStop==i.stopCount&&(0!==o.cycleTimeout||a))if(a||o.cyclePause||i.bounce||!(i.autostop&&--i.countdown<=0||i.nowrap&&!i.random&&i.nextSlide<i.currSlide)){var u,f=!1;if(!a&&o.cyclePause||i.nextSlide==i.currSlide)v();else{f=!0;var p=i.fx;c.cycleH=c.cycleH||e(c).height(),c.cycleW=c.cycleW||e(c).width(),l.cycleH=l.cycleH||e(l).height(),l.cycleW=l.cycleW||e(l).width(),i.multiFx&&(r&&(i.lastFx===t||++i.lastFx>=i.fxs.length)?i.lastFx=0:!r&&(i.lastFx===t||--i.lastFx<0)&&(i.lastFx=i.fxs.length-1),p=i.fxs[i.lastFx]),i.oneTimeFx&&(p=i.oneTimeFx,i.oneTimeFx=null),e.fn.cycle.resetState(i,p),i.before.length&&e.each(i.before,function(e,t){o.cycleStop==i.stopCount&&t.apply(l,[c,l,i,r])});var m=function(){i.busy=0,e.each(i.after,function(e,t){o.cycleStop==i.stopCount&&t.apply(l,[c,l,i,r])}),o.cycleStop||v()};s("tx firing("+p+"); currSlide: "+i.currSlide+"; nextSlide: "+i.nextSlide),i.busy=1,i.fxFn?i.fxFn(c,l,i,m,r,a&&i.fastOnEvent):e.isFunction(e.fn.cycle[i.fx])?e.fn.cycle[i.fx](c,l,i,m,r,a&&i.fastOnEvent):e.fn.cycle.custom(c,l,i,m,r,a&&i.fastOnEvent)}(f||i.nextSlide==i.currSlide)&&(i.lastSlide=i.currSlide,i.random?(i.currSlide=i.nextSlide,++i.randomIndex==n.length&&(i.randomIndex=0,i.randomMap.sort(function(e,t){return Math.random()-.5})),i.nextSlide=i.randomMap[i.randomIndex],i.nextSlide==i.currSlide&&(i.nextSlide=i.currSlide==i.slideCount-1?0:i.currSlide+1)):i.backwards?(u=i.nextSlide-1<0)&&i.bounce?(i.backwards=!i.backwards,i.nextSlide=1,i.currSlide=0):(i.nextSlide=u?n.length-1:i.nextSlide-1,i.currSlide=u?0:i.nextSlide+1):(u=i.nextSlide+1==n.length)&&i.bounce?(i.backwards=!i.backwards,i.nextSlide=n.length-2,i.currSlide=n.length-1):(i.nextSlide=u?0:i.nextSlide+1,i.currSlide=u?n.length-1:i.nextSlide-1)),f&&i.pager&&i.updateActivePagerLink(i.pager,i.currSlide,i.activePagerClass)}else i.end&&i.end(i);function v(){var e=0;i.timeout,i.timeout&&!i.continuous?(e=h(n[i.currSlide],n[i.nextSlide],i,r),"shuffle"==i.fx&&(e-=i.speedOut)):i.
vendor: 5,170 bytes, line 2226
2226continuous&&o.cyclePause&&(e=10),e>0&&(o.cycleTimeout=setTimeout(function(){d(n,i,0,!i.backwards)},e))}}function h(e,t,n,i){if(n.timeoutFn){for(var a=n.timeoutFn.call(e,e,t,n,i);"none"!=n.fx&&a-n.speed<250;)a+=n.speed;if(s("calculated timeout: "+a+"; speed: "+n.speed),!1!==a)return a}return n.timeout}function m(t,n){var s=n?1:-1,i=t.elements,a=t.$cont[0],r=a.cycleTimeout;if(r&&(clearTimeout(r),a.cycleTimeout=0),t.random&&s<0)t.randomIndex--,-2==--t.randomIndex?t.randomIndex=i.length-2:-1==t.randomIndex&&(t.randomIndex=i.length-1),t.nextSlide=t.randomMap[t.randomIndex];else if(t.random)t.nextSlide=t.randomMap[t.randomIndex];else if(t.nextSlide=t.currSlide+s,t.nextSlide<0){if(t.nowrap)return!1;t.nextSlide=i.length-1}else if(t.nextSlide>=i.length){if(t.nowrap)return!1;t.nextSlide=0}var o=t.onPrevNextEvent||t.prevNextClick;return e.isFunction(o)&&o(s>0,t.nextSlide,i[t.nextSlide]),d(i,t,1,n),!1}function v(t,n){var s=e(n.pager);e.each(t,function(i,a){e.fn.cycle.createPagerAnchor(i,a,s,t,n)}),n.updateActivePagerLink(n.pager,n.startingSlide,n.activePagerClass)}function y(t){function n(e){return(e=parseInt(e,10).toString(16)).length<2?"0"+e:e}function i(t){for(;t&&"html"!=t.nodeName.toLowerCase();t=t.parentNode){var s=e.css(t,"background-color");if(s&&s.indexOf("rgb")>=0){var i=s.match(/\d+/g);return"#"+n(i[0])+n(i[1])+n(i[2])}if(s&&"transparent"!=s)return s}return"#ffffff"}s("applying clearType background-color hack"),t.each(function(){e(this).css("background-color",i(this))})}e.expr[":"].paused=function(e){return e.cyclePause},e.fn.cycle=function(t,n){var a={s:this.selector,c:this.context};return 0===this.length&&"stop"!=t?!e.isReady&&a.s?(i("DOM not ready, queuing slideshow"),e(function(){e(a.s,a.c).cycle(t,n)}),this):(i("terminating; zero elements found by selector"+(e.isReady?"":" (DOM not ready)")),this):this.each(function(){var o=r(this,t,n);if(!1!==o){o.updateActivePagerLink=o.updateActivePagerLink||e.fn.cycle.updateActivePagerLink,this.cycleTimeout&&clearTimeout(this.cycleTimeout),this.cycleTimeout=this.cyclePause=0,this.cycleStop=0;var c=e(this),u=o.slideExpr?e(o.slideExpr,this):c.children(),f=u.get();if(f.length<2)i("terminating; too few slides: "+f.length);else{var p=l(c,u,f,o,a);if(!1!==p){var m=p.continuous?10:h(f[p.currSlide],f[p.nextSlide],p,!p.backwards);m&&((m+=p.delay||0)<10&&(m=10),s("first timeout: "+m),this.cycleTimeout=setTimeout(function(){d(f,p,0,!o.backwards)},m))}}}})},e.fn.cycle.resetState=function(t,n){n=n||t.fx,t.before=[],t.after=[],t.cssBefore=e.extend({},t.original.cssBefore),t.cssAfter=e.extend({},t.original.cssAfter),t.animIn=e.extend({},t.original.animIn),t.animOut=e.extend({},t.original.animOut),t.fxFn=null,e.each(t.original.before,function(){t.before.push(this)}),e.each(t.original.after,function(){t.after.push(this)});var s=e.fn.cycle.transitions[n];e.isFunction(s)&&s(t.$cont,e(t.elements),t)},e.fn.cycle.updateActivePagerLink=function(t,n,s){e(t).each(function(){e(this).children().removeClass(s).eq(n).addClass(s)})},e.fn.cycle.next=function(e){m(e,1)},e.fn.cycle.prev=function(e){m(e,0)},e.fn.cycle.createPagerAnchor=function(t,n,i,r,o){var c;if(e.isFunction(o.pagerAnchorBuilder)?(c=o.pagerAnchorBuilder(t,n),s("pagerAnchorBuilder("+t+", el) returned: "+c)):c='<a href="#">'+(t+1)+"</a>",c){var l=e(c);if(0===l.parents("body").length){var u=[];i.length>1?(i.each(function(){var t=l.clone(!0);e(this).append(t),u.push(t[0])}),l=e(u)):l.appendTo(i)}o.pagerAnchors=o.pagerAnchors||[],o.pagerAnchors.push(l);var f=function(n){n.preventDefault(),o.nextSlide=t;var s=o.$cont[0],i=s.cycleTimeout;i&&(clearTimeout(i),s.cycleTimeout=0);var a=o.onPagerEvent||o.pagerClick;e.isFunction(a)&&a(o.nextSlide,r[o.nextSlide]),d(r,o,1,o.currSlide<t)};/mouseenter|mouseover/i.test(o.pagerEvent)?l.hover(f,function(){}):l.bind(o.pagerEvent,f),/^click/.test(o.pagerEvent)||o.allowPagerClickBubble||l.bind("click.cycle",function(){return!1});var p=o.$cont[0],h=!1;o.pauseOnPagerHover&&l.hover(function(){h=!0,p.cyclePause++,a(p,!0,!0)},function(){h&&p.cyclePause--,a(p,!0,!0)})}},e.fn.cycle.hopsFromLast=function(e,t){var n=e.lastSlide,s=e.currSlide;return t?s>n?s-n:e.slideCount-n:s<n?n-s:n+e.slideCount-s},e.fn.cycle.commonReset=function(t,n,s,i,a,r){e(s.elements).not(t).hide(),void 0===s.cssBefore.opacity&&(s.cssBefore.opacity=1),s.cssBefore.display="block",s.slideResize&&!1!==i&&n.cycleW>0&&(s.cssBefore.width=n.cycleW),s.slideResize&&!1!==a&&n.cycleH>0&&(s.cssBefore.height=n.cycleH),s.cssAfter=s.cssAfter||{},s.cssAfter.display="none",e(t).css("zIndex",s.slideCount+(!0===r?1:0)),e(n).css("zIndex",s.slideCount+(!0===r?0:1))},e.fn.cycle.custom=function(t,n,s,i,a,r){var o=e(t),c=e(n),l=s.speedIn,u=s.speedOut,f=s.easeIn,p=s.easeOut,d=s.animInDelay,h=s.animOutDelay;c.css(s.cssBefore),r&&(l=u="number"==typeof r?r:1,f=p=null);var m=function(){c.delay(d).animate(s.animIn,l,f,function(){i()})};o.delay(h).animate(s.animOut,u,p,function(){o.css(s.cssAfter),s.sync||m()}),s.sync&&m()},e.fn.cycle.transitions={fade:function(t,n,s){n.not(":eq("+s.currSlide+")").css("opacity",0),s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s),s.cssBefore.opacity=0}),s.animIn={opacity:1},s.animOut={opacity:0}
2226,s.cssBefore={top:0,left:0}}},e.fn.cycle.ver=function(){return n},e.fn.cycle.defaults={activePagerClass:"activeSlide",after:null,allowPagerClickBubble:!1,animIn:null,animInDelay:0,animOut:null,animOutDelay:0,aspect:!1,autostop:0,autostopCount:0,backwards:!1,before:null,center:null,cleartype:!e.support.opacity,cleartypeNoBg:!1,containerResize:1,containerResizeHeight:0,continuous:0,cssAfter:null,cssBefore:null,delay:0,easeIn:null,easeOut:null,easing:null,end:null,fastOnEvent:0,fit:0,fx:"fade",fxFn:null,height:"auto",manualTrump:!0,metaAttr:"cycle",next:null,nowrap:0,onPagerEvent:null,onPrevNextEvent:null,pager:null,pagerAnchorBuilder:null,pagerEvent:"click.cycle",pause:0,pauseOnPagerHover:0,prev:null,prevNextEvent:"click.cycle",random:0,randomizeEffects:1,requeueOnImageNotLoaded:!0,requeueTimeout:250,rev:0,shuffle:null,skipInitializationCallbacks:!1,slideExpr:null,slideResize:1,speed:1e3,speedIn:null,speedOut:null,startingSlide:t,sync:1,timeout:4e3,timeoutFn:null,updateActivePagerLink:null,width:null},e.fn.cycle.transitions.none=function(t,n,s){s.fxFn=function(t,n,s,i){e(n).show(),e(t).hide(),i()}},e.fn.cycle.transitions.fadeout=function(t,n,s){n.not(":eq("+s.currSlide+")").css({display:"block",opacity:1}),s.before.push(function(t,n,s,i,a,r){e(t).css("zIndex",s.slideCount+(!0!==r?1:0)),e(n).css("zIndex",s.slideCount+(!0!==r?0:1))}),s.animIn.opacity=1,s.animOut.opacity=0,s.cssBefore.opacity=1,s.cssBefore.display="block",s.cssAfter.zIndex=0},e.fn.cycle.transitions.scrollUp=function(t,n,s){t.css("overflow","hidden"),s.before.push(e.fn.cycle.commonReset);var i=t.height();s.cssBefore.top=i,s.cssBefore.left=0,s.cssFirst.top=0,s.animIn.top=0,s.animOut.top=-i},e.fn.cycle.transitions.scrollDown=function(t,n,s){t.css("overflow","hidden"),s.before.push(e.fn.cycle.commonReset);var i=t.height();s.cssFirst.top=0,s.cssBefore.top=-i,s.cssBefore.left=0,s.animIn.top=0,s.animOut.top=i},e.fn.cycle.transitions.scrollLeft=function(t,n,s){t.css("overflow","hidden"),s.before.push(e.fn.cycle.commonReset);var i=t.width();s.cssFirst.left=0,s.cssBefore.left=i,s.cssBefore.top=0,s.animIn.left=0,s.animOut.left=0-i},e.fn.cycle.transitions.scrollRight=function(t,n,s){t.css("overflow","hidden"),s.before.push(e.fn.cycle.commonReset);var i=t.width();s.cssFirst.left=0,s.cssBefore.left=-i,s.cssBefore.top=0,s.animIn.left=0,s.animOut.left=i},e.fn.cycle.transitions.scrollHorz=function(t,n,s){t.css("overflow","hidden").width(),s.before.push(function(t,n,s,i){s.rev&&(i=!i),e.fn.cycle.commonReset(t,n,s),s.cssBefore.left=i?n.cycleW-1:1-n.cycleW,s.animOut.left=i?-t.cycleW:t.cycleW}),s.cssFirst.left=0,s.cssBefore.top=0,s.animIn.left=0,s.animOut.top=0},e.fn.cycle.transitions.scrollVert=function(t,n,s){t.css("overflow","hidden"),s.before.push(function(t,n,s,i){s.rev&&(i=!i),e.fn.cycle.commonReset(t,n,s),s.cssBefore.top=i?1-n.cycleH:n.cycleH-1,s.animOut.top=i?t.cycleH:-t.cycleH}),s.cssFirst.top=0,s.cssBefore.left=0,s.animIn.top=0,s.animOut.left=0},e.fn.cycle.transitions.slideX=function(t,n,s){s.before.push(function(t,n,s){e(s.elements).not(t).hide(),e.fn.cycle.commonReset(t,n,s,!1,!0),s.animIn.width=n.cycleW}),s.cssBefore.left=0,s.cssBefore.top=0,s.cssBefore.width=0,s.animIn.width="show",s.animOut.width=0},e.fn.cycle.transitions.slideY=function(t,n,s){s.before.push(function(t,n,s){e(s.elements).not(t).hide(),e.fn.cycle.commonReset(t,n,s,!0,!1),s.animIn.height=n.cycleH}),s.cssBefore.left=0,s.cssBefore.top=0,s.cssBefore.height=0,s.animIn.height="show",s.animOut.height=0},e.fn.cycle.transitions.shuffle=function(t,n,s){var i,a=t.css("overflow","visible").width();for(n.css({left:0,top:0}),s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!0,!0,!0)}),s.speedAdjusted||(s.speed=s.speed/2,s.speedAdjusted=!0),s.random=0,s.shuffle=s.shuffle||{left:-a,top:15},s.els=[],i=0;i<n.length;i++)s.els.push(n[i]);for(i=0;i<s.currSlide;i++)s.els.push(s.els.shift());s.fxFn=function(t,n,s,i,a){s.rev&&(a=!a);var r=e(a?t:n);e(n).css(s.cssBefore);var o=s.slideCount;r.animate(s.shuffle,s.speedIn,s.easeIn,function(){for(var n=e.fn.cycle.hopsFromLast(s,a),c=0;c<n;c++)a?s.els.push(s.els.shift()):s.els.unshift(s.els.pop());if(a)for(var l=0,u=s.els.length;l<u;l++)e(s.els[l]).css("z-index",u-l+o);else{var f=e(t).css("z-index");r.css("z-index",parseInt(f,10)+1+o)}r.animate({left:0,top:0},s.speedOut,s.easeOut,function(){e(a?this:t).hide(),i&&i()})})},e.extend(s.cssBefore,{display:"block",opacity:1,top:0,left:0})},e.fn.cycle.transitions.turnUp=function(t,n,s){s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!0,!1),s.cssBefore.top=n.cycleH,s.animIn.height=n.cycleH,s.animOut.width=n.cycleW}),s.cssFirst.top=0,s.cssBefore.left=0,s.cssBefore.height=0,s.animIn.top=0,s.animOut.height=0},e.fn.cycle.transitions.turnDown=function(t,n,s){s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!0,!1),s.animIn.height=n.cycleH,s.animOut.top=t.cycleH}),s.cssFirst.top=0,s.cssBefore.left=0,s.cssBefore.top=0,s.cssBefore.height=0,s.animOut.height=0},e.fn.cycle.transitions.turnLeft=function(t,n,s){s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!1,!0),s.cssBefore.left=n.cycleW,s.animIn.width=n.cycleW}),s.cssBefore.top=0,s.cssBefore.width=0,s.animIn.left=0,s.animOut.width=0},e.fn.cycle.transitions.turnRight=function(t,n,s){s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!1,!0),s.animIn.width=n.cycleW,s.animOut.left=t.cycleW}),e.extend(s.cssBefore,{top:0,left:0,width:0}),s.animIn.left=0,s.animOut.width=0},e.fn.cycle.transitions.zoom=function(t,n,s){s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!1,!1,
2226!0),s.cssBefore.top=n.cycleH/2,s.cssBefore.left=n.cycleW/2,e.extend(s.animIn,{top:0,left:0,width:n.cycleW,height:n.cycleH}),e.extend(s.animOut,{width:0,height:0,top:t.cycleH/2,left:t.cycleW/2})}),s.cssFirst.top=0,s.cssFirst.left=0,s.cssBefore.width=0,s.cssBefore.height=0},e.fn.cycle.transitions.fadeZoom=function(t,n,s){s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!1,!1),s.cssBefore.left=n.cycleW/2,s.cssBefore.top=n.cycleH/2,e.extend(s.animIn,{top:0,left:0,width:n.cycleW,height:n.cycleH})}),s.cssBefore.width=0,s.cssBefore.height=0,s.animOut.opacity=0},e.fn.cycle.transitions.blindX=function(t,n,s){var i=t.css("overflow","hidden").width();s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s),s.animIn.width=n.cycleW,s.animOut.left=t.cycleW}),s.cssBefore.left=i,s.cssBefore.top=0,s.animIn.left=0,s.animOut.left=i},e.fn.cycle.transitions.blindY=function(t,n,s){var i=t.css("overflow","hidden").height();s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s),s.animIn.height=n.cycleH,s.animOut.top=t.cycleH}),s.cssBefore.top=i,s.cssBefore.left=0,s.animIn.top=0,s.animOut.top=i},e.fn.cycle.transitions.blindZ=function(t,n,s){var i=t.css("overflow","hidden").height(),a=t.width();s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s),s.animIn.height=n.cycleH,s.animOut.top=t.cycleH}),s.cssBefore.top=i,s.cssBefore.left=a,s.animIn.top=0,s.animIn.left=0,s.animOut.top=i,s.animOut.left=a},e.fn.cycle.transitions.growX=function(t,n,s){s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!1,!0),s.cssBefore.left=this.cycleW/2,s.animIn.left=0,s.animIn.width=this.cycleW,s.animOut.left=0}),s.cssBefore.top=0,s.cssBefore.width=0},e.fn.cycle.transitions.growY=function(t,n,s){s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!0,!1),s.cssBefore.top=this.cycleH/2,s.animIn.top=0,s.animIn.height=this.cycleH,s.animOut.top=0}),s.cssBefore.height=0,s.cssBefore.left=0},e.fn.cycle.transitions.curtainX=function(t,n,s){s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!1,!0,!0),s.cssBefore.left=n.cycleW/2,s.animIn.left=0,s.animIn.width=this.cycleW,s.animOut.left=t.cycleW/2,s.animOut.width=0}),s.cssBefore.top=0,s.cssBefore.width=0},e.fn.cycle.transitions.curtainY=function(t,n,s){s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!0,!1,!0),s.cssBefore.top=n.cycleH/2,s.animIn.top=0,s.animIn.height=n.cycleH,s.animOut.top=t.cycleH/2,s.animOut.height=0}),s.cssBefore.height=0,s.cssBefore.left=0},e.fn.cycle.transitions.cover=function(t,n,s){var i=s.direction||"left",a=t.css("overflow","hidden").width(),r=t.height();s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s),s.cssAfter.display="","right"==i?s.cssBefore.left=-a:"up"==i?s.cssBefore.top=r:"down"==i?s.cssBefore.top=-r:s.cssBefore.left=a}),s.animIn.left=0,s.animIn.top=0,s.cssBefore.top=0,s.cssBefore.left=0},e.fn.cycle.transitions.uncover=function(t,n,s){var i=s.direction||"left",a=t.css("overflow","hidden").width(),r=t.height();s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!0,!0,!0),"right"==i?s.animOut.left=a:"up"==i?s.animOut.top=-r:"down"==i?s.animOut.top=r:s.animOut.left=-a}),s.animIn.left=0,s.animIn.top=0,s.cssBefore.top=0,s.cssBefore.left=0},e.fn.cycle.transitions.toss=function(t,n,s){var i=t.css("overflow","visible").width(),a=t.height();s.before.push(function(t,n,s){e.fn.cycle.commonReset(t,n,s,!0,!0,!0),s.animOut.left||s.animOut.top?s.animOut.opacity=0:e.extend(s.animOut,{left:2*i,top:-a/2,opacity:0})}),s.cssBefore.left=0,s.cssBefore.top=0,s.animIn.left=0},e.fn.cycle.transitions.wipe=function(t,n,s){var i,a=t.css("overflow","hidden").width(),r=t.height();if(s.cssBefore=s.cssBefore||{},s.clip)if(/l2r/.test(s.clip))i="rect(0px 0px "+r+"px 0px)";else if(/r2l/.test(s.clip))i="rect(0px "+a+"px "+r+"px "+a+"px)";else if(/t2b/.test(s.clip))i="rect(0px "+a+"px 0px 0px)";else if(/b2t/.test(s.clip))i="rect("+r+"px "+a+"px "+r+"px 0px)";else if(/zoom/.test(s.clip)){var o=parseInt(r/2,10),c=parseInt(a/2,10);i="rect("+o+"px "+c+"px "+o+"px "+c+"px)"}s.cssBefore.clip=s.cssBefore.clip||i||"rect(0px 0px 0px 0px)";var l=s.cssBefore.clip.match(/(\d+)/g),u=parseInt(l[0],10),f=parseInt(l[1],10),p=parseInt(l[2],10),d=parseInt(l[3],10);s.before.push(function(t,n,s){if(t!=n){var i=e(t),o=e(n);e.fn.cycle.commonReset(t,n,s,!0,!0,!1),s.cssAfter.display="block";var c=1,l=parseInt(s.speedIn/13,10)-1;!function e(){var t=u?u-parseInt(c*(u/l),10):0,n=d?d-parseInt(c*(d/l),10):0,s=p<r?p+parseInt(c*((r-p)/l||1),10):r,h=f<a?f+parseInt(c*((a-f)/l||1),10):a;o.css({clip:"rect("+t+"px "+h+"px "+s+"px "+n+"px)"}),c++<=l?setTimeout(e,13):i.css("display","none")}()}}),e.extend(s.cssBefore,{display:"block",opacity:1,top:0,left:0}),s.animIn={left:0},s.animOut={left:0}}},void 0===(a="function"==typeof s?s.apply(t,i):s)||(e.exports=a)},8240(){!function(e){function t(e,t){t&&e.append(t.jquery?t.clone():t)}function n(t,n,s){var i,a,r,o=n.clone(s.formValues);s.formValues&&(i=o,a="select, textarea",r=n.find(a),i.find(a).each(function(t,n){e(n).val(r.eq(t).val())})),s.removeScripts&&o.find("script").remove(),s.printContainer?o.appendTo(t):o.each(function(){e(this).children().appendTo(t)})}var s;e.fn.printThis=function(i){s=e.extend({},e.fn.printThis.defaults,i);var a=this instanceof jQuery?this:e(this),r="printThis-"+(new Date).getTime();if(window.location.hostname!==document.domain&&navigator.userAgent.match(/msie/i)){var o='javascript:document.write("<head><script>document.domain=\\"'+document.domain+'\\";<\/script></head><body></body>")',c=document.createElement("iframe");c.name="printIframe",c.id=r,c.className="MSIE",document.body.appendChild(c),c.src=o}else{e("<iframe id='"+r+"' name='printIframe' />").appendTo("body")}var l=e("#"+r);s.debug||l.css({position:"absolute",width:"0px",height:"0px",left:"-600px",top:"-600px"}),"function"==typeof s.beforePrint&&s.beforePrint(),setTimeout(function(){s.doctype
2226String&&function(e,t){var n,s;(s=(n=(n=e.get(0)).contentWindow||n.contentDocument||n).document||n.contentDocument||n).open(),s.write(t),s.close()}(l,s.doctypeString);var i,r=l.contents(),o=r.find("head"),c=r.find("body"),u=e("base");i=!0===s.base&&u.length>0?u.attr("href"):"string"==typeof s.base?s.base:document.location.protocol+"//"+document.location.host,o.append('<base href="'+i+'">'),s.importCSS&&e("link[rel=stylesheet]").each(function(){var t=e(this).attr("href");if(t){var n=e(this).attr("media")||"all";o.append("<link type='text/css' rel='stylesheet' href='"+t+"' media='"+n+"'>")}}),s.importStyle&&e("style").each(function(){o.append(this.outerHTML)}),s.pageTitle&&o.append("<title>"+s.pageTitle+"</title>"),s.loadCSS&&(e.isArray(s.loadCSS)?jQuery.each(s.loadCSS,function(e,t){o.append("<link type='text/css' rel='stylesheet' href='"+this+"'>")}):o.append("<link type='text/css' rel='stylesheet' href='"+s.loadCSS+"'>"));var f=e("html")[0];r.find("html").prop("style",f.style.cssText);var p=s.copyTagClasses;if(p&&(-1!==(p=!0===p?"bh":p).indexOf("b")&&c.addClass(e("body")[0].className),-1!==p.indexOf("h")&&r.find("html").addClass(f.className)),(p=s.copyTagStyles)&&(-1!==(p=!0===p?"bh":p).indexOf("b")&&c.attr("style",e("body")[0].style.cssText),-1!==p.indexOf("h")&&r.find("html").attr("style",f.style.cssText)),t(c,s.header),s.canvas){var d=0;a.find("canvas").addBack("canvas").each(function(){e(this).attr("data-printthis",d++)})}if(n(c,a,s),s.canvas&&c.find("canvas").each(function(){var t=e(this).data("printthis"),n=e('[data-printthis="'+t+'"]');this.getContext("2d").drawImage(n[0],0,0),e.isFunction(e.fn.removeAttr)?n.removeAttr("data-printthis"):e.each(n,function(e,t){t.removeAttribute("data-printthis")})}),s.removeInline){var h=s.removeInlineSelector||"*";e.isFunction(e.removeAttr)?c.find(h).removeAttr("style"):c.find(h).attr("style","")}t(c,s.footer),function(e,t){var n=e.get(0);n=n.contentWindow||n.contentDocument||n,"function"==typeof t&&("matchMedia"in n?n.matchMedia("print").addListener(function(e){e.matches&&t()}):n.onbeforeprint=t)}(l,s.beforePrintEvent),setTimeout(function(){l.hasClass("MSIE")?(window.frames.printIframe.focus(),o.append("<script>  window.print(); <\/script>")):document.queryCommandSupported("print")?l[0].contentWindow.document.execCommand("print",!1,null):(l[0].contentWindow.focus(),l[0].contentWindow.print()),s.debug||setTimeout(function(){l.remove()},1e3),"function"==typeof s.afterPrint&&s.afterPrint()},s.printDelay)},333)},e.fn.printThis.defaults={debug:!1,importCSS:!0,importStyle:!0,printContainer:!0,loadCSS:"",pageTitle:"",removeInline:!1,removeInlineSelector:"*",printDelay:1e3,header:null,footer:null,base:!1,formValues:!0,canvas:!0,doctypeString:"<!DOCTYPE html>",removeScripts:!1,copyTagClasses:!0,copyTagStyles:!0,beforePrintEvent:null,beforePrint:null,afterPrint:null}}(jQuery)},428(e){"use strict";e.exports=window.jQuery}};const t={};function n(s){const i=t[s];if(void 0!==i)return i.exports;const a=t[s]={exports:{}};return e[s](a,a.exports,n),a.exports}n.n=e=>{const t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var s in t)n.o(t,s)&&!n.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},n.o=(e,t)=>Object.hasOwn(e,t),(()=>{"use strict";n(5896),n(8240),n(8395)})()})();;
2227(()=>{function e(e,t,i){this.element=e,this.images=[],this.controls={},this.transition=t||"fade",this.autostart=i}e.prototype.showLoadingImage=function(e){if(e){this.loadingImage_=document.createElement("div"),this.loadingImage_.className="jetpack-slideshow-loading";var t=document.createElement("img");t.src=jetpackSlideshowSettings.spinner,this.loadingImage_.appendChild(t),this.loadingImage_.appendChild(this.makeZeroWidthSpan()),this.element.append(this.loadingImage_)}else this.loadingImage_&&(this.loadingImage_.parentNode.removeChild(this.loadingImage_),this.loadingImage_=null)},e.prototype.init=function(){this.showLoadingImage(!0);for(var e=this,t=0;t<this.images.length;t++){var i=this.images[t],s=document.createElement("img");s.src=i.src,s.title=void 0!==i.title?i.title:"",s.alt=void 0!==i.alt?i.alt:"",s.setAttribute("itemprop","image"),s.nopin="nopin";var n=document.createElement("div");
2227n.className="jetpack-slideshow-slide-caption",n.setAttribute("itemprop","caption description"),n.innerHTML=i.caption;var o=document.createElement("div");o.className="jetpack-slideshow-slide",o.setAttribute("itemprop","associatedMedia"),o.setAttribute("itemscope",""),o.setAttribute("itemtype","https://schema.org/ImageObject"),0===t&&(s.complete?setTimeout(function(){e.finishInit_()},1):s.addEventListener("load",function(){e.finishInit_()})),o.appendChild(s),s.removeAttribute("width"),s.removeAttribute("height"),o.appendChild(this.makeZeroWidthSpan()),o.appendChild(n),this.element.append(o)}},e.prototype.makeZeroWidthSpan=function(){var e=document.createElement("span");return e.className="jetpack-slideshow-line-height-hack",-1!==window.navigator.userAgent.indexOf("MSIE ")?e.appendChild(document.createTextNode(" ")):e.innerHTML="&nbsp;",e},e.prototype.finishInit_=function(){this.showLoadingImage(!1);var e=this;if(this.images.length>1){this.renderControls_(),jQuery(this.element).cycle({fx:this.transition,prev:this.controls.prev,next:this.controls.next,timeout:jetpackSlideshowSettings.speed,slideExpr:".jetpack-slideshow-slide",onPrevNextEvent:function(){return e.onCyclePrevNextClick_.apply(e,arguments)}});var t=this.element;this.autostart||(jQuery(t).cycle("pause"),this.controls.stop.classList.remove("running"),this.controls.stop.classList.add("paused")),this.controls.stop.addEventListener("click",function(e){var i=e.currentTarget;i===e.target&&(e.preventDefault(),i.classList.contains("paused")?(i.classList.add("running"),i.classList.remove("paused"),jQuery(t).cycle("resume",!0)):(jQuery(t).cycle("pause"),i.classList.remove("running"),i.classList.add("paused")))})}else this.element.children.length&&(this.element.children[0].style.display="block",this.element.style.position="relative");this.initialized_=!0},e.prototype.renderControls_=function(){if(!this.controlsDiv_){var e=document.createElement("div");e.className="jetpack-slideshow-controls";for(var t=["prev","stop","next"],i=0;i<t.length;i++){var s=t[i],n="label_"+s,o=document.createElement("a");o.href="#",o.className="button-"+s,o.setAttribute("aria-label",jetpackSlideshowSettings[n]),o.setAttribute("role","button"),e.appendChild(o),this.controls[s]=o}this.element.append(e),this.controlsDiv_=e}},e.prototype.onCyclePrevNextClick_=function(e,t){if(jetpackSlideshowSettings.blog_id){var i=this.images[t].id;(new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?host="+encodeURIComponent(document.location.host)+"&rand="+Math.random()+"&blog="+jetpackSlideshowSettings.blog_id+"&subd="+jetpackSlideshowSettings.blog_subdomain+"&user_id="+jetpackSlideshowSettings.user_id+"&post="+i+"&ref="+encodeURIComponent(document.location)}},function(){function t(){document.querySelectorAll(".jetpack-slideshow-noscript").forEach(function(e){e.remove()}),document.querySelectorAll(".jetpack-slideshow").forEach(function(t){if("true"!==t.dataset.processed){var i=t.dataset.trans,s="true"===t.dataset.autostart,n=JSON.parse(t.dataset.gallery||"[]"),o=new e(t,i,s);o.images=n,o.init(),t.dataset.processed="true"}})}document.addEventListener("DOMContentLoaded",t),document.body.addEventListener("post-load",t)}()})();;
2228/**
2229 * Observe how the user enters content into the comment form in order to determine whether it's a bot or not.
2230 *
2231 * Note that no actual input is being saved here, only counts and timings between events.
2232 */
2233
2234( function() {
2235	// Passive event listeners are guaranteed to never call e.preventDefault(),
2236	// but they're not supported in all browsers.  Use this feature detection
2237	// to determine whether they're available for use.
2238	var supportsPassive = false;
2239
2240	try {
2241		var opts = Object.defineProperty( {}, 'passive', {
2242			get : function() {
2243				supportsPassive = true;
2244			}
2245		} );
2246
2247		window.addEventListener( 'testPassive', null, opts );
2248		window.removeEventListener( 'testPassive', null, opts );
2249	} catch ( e ) {}
2250
2251	function init() {
2252		var input_begin = '';
2253
2254		var keydowns = {};
2255		var lastKeyup = null;
2256		var lastKeydown = null;
2257		var keypresses = [];
2258
2259		var modifierKeys = [];
2260		var correctionKeys = [];
2261
2262		var lastMouseup = null;
2263		var lastMousedown = null;
2264		var mouseclicks = [];
2265		var mouseclickCoordinates = [];
2266
2267		var mousemoveTimer = null;
2268		var lastMousemoveX = null;
2269		var lastMousemoveY = null;
2270		var lastMousemoveTime = null;
2271		var mousemoveStart = null;
2272		var mousemoves = [];
2273		var intervalsBetweenMousemovesAndClicks = [];
2274
2275		var touchmoveCountTimer = null;
2276		var touchmoveCount = 0;
2277
2278		var lastTouchEnd = null;
2279		var lastTouchStart = null;
2280		var touchEvents = [];
2281
2282		var scrollCountTimer = null;
2283		var scrollCount = 0;
2284
2285		var correctionKeyCodes = [ 'Backspace', 'Delete', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'Home', 'End', 'PageUp', 'PageDown' ];
2286		var modifierKeyCodes = [ 'Shift', 'CapsLock' ];
2287
2288		var forms = document.querySelectorAll( 'form[method=post]' );
2289
2290		for ( var i = 0; i < forms.length; i++ ) {
2291			var form = forms[i];
2292
2293			var formAction = form.getAttribute( 'action' );
2294
2295			// Ignore forms that POST directly to other domains; these could be things like payment forms.
2296			if ( formAction ) {
2297				// Check that the form is posting to an external URL, not a path.
2298				if ( formAction.indexOf( 'http://' ) == 0 || formAction.indexOf( 'https://' ) == 0 ) {
2299					if ( formAction.indexOf( 'http://' + window.location.hostname + '/' ) != 0 && formAction.indexOf( 'https://' + window.location.hostname + '/' ) != 0 ) {
2300						continue;
2301					}
2302				}
2303			}
2304
2305			form.addEventListener( 'submit', function () {
2306				var ak_bkp = prepare_array_for_request( keypresses );
2307				var ak_bmc = prepare_array_for_request( mouseclicks );
2308				var ak_bte = prepare_array_for_request( touchEvents );
2309				var ak_bmm = prepare_array_for_request( mousemoves );
2310				var ak_bcc = prepare_array_for_request( mouseclickCoordinates );
2311				var ak_bibmac = intervalsBetweenMousemovesAndClicks.slice( 0, 100 ).join( ';' );
2312
2313				var input_fields = {
2314					// When did the user begin entering any input?
2315					'bib': input_begin,
2316
2317					// When was the form submitted?
2318					'bfs': Date.now(),
2319
2320					// How many keypresses did they make?
2321					'bkpc': keypresses.length,
2322
2323					// How quickly did they press a sample of keys, and how long between them?
2324					'bkp': ak_bkp,
2325
2326					// How quickly did they click the mouse, and how long between clicks?
2327					'bmc': ak_bmc,
2328
2329					// How many mouseclicks did they make?
2330					'bmcc': mouseclicks.length,
2331
2332					// When did they press modifier keys (like Shift or Capslock)?
2333					'bmk': modifierKeys.join( ';' ),
2334
2335					// When did they correct themselves? e.g., press Backspace, or use the arrow keys to move the cursor back
2336					'bck': correctionKeys.join( ';' ),
2337
2338					// How many times did they move the mouse?
2339					'bmmc': mousemoves.length,
2340
2341					// How many times did they move around using a touchscreen?
2342					'btmc': touchmoveCount,
2343
2344					// How many times did they scroll?
2345					'bsc': scrollCount,
2346
2347					// How quickly did they perform touch events, and how long between them?
2348					'bte': ak_bte,
2349
2350					// How many touch events were there?
2351					'btec' : touchEvents.length,
2352
2353					// How quickly did they move the mouse, and how long between moves?
2354					'bmm' : ak_bmm,
2355
2356					// Click coordinates
2357					'bcc' : ak_bcc,
2358
2359					// Milliseconds between last mouse movement and each click
2360					'bibmac' : ak_bibmac
2361				};
2362
2363				var akismet_field_prefix = 'ak_';
2364
2365				if ( this.getElementsByClassName ) {
2366					// Check to see if we've used an alternate field name prefix. We store this as an attribute of the container around some of the Akismet fields.
2367					var possible_akismet_containers = this.getElementsByClassName( 'akismet-fields-container' );
2368
2369					for ( var containerIndex = 0; containerIndex < possible_akismet_containers.length; containerIndex++ ) {
2370						var container = possible_akismet_containers.item( containerIndex );
2371
2372						if ( container.getAttribute( 'data-prefix' ) ) {
2373							akismet_field_prefix = container.getAttribute( 'data-prefix' );
2374							break;
2375						}
2376					}
2377				}
2378
2379				for ( var field_name in input_fields ) {
2380					var field = document.createElement( 'input' );
2381					field.setAttribute( 'type', 'hidden' );
2382					field.setAttribute( 'name', akismet_field_prefix + field_name );
2383					field.setAttribute( 'value', input_fields[ field_name ] );
2384					this.appendChild( field );
2385				}
2386			}, supportsPassive ? { passive: true } : false  );
2387
2388			form.addEventListener( 'keydown', function ( e ) {
2389				// If you hold a key down, some browsers send multiple keydown events in a row.
2390				// Ignore any keydown events for a key that hasn't come back up yet.
2391				if ( e.key in keydowns ) {
2392					return;
2393				}
2394
2395				var keydownTime = ( new Date() ).getTime();
2396				keydowns[ e.key ] = [ keydownTime ];
2397
2398				if ( ! input_begin ) {
2399					input_begin = keydownTime;
2400				}
2401
2402				// In some situations, we don't want to record an interval since the last keypress -- for example,
2403				// on the first keypress, or on a keypress after focus has changed to another element. Normally,
2404				// we want to record the time between the last keyup and this keydown. But if they press a
2405				// key while already pressing a key, we want to record the time between the two keydowns.
2406
2407				var lastKeyEvent = Math.max( lastKeydown, lastKeyup );
2408
2409				if ( lastKeyEvent ) {
2410					keydowns[ e.key ].push( keydownTime - lastKeyEvent );
2411				}
2412
2413				lastKeydown = keydownTime;
2414			}, supportsPassive ? { passive: true } : false  );
2415
2416			form.addEventListener( 'keyup', function ( e ) {
2417				if ( ! ( e.key in keydowns ) ) {
2418					// This key was pressed before this script was loaded, or a mouseclick happened during the keypress, or...
2419					return;
2420				}
2421
2422				var keyupTime = ( new Date() ).getTime();
2423
2424				if ( 'TEXTAREA' === e.target.nodeName || 'INPUT' === e.target.nodeName ) {
2425					if ( -1 !== modifierKeyCodes.indexOf( e.key ) ) {
2426						modifierKeys.push( keypresses.length - 1 );
2427					} else if ( -1 !== correctionKeyCodes.indexOf( e.key ) ) {
2428						correctionKeys.push( keypresses.length - 1 );
2429					} else {
2430						// ^ Don't record timings for keys like Shift or backspace, since they
2431						// typically get held down for longer than regular typing.
2432
2433						var keydownTime = keydowns[ e.key ][0];
2434
2435						var keypress = [];
2436
2437						// Keypress duration.
2438						keypress.push( keyupTime - keydownTime );
2439
2440						// Amount of time between this keypress and the previous keypress.
2441						if ( keydowns[ e.key ].length > 1 ) {
2442							keypress.push( keydowns[ e.key ][1] );
2443						}
2444
2445						keypresses.push( keypress );
2446					}
2447				}
2448
2449				delete keydowns[ e.key ];
2450
2451				lastKeyup = keyupTime;
2452			}, supportsPassive ? { passive: true } : false  );
2453
2454			form.addEventListener( "focusin", function ( e ) {
2455				lastKeydown = null;
2456				lastKeyup = null;
2457				keydowns = {};
2458			}, supportsPassive ? { passive: true } : false  );
2459
2460			form.addEventListener( "focusout", function ( e ) {
2461				lastKeydown = null;
2462				lastKeyup = null;
2463				keydowns = {};
2464			}, supportsPassive ? { passive: true } : false  );
2465		}
2466
2467		document.addEventListener( 'mousedown', function ( e ) {
2468			lastMousedown = ( new Date() ).getTime();
2469
2470			if ( lastMousemoveTime ) {
2471				intervalsBetweenMousemovesAndClicks.push( lastMousedown - lastMousemoveTime );
2472			}
2473
2474			var mouseclickCoordinate = [];
2475
2476			var rect = e.target.getBoundingClientRect();
2477			var relativeX = e.clientX - rect.left;
2478			var relativeY = e.clientY - rect.top;
2479
2480			// Pixel offset of the click within the target element.
2481			mouseclickCoordinate.push( Math.round( relativeX ) );
2482			mouseclickCoordinate.push( Math.round( relativeY ) );
2483
2484			// Percentage offset of the click within the target element.
2485			mouseclickCoordinate.push( rect.width > 0 ? Math.round( relativeX / rect.width * 100 ) : 0 );
2486			mouseclickCoordinate.push( rect.height > 0 ? Math.round( relativeY / rect.height * 100 ) : 0 );
2487
2488			mouseclickCoordinates.push( mouseclickCoordinate );
2489		}, supportsPassive ? { passive: true } : false  );
2490
2491		document.addEventListener( 'mouseup', function ( e ) {
2492			if ( ! lastMousedown ) {
2493				// If the mousedown happened before this script was loaded, but the mouseup happened after...
2494				return;
2495			}
2496
2497			var now = ( new Date() ).getTime();
2498
2499			var mouseclick = [];
2500			mouseclick.push( now - lastMousedown );
2501
2502			if ( lastMouseup ) {
2503				mouseclick.push( lastMousedown - lastMouseup );
2504			}
2505
2506			mouseclicks.push( mouseclick );
2507
2508			lastMouseup = now;
2509
2510			// If the mouse has been clicked, don't record this time as an interval between keypresses.
2511			lastKeydown = null;
2512			lastKeyup = null;
2513			keydowns = {};
2514		}, supportsPassive ? { passive: true } : false  );
2515
2516		document.addEventListener( 'mousemove', function ( e ) {
2517			lastMousemoveTime = ( new Date() ).getTime();
2518
2519			if ( mousemoveTimer ) {
2520				clearTimeout( mousemoveTimer );
2521				mousemoveTimer = null;
2522			}
2523			else {
2524				mousemoveStart = lastMousemoveTime;
2525				lastMousemoveX = e.offsetX;
2526				lastMousemoveY = e.offsetY;
2527			}
2528
2529			mousemoveTimer = setTimeout( function ( theEvent, originalMousemoveStart ) {
2530				var now = ( new Date() ).getTime() - 500; // To account for the timer delay.
2531
2532				var mousemove = [];
2533				mousemove.push( now - originalMousemoveStart );
2534				mousemove.push(
2535					Math.round(
2536						Math.sqrt(
2537							Math.pow( theEvent.offsetX - lastMousemoveX, 2 ) +
2538							Math.pow( theEvent.offsetY - lastMousemoveY, 2 )
2539						)
2540					)
2541				);
2542
2543				if ( mousemove[1] > 0 ) {
2544					// If there was no measurable distance, then it wasn't really a move.
2545					mousemoves.push( mousemove );
2546				}
2547
2548				mousemoveStart = null;
2549				mousemoveTimer = null;
2550			}, 500, e, mousemoveStart );
2551		}, supportsPassive ? { passive: true } : false  );
2552
2553		document.addEventListener( 'touchmove', function ( e ) {
2554			if ( touchmoveCountTimer ) {
2555				clearTimeout( touchmoveCountTimer );
2556			}
2557
2558			touchmoveCountTimer = setTimeout( function () {
2559				touchmoveCount++;
2560			}, 500 );
2561		}, supportsPassive ? { passive: true } : false );
2562
2563		document.addEventListener( 'touchstart', function ( e ) {
2564			lastTouchStart = ( new Date() ).getTime();
2565		}, supportsPassive ? { passive: true } : false );
2566
2567		document.addEventListener( 'touchend', function ( e ) {
2568			if ( ! lastTouchStart ) {
2569				// If the touchstart happened before this script was loaded, but the touchend happened after...
2570				return;
2571			}
2572
2573			var now = ( new Date() ).getTime();
2574
2575			var touchEvent = [];
2576			touchEvent.push( now - lastTouchStart );
2577
2578			if ( lastTouchEnd ) {
2579				touchEvent.push( lastTouchStart - lastTouchEnd );
2580			}
2581
2582			touchEvents.push( touchEvent );
2583
2584			lastTouchEnd = now;
2585
2586			// Don't record this time as an interval between keypresses.
2587			lastKeydown = null;
2588			lastKeyup = null;
2589			keydowns = {};
2590		}, supportsPassive ? { passive: true } : false );
2591
2592		document.addEventListener( 'scroll', function ( e ) {
2593			if ( scrollCountTimer ) {
2594				clearTimeout( scrollCountTimer );
2595			}
2596
2597			scrollCountTimer = setTimeout( function () {
2598				scrollCount++;
2599			}, 500 );
2600		}, supportsPassive ? { passive: true } : false );
2601	}
2602
2603	/**
2604	 * For the timing/coordinate data that is collected, don't send more than `limit` data points in the request.
2605	 * Choose a random slice and send those, with each batch separated by semicolons and the items in each batch
2606	 * separated by commas.
2607	 */
2608	function prepare_array_for_request( a, limit ) {
2609		if ( ! limit ) {
2610			limit = 100;
2611		}
2612
2613		var rv = '';
2614
2615		if ( a.length > 0 ) {
2616			var random_starting_point = Math.max( 0, Math.floor( Math.random() * a.length - limit ) );
2617
2618			for ( var i = 0; i < limit && i < a.length; i++ ) {
2619				var entry = a[ random_starting_point + i ];
2620				rv += entry.join( ',' ) + ';';
2621			}
2622		}
2623
2624		return rv;
2625	}
2626
2627	if ( document.readyState !== 'loading' ) {
2628		init();
2629	} else {
2630		document.addEventListener( 'DOMContentLoaded', init );
2631	}
2632})();;
2633(()=>{var e={8885(e,t,o){(e=o.nmd(e))&&(e.exports=function(){var e,t="en",o=/[?&#]lang=([a-zA-Z\-_]+)/;"object"==typeof _wp_google_translate_widget&&"string"==typeof _wp_google_translate_widget.lang&&(t=_wp_google_translate_widget.lang),(e=window.location.href.match(o))&&(window.location.href=window.location.href.replace(o,"").replace(/#googtrans\([a-zA-Z\-_|]+\)/,"")+"#googtrans("+t+"|"+e[1]+")"),new google.translate.TranslateElement({pageLanguage:t,layout:_wp_google_translate_widget.layout,autoDisplay:!1},"google_translate_element")})}};const t={};function o(a){const n=t[a];if(void 0!==n)return n.exports;const l=t[a]={id:a,loaded:!1,exports:{}};return e[a](l,l.exports,o),l.loaded=!0,l.exports}o.nmd=e=>(e.paths=[],e.children||(e.children=[]),e);let a=o(8885);googleTranslateElementInit=a})();;

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.