PageSourceSearch

https://jcecoop.com/sites/default/files/js/js_C8P4obirJckSMgn8gYanKAy7jLikp2wDKKRKaKznvzg.js

js jcecoop.com collected 2026-10-09 04:41:05 UTC 196,890 bytes, 2,805 lines download raw bytes

1(function ($, undefined) {
2
3  'use strict';
4
5  /**
6      * Provides enhanced functionality for Pay Portal Paragraphs admin.
7      *
8      * @type {Drupal~behavior}
9      *
10      * @prop {Drupal~behaviorAttach} attach
11      *   Adds administrative effects and enhancements for the various
12      *   Paragraphs components that act as the base for this module.
13      */
14  Drupal.behaviors.payportal_admin = {
15    attach: function (context, settings) {
16
17      var
18          $settings = settings.payportal_admin,
19          $keys = Object.keys($settings)
20      ;
21
22      // The top level object literal is keyed by the deltas for
23      // each Pay Portal paragraph instance.
24      for (var i = 0, c = $keys.length; i < c; i++) {
25        var $delta = $keys[i];
26
27        // If an Add More set of elements is present for this delta...
28        if ($settings[$delta]['payprovider_add_more'] !== undefined) {
29
30          // Update Add More button text based on the value
31          // selected in the Add More select.
32          $($settings[$delta]['payprovider_add_more']['select']).each(function () {
33            var $this = this;
34
35            // Add event handler only once per element per behaviors attachment.
36            $($this).once('payportal_admin_' + $delta).each(function () {
37
38              // Update button text when pay provider select option changes.
39              $($this).on('change', function () {
40                var $pattern = $settings[$delta]['payprovider_add_more']['pattern'];
41                var $text = Drupal.t($pattern, {'@pp': this[this.selectedIndex].innerHTML});
42                $($settings[$delta]['payprovider_add_more']['button'], context)
43                    .prop('value', $text)
44                    .text($text);
45              });
46            });
47          });
48        }
49      }
50    }
51  };
52})(jQuery);;
53/**
54* DO NOT EDIT THIS FILE.
55* See the following change record for more information,
56* https://www.drupal.org/node/2815083
57* @preserve
58**/
59Drupal.debounce = function (func, wait, immediate) {
60  var timeout;
61  var result;
62  return function () {
63    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
64      args[_key] = arguments[_key];
65    }
66    var context = this;
67    var later = function later() {
68      timeout = null;
69      if (!immediate) {
70        result = func.apply(context, args);
71      }
72    };
73    var callNow = immediate && !timeout;
74    clearTimeout(timeout);
75    timeout = setTimeout(later, wait);
76    if (callNow) {
77      result = func.apply(context, args);
78    }
79    return result;
80  };
81};;
82/**
83* DO NOT EDIT THIS FILE.
84* See the following change record for more information,
85* https://www.drupal.org/node/2815083
86* @preserve
87**/
88(function ($, Drupal, debounce) {
89  $.fn.drupalGetSummary = function () {
90    var callback = this.data('summaryCallback');
91    return this[0] && callback ? callback(this[0]).trim() : '';
92  };
93  $.fn.drupalSetSummary = function (callback) {
94    var self = this;
95    if (typeof callback !== 'function') {
96      var val = callback;
97      callback = function callback() {
98        return val;
99      };
100    }
101    return this.data('summaryCallback', callback).off('formUpdated.summary').on('formUpdated.summary', function () {
102      self.trigger('summaryUpdated');
103    }).trigger('summaryUpdated');
104  };
105  Drupal.behaviors.formSingleSubmit = {
106    attach: function attach() {
107      function onFormSubmit(e) {
108        var $form = $(e.currentTarget);
109        var formValues = $form.serialize();
110        var previousValues = $form.attr('data-drupal-form-submit-last');
111        if (previousValues === formValues) {
112          e.preventDefault();
113        } else {
114          $form.attr('data-drupal-form-submit-last', formValues);
115        }
116      }
117      $(once('form-single-submit', 'body')).on('submit.singleSubmit', 'form:not([method~="GET"])', onFormSubmit);
118    }
119  };
120  function triggerFormUpdated(element) {
121    $(element).trigger('formUpdated');
122  }
123  function fieldsList(form) {
124    return [].map.call(form.querySelectorAll('[name][id]'), function (el) {
125      return el.id;
126    });
127  }
128  Drupal.behaviors.formUpdated = {
129    attach: function attach(context) {
130      var $context = $(context);
131      var contextIsForm = $context.is('form');
132      var $forms = $(once('form-updated', contextIsForm ? $context : $context.find('form')));
133      var formFields;
134      if ($forms.length) {
135        $.makeArray($forms).forEach(function (form) {
136          var events = 'change.formUpdated input.formUpdated ';
137          var eventHandler = debounce(function (event) {
138            triggerFormUpdated(event.target);
139          }, 300);
140          formFields = fieldsList(form).join(',');
141          form.setAttribute('data-drupal-form-fields', formFields);
142          $(form).on(events, eventHandler);
143        });
144      }
145      if (contextIsForm) {
146        formFields = fieldsList(context).join(',');
147        var currentFields = $(context).attr('data-drupal-form-fields');
148        if (formFields !== currentFields) {
149          triggerFormUpdated(context);
150        }
151      }
152    },
153    detach: function detach(context, settings, trigger) {
154      var $context = $(context);
155      var contextIsForm = $context.is('form');
156      if (trigger === 'unload') {
157        once.remove('form-updated', contextIsForm ? $context : $context.find('form')).forEac
157h(function (form) {
158          form.removeAttribute('data-drupal-form-fields');
159          $(form).off('.formUpdated');
160        });
161      }
162    }
163  };
164  Drupal.behaviors.fillUserInfoFromBrowser = {
165    attach: function attach(context, settings) {
166      var userInfo = ['name', 'mail', 'homepage'];
167      var $forms = $(once('user-info-from-browser', '[data-user-info-from-browser]'));
168      if ($forms.length) {
169        userInfo.forEach(function (info) {
170          var $element = $forms.find("[name=".concat(info, "]"));
171          var browserData = localStorage.getItem("Drupal.visitor.".concat(info));
172          if (!$element.length) {
173            return;
174          }
175          var emptyValue = $element[0].value === '';
176          var defaultValue = $element.attr('data-drupal-default-value') === $element[0].value;
177          if (browserData && (emptyValue || defaultValue)) {
178            $element.each(function (index, item) {
179              item.value = browserData;
180            });
181          }
182        });
183      }
184      $forms.on('submit', function () {
185        userInfo.forEach(function (info) {
186          var $element = $forms.find("[name=".concat(info, "]"));
187          if ($element.length) {
188            localStorage.setItem("Drupal.visitor.".concat(info), $element[0].value);
189          }
190        });
191      });
192    }
193  };
194  var handleFragmentLinkClickOrHashChange = function handleFragmentLinkClickOrHashChange(e) {
195    var url;
196    if (e.type === 'click') {
197      url = e.currentTarget.location ? e.currentTarget.location : e.currentTarget;
198    } else {
199      url = window.location;
200    }
201    var hash = url.hash.substr(1);
202    if (hash) {
203      var $target = $("#".concat(hash));
204      $('body').trigger('formFragmentLinkClickOrHashChange', [$target]);
205      setTimeout(function () {
206        return $target.trigger('focus');
207      }, 300);
208    }
209  };
210  var debouncedHandleFragmentLinkClickOrHashChange = debounce(handleFragmentLinkClickOrHashChange, 300, true);
211  $(window).on('hashchange.form-fragment', debouncedHandleFragmentLinkClickOrHashChange);
212  $(document).on('click.form-fragment', 'a[href*="#"]', debouncedHandleFragmentLinkClickOrHashChange);
213})(jQuery, Drupal, Drupal.debounce);;
214/**
215 * @file
216 * Webform behaviors.
217 */
218
219(function ($, Drupal) {
220
221  'use strict';
222
223  // Trigger Drupal's attaching of behaviors after the page is
224  // completely loaded.
225  // @see https://stackoverflow.com/questions/37838430/detect-if-page-is-load-from-back-button
226  // @see https://stackoverflow.com/questions/20899274/how-to-refresh-page-on-back-button-click/20899422#20899422
227  var isChrome = (/chrom(e|ium)/.test(window.navigator.userAgent.toLowerCase()));
228  if (isChrome) {
229    // Track back button in navigation.
230    // @see https://stackoverflow.com/questions/37838430/detect-if-page-is-load-from-back-button
231    var backButton = false;
232    if (window.performance) {
233      var navEntries = window.performance.getEntriesByType('navigation');
234      if (navEntries.length > 0 && navEntries[0].type === 'back_forward') {
235        backButton = true;
236      }
237      else if (window.performance.navigation
238        && window.performance.navigation.type === window.performance.navigation.TYPE_BACK_FORWARD) {
239        backButton = true;
240      }
241    }
242
243    // If the back button is pressed, delay Drupal's attaching of behaviors.
244    if (backButton) {
245      var attachBehaviors = Drupal.attachBehaviors;
246      Drupal.attachBehaviors = function (context, settings) {
247        setTimeout(function (context, settings) {
248          attachBehaviors(context, settings);
249        }, 300);
250      };
251    }
252  }
253
254})(jQuery, Drupal);
255;
256/**
257* DO NOT EDIT THIS FILE.
258* See the following change record for more information,
259* https://www.drupal.org/node/2815083
260* @preserve
261**/
262(function ($, Drupal) {
263  var states = {
264    postponed: []
265  };
266  Drupal.states = states;
267  function invert(a, invertState) {
268    return invertState && typeof a !== 'undefined' ? !a : a;
269  }
270  function _compare2(a, b) {
271    if (a === b) {
272      return typeof a === 'undefined' ? a : true;
273    }
274    return typeof a === 'undefined' || typeof b === 'undefined';
275  }
276  function ternary(a, b) {
277    if (typeof a === 'undefined') {
278      return b;
279    }
280    if (typeof b === 'undefined') {
281      return a;
282    }
283    return a && b;
284  }
285  Drupal.behaviors.states = {
286    attach: function attach(context, settings) {
287      var $states = $(context).find('[data-drupal-states]');
288      var il = $states.length;
289      var _loop = function _loop(i) {
290        var config = JSON.parse($states[i].getAttribute('data-drupal-states'));
291        Object.keys(config || {}
291).forEach(function (state) {
292          new states.Dependent({
293            element: $($states[i]),
294            state: states.State.sanitize(state),
295            constraints: config[state]
296          });
297        });
298      };
299      for (var i = 0; i < il; i++) {
300        _loop(i);
301      }
302      while (states.postponed.length) {
303        states.postponed.shift()();
304      }
305    }
306  };
307  states.Dependent = function (args) {
308    var _this = this;
309    $.extend(this, {
310      values: {},
311      oldValue: null
312    }, args);
313    this.dependees = this.getDependees();
314    Object.keys(this.dependees || {}).forEach(function (selector) {
315      _this.initializeDependee(selector, _this.dependees[selector]);
316    });
317  };
318  states.Dependent.comparisons = {
319    RegExp: function RegExp(reference, value) {
320      return reference.test(value);
321    },
322    Function: function Function(reference, value) {
323      return reference(value);
324    },
325    Number: function Number(reference, value) {
326      return typeof value === 'string' ? _compare2(reference.toString(), value) : _compare2(reference, value);
327    }
328  };
329  states.Dependent.prototype = {
330    initializeDependee: function initializeDependee(selector, dependeeStates) {
331      var _this2 = this;
332      this.values[selector] = {};
333      Object.keys(dependeeStates).forEach(function (i) {
334        var state = dependeeStates[i];
335        if ($.inArray(state, dependeeStates) === -1) {
336          return;
337        }
338        state = states.State.sanitize(state);
339        _this2.values[selector][state.name] = null;
340        $(selector).on("state:".concat(state), {
341          selector: selector,
342          state: state
343        }, function (e) {
344          _this2.update(e.data.selector, e.data.state, e.value);
345        });
346        new states.Trigger({
347          selector: selector,
348          state: state
349        });
350      });
351    },
352    compare: function compare(reference, selector, state) {
353      var value = this.values[selector][state.name];
354      if (reference.constructor.name in states.Dependent.comparisons) {
355        return states.Dependent.comparisons[reference.constructor.name](reference, value);
356      }
357      return _compare2(reference, value);
358    },
359    update: function update(selector, state, value) {
360      if (value !== this.values[selector][state.name]) {
361        this.values[selector][state.name] = value;
362        this.reevaluate();
363      }
364    },
365    reevaluate: function reevaluate() {
366      var value = this.verifyConstraints(this.constraints);
367      if (value !== this.oldValue) {
368        this.oldValue = value;
369        value = invert(value, this.state.invert);
370        this.element.trigger({
371          type: "state:".concat(this.state),
372          value: value,
373          trigger: true
374        });
375      }
376    },
377    verifyConstraints: function verifyConstraints(constraints, selector) {
378      var result;
379      if ($.isArray(constraints)) {
380        var hasXor = $.inArray('xor', constraints) === -1;
381        var len = constraints.length;
382        for (var i = 0; i < len; i++) {
383          if (constraints[i] !== 'xor') {
384            var constraint = this.checkConstraints(constraints[i], selector, i);
385            if (constraint && (hasXor || result)) {
386              return hasXor;
387            }
388            result = result || constraint;
389          }
390        }
391      } else if ($.isPlainObject(constraints)) {
392        for (var n in constraints) {
393          if (constraints.hasOwnProperty(n)) {
394            result = ternary(result, this.checkConstraints(constraints[n], selector, n));
395            if (result === false) {
396              return false;
397            }
398          }
399        }
400      }
401      return result;
402    },
403    checkConstraints: function checkConstraints(value, selector, state) {
404      if (typeof state !== 'string' || /[0-9]/.test(state[0])) {
405        state = null;
406      } else if (typeof selector === 'undefined') {
407        selector = state;
408        state = null;
409      }
410      if (state !== null) {
411        state = states.State.sanitize(state);
412        return invert(this.compare(value, selector, state), state.invert);
413      }
414      return this.verifyConstraints(value, selector);
415    },
416    getDependees: function getDependees() {
417      var cache = {};
418      var _compare = this.compare;
419      this.compare = function (reference, selector, state) {
420        (cache[selector] || (cache[selector] = [])).push(state.name);
421      };
422      this.verifyConstraints(this.constraints);
423      this.compare = _compare;
424      return cache;
425    }
426  };
427  states.Trigger = function (args) {
428    $.extend(this, args);
429    if (this.state in states.Trigger.states) {
430      this.element = $(this.selector);
431      if (!this.element.data("trigger:".concat(this.state))) {
432        this.initialize();
433      }
434    }
435  };
436  states.Trigger.prototype = {
437    initialize: function initialize() {
438      var _this3 = this;
439      var trigger = states.Trigger.states[this.state];
440      if (typeof trigger === 'function') {
441        trigger.call(window, this.element);
442      } else {
443        Object.keys(trigger || {}
443).forEach(function (event) {
444          _this3.defaultTrigger(event, trigger[event]);
445        });
446      }
447      this.element.data("trigger:".concat(this.state), true);
448    },
449    defaultTrigger: function defaultTrigger(event, valueFn) {
450      var oldValue = valueFn.call(this.element);
451      this.element.on(event, $.proxy(function (e) {
452        var value = valueFn.call(this.element, e);
453        if (oldValue !== value) {
454          this.element.trigger({
455            type: "state:".concat(this.state),
456            value: value,
457            oldValue: oldValue
458          });
459          oldValue = value;
460        }
461      }, this));
462      states.postponed.push($.proxy(function () {
463        this.element.trigger({
464          type: "state:".concat(this.state),
465          value: oldValue,
466          oldValue: null
467        });
468      }, this));
469    }
470  };
471  states.Trigger.states = {
472    empty: {
473      keyup: function keyup() {
474        return this.val() === '';
475      },
476      change: function change() {
477        return this.val() === '';
478      }
479    },
480    checked: {
481      change: function change() {
482        var checked = false;
483        this.each(function () {
484          checked = $(this).prop('checked');
485          return !checked;
486        });
487        return checked;
488      }
489    },
490    value: {
491      keyup: function keyup() {
492        if (this.length > 1) {
493          return this.filter(':checked').val() || false;
494        }
495        return this.val();
496      },
497      change: function change() {
498        if (this.length > 1) {
499          return this.filter(':checked').val() || false;
500        }
501        return this.val();
502      }
503    },
504    collapsed: {
505      collapsed: function collapsed(e) {
506        return typeof e !== 'undefined' && 'value' in e ? e.value : !this.is('[open]');
507      }
508    }
509  };
510  states.State = function (state) {
511    this.pristine = state;
512    this.name = state;
513    var process = true;
514    do {
515      while (this.name.charAt(0) === '!') {
516        this.name = this.name.substring(1);
517        this.invert = !this.invert;
518      }
519      if (this.name in states.State.aliases) {
520        this.name = states.State.aliases[this.name];
521      } else {
522        process = false;
523      }
524    } while (process);
525  };
526  states.State.sanitize = function (state) {
527    if (state instanceof states.State) {
528      return state;
529    }
530    return new states.State(state);
531  };
532  states.State.aliases = {
533    enabled: '!disabled',
534    invisible: '!visible',
535    invalid: '!valid',
536    untouched: '!touched',
537    optional: '!required',
538    filled: '!empty',
539    unchecked: '!checked',
540    irrelevant: '!relevant',
541    expanded: '!collapsed',
542    open: '!collapsed',
543    closed: 'collapsed',
544    readwrite: '!readonly'
545  };
546  states.State.prototype = {
547    invert: false,
548    toString: function toString() {
549      return this.name;
550    }
551  };
552  var $document = $(document);
553  $document.on('state:disabled', function (e) {
554    if (e.trigger) {
555      $(e.target).closest('.js-form-item, .js-form-submit, .js-form-wrapper').toggleClass('form-disabled', e.value).find('select, input, textarea').prop('disabled', e.value);
556    }
557  });
558  $document.on('state:required', function (e) {
559    if (e.trigger) {
560      if (e.value) {
561        var label = "label".concat(e.target.id ? "[for=".concat(e.target.id, "]") : '');
562        var $label = $(e.target).attr({
563          required: 'required',
564          'aria-required': 'true'
565        }).closest('.js-form-item, .js-form-wrapper').find(label);
566        if (!$label.hasClass('js-form-required').length) {
567          $label.addClass('js-form-required form-required');
568        }
569      } else {
570        $(e.target).removeAttr('required aria-required').closest('.js-form-item, .js-form-wrapper').find('label.js-form-required').removeClass('js-form-required form-required');
571      }
572    }
573  });
574  $document.on('state:visible', function (e) {
575    if (e.trigger) {
576      $(e.target).closest('.js-form-item, .js-form-submit, .js-form-wrapper').toggle(e.value);
577    }
578  });
579  $document.on('state:checked', function (e) {
580    if (e.trigger) {
581      $(e.target).closest('.js-form-item, .js-form-wrapper').find('input').prop('checked', e.value).trigger('change');
582    }
583  });
584  $document.on('state:collapsed', function (e) {
585    if (e.trigger) {
586      if ($(e.target).is('[open]') === e.value) {
587        $(e.target).find('> summary').trigger('click');
588      }
589    }
590  });
591})(jQuery, Drupal);;
592/**
593 * @file
594 * JavaScript behaviors for custom webform #states.
595 */
596
597(function ($, Drupal, once) {
598
599  'use strict';
600
601  Drupal.webform = Drupal.webform || {};
602  Drupal.webform.states = Drupal.webform.states || {};
603  Drupal.webform.states.slideDown = Drupal.webform.states.slideDown || {};
604  Drupal.webform.states.slideDown.duration = 'slow';
605  Drupal.webform.states.slideUp = Drupal.webform.states.slideUp || {};
606  Drupal.webform.states.slideUp.duration = 'fast';
607
608  /* ************************************************************************ */
609  // jQuery functions.
610  /* ************************************************************************ */
611
612  /**
613   * Check if an element has a specified data attribute.
614   *
615   * @param {string} data
616   *   The data attribute name.
617   *
618   * @return {boolean}
619   *   TRUE if an element has a specified data attribute.
620   */
621  $.fn.hasData = function (data) {
622    return (typeof this.data(data) !== 'undefined');
623  };
624
625  /**
626   * Check if element is within the webform or not.
627   *
628   * @return {boolean}
629   *   TRUE if element is within the webform.
630   */
631  $.fn.isWebform = function () {
632    return $(this).closest('form.webform-submission-form, form[id^="webform"], form[data-is-webform]').length ? true : false;
633  };
634
635  /**
636   * Check if element is to be treated as a webform element.
637   *
638   * @return {boolean}
639   *   TRUE if element is to be treated as a webform element.
640   */
641  $.fn.isWebformElement = function () {
642    return ($(this).isWebform() || $(this).closest('[data-is-webform-element]').length) ? true : false;
643  };
644
645  /* ************************************************************************ */
646  // Trigger.
647  /* ************************************************************************ */
648
649  // The change event is triggered by cut-n-paste and select menus.
650  // Issue #2445271: #states element empty check not triggered on mouse
651  // based paste.
652  // @see https://www.drupal.org/node/2445271
653  Drupal.states.Trigger.states.empty.change = function change() {
654    return this.val() === '';
655  };
656
657  /* ************************************************************************ */
658  // Dependents.
659  /* ************************************************************************ */
660
661  // Apply solution included in #1962800 patch.
662  // Issue #1962800: Form #states not working with literal integers as
663  // values in IE11.
664  // @see https://www.drupal.org/project/drupal/issues/1962800
665  // @see https://www.drupal.org/files/issues/core-states-not-working-with-integers-ie11_1962800_46.patch
666  //
667  // This issue causes pattern, less than, and greater than support to break.
668  // @see https://www.drupal.org/project/webform/issues/2981724
669  var states = Drupal.states;
670  Drupal.states.Dependent.prototype.compare = function compare(reference, selector, state) {
671    var value = this.values[selector][state.name];
672
673    var name = reference.constructor.name;
674    if (!name) {
675      name = $.type(reference);
676
677      name = name.charAt(0).toUpperCase() + name.slice(1);
678    }
679    if (name in states.Dependent.comparisons) {
680      return states.Dependent.comparisons[name](reference, value);
681    }
682
683    if (reference.constructor.name in states.Dependent.comparisons) {
684      return states.Dependent.comparisons[reference.constructor.name](reference, value);
685    }
686
687    return _compare2(reference, value);
688  };
689  function _compare2(a, b) {
690    if (a === b) {
691      return typeof a === 'undefined' ? a : true;
692    }
693
694    return typeof a === 'undefined' || typeof b === 'undefined';
695  }
696
697  // Adds pattern, less than, and greater than support to #state API.
698  // @see http://drupalsun.com/julia-evans/2012/03/09/extending-form-api-states-regular-expressions
699  Drupal.states.Dependent.comparisons.Object = function (reference, value) {
700    if ('pattern' in reference) {
701      return (new RegExp(reference['pattern'])).test(value);
702    }
703    else if ('!pattern' in reference) {
704      return !((new RegExp(reference['!pattern'])).test(value));
705    }
706    else if ('less' in reference) {
707      return (value !== '' && parseFloat(reference['less']) > parseFloat(value));
708    }
709    else if ('less_equal' in reference) {
710      return (value !== '' && parseFloat(reference['less_equal']) >= parseFloat(value));
711    }
712    else if ('greater' in reference) {
713      return (value !== '' && parseFloat(reference['greater']) < parseFloat(value));
714    }
715    else if ('greater_equal' in reference) {
716      return (value !== '' && parseFloat(reference['greater_equal']) <= parseFloat(value));
717    }
718    else if ('between' in reference || '!between' in reference) {
719      if (value === '') {
720        return false;
721      }
722
723      var between = reference['between'] || reference['!between'];
724      var betweenParts = between.split(':');
725      var greater = betweenParts[0];
726      var less = (typeof betweenParts[1] !== 'undefined') ? betweenParts[1] : null;
727      var isGreaterThan = (greater === null || greater === '' || parseFloat(value) >= parseFloat(greater));
728      var isLessThan = (less === null || less === '' || parseFloat(value) <= parseFloat(less));
729      var result = (isGreaterThan && isLessThan);
730      return (reference['!between']) ? !result : result;
731    }
732    else {
733      return reference.indexOf(value) !== false;
734    }
735  };
736
737  /* ************************************************************************ */
738  // States events.
739  /* ************************************************************************ */
740
741  var $document = $(document);
742
743  $document.on('state:required', function (e) {
744    if (e.trigger && $(e.target).isWebformElement()) {
745      var $target = $(e.target);
746      // Fix #required file upload.
747      // @see Issue #2860529: Conditional required File upload field don't work.
748      toggleRequired($target.find('input[type="file"]'), e.value);
749
750      // Fix #required for radios and likert.
751      // @see Issue #2856795: If radio buttons are required but not filled form is nevertheless submitted.
752      if ($target.is('.js-form-type-radios, .js-form-type-webform-radios-other, .js-webform-type-radios, .js-webform-type-webform-radios-other, .js-webform-type-webform-entity-radios, .webform-likert-table')) {
753        $target.toggleClass('required', e.value);
754        toggleRequired($target.find('input[type="radio"]'), e.value);
755      }
756
757      // Fix #required for checkboxes.
758      // @see Issue #2938414: Checkboxes don't support #states required.
759      // @see checkboxRequiredhandler
760      if ($target.is('.js-form-type-checkboxes, .js-form-type-webform-checkboxes-other, .js-webform-type-checkboxes, .js-webform-type-webform-checkboxes-other')) {
761        $target.toggleClass('required', e.value);
762        var $checkboxes = $target.find('input[type="checkbox"]');
763        if (e.value) {
764          // Add event handler.
765          $checkboxes.on('click', statesCheckboxesRequiredEventHandler);
766          // Initialize and add required attribute.
767          checkboxesRequired($target);
768        }
769        else {
770          // Remove event handler.
771          $checkboxes.off('click', statesCheckboxesRequiredEventHandler);
772          // Remove required attribute.
773          toggleRequired($checkboxes, false);
774        }
775      }
776
777      // Fix #required for tableselect.
778      // @see Issue #3212581: Table select does not trigger client side validation
779      if ($target.is('.js-webform-tableselect')) {
780        $target.toggleClass('required', e.value);
781        var isMultiple = $target.is('[multiple]');
782        if (isMultiple) {
783          // Checkboxes.
784          var $tbody = $target.find('tbody');
785          var $checkboxes = $tbody.find('input[type="checkbox"]');
786          copyRequireMessage($target, $checkboxes);
787          if (e.value) {
788            $checkboxes.on('click change', statesCheckboxesRequiredEventHandler);
789            checkboxesRequired($tbody);
790          }
791          else {
792            $checkboxes.off('click change ', statesCheckboxesRequiredEventHandler);
793            toggleRequired($tbody, false);
794          }
795        }
796        else {
797          // Radios.
798          var $radios = $target.find('input[type="radio"]');
799          copyRequireMessage($target, $radios);
800          toggleRequired($radios, e.value);
801        }
802      }
803
804      // Fix required label for elements without the for attribute.
805      // @see Issue #3145300: Conditional Visible Select Other not working.
806      if ($target.is('.js-form-type-webform-select-other, .js-webform-type-webform-select-other')) {
807        var $select = $target.find('select');
808        toggleRequired($select, e.value);
809        copyRequireMessage($target, $select);
810      }
811      if ($target.find('> label:not([for])').length) {
812        $target.find('> label').toggleClass('js-form-required form-required', e.value);
813      }
814
815      // Fix required label for checkboxes and radios.
816      // @see Issue #2938414: Checkboxes don't support #states required
817      // @see Issue #2731991: Setting required on radios marks all options required.
818      // @see Issue #2856315: Conditional Logic - Requiring Radios in a Fieldset.
819      // Fix #required for fieldsets.
820      // @see Issue #2977569: Hidden fieldsets that become visible with conditional logic cannot be made required.
821      if ($target.is('.js-webform-type-radios, .js-webform-type-checkboxes, fieldset')) {
822        $target.find('legend span.fieldset-legend:not(.visually-hidden),legend span.fieldset__label:not(.visually-hidden)').toggleClass('js-form-required form-required', e.value);
823      }
824
825      // Issue #2986017: Fieldsets shouldn't have required attribute.
826      if ($target.is('fieldset')) {
827        $target.removeAttr('required aria-required');
828      }
829    }
830  });
831
832  $document.on('state:checked', function (e) {
833    if (e.trigger) {
834      $(e.target).trigger('change');
835    }
836  });
837
838  $document.on('state:readonly', function (e) {
839    if (e.trigger && $(e.target).isWebformElement()) {
840      $(e.target).prop('readonly', e.value).closest('.js-form-item, .js-form-wrapper').toggleClass('webform-readonly', e.value).find('input, textarea').prop('readonly', e.value);
841
842      // Trigger webform:readonly.
843      $(e.target).trigger('webform:readonly')
844        .find('select, input, textarea, button').trigger('webform:readonly');
845    }
846  });
847
848  $document.on('state:visible state:visible-slide', function (e) {
849    if (e.trigger && $(e.target).isWebformElement()) {
850      if (e.value) {
851        $(':input', e.target).addBack().each(function () {
852          restoreValueAndRequired(this);
853          triggerEventHandlers(this);
854        });
855      }
856      else {
857        // @see https://www.sitepoint.com/jquery-function-clear-form-data/
858        $(':input', e.target).addBack().each(function () {
859          backupValueAndRequired(this);
860          clearValueAndRequired(this);
861          triggerEventHandlers(this);
862        });
863      }
864    }
865  });
866
867  $document.on('state:visible-slide', function (e) {
868    if (e.trigger && $(e.target).isWebformElement()) {
869      var effect = e.value ? 'slideDown' : 'slideUp';
870      var duration = Drupal.webform.states[effect].duration;
871      $(e.target).closest('.js-form-item, .js-form-submit, .js-form-wrapper')[effect](duration);
872    }
873  });
874  Drupal.states.State.aliases['invisible-slide'] = '!visible-slide';
875
876  $document.on('state:disabled', function (e) {
877    if (e.trigger && $(e.target).isWebformElement()) {
878      // Make sure disabled property is set before triggering webform:disabled.
879      // Copied from: core/misc/states.js
880      $(e.target)
881        .prop('disabled', e.value)
882        .closest('.js-form-item, .js-form-submit, .js-form-wrapper').toggleClass('form-disabled', e.value)
883        .find('select, input, textarea, button').prop('disabled', e.value);
884
885      // Never disable hidden file[fids] because the existing values will
886      // be completely lost when the webform is submitted.
887      var fileElements = $(e.target)
888        .find(':input[type="hidden"][name$="[fids]"]');
889      if (fileElements.length) {
890        // Remove 'disabled' attribute from fieldset which will block
891        // all disabled elements from being submitted.
892        if ($(e.target).is('fieldset')) {
893          $(e.target).prop('disabled', false);
894        }
895        fileElements.removeAttr('disabled');
896      }
897
898      // Trigger webform:disabled.
899      $(e.target).trigger('webform:disabled')
900        .find('select, input, textarea, button').trigger('webform:disabled');
901    }
902  });
903
904  /* ************************************************************************ */
905  // Behaviors.
906  /* ************************************************************************ */
907
908  /**
909   * Adds HTML5 validation to required checkboxes.
910   *
911   * @type {Drupal~behavior}
912   *
913   * @see https://www.drupal.org/project/webform/issues/3068998
914   */
915  Drupal.behaviors.webformCheckboxesRequired = {
916    attach: function (context) {
917      $(once('webform-checkboxes-required', '.js-form-type-checkboxes.required, .js-form-type-webform-checkboxes-other.required, .js-webform-type-checkboxes.required, .js-webform-type-webform-checkboxes-other.required, .js-webform-type-webform-radios-other.checkboxes', context))
918        .each(function () {
919          var $element = $(this);
920          $element.find('input[type="checkbox"]').on('click', statesCheckboxesRequiredEventHandler);
921          setTimeout(function () {checkboxesRequired($element);});
922        });
923    }
924  };
925
926  /**
927   * Adds HTML5 validation to required radios.
928   *
929   * @type {Drupal~behavior}
930   *
931   * @see https://www.drupal.org/project/webform/issues/2856795
932   */
933  Drupal.behaviors.webformRadiosRequired = {
934    attach: function (context) {
935      $(once('webform-radios-required', '.js-form-type-radios, .js-form-type-webform-radios-other, .js-webform-type-radios, .js-webform-type-webform-radios-other, .js-webform-type-webform-entity-radios, .js-webform-type-webform-scale', context))
936        .each(function () {
937          var $element = $(this);
938          setTimeout(function () {radiosRequired($element);});
939        });
940    }
941  };
942
943 /**
944   * Adds HTML5 validation to required table select.
945   *
946   * @type {Drupal~behavior}
947   *
948   * @see https://www.drupal.org/project/webform/issues/2856795
949   */
950  Drupal.behaviors.webformTableSelectRequired = {
951    attach: function (context) {
952      $(once('webform-tableselect-required','.js-webform-tableselect.required', context))
953        .each(function () {
954          var $element = $(this);
955          var $tbody = $element.find('tbody');
956          var isMultiple = $element.is('[multiple]');
957
958          if (isMultiple) {
959            // Check all checkbox triggers checkbox 'change' event on
960            // select and deselect all.
961            // @see Drupal.tableSelect
962            $tbody.find('input[type="checkbox"]').on('click change', function () {
963              checkboxesRequired($tbody);
964            });
965          }
966
967          setTimeout(function () {
968            isMultiple ? checkboxesRequired($tbody) : radiosRequired($element);
969          });
970        });
971    }
972  };
973
974  /**
975   * Add HTML5 multiple checkboxes required validation.
976   *
977   * @param {jQuery} $element
978   *   An jQuery object containing HTML5 radios.
979   *
980   * @see https://stackoverflow.com/a/37825072/145846
981   */
982  function checkboxesRequired($element) {
983    var $firstCheckbox = $element.find('input[type="checkbox"]').first();
984    var isChecked = $element.find('input[type="checkbox"]').is(':checked');
985    toggleRequired($firstCheckbox, !isChecked);
986    copyRequireMessage($element, $firstCheckbox);
987  }
988
989  /**
990   * Add HTML5 radios required validation.
991   *
992   * @param {jQuery} $element
993   *   An jQuery object containing HTML5 radios.
994   *
995   * @see https://www.drupal.org/project/webform/issues/2856795
996   */
997  function radiosRequired($element) {
998    var $radios = $element.find('input[type="radio"]');
999    var isRequired = $element.hasClass('required');
1000    toggleRequired($radios, isRequired);
1001    copyRequireMessage($element, $radios);
1002  }
1003
1004  /* ************************************************************************ */
1005  // Event handlers.
1006  /* ************************************************************************ */
1007
1008  /**
1009   * Trigger #states API HTML5 multiple checkboxes required validation.
1010   *
1011   * @see https://stackoverflow.com/a/37825072/145846
1012   */
1013  function statesCheckboxesRequiredEventHandler() {
1014    var $element = $(this).closest('.js-webform-type-checkboxes, .js-webform-type-webform-checkboxes-other');
1015    checkboxesRequired($element);
1016  }
1017
1018  /**
1019   * Trigger an input's event handlers.
1020   *
1021   * @param {element} input
1022   *   An input.
1023   */
1024  function triggerEventHandlers(input) {
1025    var $input = $(input);
1026    var type = input.type;
1027    var tag = input.tagName.toLowerCase();
1028    // Add 'webform.states' as extra parameter to event handlers.
1029    // @see Drupal.behaviors.webformUnsaved
1030    var extraParameters = ['webform.states'];
1031    if (type === 'checkbox' || type === 'radio') {
1032      $input
1033        .trigger('change', extraParameters)
1034        .trigger('blur', extraParameters);
1035    }
1036    else if (tag === 'select') {
1037      // Do not trigger the onchange event for Address element's country code
1038      // when it is initialized.
1039      // @see \Drupal\address\Element\Country
1040      if ($input.closest('.webform-type-address').length) {
1041        if (!$input.data('webform-states-address-initialized')
1042          && $input.attr('autocomplete') === 'country'
1043          && $input.val() === $input.find("option[selected]").attr('value')) {
1044          return;
1045        }
1046        $input.data('webform-states-address-initialized', true);
1047      }
1048
1049      $input
1050        .trigger('change', extraParameters)
1051        .trigger('blur', extraParameters);
1052    }
1053    else if (type !== 'submit' && type !== 'button' && type !== 'file') {
1054      // Make sure input mask is removed and then reset when value is restored.
1055      // @see https://www.drupal.org/project/webform/issues/3124155
1056      // @see https://www.drupal.org/project/webform/issues/3202795
1057      var hasInputMask = ($.fn.inputmask && $input.hasClass('js-webform-input-mask'));
1058      hasInputMask && $input.inputmask('remove');
1059
1060      $input
1061        .trigger('input', extraParameters)
1062        .trigger('change', extraParameters)
1063        .trigger('keydown', extraParameters)
1064        .trigger('keyup', extraParameters)
1065        .trigger('blur', extraParameters);
1066
1067      hasInputMask && $input.inputmask();
1068    }
1069  }
1070
1071  /* ************************************************************************ */
1072  // Backup and restore value functions.
1073  /* ************************************************************************ */
1074
1075  /**
1076   * Backup an input's current value and required attribute
1077   *
1078   * @param {element} input
1079   *   An input.
1080   */
1081  function backupValueAndRequired(input) {
1082    var $input = $(input);
1083    var type = input.type;
1084    var tag = input.tagName.toLowerCase(); // Normalize case.
1085
1086    // Backup required.
1087    if ($input.prop('required') && !$input.hasData('webform-required')) {
1088      $input.data('webform-required', true);
1089    }
1090
1091    // Backup value.
1092    if (!$input.hasData('webform-value')) {
1093      if (type === 'checkbox' || type === 'radio') {
1094        $input.data('webform-value', $input.prop('checked'));
1095      }
1096      else if (tag === 'select') {
1097        var values = [];
1098        $input.find('option:selected').each(function (i, option) {
1099          values[i] = option.value;
1100        });
1101        $input.data('webform-value', values);
1102      }
1103      else if (type !== 'submit' && type !== 'button') {
1104        $input.data('webform-value', input.value);
1105      }
1106    }
1107  }
1108
1109  /**
1110   * Restore an input's value and required attribute.
1111   *
1112   * @param {element} input
1113   *   An input.
1114   */
1115  function restoreValueAndRequired(input) {
1116    var $input = $(input);
1117
1118    // Restore value.
1119    var value = $input.data('webform-value');
1120    if (typeof value !== 'undefined') {
1121      var type = input.type;
1122      var tag = input.tagName.toLowerCase(); // Normalize case.
1123
1124      if (type === 'checkbox' || type === 'radio') {
1125        $input.prop('checked', value);
1126      }
1127      else if (tag === 'select') {
1128        $.each(value, function (i, option_value) {
1129          // Prevent "Syntax error, unrecognized expression" error by
1130          // escaping single quotes.
1131          // @see https://forum.jquery.com/topic/escape-characters-prior-to-using-selector
1132          option_value = option_value.replace(/'/g, "\\\'");
1133          $input.find("option[value='" + option_value + "']").prop('selected', true);
1134        });
1135      }
1136      else if (type !== 'submit' && type !== 'button') {
1137        input.value = value;
1138      }
1139      $input.removeData('webform-value');
1140    }
1141
1142    // Restore required.
1143    var required = $input.data('webform-required');
1144    if (typeof required !== 'undefined') {
1145      if (required) {
1146        $input.prop('required', true);
1147      }
1148      $input.removeData('webform-required');
1149    }
1150  }
1151
1152  /**
1153   * Clear an input's value and required attributes.
1154   *
1155   * @param {element} input
1156   *   An input.
1157   */
1158  function clearValueAndRequired(input) {
1159    var $input = $(input);
1160
1161    // Check for #states no clear attribute.
1162    // @see https://css-tricks.com/snippets/jquery/make-an-jquery-hasattr/
1163    if ($input.closest('[data-webform-states-no-clear]').length) {
1164      return;
1165    }
1166
1167    // Clear value.
1168    var type = input.type;
1169    var tag = input.tagName.toLowerCase(); // Normalize case.
1170    if (type === 'checkbox' || type === 'radio') {
1171      $input.prop('checked', false);
1172    }
1173    else if (tag === 'select') {
1174      if ($input.find('option[value=""]').length) {
1175        $input.val('');
1176      }
1177      else {
1178        input.selectedIndex = -1;
1179      }
1180    }
1181    else if (type !== 'submit' && type !== 'button') {
1182      input.value = (type === 'color') ? '#000000' : '';
1183    }
1184
1185    // Clear required.
1186    $input.prop('required', false);
1187  }
1188
1189  /* ************************************************************************ */
1190  // Helper functions.
1191  /* ************************************************************************ */
1192
1193  /**
1194   * Toggle an input's required attributes.
1195   *
1196   * @param {element} $input
1197   *   An input.
1198   * @param {boolean} required
1199   *   Is input required.
1200   */
1201  function toggleRequired($input, required) {
1202    var isCheckboxOrRadio = ($input.attr('type') === 'radio' || $input.attr('type') === 'checkbox');
1203    if (required) {
1204      if (isCheckboxOrRadio) {
1205        $input.attr({'required': 'required'});
1206      }
1207      else {
1208        $input.attr({'required': 'required', 'aria-required': 'true'});
1209      }
1210    }
1211    else {
1212      if (isCheckboxOrRadio) {
1213        $input.removeAttr('required');
1214      }
1215      else {
1216        $input.removeAttr('required aria-required');
1217      }
1218    }
1219  }
1220
1221  /**
1222   * Copy the clientside_validation.module's message.
1223   *
1224   * @param {jQuery} $source
1225   *   The source element.
1226   * @param {jQuery} $destination
1227   *   The destination element.
1228   */
1229  function copyRequireMessage($source, $destination) {
1230    if ($source.attr('data-msg-required')) {
1231      $destination.attr('data-msg-required', $source.attr('data-msg-required'));
1232    }
1233  }
1234
1235})(jQuery, Drupal, once);
1236;
1237/**
1238 * @file
1239 * JavaScript behaviors for webforms.
1240 */
1241
1242(function ($, Drupal, once) {
1243
1244  'use strict';
1245
1246  /**
1247   * Remove single submit event listener.
1248   *
1249   * @type {Drupal~behavior}
1250   *
1251   * @prop {Drupal~behaviorAttach} attach
1252   *   Attaches the behavior for removing single submit event listener.
1253   *
1254   * @see Drupal.behaviors.formSingleSubmit
1255   */
1256  Drupal.behaviors.webformRemoveFormSingleSubmit = {
1257    attach: function attach() {
1258      function onFormSubmit(e) {
1259        var $form = $(e.currentTarget);
1260        $form.removeAttr('data-drupal-form-submit-last');
1261      }
1262      $(once('webform-single-submit', 'body'))
1263        .on('submit.singleSubmit', 'form.webform-remove-single-submit', onFormSubmit);
1264    }
1265  };
1266
1267  /**
1268   * Prevent webform autosubmit on wizard pages.
1269   *
1270   * @type {Drupal~behavior}
1271   *
1272   * @prop {Drupal~behaviorAttach} attach
1273   *   Attaches the behavior for disabling webform autosubmit.
1274   *   Wizard pages need to be progressed with the Previous or Next buttons,
1275   *   not by pressing Enter.
1276   */
1277  Drupal.behaviors.webformDisableAutoSubmit = {
1278    attach: function (context) {
1279      // Not using context so that inputs loaded via Ajax will have autosubmit
1280      // disabled.
1281      // @see http://stackoverflow.com/questions/11235622/jquery-disable-form-submit-on-enter
1282      $(once('webform-disable-autosubmit', $('.js-webform-disable-autosubmit input').not(':button, :submit, :reset, :image, :file')))
1283        .on('keyup keypress', function (e) {
1284          if (e.which === 13) {
1285            e.preventDefault();
1286            return false;
1287          }
1288        });
1289    }
1290  };
1291
1292  /**
1293   * Custom required and pattern validation error messages.
1294   *
1295   * @type {Drupal~behavior}
1296   *
1297   * @prop {Drupal~behaviorAttach} attach
1298   *   Attaches the behavior for the webform custom required and pattern
1299   *   validation error messages.
1300   *
1301   * @see http://stackoverflow.com/questions/5272433/html5-form-required-attribute-set-custom-validation-message
1302   **/
1303  Drupal.behaviors.webformRequiredError = {
1304    attach: function (context) {
1305      $(once('webform-required-error', $(context).find(':input[data-webform-required-error], :input[data-webform-pattern-error]')))
1306        .on('invalid', function () {
1307          this.setCustomValidity('');
1308          if (this.valid) {
1309            return;
1310          }
1311
1312          if (this.validity.patternMismatch && $(this).attr('data-webform-pattern-error')) {
1313            this.setCustomValidity($(this).attr('data-webform-pattern-error'));
1314          }
1315          else if (this.validity.valueMissing && $(this).attr('data-webform-required-error')) {
1316            this.setCustomValidity($(this).attr('data-webform-required-error'));
1317          }
1318        })
1319        .on('input change', function () {
1320          // Find all related elements by name and reset custom validity.
1321          // This specifically applies to required radios and checkboxes.
1322          var name = $(this).attr('name');
1323          $(this.form).find(':input[name="' + name + '"]').each(function () {
1324            this.setCustomValidity('');
1325          });
1326        });
1327    }
1328  };
1329
1330  // When #state:required is triggered we need to reset the target elements
1331  // custom validity.
1332  $(document).on('state:required', function (e) {
1333    $(e.target).filter(':input[data-webform-required-error]')
1334      .each(function () {this.setCustomValidity('');});
1335  });
1336
1337})(jQuery, Drupal, once);
1338;
1339/**
1340 * @file
1341 * JavaScript behaviors for details element.
1342 */
1343
1344(function ($, Drupal, once) {
1345
1346  'use strict';
1347
1348  // Determine if local storage exists and is enabled.
1349  // This approach is copied from Modernizr.
1350  // @see https://github.com/Modernizr/Modernizr/blob/c56fb8b09515f629806ca44742932902ac145302/modernizr.js#L696-731
1351  var hasLocalStorage = (function () {
1352    try {
1353      localStorage.setItem('webform', 'webform');
1354      localStorage.removeItem('webform');
1355      return true;
1356    }
1357    catch (e) {
1358      return false;
1359    }
1360  }());
1361
1362  /**
1363   * Attach handler to save details open/close state.
1364   *
1365   * @type {Drupal~behavior}
1366   */
1367  Drupal.behaviors.webformDetailsSave = {
1368    attach: function (context) {
1369      if (!hasLocalStorage) {
1370        return;
1371      }
1372
1373      // Summary click event handler.
1374      $(once('webform-details-summary-save', 'details > summary', context)).on('click', function () {
1375        var $details = $(this).parent();
1376
1377        // @see https://css-tricks.com/snippets/jquery/make-an-jquery-hasattr/
1378        if ($details[0].hasAttribute('data-webform-details-nosave')) {
1379          return;
1380        }
1381
1382        var name = Drupal.webformDetailsSaveGetName($details);
1383        if (!name) {
1384          return;
1385        }
1386
1387        var open = ($details.attr('open') !== 'open') ? '1' : '0';
1388        localStorage.setItem(name, open);
1389      });
1390
1391      // Initialize details open state via local storage.
1392      $(once('webform-details-save', 'details', context)).each(function () {
1393        var $details = $(this);
1394
1395        var name = Drupal.webformDetailsSaveGetName($details);
1396        if (!name) {
1397          return;
1398        }
1399
1400        var open = localStorage.getItem(name);
1401        if (open === null) {
1402          return;
1403        }
1404
1405        if (open === '1') {
1406          $details.attr('open', 'open');
1407        }
1408        else {
1409          $details.removeAttr('open');
1410        }
1411      });
1412    }
1413
1414  };
1415
1416  /**
1417   * Get the name used to store the state of details element.
1418   *
1419   * @param {jQuery} $details
1420   *   A details element.
1421   *
1422   * @return {string}
1423   *   The name used to store the state of details element.
1424   */
1425  Drupal.webformDetailsSaveGetName = function ($details) {
1426    if (!hasLocalStorage) {
1427      return '';
1428    }
1429
1430    // Ignore details that are vertical tabs pane.
1431    if ($details.hasClass('vertical-tabs__pane')) {
1432      return '';
1433    }
1434
1435    // Any details element not included a webform must have define its own id.
1436    var webformId = $details.attr('data-webform-element-id');
1437    if (webformId) {
1438      return 'Drupal.webform.' + webformId.replace('--', '.');
1439    }
1440
1441    var detailsId = $details.attr('id');
1442    if (!detailsId) {
1443      return '';
1444    }
1445
1446    var $form = $details.parents('form');
1447    if (!$form.length || !$form.attr('id')) {
1448      return '';
1449    }
1450
1451    var formId = $form.attr('id');
1452    if (!formId) {
1453      return '';
1454    }
1455
1456    // ISSUE: When Drupal renders a webform in a modal dialog it appends a unique
1457    // identifier to webform ids and details ids. (i.e. my-form--FeSFISegTUI)
1458    // WORKAROUND: Remove the unique id that delimited using double dashes.
1459    formId = formId.replace(/--.+?$/, '').replace(/-/g, '_');
1460    detailsId = detailsId.replace(/--.+?$/, '').replace(/-/g, '_');
1461    return 'Drupal.webform.' + formId + '.' + detailsId;
1462  };
1463
1464})(jQuery, Drupal, once);
1465;
1466/**
1467* DO NOT EDIT THIS FILE.
1468* See the following change record for more information,
1469* https://www.drupal.org/node/2815083
1470* @preserve
1471**/
1472(function (Drupal, debounce) {
1473  var liveElement;
1474  var announcements = [];
1475  Drupal.behaviors.drupalAnnounce = {
1476    attach: function attach(context) {
1477      if (!liveElement) {
1478        liveElement = document.createElement('div');
1479        liveElement.id = 'drupal-live-announce';
1480        liveElement.className = 'visually-hidden';
1481        liveElement.setAttribute('aria-live', 'polite');
1482        liveElement.setAttribute('aria-busy', 'false');
1483        document.body.appendChild(liveElement);
1484      }
1485    }
1486  };
1487  function announce() {
1488    var text = [];
1489    var priority = 'polite';
1490    var announcement;
1491    var il = announcements.length;
1492    for (var i = 0; i < il; i++) {
1493      announcement = announcements.pop();
1494      text.unshift(announcement.text);
1495      if (announcement.priority === 'assertive') {
1496        priority = 'assertive';
1497      }
1498    }
1499    if (text.length) {
1500      liveElement.innerHTML = '';
1501      liveElement.setAttribute('aria-busy', 'true');
1502      liveElement.setAttribute('aria-live', priority);
1503      liveElement.innerHTML = text.join('\n');
1504      liveElement.setAttribute('aria-busy', 'false');
1505    }
1506  }
1507  Drupal.announce = function (text, priority) {
1508    announcements.push({
1509      text: text,
1510      priority: priority
1511    });
1512    return debounce(announce, 200)();
1513  };
1514})(Drupal, Drupal.debounce);;
1515/**
1516 * @file
1517 * JavaScript behaviors for details element.
1518 */
1519
1520(function ($, Drupal, once) {
1521
1522  'use strict';
1523
1524  Drupal.webform = Drupal.webform || {};
1525  Drupal.webform.detailsToggle = Drupal.webform.detailsToggle || {};
1526  Drupal.webform.detailsToggle.options = Drupal.webform.detailsToggle.options || {};
1527
1528  /**
1529   * Attach handler to toggle details open/close state.
1530   *
1531   * @type {Drupal~behavior}
1532   */
1533  Drupal.behaviors.webformDetailsToggle = {
1534    attach: function (context) {
1535      $(once('webform-details-toggle', '.js-webform-details-toggle', context)).each(function () {
1536        var $form = $(this);
1537        var $tabs = $form.find('.webform-tabs');
1538
1539        // Get only the main details elements and ignore all nested details.
1540        var selector = ($tabs.length) ? '.webform-tab' : '.js-webform-details-toggle, .webform-elements';
1541        var $details = $form.find('details').filter(function () {
1542          var $parents = $(this).parentsUntil(selector);
1543          return ($parents.find('details').length === 0);
1544        });
1545
1546        // Toggle is only useful when there are two or more details elements.
1547        if ($details.length < 2) {
1548          return;
1549        }
1550
1551        var options = $.extend({
1552          button: '<button type="button" class="webform-details-toggle-state"></button>'
1553        }, Drupal.webform.detailsToggle.options);
1554
1555        // Create toggle buttons.
1556        var $toggle = $(options.button)
1557          .attr('title', Drupal.t('Toggle details widget state.'))
1558          .on('click', function (e) {
1559            // Get details that are not vertical tabs pane.
1560            var $details = $form.find('details:not(.vertical-tabs__pane)');
1561            var open;
1562            if (Drupal.webform.detailsToggle.isFormDetailsOpen($form)) {
1563              $details.removeAttr('open');
1564              open = 0;
1565            }
1566            else {
1567              $details.attr('open', 'open');
1568              open = 1;
1569            }
1570            Drupal.webform.detailsToggle.setDetailsToggleLabel($form);
1571
1572            // Set the saved states for all the details elements.
1573            // @see webform.element.details.save.js
1574            if (Drupal.webformDetailsSaveGetName) {
1575              $details.each(function () {
1576                // Note: Drupal.webformDetailsSaveGetName checks if localStorage
1577                // exists and is enabled.
1578                // @see webform.element.details.save.js
1579                var name = Drupal.webformDetailsSaveGetName($(this));
1580                if (name) {
1581                  localStorage.setItem(name, open);
1582                }
1583              });
1584            }
1585          })
1586          .wrap('<div class="webform-details-toggle-state-wrapper"></div>')
1587          .parent();
1588
1589        if ($tabs.length) {
1590          // Add toggle state before the tabs.
1591          $tabs.find('.item-list:first-child').eq(0).before($toggle);
1592        }
1593        else {
1594          // Add toggle state link to first details element.
1595          $details.eq(0).before($toggle);
1596        }
1597
1598        Drupal.webform.detailsToggle.setDetailsToggleLabel($form);
1599      });
1600    }
1601  };
1602
1603  /**
1604   * Determine if a webform's details are all opened.
1605   *
1606   * @param {jQuery} $form
1607   *   A webform.
1608   *
1609   * @return {boolean}
1610   *   TRUE if a webform's details are all opened.
1611   */
1612  Drupal.webform.detailsToggle.isFormDetailsOpen = function ($form) {
1613    return ($form.find('details[open]').length === $form.find('details').length);
1614  };
1615
1616  /**
1617   * Set a webform's details toggle state widget label.
1618   *
1619   * @param {jQuery} $form
1620   *   A webform.
1621   */
1622  Drupal.webform.detailsToggle.setDetailsToggleLabel = function ($form) {
1623    var isOpen = Drupal.webform.detailsToggle.isFormDetailsOpen($form);
1624
1625    var label = (isOpen) ? Drupal.t('Collapse all') : Drupal.t('Expand all');
1626    $form.find('.webform-details-toggle-state').html(label);
1627
1628    var text = (isOpen) ? Drupal.t('All details have been expanded.') : Drupal.t('All details have been collapsed.');
1629    Drupal.announce(text);
1630  };
1631
1632})(jQuery, Drupal, once);
1633;
1634/**
1635 * @file
1636 * JavaScript behaviors for message element integration.
1637 */
1638
1639(function ($, Drupal, once) {
1640
1641  'use strict';
1642
1643  // Determine if local storage exists and is enabled.
1644  // This approach is copied from Modernizr.
1645  // @see https://github.com/Modernizr/Modernizr/blob/c56fb8b09515f629806ca44742932902ac145302/modernizr.js#L696-731
1646  var hasLocalStorage = (function () {
1647    try {
1648      localStorage.setItem('webform', 'webform');
1649      localStorage.removeItem('webform');
1650      return true;
1651    }
1652    catch (e) {
1653      return false;
1654    }
1655  }());
1656
1657  // Determine if session storage exists and is enabled.
1658  // This approach is copied from Modernizr.
1659  // @see https://github.com/Modernizr/Modernizr/blob/c56fb8b09515f629806ca44742932902ac145302/modernizr.js#L696-731
1660  var hasSessionStorage = (function () {
1661    try {
1662      sessionStorage.setItem('webform', 'webform');
1663      sessionStorage.removeItem('webform');
1664      return true;
1665    }
1666    catch (e) {
1667      return false;
1668    }
1669  }());
1670
1671  /**
1672   * Behavior for handler message close.
1673   *
1674   * @type {Drupal~behavior}
1675   */
1676  Drupal.behaviors.webformMessageClose = {
1677    attach: function (context) {
1678      $(once('webform-message--close', '.js-webform-message--close', context)).each(function () {
1679        var $element = $(this);
1680
1681        var id = $element.attr('data-message-id');
1682        var storage = $element.attr('data-message-storage');
1683        var effect = $element.attr('data-message-close-effect') || 'hide';
1684        switch (effect) {
1685          case 'slide': effect = 'slideUp'; break;
1686
1687          case 'fade': effect = 'fadeOut'; break;
1688        }
1689
1690        // Check storage status.
1691        if (isClosed($element, storage, id)) {
1692          return;
1693        }
1694
1695        // Only show element if it's style is not set to 'display: none'
1696        // and it is not hidden via .js-webform-states-hidden.
1697        if ($element.attr('style') !== 'display: none;' && !$element.hasClass('js-webform-states-hidden')) {
1698          $element.show();
1699        }
1700
1701        $element.find('.js-webform-message__link').on('click', function (event) {
1702          $element[effect]();
1703          setClosed($element, storage, id);
1704          $element.trigger('close');
1705          event.preventDefault();
1706        });
1707      });
1708    }
1709  };
1710
1711  function isClosed($element, storage, id) {
1712    if (!id || !storage) {
1713      return false;
1714    }
1715
1716    switch (storage) {
1717      case 'local':
1718        if (hasLocalStorage) {
1719          return localStorage.getItem('Drupal.webform.message.' + id) || false;
1720        }
1721        return false;
1722
1723      case 'session':
1724        if (hasSessionStorage) {
1725          return sessionStorage.getItem('Drupal.webform.message.' + id) || false;
1726        }
1727        return false;
1728
1729      default:
1730        return false;
1731    }
1732  }
1733
1734  function setClosed($element, storage, id) {
1735    if (!id || !storage) {
1736      return;
1737    }
1738
1739    switch (storage) {
1740      case 'local':
1741        if (hasLocalStorage) {
1742          localStorage.setItem('Drupal.webform.message.' + id, true);
1743        }
1744        break;
1745
1746      case 'session':
1747        if (hasSessionStorage) {
1748          sessionStorage.setItem('Drupal.webform.message.' + id, true);
1749        }
1750        break;
1751
1752      case 'user':
1753      case 'state':
1754      case 'custom':
1755        $.get($element.find('.js-webform-message__link').attr('href'));
1756        return true;
1757    }
1758  }
1759
1760})(jQuery, Drupal, once);
1761;
1762/*
1763 * Superfish v1.4.8 - jQuery menu widget
1764 * Copyright (c) 2008 Joel Birch
1765 *
1766 * Dual licensed under the MIT and GPL licenses:
1767 *  http://www.opensource.org/licenses/mit-license.php
1768 *  http://www.gnu.org/licenses/gpl.html
1769 */
1770/*
1771 * This is not the original jQuery Superfish plugin.
1772 * Please refer to the README for more information.
1773 */
1774
1775(function($){
1776  $.fn.superfish = function(superfish_options){
1777    const cssClasses = sf.cssClasses;
1778    const $arrow = $(`<span class="${cssClasses.arrowClass}"> &#187;</span>`);
1779
1780    const over = function(){
1781      const $$ = $(this);
1782      const menu = getMenu($$);
1783      clearTimeout(menu.sfTimer);
1784      $$.showSuperfishUl().siblings().hideSuperfishUl();
1785    };
1786
1787    const out = function(){
1788      const $$ = $(this);
1789      const menu = getMenu($$);
1790      const options = sf.options;
1791
1792      clearTimeout(menu.sfTimer);
1793      menu.sfTimer = setTimeout(function(){
1794        if ($$.children('.sf-clicked').length === 0){
1795          options.retainPath = ($.inArray($$[0], options.$path) > -1);
1796          $$.hideSuperfishUl();
1797          if (options.$path.length && $$.parents(`li.${cssClasses.hoverClass}`).length < 1){
1798            over.call(options.$path);
1799          }
1800        }
1801      }, options.delay);
1802    };
1803
1804    const getMenu = function($menu){
1805      const menu = $menu.parents(`ul.${cssClasses.menuClass}:first`)[0];
1806      sf.options = sf.optionsList[menu.serial];
1807      return menu;
1808    };
1809
1810    const addArrow = function($a){
1811      $a.addClass(cssClasses.anchorClass).append($arrow.clone());
1812    };
1813
1814    return this.each(function() {
1815      const s = this.serial = sf.optionsList.length;
1816      const options = $.extend({}, sf.defaults, superfish_options);
1817      options.$path = $(`li.${options.pathClass}`, this).slice(0, options.pathLevels);
1818      const path = options.$path;
1819      for (let l = 0; l < path.length; l++){
1820        path.eq(l).addClass(`${cssClasses.hoverClass} ${cssClasses.bcClass}`).filter('li:has(ul)').removeClass(options.pathClass);
1821      }
1822      sf.optionsList[s] = sf.options = options;
1823
1824      $('li:has(ul)', this)[($.fn.hoverIntent && !options.disableHI) ? 'hoverIntent' : 'hover'](over, out).each(function() {
1825        if (options.autoArrows) {
1826          addArrow( $(this).children('a:first-child, span.nolink:first-child') );
1827        }
1828      })
1829      .not('.' + cssClasses.bcClass).hideSuperfishUl();
1830
1831      const $a = $('a, span.nolink', this);
1832      $a.each(function(i){
1833        const $li = $a.eq(i).parents('li');
1834        $a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});
1835      });
1836      options.onInit.call(this);
1837
1838    }).each(function() {
1839      const menuClasses = [cssClasses.menuClass];
1840      if (sf.options.dropShadows){
1841        menuClasses.push(cssClasses.shadowClass);
1842      }
1843      $(this).addClass(menuClasses.join(' '));
1844    });
1845  };
1846
1847  const sf = $.fn.superfish;
1848  sf.optionsList = [];
1849  sf.options = {};
1850
1851  sf.cssClasses = {
1852    bcClass: 'sf-breadcrumb',
1853    menuClass: 'sf-js-enabled',
1854    anchorClass: 'sf-with-ul',
1855    arrowClass: 'sf-sub-indicator',
1856    shadowClass: 'sf-shadow',
1857    hiddenClass: 'sf-hidden',
1858    hoverClass: 'sfHover'
1859  };
1860
1861  sf.defaults = {
1862    pathClass: 'overideThisToUse',
1863    pathLevels: 1,
1864    delay: 800,
1865    animation: {opacity: 'show'},
1866    speed: 'fast',
1867    autoArrows: true,
1868    dropShadows: true,
1869    disableHI: false, // true disables hoverIntent detection
1870    onInit: function(){}, // callback functions
1871    onBeforeShow: function(){},
1872    onShow: function(){},
1873    onHide: function(){}
1874  };
1875
1876  $.fn.extend({
1877    hideSuperfishUl : function(){
1878      const options = sf.options;
1879      const not = options.retainPath === true ? options.$path : '';
1880      options.retainPath = false;
1881      const $ul = $(`li.${sf.cssClasses.hoverClass}`, this).add(this).not(not).removeClass(sf.cssClasses.hoverClass)
1882          .children('ul').addClass(sf.cssClasses.hiddenClass);
1883      options.onHide.call($ul);
1884      return this;
1885    },
1886    showSuperfishUl : function(){
1887      this.removeClass(sf.cssClasses.hiddenClass);
1888      const options = sf.options;
1889      const $ul = this.addClass(sf.cssClasses.hoverClass).children(`ul.${sf.cssClasses.hiddenClass}`).hide().removeClass(sf.cssClasses.hiddenClass);
1890      options.onBeforeShow.call($ul);
1891      $ul.animate(options.animation, options.speed, function(){ options.onShow.call($ul); });
1892      return this;
1893    }
1894  });
1895
1896})(jQuery);
1897;
1898/*!
1899 * hoverIntent v1.10.1 // 2019.10.05 // jQuery v1.7.0+
1900 * http://briancherne.github.io/jquery-hoverIntent/
1901 *
1902 * You may use hoverIntent under the terms of the MIT license. Basically that
1903 * means you are free to use hoverIntent as long as this header is left intact.
1904 * Copyright 2007-2019 Brian Cherne
1905 */
1906!function(factory){"use strict";"function"==typeof define&&define.amd?define(["jquery"],factory):"object"==typeof module&&module.exports?module.exports=factory(require("jquery")):jQuery&&!jQuery.fn.hoverIntent&&factory(jQuery)}(function($){"use strict";function track(ev){cX=ev.pageX,cY=ev.pageY}var cX,cY,_cfg={interval:100,sensitivity:6,timeout:0},INSTANCE_COUNT=0,compare=function(ev,$el,s,cfg){if(Math.sqrt((s.pX-cX)*(s.pX-cX)+(s.pY-cY)*(s.pY-cY))<cfg.sensitivity)return $el.off(s.event,track),delete s.timeoutId,s.isActive=!0,ev.pageX=cX,ev.pageY=cY,delete s.pX,delete s.pY,cfg.over.apply($el[0],[ev]);s.pX=cX,s.pY=cY,s.timeoutId=setTimeout(function(){compare(ev,$el,s,cfg)},cfg.interval)};$.fn.hoverIntent=function(handlerIn,handlerOut,selector){var instanceId=INSTANCE_COUNT++,cfg=$.extend({},_cfg);$.isPlainObject(handlerIn)?(cfg=$.extend(cfg,handlerIn),(typeof cfg.out==="function")||(cfg.out=cfg.over)):cfg=(typeof handlerOut==="function")?$.extend(cfg,{over:handlerIn,out:handlerOut,selector:selector}):$.extend(cfg,{over:handlerIn,out:handlerIn,selector:handlerOut});function handleHover(e){var ev=$.extend({},e),$el=$(this),hoverIntentData=$el.data("hoverIntent");hoverIntentData||$el.data("hoverIntent",hoverIntentData={});var state=hoverIntentData[instanceId];state||(hoverIntentData[instanceId]=state={id:instanceId}),state.timeoutId&&(state.timeoutId=clearTimeout(state.timeoutId));
1906var mousemove=state.event="mousemove.hoverIntent.hoverIntent"+instanceId;if("mouseenter"===e.type){if(state.isActive)return;state.pX=ev.pageX,state.pY=ev.pageY,$el.off(mousemove,track).on(mousemove,track),state.timeoutId=setTimeout(function(){compare(ev,$el,state,cfg)},cfg.interval)}else{if(!state.isActive)return;$el.off(mousemove,track),state.timeoutId=setTimeout(function(){!function(ev,$el,s,out){var data=$el.data("hoverIntent");data&&delete data[s.id],out.apply($el[0],[ev])}(ev,$el,state,cfg.out)},cfg.timeout)}}return this.on({"mouseenter.hoverIntent":handleHover,"mouseleave.hoverIntent":handleHover},cfg.selector)}});;
1907/*
1908 * Supposition v0.2 - an optional enhancer for Superfish jQuery menu widget.
1909 *
1910 * Copyright (c) 2008 Joel Birch - based mostly on work by Jesse Klaasse and credit goes largely to him.
1911 * Special thanks to Karl Swedberg for valuable input.
1912 *
1913 * Dual licensed under the MIT and GPL licenses:
1914 *  http://www.opensource.org/licenses/mit-license.php
1915 *  http://www.gnu.org/licenses/gpl.html
1916 */
1917/*
1918 * This is not the original jQuery Supposition plugin.
1919 * Please refer to the README for more information.
1920 */
1921
1922(function($){
1923  $.fn.supposition = function(){
1924    const $w = $(window); /*do this once instead of every onBeforeShow call*/
1925
1926    const _offset = function(dir) {
1927      return window[dir === 'y' ? 'pageYOffset' : 'pageXOffset']
1928      || document.documentElement && document.documentElement[dir === 'y' ? 'scrollTop' : 'scrollLeft']
1929      || document.body[dir === 'y' ? 'scrollTop' : 'scrollLeft'];
1930    };
1931
1932    const onHide = function(){
1933      this.css({bottom:''});
1934    };
1935
1936    const onBeforeShow = function(){
1937      this.each(function(){
1938        const $u = $(this);
1939        $u.css('display','block');
1940        const $mul = $u.closest('.sf-menu');
1941        const level = $u.parents('ul').length;
1942        const menuWidth = $u.width();
1943        const menuParentWidth = $u.closest('li').outerWidth(true);
1944        const menuParentLeft = $u.closest('li').offset().left;
1945        const totalRight = $w.width() + _offset('x');
1946        const menuRight = $u.offset().left + menuWidth;
1947        const exactMenuWidth = menuRight > (menuParentWidth + menuParentLeft) ? menuWidth - (menuRight - (menuParentWidth + menuParentLeft)) : menuWidth;
1948
1949        if ($u.parents('.sf-js-enabled').hasClass('rtl')) {
1950          if (menuParentLeft < exactMenuWidth) {
1951            if ($mul.hasClass('sf-horizontal') && level === 1 || $mul.hasClass('sf-navbar') && level === 2){
1952              $u.css({left: 0, right: 'auto'});
1953            }
1954            else {
1955              $u.css({left: menuParentWidth + 'px', right: 'auto'});
1956            }
1957            $u.parent().addClass('sf-supposition-active');
1958          }
1959        }
1960        else {
1961          if (menuRight > totalRight && menuParentLeft > menuWidth) {
1962            if ($mul.hasClass('sf-horizontal') && level === 1 || $mul.hasClass('sf-navbar') && level === 2){
1963              $u.css({right: 0, left: 'auto'});
1964            }
1965            else {
1966              $u.css({right: menuParentWidth + 'px', left: 'auto'});
1967            }
1968            $u.parent().addClass('sf-supposition-active');
1969          }
1970        }
1971
1972        const windowHeight = $w.height();
1973        const offsetTop = $u.offset().top;
1974        const menuParentShadow = $mul.hasClass('sf-shadow') && $u.css('padding-bottom').length > 0 ? parseInt($u.css('padding-bottom').slice(0,-2)) : 0;
1975        const menuParentHeight = $mul.hasClass('sf-vertical') ? '-' + menuParentShadow : $u.parent().outerHeight(true) - menuParentShadow;
1976        const menuHeight = $u.height();
1977        const baseline = windowHeight + _offset('y');
1978        const expandUp = (offsetTop + menuHeight > baseline) && (offsetTop > menuHeight);
1979        if (expandUp) {
1980          $u.css({bottom:menuParentHeight + 'px',top:'auto'});
1981        }
1982        $u.css('display','none');
1983      });
1984    };
1985
1986    return this.each(function() {
1987      const options = $.fn.superfish.optionsList[this.serial]; /* get this menu's options */
1988
1989      /* if callbacks already set, store them */
1990      const _onBeforeShow = options.onBeforeShow;
1991      const _onHide = options.onHide;
1992
1993      $.extend($.fn.superfish.optionsList[this.serial],{
1994        onBeforeShow: function() {
1995          onBeforeShow.call(this); /* fire our Supposition callback */
1996          _onBeforeShow.call(this); /* fire stored callbacks */
1997        },
1998        onHide: function() {
1999          onHide.call(this); /* fire our Supposition callback */
2000          _onHide.call(this); /* fire stored callbacks */
2001        }
2002      });
2003    });
2004  };
2005})(jQuery);
2006;
2007/*
2008 * Supersubs v0.4b - jQuery plugin
2009 * Copyright (c) 2013 Joel Birch
2010 *
2011 * Dual licensed under the MIT and GPL licenses:
2012 *  http://www.opensource.org/licenses/mit-license.php
2013 *  http://www.gnu.org/licenses/gpl.html
2014 *
2015 * This plugin automatically adjusts submenu widths of suckerfish-style menus to that of
2016 * their longest list item children. If you use this, please expect bugs and report them
2017 * to the jQuery Google Group with the word 'Superfish' in the subject line.
2018 *
2019 */
2020/*
2021 * This is not the original jQuery Supersubs plugin.
2022 * Please refer to the README for more information.
2023 */
2024
2025(function($){ // $ will refer to jQuery within this closure
2026  $.fn.supersubs = function(options){
2027    const superfish_options = $.extend({}, $.fn.supersubs.defaults, options);
2028    let size;
2029    let o;
2030
2031    // return an original object to support chaining,
2032    // Although this is unnecessary due to the way the module uses these plugins.
2033    for (let a = 0; a < this.length; a++) {
2034      // cache selections
2035      let $$ = $(this).eq(a);
2036      // support metadata
2037      o = $.meta ? $.extend({}, superfish_options, $$.data()) : superfish_options;
2038      // Jump one level if it's a "NavBar"
2039      if ($$.hasClass('sf-navbar')) {
2040        $$ = $$.children('li').children('ul');
2041      }
2042      // cache all ul elements
2043      let $ULs = $$.find('ul');
2044      if ($ULs.length) {
2045        // get the font size of menu.
2046        // .css('fontSize') returns various results cross-browser, so measure an em dash instead
2047        let fontsize = $('<li id="menu-fontsize">&#8212;</li>');
2048        size = fontsize.attr('style','padding:0;position:absolute;top:-99999em;width:auto;')
2049        .appendTo($$)[0].clientWidth; //clientWidth is faster than width()
2050        // remove em dash
2051        fontsize.remove();
2052
2053        // loop through each ul in a menu
2054        for (let b = 0; b < $ULs.length; b++) {
2055          // cache this ul
2056          let $ul = $ULs.eq(b);
2057          // If a multi-column sub-menu, and only if correctly configured.
2058          if (o.multicolumn && $ul.hasClass('sf-multicolumn') && $ul.find('.sf-multicolumn-column').length > 0){
2059            // Look through each column.
2060            let $column = $ul.find('div.sf-multicolumn-column > ol');
2061            // Overall width.
2062            let mwWidth = 0;
2063            for (let d = 0; d < $column.length; d++){
2064              resize($column.eq(d));
2065              // New column width, in pixels.
2066              let colWidth = Math.ceil($column.width());
2067              // Just a trick to convert em unit to px.
2068              $column.css({width:colWidth})
2069              // Making column parents the same size.
2070              .parents('.sf-multicolumn-column').css({width:colWidth});
2071              // Overall width.
2072              mwWidth += colWidth;
2073            }
2074            // Resizing the columns' container too.
2075            $ul.add($ul.find('li.sf-multicolumn-wrapper, li.sf-multicolumn-wrapper > ol')).css({width:mwWidth});
2076          }
2077          else {
2078            resize($ul);
2079          }
2080        }
2081      }
2082    }
2083    function resize($ul){
2084      // get all (li) children of this ul
2085      const $LIs = $ul.children();
2086      // get all anchor grand-children
2087      const $As = $LIs.children('a');
2088      // force content to one line and save current float property
2089      $LIs.css('white-space','nowrap');
2090      // remove width restrictions and floats so elements remain vertically stacked
2091      $ul.add($LIs).add($As).css({float:'none',width:'auto'});
2092      // this ul will now be shrink-wrapped to the longest li due to position:absolute
2093      // so save its width as ems.
2094      let emWidth = $ul.get(0).clientWidth / size;
2095      // add more width to ensure lines don't turn over at certain sizes in various browsers
2096      emWidth += o.extraWidth;
2097      // restrict to at least minWidth and at most maxWidth
2098      if (emWidth > o.maxWidth) {
2099        emWidth = o.maxWidth;
2100      }
2101      else if (emWidth < o.minWidth) {
2102        emWidth = o.minWidth;
2103      }
2104      emWidth += 'em';
2105      // set ul to width in ems
2106      $ul.css({width:emWidth});
2107      // restore li floats to avoid IE bugs
2108      // set li width to full width of this ul
2109      // revert white-space to normal
2110      $LIs.add($As).css({float:'',width:'',whiteSpace:''});
2111      // update offset position of descendant ul to reflect new width of parent.
2112      // set it to 100% in case it isn't already set to this in the CSS
2113      for (let c = 0; c < $LIs.length; c++) {
2114        let $childUl = $LIs.eq(c).children('ul');
2115        let offsetDirection = $childUl.css('left') !== undefined ? 'left' : 'right';
2116        $childUl.css(offsetDirection,'100%');
2117      }
2118    }
2119    return this;
2120  };
2121
2122  // expose defaults
2123  $.fn.supersubs.defaults = {
2124    multicolumn: true, // define width for multi-column sub-menus and their columns.
2125    minWidth: 12, // requires em unit.
2126    maxWidth: 27, // requires em unit.
2127    extraWidth: 1 // extra width can ensure lines don't sometimes turn over due to slight browser differences in how they round-off values
2128  };
2129})(jQuery); // plugin code ends
2130;
2131(function ($, Drupal, once) {
2132  Drupal.behaviors.superfish = {
2133    attach(context, drupalSettings) {
2134      // Take a look at each menu to apply Superfish to.
2135      $.each(drupalSettings.superfish || {}, function (index, options) {
2136        $(once('superfish', `ul#${options.id}`, context)).each(function () {
2137          const $menu = $(this);
2138
2139          // Check if we are to apply the Supersubs plug-in to it.
2140          if (options.plugins) {
2141            if (options.plugins.supersubs) {
2142              $menu.supersubs(options.plugins.supersubs);
2143            }
2144          }
2145
2146          // Apply Superfish to the menu.
2147          $menu.superfish(options.sf);
2148          // Check if we are to apply any other plug-in to it.
2149          if (options.plugins) {
2150            if (options.plugins.touchscreen) {
2151              $menu.sftouchscreen(options.plugins.touchscreen);
2152            }
2153            if (options.plugins.smallscreen) {
2154              $menu.sfsmallscreen(options.plugins.smallscreen);
2155            }
2156            if (options.plugins.supposition) {
2157              $menu.supposition();
2158            }
2159          }
2160        });
2161      });
2162    },
2163  };
2164})(jQuery, Drupal, once);
2165;
2166/*
2167 * sf-Touchscreen v1.3b - Provides touchscreen compatibility for the jQuery Superfish plugin.
2168 *
2169 * Developer's note:
2170 * Built as a part of the Superfish project for Drupal (http://drupal.org/project/superfish)
2171 * Found any bug? have any cool ideas? contact me right away! http://drupal.org/user/619294/contact
2172 *
2173 * jQuery version: 1.7 or higher.
2174 *
2175 * Dual licensed under the MIT and GPL licenses:
2176 *  http://www.opensource.org/licenses/mit-license.php
2177 *  http://www.gnu.org/licenses/gpl.html
2178 */
2179
2180(function($){
2181  $.fn.sftouchscreen = function(options){
2182    options = $.extend({
2183      mode: 'inactive',
2184      breakpoint: 768,
2185      breakpointUnit: 'px',
2186      useragent: '',
2187      behaviour: 2,
2188      disableHover: false
2189    }, options);
2190
2191    function activate(menu){
2192      const eventHandler = (('ontouchstart' in window) || (window.DocumentTouch && document instanceof DocumentTouch)) ? ['click touchstart','mouseup touchend'] : ['click','mouseup'];
2193      // Select hyperlinks from parent menu items.
2194      menu.find('li:has(ul)').children('a,span.nolink').each(function(){
2195        const $item = $(this),
2196        parent = $item.closest('li');
2197        if (options.disableHover){
2198          parent.off('mouseenter mouseleave');
2199        }
2200        if (options.behaviour === 2){
2201          if (parent.children('a.menuparent,span.nolink.menuparent').length > 0 && parent.children('ul').children('.sf-clone-parent').length === 0){
2202            // Cloning the hyperlink of the parent menu item.
2203            let cloneLink = parent.children('a.menuparent').clone();
2204            // Wrapping the hyerplinks in <li>.
2205            cloneLink = $('<li class="sf-clone-parent" />').html(cloneLink);
2206            // Removing unnecessary stuff.
2207            cloneLink.find('.sf-sub-indicator').remove();
2208            // Adding a helper class and attaching them to the sub-menus.
2209            parent.children('ul').addClass('sf-has-clone-parent').prepend(clone
2209Link);
2210          }
2211        }
2212        // No .toggle() here as it's not possible to reset it.
2213        $item.on(eventHandler[0], function(event){
2214          // Already clicked?
2215          if ($item.hasClass('sf-clicked')){
2216            // Depending on the preferred behaviour, either proceed to the URL.
2217            if (options.behaviour === 0){
2218              url = $item.attr('href');
2219              if (typeof(url) != 'undefined'){
2220                window.location = url;
2221              }
2222            }
2223            // or collapse the sub-menu.
2224            else if (options.behaviour === 1 || options.behaviour === 2){
2225              event.preventDefault();
2226              $item.removeClass('sf-clicked');
2227              parent.hideSuperfishUl().find('a,span.nolink').removeClass('sf-clicked');
2228            }
2229          }
2230          // Prevent the default action otherwise.
2231          else {
2232            event.preventDefault();
2233            $item.addClass('sf-clicked');
2234            parent.showSuperfishUl().siblings('li:has(ul)').hideSuperfishUl().find('.sf-clicked').removeClass('sf-clicked');
2235          }
2236        });
2237      });
2238
2239      $(document).on(eventHandler[1], function(event){
2240        if (menu.not(event.target) && menu.has(event.target).length === 0){
2241          menu.find('.sf-clicked').removeClass('sf-clicked');
2242          menu.find('li:has(ul)').hideSuperfishUl();
2243        }
2244      });
2245    }
2246    // Return original object to support chaining.
2247    // This is not necessary actually because of the way the module uses these plugins.
2248    for (let b = 0; b < this.length; b++) {
2249      const menu = $(this).eq(b),
2250      mode = options.mode;
2251      // The rest is crystal clear, isn't it? :)
2252      if (mode === 'always_active'){
2253        activate(menu);
2254      }
2255      else if (mode === 'window_width'){
2256        const breakpoint = (options.breakpointUnit === 'em') ? (options.breakpoint * parseFloat($('body').css('font-size'))) : options.breakpoint;
2257        const windowWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
2258        let timer;
2259        if ((typeof Modernizr === 'undefined' || typeof Modernizr.mq !== 'function') && windowWidth < breakpoint){
2260          activate(menu);
2261        }
2262        else if (typeof Modernizr !== 'undefined' && typeof Modernizr.mq === 'function' && Modernizr.mq('(max-width:' + (breakpoint - 1) + 'px)')) {
2263          activate(menu);
2264        }
2265        $(window).resize(function(){
2266          clearTimeout(timer);
2267          timer = setTimeout(function(){
2268            const windowWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
2269            if ((typeof Modernizr === 'undefined' || typeof Modernizr.mq !== 'function') && windowWidth < breakpoint){
2270              activate(menu);
2271            }
2272            else if (typeof Modernizr !== 'undefined' && typeof Modernizr.mq === 'function' && Modernizr.mq('(max-width:' + (breakpoint - 1) + 'px)')) {
2273              activate(menu);
2274            }
2275          }, 50);
2276        });
2277      }
2278      else if (mode === 'useragent_custom'){
2279        if (options.useragent != ''){
2280          const ua = RegExp(options.useragent, 'i');
2281          if (navigator.userAgent.match(ua)){
2282            activate(menu);
2283          }
2284        }
2285      }
2286      else if (mode === 'useragent_predefined' && navigator.userAgent.match(/(android|bb\d+|meego)|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i)){
2287        activate(menu);
2288      }
2289    }
2290    return this;
2291  }
2292})(jQuery);
2293;
2294/*
2295 * sf-Smallscreen v1.3b - Provides small-screen compatibility for the jQuery Superfish plugin.
2296 *
2297 * Developer's note:
2298 * Built as a part of the Superfish project for Drupal (http://drupal.org/project/superfish)
2299 * Found any bug? have any cool ideas? contact me right away! http://drupal.org/user/619294/contact
2300 *
2301 * jQuery version: 1.3.x or higher.
2302 *
2303 * Dual licensed under the MIT and GPL licenses:
2304 *  http://www.opensource.org/licenses/mit-license.php
2305 *  http://www.gnu.org/licenses/gpl.html
2306  */
2307
2308(function($){
2309  $.fn.sfsmallscreen = function(options){
2310    options = $.extend({
2311      mode: 'inactive',
2312      type: 'accordion',
2313      breakpoint: 768,
2314      breakpointUnit: 'px',
2315      useragent: '',
2316      title: '',
2317      addSelected: false,
2318      menuClasses: false,
2319      hyperlinkClasses: false,
2320      excludeClass_menu: '',
2321      excludeClass_hyperlink: '',
2322      includeClass_menu: '',
2323      includeClass_hyperlink: '',
2324      accordionButton: 1,
2325      expandText: 'Expand',
2326      collapseText: 'Collapse'
2327    }, options);
2328
2329    // We need to clean up the menu from anything unnecessary.
2330    function refine(menu){
2331      const refined = menu.clone();
2332      // Things that should not be in the small-screen menus.
2333      const rm = refined.find('span.sf-sub-indicator');
2334      // This is a helper class for those who need to add extra markup that shouldn't exist
2335      // in the small-screen versions.
2336      const rh = refined.find('.sf-smallscreen-remove');
2337      // Mega-menus have to be removed too.
2338      const mm = refined.find('ul.sf-multicolumn');
2339      for (let a = 0; a < rh.length; a++){
2340        rh.eq(a).replaceWith(rh.eq(a).html());
2341      }
2342      if (options.accordionButton === 2 || options.type === 'select'){
2343        for (let b = 0; b < rm.length; b++){
2344          rm.eq(b).remove();
2345        }
2346      }
2347      if (mm.length > 0){
2348        mm.removeClass('sf-multicolumn');
2349        const ol = refined.find('div.sf-multicolumn-column > ol');
2350        for (let o = 0; o < ol.length; o++){
2351          ol.eq(o).replaceWith('<ul>' + ol.eq(o).html() + '</ul>');
2352        }
2353        const elements = [
2354          'div.sf-multicolumn-column',
2355          '.sf-multicolumn-wrapper > ol',
2356          'li.sf-multicolumn-wrapper'
2357        ];
2358        for (let i = 0; i < elements.length; i++){
2359          let obj = refined.find(elements[i]);
2360          for (let t = 0; t < obj.length; t++){
2361            obj.eq(t).replaceWith(obj.eq(t).html());
2362          }
2363        }
2364        refined.find('.sf-multicolumn-column').removeClass('sf-multicolumn-column');
2365      }
2366      refined.add(refined.find('*')).css({width:''});
2367      return refined;
2368    }
2369
2370    // Creating <option> elements out of the menu.
2371    function toSelect(menu, level){
2372      let items = '';
2373      const childLI = $(menu).children('li');
2374      for (let a = 0; a < childLI.length; a++){
2375        const list = childLI.eq(a)
2376        const parent = list.children('a, span');
2377        for (let b = 0; b < parent.length; b++){
2378          const item = parent.eq(b);
2379          const path = (item.is('a') && !!item.attr('href')) ? item.attr('href') : '';
2380          // Class names modification.
2381          const itemClone = item.clone();
2382          let classes = (options.hyperlinkClasses) ? ((options.excludeClass_hyperlink && itemClone.hasClass(options.excludeClass_hyperlink)) ? itemClone.removeClass(options.excludeClass_hyperlink).attr('class') : itemClone.attr('class')) : '';
2383          classes = (options.includeClass_hyperlink && !itemClone.hasClass(options.includeClass_hyperlink)) ? ((options.hyperlinkClasses) ? itemClone.addClass(options.includeClass_hyperlink).attr('class') : options.includeClass_hyperlink) : classes;
2384          // Retaining the active class if requested.
2385          if (options.addSelected && item.hasClass('active')){
2386            classes += ' active';
2387          }
2388          classes = classes ? ' class="' + classes + '"' : '';
2389          // <option> has to be disabled if the item is not a link.
2390          const disable = path === '' || path === '#' ? ' disabled="disabled"' : '';
2391          // Crystal clear.
2392          const subIndicator = 1 < level ? Array(level).join('-') + ' ' : '';
2393          // Preparing the <option> element.
2394          items += '<option value="' + path + '"' + classes + disable + '>' + subIndicator + item.text().trim() +'</option>';
2395          const childUL = list.find('> ul');
2396          // Using the function for the sub-menu of this item.
2397          for (let u = 0; u < childUL.length; u++){
2398            items += toSelect(childUL.eq(u), level + 1);
2399          }
2400        }
2401      }
2402      return items;
2403    }
2404
2405    // Create the new version, hide the original.
2406    function convert(menu){
2407      const menuID = menu.attr('id');
2408      // Creating a refined version of the menu.
2409      const refinedMenu = refine(menu);
2410      // Currently, the plugin provides two reactions to small screens.
2411      // Converting the menu to a <select>
2411 element, and converting to an accordion version of the menu.
2412      if (options.type === 'accordion'){
2413        const toggleID = menuID + '-toggle';
2414        const accordionID = menuID + '-accordion';
2415        // Making sure the accordion does not exist.
2416        if ($('#' + accordionID).length !== 0){
2417          return;
2418        }
2419
2420        // Getting the style class.
2421        const styleClass = menu.attr('class').split(' ').filter(function(item){
2422          return item.indexOf('sf-style-') > -1 ? item : '';
2423        });
2424        // Creating the accordion.
2425        const accordion = $(refinedMenu).attr('id', accordionID);
2426        // Removing unnecessary classes.
2427        accordion.removeClass('sf-horizontal sf-vertical sf-navbar sf-shadow sf-js-enabled');
2428        // Adding necessary classes.
2429        accordion.addClass('sf-accordion sf-hidden');
2430        // Removing style attributes and any unnecessary class.
2431        accordion.find('li').each(function(){
2432          $(this).removeAttr('style').removeClass('sfHover').attr('id', $(this).attr('id') + '-accordion');
2433        });
2434        // Doing the same and making sure all the sub-menus are off-screen (hidden).
2435        accordion.children('ul').removeAttr('style').not('.sf-hidden').addClass('sf-hidden');
2436        accordion.find('ul').each(function(){
2437          $(this).removeAttr('style').not('.sf-hidden').addClass('sf-hidden');
2438        });
2439
2440        // Creating the accordion toggle switch.
2441        const toggle = '<div class="sf-accordion-toggle ' + styleClass + '"><a href="#" id="' + toggleID + '"><span>' + options.title + '</span></a></div>';
2442
2443        // Adding Expand\Collapse buttons if requested.
2444        if (options.accordionButton === 2){
2445          accordion.addClass('sf-accordion-with-buttons');
2446          const parent = accordion.find('li.menuparent');
2447          for (let i = 0; i < parent.length; i++){
2448            parent.eq(i).prepend('<a href="#" class="sf-accordion-button">' + options.expandText + '</a>');
2449          }
2450        }
2451        // Inserting the accordion and hiding the original menu.
2452        menu.before(toggle).before(accordion).hide();
2453
2454        const $accordionElement = $('#' + accordionID);
2455        // Deciding what should be used as accordion buttons.
2456        const buttonElement = (options.accordionButton < 2) ? 'a.menuparent,span.nolink.menuparent' : 'a.sf-accordion-button';
2457        const $button = $accordionElement.find(buttonElement);
2458
2459        // Attaching a click event to the toggle switch.
2460        $('#' + toggleID).on('click', function(e){
2461          // Preventing the click.
2462          e.preventDefault();
2463          // Adding the sf-expanded class.
2464          $(this).toggleClass('sf-expanded');
2465
2466          if ($accordionElement.hasClass('sf-expanded')){
2467            // If the accordion is already expanded:
2468            // Hiding its expanded sub-menus and then the accordion itself as well.
2469            $accordionElement.add($accordionElement.find('li.sf-expanded')).removeClass('sf-expanded')
2470              .end().children('ul').hide()
2471              // This is a bit tricky, it's the same trick that has been in use in the main plugin for some time.
2472              // Basically, we'll add a class that keeps the sub-menu off-screen and still visible,
2473              // and make it invisible and remove the class one moment before showing or hiding it.
2474              // This helps screen reader software access all the menu items.
2475              .end().hide().addClass('sf-hidden').show();
2476            // Changing the caption of any existing accordion buttons to 'Expand'.
2477            if (options.accordionButton === 2){
2478              $accordionElement.find('a.sf-accordion-button').text(options.expandText);
2479            }
2480          }
2481          else {
2482            // But if it's collapsed,
2483            $accordionElement.addClass('sf-expanded').hide().removeClass('sf-hidden').show();
2484          }
2485        });
2486
2487        // Attaching a click event to the buttons.
2488        $button.on('click', function(e){
2489          // Making sure the button does not exist already.
2490          if ($(this).closest('li').children('ul').length === 0){
2491            return;
2492          }
2493
2494          e.preventDefault();
2495
2496          // Selecting the parent menu items.
2497          const $parent = $(this).closest('li');
2498
2499          // Creating and inserting Expand\Collapse buttons to the parent menu items,
2500          // of course only if not already happened.
2501          if (options.accordionButton === 1 &&
2502            $parent.children('a.menuparent,span.nolink.menuparent').length > 0 &&
2503            $parent.children('ul').children('li.sf-clone-parent').length === 0) {
2504
2505            // Cloning the hyperlink of the parent menu item.
2506            let cloneLink = $parent.children('a.menuparent').clone();
2507            // Removing unnecessary classes and element(s).
2508            cloneLink.removeClass('menuparent sf-with-ul').children('.sf-sub-indicator').remove();
2509            // Wrapping the hyerplinks in <li>.
2510            cloneLink = $('<li class="sf-clone-parent" />').html(cloneLink);
2511            // Adding a helper class and attaching them to the sub-menus.
2512            $parent.children('ul').addClass('sf-has-clone-parent').prepend(cloneLink);
2513          }
2514
2515          if (options.accordionButton === 0 || options.accordionButton === 1){
2516            // We want to hide a menu, when we click on the menu item with an anchor.
2517            $accordionElement.find('a.is-active:not(.menuparent)').on('click', function(e){
2518              $accordionElement.removeClass('sf-expanded').addClass('sf-hidden');
2519            });
2520          }
2521
2522          // Changing the caption of the inserted Collapse link to 'Expand', if any is inserted.
2523          if (options.accordionButton === 2){
2524            // We want to hide a menu, when we click on the menu item with an anchor.
2525            $accordionElement.find('a.is-active').on('click', function(e){
2526              $accordionElement.removeClass('sf-expanded').addClass('sf-hidden');
2527            });
2528          }
2529
2530          // Once the button is clicked, collapse the sub-menu if it's expanded.
2531          if ($parent.hasClass('sf-expanded')){
2532            $parent.children('ul').slideUp('fast', function(){
2533              // Doing the accessibility trick after hiding the sub-menu.
2534              $(this).closest('li').removeClass('sf-expanded').end().addClass('sf-hidden').show();
2535            });
2536            // Changing the caption of the inserted Collapse link to 'Expand', if any is inserted.
2537            if (options.accordionButton === 2 && $parent.children('.sf-accordion-button').length > 0){
2538              $parent.children('.sf-accordion-button').text(options.expandText);
2539            }
2540          }
2541          // Otherwise, expand the sub-menu.
2542          else {
2543            // Doing the accessibility trick and then showing the sub-menu.
2544            $parent.children('ul').hide().removeClass('sf-hidden').slideDown('fast')
2545              // Changing the caption of the inserted Expand link to 'Collapse' if any is inserted.
2546              .end().addClass('sf-expanded').children('a.sf-accordion-button').text(options.collapseText)
2547              // Hiding any expanded sub-menu of the same level.
2548              .end().siblings('li.sf-expanded').children('ul')
2549              .slideUp('fast', function(){
2550                // Doing the accessibility trick after hiding it.
2551                $(this).closest('li').removeClass('sf-expanded').end().addClass('sf-hidden').show();
2552              })
2553              // Assuming Expand\Collapse buttons do exist, resetting captions, in those hidden sub-menus.
2554              .parent().children('a.sf-accordion-button').text(options.expandText);
2555          }
2556        });
2557      }
2558      else {
2559        const menuClone = menu.clone();
2560        // Class names modification.
2561        let classes = options.menuClasses ? ((options.excludeClass_menu && menuClone.hasClass(options.excludeClass_menu)) ? menuClone.removeClass(options.excludeClass_menu).attr('class') : menuClone.attr('class')) : '';
2562        classes = options.includeClass_menu && !menuClone.hasClass(options.includeClass_menu) ? ((options.menuClasses) ? menuClone.addClass(options.includeClass_menu).attr('class') : options.includeClass_menu) : classes;
2563        classes = classes ? ' class="' + classes + '"' : '';
2564
2565        // Making sure the <select> element does not exist already.
2566        if ($('#' + menuID + '-select').length !== 0){
2567          return;
2568        }
2569
2570        // Creating the <option> elements.
2571        const newMenu = toSelect(refinedMenu, 1);
2572        // Creating the <select>
2572 element and assigning an ID and class name.
2573        const selectList = $('<select ' + classes + ' id="' + menuID + '-select"/>')
2574          // Attaching the title and the items to the <select> element.
2575          .html('<option>' + options.title + '</option>' + newMenu)
2576          // Attaching an event then.
2577          .change(function(){
2578            // Except for the first option that is the menu title and not a real menu item.
2579            if ($('option:selected', this).index()){
2580              window.location = selectList.val();
2581            }
2582          });
2583        // Applying the addSelected option to it.
2584        if (options.addSelected){
2585          selectList.find('.active').attr('selected', !0);
2586        }
2587        // Finally inserting the <select> element into the document then hiding the original menu.
2588        menu.before(selectList).hide();
2589      }
2590    }
2591
2592    // Turn everything back to normal.
2593    function turnBack(menu){
2594      const id = '#' + menu.attr('id');
2595      // Removing the small screen version.
2596      $(id + '-' + options.type).remove();
2597      // Removing the accordion toggle switch as well.
2598      if (options.type === 'accordion'){
2599        $(id + '-toggle').parent('div').remove();
2600      }
2601      // Remove inline CSS display property; less clear than simply using .show(), but respects stylesheet
2602      $(id).css('display', '');
2603    }
2604
2605    // Return an original object to support chaining.
2606    // Although this is unnecessary because of the way the module uses these plugins.
2607    for (let s = 0; s < this.length; s++){
2608      const menu = $(this).eq(s);
2609      const mode = options.mode;
2610      // The rest is crystal clear, isn't it? :)
2611      if (menu.children('li').length === 0){
2612        // Skip an empty menu which will not be visible and don't want to suddenly make it visible.
2613      }
2614      else if (mode === 'always_active'){
2615        convert(menu);
2616      }
2617      else if (mode === 'window_width'){
2618        const breakpoint = options.breakpointUnit === 'em' ? options.breakpoint * parseFloat($('body').css('font-size')) : options.breakpoint;
2619        const windowWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
2620        let timer;
2621        if ((typeof Modernizr === 'undefined' || typeof Modernizr.mq !== 'function') && windowWidth < breakpoint){
2622          convert(menu);
2623        }
2624        else if (typeof Modernizr !== 'undefined' && typeof Modernizr.mq === 'function' && Modernizr.mq('(max-width:' + (breakpoint - 1) + 'px)')) {
2625          convert(menu);
2626        }
2627
2628        $(window).resize(function(){
2629          clearTimeout(timer);
2630          timer = setTimeout(function(){
2631            const windowWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
2632            if ((typeof Modernizr === 'undefined' || typeof Modernizr.mq !== 'function') && windowWidth < breakpoint){
2633              convert(menu);
2634            }
2635            else if (typeof Modernizr !== 'undefined' && typeof Modernizr.mq === 'function' && Modernizr.mq('(max-width:' + (breakpoint - 1) + 'px)')) {
2636              convert(menu);
2637            }
2638            else {
2639              turnBack(menu);
2640            }
2641          }, 50);
2642        });
2643      }
2644      else if (mode === 'useragent_custom'){
2645        if (options.useragent !== ''){
2646          const ua = RegExp(options.useragent, 'i');
2647          if (navigator.userAgent.match(ua)){
2648            convert(menu);
2649          }
2650        }
2651      }
2652      else if (mode === 'useragent_predefined' && navigator.userAgent.match(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i)){
2653        convert(menu);
2654      }
2655    }
2656    return this;
2657  }
2658})(jQuery);
2659;
2660!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.Slideout=t()}}(function(){var t,e,n;return function i(t,e,n){function o(r,a){if(!e[r]){if(!t[r]){var u=typeof require=="function"&&require;if(!a&&u)return u(r,!0);if(s)return s(r,!0);var l=new Error("Cannot find module '"+r+"'");throw l.code="MODULE_NOT_FOUND",l}var f=e[r]={exports:{}};t[r][0].call(f.exports,function(e){var n=t[r][1][e];return o(n?n:e)},f,f.exports,i,t,e,n)}return e[r].exports}var s=typeof require=="function"&&require;for(var r=0;r<n.length;r++)o(n[r]);return o}({1:[function(t,e,n){"use strict";var i=t("decouple");var o=t("emitter");var s;var r=false;var a=window.document;var u=a.documentElement;var l=window.navigator.msPointerEnabled;var f={start:l?"MSPointerDown":"touchstart",move:l?"MSPointerMove":"touchmove",end:l?"MSPointerUp":"touchend"};var h=function v(){var t=/^(Webkit|Khtml|Moz|ms|O)(?=[A-Z])/;var e=a.getElementsByTagName("script")[0].style;for(var n in e){if(t.test(n)){return"-"+n.match(t)[0].toLowerCase()+"-"}}if("WebkitOpacity"in e){return"-webkit-"}if("KhtmlOpacity"in e){return"-khtml-"}return""}();function c(t,e){for(var n in e){if(e[n]){t[n]=e[n]}}return t}function p(t,e){t.prototype=c(t.prototype||{},e.prototype)}function d(t){t=t||{};this._startOffsetX=0;this._currentOffsetX=0;this._opening=false;this._moved=false;this._opened=false;this._preventOpen=false;this._touch=t.touch===undefined?true:t.touch&&true;this.panel=t.panel;this.menu=t.menu;if(this.panel.className.search("slideout-panel")===-1){this.panel.className+=" slideout-panel"}if(this.menu.className.search("slideout-menu")===-1){this.menu.className+=" slideout-menu"}this._fx=t.fx||"ease";this._duration=parseInt(t.duration,10)||300;this._tolerance=parseInt(t.tolerance,10)||70;this._padding=this._translateTo=parseInt(t.padding,10)||256;this._orientation=t.side==="right"?-1:1;this._translateTo*=this._orientation;if(this._touch){this._initTouchEvents()}}p(d,o);d.prototype.open=function(){var t=this;
vendor: 4,552 bytes, line 2660
2660this.emit("beforeopen");if(u.className.search("slideout-open")===-1){u.className+=" slideout-open"}this._setTransition();this._translateXTo(this._translateTo);this._opened=true;setTimeout(function(){t.panel.style.transition=t.panel.style["-webkit-transition"]="";t.emit("open")},this._duration+50);return this};d.prototype.close=function(){var t=this;if(!this.isOpen()&&!this._opening){return this}this.emit("beforeclose");this._setTransition();this._translateXTo(0);this._opened=false;setTimeout(function(){u.className=u.className.replace(/ slideout-open/,"");t.panel.style.transition=t.panel.style["-webkit-transition"]=t.panel.style[h+"transform"]=t.panel.style.transform="";t.emit("close")},this._duration+50);return this};d.prototype.toggle=function(){return this.isOpen()?this.close():this.open()};d.prototype.isOpen=function(){return this._opened};d.prototype._translateXTo=function(t){this._currentOffsetX=t;this.panel.style[h+"transform"]=this.panel.style.transform="translateX("+t+"px)";return this};d.prototype._setTransition=function(){this.panel.style[h+"transition"]=this.panel.style.transition=h+"transform "+this._duration+"ms "+this._fx;return this};d.prototype._initTouchEvents=function(){var t=this;this._onScrollFn=i(a,"scroll",function(){if(!t._moved){clearTimeout(s);r=true;s=setTimeout(function(){r=false},250)}});this._preventMove=function(e){if(t._moved){e.preventDefault()}};a.addEventListener(f.move,this._preventMove);this._resetTouchFn=function(e){if(typeof e.touches==="undefined"){return}t._moved=false;t._opening=false;t._startOffsetX=e.touches[0].pageX;t._preventOpen=!t._touch||!t.isOpen()&&t.menu.clientWidth!==0};this.panel.addEventListener(f.start,this._resetTouchFn);this._onTouchCancelFn=function(){t._moved=false;t._opening=false};this.panel.addEventListener("touchcancel",this._onTouchCancelFn);this._onTouchEndFn=function(){if(t._moved){t._opening&&Math.abs(t._currentOffsetX)>t._tolerance?t.open():t.close()}t._moved=false};this.panel.addEventListener(f.end,this._onTouchEndFn);this._onTouchMoveFn=function(e){if(r||t._preventOpen||typeof e.touches==="undefined"){return}var n=e.touches[0].clientX-t._startOffsetX;var i=t._currentOffsetX=n;if(Math.abs(i)>t._padding){return}if(Math.abs(n)>20){t._opening=true;var o=n*t._orientation;if(t._opened&&o>0||!t._opened&&o<0){return}if(o<=0){i=n+t._padding*t._orientation;t._opening=false}if(!t._moved&&u.className.search("slideout-open")===-1){u.className+=" slideout-open"}t.panel.style[h+"transform"]=t.panel.style.transform="translateX("+i+"px)";t.emit("translate",i);t._moved=true}};this.panel.addEventListener(f.move,this._onTouchMoveFn);return this};d.prototype.enableTouch=function(){this._touch=true;return this};d.prototype.disableTouch=function(){this._touch=false;return this};d.prototype.destroy=function(){this.close();a.removeEventListener(f.move,this._preventMove);this.panel.removeEventListener(f.start,this._resetTouchFn);this.panel.removeEventListener("touchcancel",this._onTouchCancelFn);this.panel.removeEventListener(f.end,this._onTouchEndFn);this.panel.removeEventListener(f.move,this._onTouchMoveFn);a.removeEventListener("scroll",this._onScrollFn);this.open=this.close=function(){};return this};e.exports=d},{decouple:2,emitter:3}],2:[function(t,e,n){"use strict";var i=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}();function o(t,e,n){var o,s=false;function r(t){o=t;a()}function a(){if(!s){i(u);s=true}}function u(){n.call(t,o);s=false}t.addEventListener(e,r,false);return r}e.exports=o},{}],3:[function(t,e,n){"use strict";var i=function(t,e){if(!(t instanceof e)){throw new TypeError("Cannot call a class as a function")}};n.__esModule=true;var o=function(){function t(){i(this,t)}t.prototype.on=function e(t,n){this._eventCollection=this._eventCollection||{};this._eventCollection[t]=this._eventCollection[t]||[];this._eventCollection[t].push(n);return this};t.prototype.once=function n(t,e){var n=this;function i(){n.off(t,i);e.apply(this,arguments)}i.listener=e;this.on(t,i);return this};t.prototype.off=function o(t,e){var n=undefined;if(!this._eventCollection||!(n=this._eventCollection[t])){return this}n.forEach(function(t,i){if(t===e||t.listener===e){n.splice(i,1)}});if(n.length===0){delete this._eventCollection[t]}return this};t.prototype.emit=function s(t){var e=this;for(var n=arguments.length,i=Array(n>1?n-1:0),o=1;o<n;o++){i[o-1]=arguments[o]}var s=undefined;if(!this._eventCollection||!(s=this._eventCollection[t])){return this}s=s.slice(0);
2660s.forEach(function(t){return t.apply(e,i)});return this};return t}();n["default"]=o;e.exports=n["default"]},{}]},{},[1])(1)});;
2661jQuery(document).ready(function($) {
2662  var slideout = new Slideout({
2663    'panel':document.querySelector('.page-container'),
2664    'menu': document.querySelector('.slideout'),
2665    'padding': 300,
2666    'tolerance': 70,
2667    'side': drupalSettings.flashyplus.slideoutInit.slideoutSide,
2668    'touch': drupalSettings.flashyplus.slideoutInit.slideoutTouchSwipe
2669  });
2670
2671  $('.slideout-toggle').fadeIn('fast');
2672
2673  // Toggle button
2674  document.querySelector('.slideout-toggle').addEventListener('click', function() {
2675    slideout.toggle();
2676    var topValue = $('body').css('padding-top');
2677    $(".slideout-menu").css("top", topValue);
2678  });
2679  slideout.on('beforeopen', function() {
2680    document.querySelector('.slideout-toggle--fixed').classList.add('js-slideout-toggle--fixed-open');
2681    $(".slideout .sf-accordion").addClass("sf-expanded").removeClass("sf-hidden");
2682  });
2683  slideout.on('beforeclose', function() {
2684    document.querySelector('.slideout-toggle--fixed').classList.remove('js-slideout-toggle--fixed-open');
2685  });
2686});
2687;
2688jQuery(document).ready(function($) {
2689  $(window).scroll(function() {
2690    if($(this).scrollTop() != 0) {
2691      $(".to-top").addClass("show");
2692    } else {
2693      $(".to-top").removeClass("show");
2694    }
2695  });
2696
2697  $(".to-top").click(function() {
2698    $("body,html").animate({scrollTop:0},800);
2699  });
2700});
2701;
2702/*!
2703  * Bootstrap v4.4.1 (https://getbootstrap.com/)
2704  * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2705  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2706  */
2707!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("jquery")):"function"==typeof define&&define.amd?define(["exports","jquery"],t):t((e=e||self).bootstrap={},e.jQuery)}(this,function(e,p){"use strict";function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function s(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}function t(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,i)}return n}function l(o){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?t(Object(r),!0).forEach(function(e){var t,n,i;t=o,i=r[n=e],n in t?Object.defineProperty(t,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[n]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(r)):t(Object(r)).forEach(function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(r,e))})}return o}p=p&&p.hasOwnProperty("default")?p.default:p;var n="transitionend";function o(e){var t=this,n=!1;return p(this).one(m.TRANSITION_END,function(){n=!0}),setTimeout(function(){n||m.triggerTransitionEnd(t)},e),this}var m={TRANSITION_END:"bsTransitionEnd",getUID:function(e){for(;e+=~~(1e6*Math.random()),document.getElementById(e););return e},getSelectorFromElement:function(e){var t=e.getAttribute("data-target");if(!t||"#"===t){var n=e.getAttribute("href");t=n&&"#"!==n?n.trim():""}try{return document.querySelector(t)?t:null}catch(e){return null}},getTransitionDurationFromElement:function(e){if(!e)return 0;var t=p(e).css("transition-duration"),n=p(e).css("transition-delay"),i=parseFloat(t),o=parseFloat(n);return i||o?(t=t.split(",")[0],n=n.split(",")[0],1e3*(parseFloat(t)+parseFloat(n))):0},reflow:function(e){return e.offsetHeight},triggerTransitionEnd:function(e){p(e).trigger(n)},supportsTransitionEnd:function(){return Boolean(n)},isElement:function(e){return(e[0]||e).nodeType},typeCheckConfig:function(e,t,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var o=n[i],r=t[i],s=r&&m.isElement(r)?"element":(a=r,{}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(o).test(s))throw new Error(e.toUpperCase()+': Option "'+i+'" provided type "'+s+'" but expected type "'+o+'".')}var a},findShadowRoot:function(e){if(!document.documentElement.attachShadow)return null;if("function"!=typeof e.getRootNode)return e instanceof ShadowRoot?e:e.parentNode?m.findShadowRoot(e.parentNode):null;var t=e.getRootNode();return t instanceof ShadowRoot?t:null},jQueryDetection:function(){if("undefined"==typeof p)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var e=p.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1===e[0]&&9===e[1]&&e[2]<1||4<=e[0])throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}};m.jQueryDetection(),p.fn.emulateTransitionEnd=o,p.event.special[m.TRANSITION_END]={bindType:n,delegateType:n,handle:function(e){if(p(e.target).is(this))return e.handleObj.handler.apply(this,arguments)}};var r="alert",a="bs.alert",c="."+a,h=p.fn[r],u={CLOSE:"close"+c,CLOSED:"closed"+c,CLICK_DATA_API:"click"+c+".data-api"},f="alert",d="fade",g="show",_=function(){function i(e){this._element=e}var e=i.prototype;return e.close=function(e){var t=this._element;e&&(t=this._getRootElement(e)),this._triggerCloseEvent(t).isDefaultPrevented()||this._removeElement(t)},e.dispose=function(){p.removeData(this._element,a),this._element=null},e._getRootElement=function(e){var t=m.getSelectorFromElement(e),n=!1;return t&&(n=document.querySelector(t)),n=n||p(e).closest("."+f)[0]},e._triggerCloseEvent=function(e){var t=p.Event(u.CLOSE);return p(e).trigger(t),t},e._removeElement=function(t){var n=this;if(p(t).removeClass(g),p(t).hasClass(d)){var e=m.getTransitionDurationFromElement(t);p(t).one(m.TRANSITION_END,function(e){return n._destroyElement(t,e)}).emulateTransitionEnd(e)}else this._destroyElement(t)},e._destroyElement=function(e){p(e).detach().trigger(u.CLOSED).remove()},i._jQueryInterface=function(n){return this.each(function(){var e=p(this),t=e.data(a);t||(t=new i(this),e.data(a,t)),"close"===n&&t[n](this)})},i._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},s(i,null,[{key:"VERSION",get:function(){return"4.4.1"}}]),i}();p(document).on(u.CLICK_DATA_API,'[data-dismiss="alert"]',_._handleDismiss(new _)),p.fn[r]=_._jQueryInterface,p.fn[r].Constructor=_,p.fn[r].noConflict=function(){return p.fn[r]=h,_._jQueryInterface};var v="button",y="bs.button",E="."+y,b=".data-api",w=p.fn[v],T="active",C="btn",S="focus",D='[data-toggle^="button"]',I='[data-toggle="buttons"]',A='[data-toggle="button"]',O='[data-toggle="buttons"] .btn',N='input:not([type="hidden"])',k=".active",L=".btn",P={CLICK_DATA_API:"click"+E+b,FOCUS_BLUR_DATA_API:"focus"+E+b+" blur"+E+b,LOAD_DATA_API:"load"+E+b},x=function(){function n(e){this._element=e}var e=n.prototype;return e.toggle=function(){var e=!0,t=!0,n=p(this._element).closest(I)[0];if(n){var i=this._element.querySelector(N);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(T))e=!1;else{var o=n.querySelector(k);o&&p(o).removeClass(T)}else"checkbox"===i.type?"LABEL"===this._element.tagName&&i.checked===this._element.classList.contains(T)&&(e=!1):e=!1;e&&(i.checked=!this._element.classList.contains(T),p(i).trigger("change")),i.focus(),t=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(t&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(T)),e&&p(this._element).toggleClass(T))},e.dispose=function(){p.removeData(this._element,y),this._element=null},n._jQueryInterface=function(t){return this.each(function(){var e=p(this).data(y);e||(e=new n(this),p(this).data(y,e)),"toggle"===t&&e[t]()})},s(n,null,[{key:"VERSION",get:function(){return"4.4.1"}}]),n}();p(document).on(P.CLICK_DATA_API,D,function(e){var t=e.target;if(p(t).hasClass(C)||(t=p(t).closest(L)[0]),!t||t.hasAttribute("disabled")||t.classList.contains("disabled"))e.preventDefault();else{var n=t.querySelector(N);if(n&&(n.hasAttribute("disabled")||n.classList.contains("disabled")))return void e.preventDefault();x._jQueryInterface.call(p(t),"toggle")}}).on(P.FOCUS_BLUR_DATA_API,D,function(e){var t=p(e.target).closest(L)[0];p(t).toggleClass(S,/^focus(in)?$/.test(e.type))}),p(window).on(P.LOAD_DATA_API,function(){for(var e=[].slice.call(document.querySelectorAll(O)),t=0,n=e.length;t<n;t++){var i=e[t],o=i.querySelector(N);o.checked||o.hasAttribute("checked")?i.classList.add(T):i.classList.remove(T)}for(var r=0,s=(e=[].slice.call(document.querySelectorAll(A))).length;r<s;r++){var a=e[r];"true"===a.getAttribute("aria-pressed")?a.classList.add(T):a.classList.remove(T)}}),p.fn[v]=x._jQueryInterface,p.fn[v].Constructor=x,p.fn[v].noConflict=function(){return p.fn[v]=w,x._jQueryInterface};var j="carousel",H="bs.carousel",R="."+H,F=".data-api",M=p.fn[j],W={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},U={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},B="next",q="prev",K="left",Q="right",V={SLIDE:"slide"+R,SLID:"slid"+R,KEYDOWN:"keydown"+R,MOUSEENTER:"mouseenter"+R,MOUSELEAVE:"mouseleave"+R,TOUCHSTART:"touchstart"+R,TOUCHMOVE:"touchmove"+R,TOUCHEND:"touchend"+R,POINTERDOWN:"pointerdown"+R,POINTERUP:"pointerup"+R,DRAG_START:"dragstart"+R,LOAD_DATA_API:"load"+R+F,CLICK_DATA_API:"click"+R+F},Y="carousel",z="active",X="slide",G="carousel-item-right",$="carousel-item-left",J="carousel-item-next",Z="carousel-item-prev",ee="pointer-event",te=".active",ne=".active.carousel-item",ie=".carousel-item",oe=".carousel-item img",re=".carousel-item-next, .carousel-item-prev",se=".carousel-indicators",ae="[data-sli
2707de], [data-slide-to]",le='[data-ride="carousel"]',ce={TOUCH:"touch",PEN:"pen"},he=function(){function r(e,t){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(t),this._element=e,this._indicatorsElement=this._element.querySelector(se),this._touchSupported="ontouchstart"in document.documentElement||0<navigator.maxTouchPoints,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var e=r.prototype;return e.next=function(){this._isSliding||this._slide(B)},e.nextWhenVisible=function(){!document.hidden&&p(this._element).is(":visible")&&"hidden"!==p(this._element).css("visibility")&&this.next()},e.prev=function(){this._isSliding||this._slide(q)},e.pause=function(e){e||(this._isPaused=!0),this._element.querySelector(re)&&(m.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},e.cycle=function(e){e||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},e.to=function(e){var t=this;this._activeElement=this._element.querySelector(ne);var n=this._getItemIndex(this._activeElement);if(!(e>this._items.length-1||e<0))if(this._isSliding)p(this._element).one(V.SLID,function(){return t.to(e)});else{if(n===e)return this.pause(),void this.cycle();var i=n<e?B:q;this._slide(i,this._items[e])}},e.dispose=function(){p(this._element).off(R),p.removeData(this._element,H),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(e){return e=l({},W,{},e),m.typeCheckConfig(j,e,U),e},e._handleSwipe=function(){var e=Math.abs(this.touchDeltaX);if(!(e<=40)){var t=e/this.touchDeltaX;(this.touchDeltaX=0)<t&&this.prev(),t<0&&this.next()}},e._addEventListeners=function(){var t=this;this._config.keyboard&&p(this._element).on(V.KEYDOWN,function(e){return t._keydown(e)}),"hover"===this._config.pause&&p(this._element).on(V.MOUSEENTER,function(e){return t.pause(e)}).on(V.MOUSELEAVE,function(e){return t.cycle(e)}),this._config.touch&&this._addTouchEventListeners()},e._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var n=function(e){t._pointerEvent&&ce[e.originalEvent.pointerType.toUpperCase()]?t.touchStartX=e.originalEvent.clientX:t._pointerEvent||(t.touchStartX=e.originalEvent.touches[0].clientX)},i=function(e){t._pointerEvent&&ce[e.originalEvent.pointerType.toUpperCase()]&&(t.touchDeltaX=e.originalEvent.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout(function(e){return t.cycle(e)},500+t._config.interval))};p(this._element.querySelectorAll(oe)).on(V.DRAG_START,function(e){return e.preventDefault()}),this._pointerEvent?(p(this._element).on(V.POINTERDOWN,function(e){return n(e)}),p(this._element).on(V.POINTERUP,function(e){return i(e)}),this._element.classList.add(ee)):(p(this._element).on(V.TOUCHSTART,function(e){return n(e)}),p(this._element).on(V.TOUCHMOVE,function(e){return function(e){e.originalEvent.touches&&1<e.originalEvent.touches.length?t.touchDeltaX=0:t.touchDeltaX=e.originalEvent.touches[0].clientX-t.touchStartX}(e)}),p(this._element).on(V.TOUCHEND,function(e){return i(e)}))}},e._keydown=function(e){if(!/input|textarea/i.test(e.target.tagName))switch(e.which){case 37:e.preventDefault(),this.prev();break;case 39:e.preventDefault(),this.next()}},e._getItemIndex=function(e){return this._items=e&&e.parentNode?[].slice.call(e.parentNode.querySelectorAll(ie)):[],this._items.indexOf(e)},e._getItemByDirection=function(e,t){var n=e===B,i=e===q,o=this._getItemIndex(t),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return t;var s=(o+(e===q?-1:1))%this._items.length;return-1==s?this._items[this._items.length-1]:this._items[s]},e._triggerSlideEvent=function(e,t){var n=this._getItemIndex(e),i=this._getItemIndex(this._element.querySelector(ne)),o=p.Event(V.SLIDE,{relatedTarget:e,direction:t,from:i,to:n});return p(this._element).trigger(o),o},e._setActiveIndicatorElement=function(e){if(this._indicatorsElement){var t=[].slice.call(this._indicatorsElement.querySelectorAll(te));p(t).removeClass(z);var n=this._indicatorsElement.children[this._getItemIndex(e)];n&&p(n).addClass(z)}},e._slide=function(e,t){var n,i,o,r=this,s=this._element.querySelector(ne),a=this._getItemIndex(s),l=t||s&&this._getItemByDirection(e,s),c=this._getItemIndex(l),h=Boolean(this._interval);if(o=e===B?(n=$,i=J,K):(n=G,i=Z,Q),l&&p(l).hasClass(z))this._isSliding=!1;else if(!this._triggerSlideEvent(l,o).isDefaultPrevented()&&s&&l){this._isSliding=!0,h&&this.pause(),this._setActiveIndicatorElement(l);var u=p.Event(V.SLID,{relatedTarget:l,direction:o,from:a,to:c});if(p(this._element).hasClass(X)){p(l).addClass(i),m.reflow(l),p(s).addClass(n),p(l).addClass(n);var f=parseInt(l.getAttribute("data-interval"),10);f?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=f):this._config.interval=this._config.defaultInterval||this._config.interval;var d=m.getTransitionDurationFromElement(s);p(s).one(m.TRANSITION_END,function(){p(l).removeClass(n+" "+i).addClass(z),p(s).removeClass(z+" "+i+" "+n),r._isSliding=!1,setTimeout(function(){return p(r._element).trigger(u)},0)}).emulateTransitionEnd(d)}else p(s).removeClass(z),p(l).addClass(z),this._isSliding=!1,p(this._element).trigger(u);h&&this.cycle()}},r._jQueryInterface=function(i){return this.each(function(){var e=p(this).data(H),t=l({},W,{},p(this).data());"object"==typeof i&&(t=l({},t,{},i));var n="string"==typeof i?i:t.slide;if(e||(e=new r(this,t),p(this).data(H,e)),"number"==typeof i)e.to(i);else if("string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method n
2707amed "'+n+'"');e[n]()}else t.interval&&t.ride&&(e.pause(),e.cycle())})},r._dataApiClickHandler=function(e){var t=m.getSelectorFromElement(this);if(t){var n=p(t)[0];if(n&&p(n).hasClass(Y)){var i=l({},p(n).data(),{},p(this).data()),o=this.getAttribute("data-slide-to");o&&(i.interval=!1),r._jQueryInterface.call(p(n),i),o&&p(n).data(H).to(o),e.preventDefault()}}},s(r,null,[{key:"VERSION",get:function(){return"4.4.1"}},{key:"Default",get:function(){return W}}]),r}();p(document).on(V.CLICK_DATA_API,ae,he._dataApiClickHandler),p(window).on(V.LOAD_DATA_API,function(){for(var e=[].slice.call(document.querySelectorAll(le)),t=0,n=e.length;t<n;t++){var i=p(e[t]);he._jQueryInterface.call(i,i.data())}}),p.fn[j]=he._jQueryInterface,p.fn[j].Constructor=he,p.fn[j].noConflict=function(){return p.fn[j]=M,he._jQueryInterface};var ue="collapse",fe="bs.collapse",de="."+fe,pe=p.fn[ue],me={toggle:!0,parent:""},ge={toggle:"boolean",parent:"(string|element)"},_e={SHOW:"show"+de,SHOWN:"shown"+de,HIDE:"hide"+de,HIDDEN:"hidden"+de,CLICK_DATA_API:"click"+de+".data-api"},ve="show",ye="collapse",Ee="collapsing",be="collapsed",we="width",Te="height",Ce=".show, .collapsing",Se='[data-toggle="collapse"]',De=function(){function a(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=[].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=[].slice.call(document.querySelectorAll(Se)),i=0,o=n.length;i<o;i++){var r=n[i],s=m.getSelectorFromElement(r),a=[].slice.call(document.querySelectorAll(s)).filter(function(e){return e===t});null!==s&&0<a.length&&(this._selector=s,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var e=a.prototype;return e.toggle=function(){p(this._element).hasClass(ve)?this.hide():this.show()},e.show=function(){var e,t,n=this;if(!this._isTransitioning&&!p(this._element).hasClass(ve)&&(this._parent&&0===(e=[].slice.call(this._parent.querySelectorAll(Ce)).filter(function(e){return"string"==typeof n._config.parent?e.getAttribute("data-parent")===n._config.parent:e.classList.contains(ye)})).length&&(e=null),!(e&&(t=p(e).not(this._selector).data(fe))&&t._isTransitioning))){var i=p.Event(_e.SHOW);if(p(this._element).trigger(i),!i.isDefaultPrevented()){e&&(a._jQueryInterface.call(p(e).not(this._selector),"hide"),t||p(e).data(fe,null));var o=this._getDimension();p(this._element).removeClass(ye).addClass(Ee),this._element.style[o]=0,this._triggerArray.length&&p(this._triggerArray).removeClass(be).attr("aria-expanded",!0),this.setTransitioning(!0);var r="scroll"+(o[0].toUpperCase()+o.slice(1)),s=m.getTransitionDurationFromElement(this._element);p(this._element).one(m.TRANSITION_END,function(){p(n._element).removeClass(Ee).addClass(ye).addClass(ve),n._element.style[o]="",n.setTransitioning(!1),p(n._element).trigger(_e.SHOWN)}).emulateTransitionEnd(s),this._element.style[o]=this._element[r]+"px"}}},e.hide=function(){var e=this;if(!this._isTransitioning&&p(this._element).hasClass(ve)){var t=p.Event(_e.HIDE);if(p(this._element).trigger(t),!t.isDefaultPrevented()){var n=this._getDimension();this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",m.reflow(this._element),p(this._element).addClass(Ee).removeClass(ye).removeClass(ve);var i=this._triggerArray.length;if(0<i)for(var o=0;o<i;o++){var r=this._triggerArray[o],s=m.getSelectorFromElement(r);if(null!==s)p([].slice.call(document.querySelectorAll(s))).hasClass(ve)||p(r).addClass(be).attr("aria-expanded",!1)}this.setTransitioning(!0);this._element.style[n]="";var a=m.getTransitionDurationFromElement(this._element);p(this._element).one(m.TRANSITION_END,function(){e.setTransitioning(!1),p(e._element).removeClass(Ee).addClass(ye).trigger(_e.HIDDEN)}).emulateTransitionEnd(a)}}},e.setTransitioning=function(e){this._isTransitioning=e},e.dispose=function(){p.removeData(this._element,fe),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},e._getConfig=function(e){return(e=l({},me,{},e)).toggle=Boolean(e.toggle),m.typeCheckConfig(ue,e,ge),e},e._getDimension=function(){return p(this._element).hasClass(we)?we:Te},e._getParent=function(){var e,n=this;m.isElement(this._config.parent)?(e=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(e=this._config.parent[0])):e=document.querySelector(this._config.parent);var t='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]',i=[].slice.call(e.querySelectorAll(t));return p(i).each(function(e,t){n._addAriaAndCollapsedClass(a._getTargetFromElement(t),[t])}),e},e._addAriaAndCollapsedClass=function(e,t){var n=p(e).hasClass(ve);t.length&&p(t).toggleClass(be,!n).attr("aria-expanded",n)},a._getTargetFromElement=function(e){var t=m.getSelectorFromElement(e);return t?document.querySelector(t):null},a._jQueryInterface=function(i){return this.each(function(){var e=p(this),t=e.data(fe),n=l({},me,{},e.data(),{},"object"==typeof i&&i?i:{});if(!t&&n.toggle&&/show|hide/.test(i)&&(n.toggle=!1),t||(t=new a(this,n),e.data(fe,t)),"string"==typeof i){if("undefined"==typeof t[i])throw new TypeError('No method n
2707amed "'+i+'"');t[i]()}})},s(a,null,[{key:"VERSION",get:function(){return"4.4.1"}},{key:"Default",get:function(){return me}}]),a}();p(document).on(_e.CLICK_DATA_API,Se,function(e){"A"===e.currentTarget.tagName&&e.preventDefault();var n=p(this),t=m.getSelectorFromElement(this),i=[].slice.call(document.querySelectorAll(t));p(i).each(function(){var e=p(this),t=e.data(fe)?"toggle":n.data();De._jQueryInterface.call(e,t)})}),p.fn[ue]=De._jQueryInterface,p.fn[ue].Constructor=De,p.fn[ue].noConflict=function(){return p.fn[ue]=pe,De._jQueryInterface};var Ie="undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof navigator,Ae=function(){for(var e=["Edge","Trident","Firefox"],t=0;t<e.length;t+=1)if(Ie&&0<=navigator.userAgent.indexOf(e[t]))return 1;return 0}();var Oe=Ie&&window.Promise?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},Ae))}};function Ne(e){return e&&"[object Function]"==={}.toString.call(e)}function ke(e,t){if(1!==e.nodeType)return[];var n=e.ownerDocument.defaultView.getComputedStyle(e,null);return t?n[t]:n}function Le(e){return"HTML"===e.nodeName?e:e.parentNode||e.host}function Pe(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=ke(e),n=t.overflow,i=t.overflowX,o=t.overflowY;return/(auto|scroll|overlay)/.test(n+o+i)?e:Pe(Le(e))}function xe(e){return e&&e.referenceNode?e.referenceNode:e}var je=Ie&&!(!window.MSInputMethodContext||!document.documentMode),He=Ie&&/MSIE 10/.test(navigator.userAgent);function Re(e){return 11===e?je:10===e?He:je||He}function Fe(e){if(!e)return document.documentElement;for(var t=Re(10)?document.body:null,n=e.offsetParent||null;n===t&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===ke(n,"position")?Fe(n):n:e?e.ownerDocument.documentElement:document.documentElement}function Me(e){return null!==e.parentNode?Me(e.parentNode):e}function We(e,t){if(!(e&&e.nodeType&&t&&t.nodeType))return document.documentElement;var n=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?e:t,o=n?t:e,r=document.createRange();r.setStart(i,0),r.setEnd(o,0);var s=r.commonAncestorContainer;if(e!==s&&t!==s||i.contains(o))return function(e){var t=e.nodeName;return"BODY"!==t&&("HTML"===t||Fe(e.firstElementChild)===e)}(s)?s:Fe(s);var a=Me(e);return a.host?We(a.host,t):We(e,Me(t).host)}function Ue(e,t){var n="top"===(1<arguments.length&&void 0!==t?t:"top")?"scrollTop":"scrollLeft",i=e.nodeName;if("BODY"!==i&&"HTML"!==i)return e[n];var o=e.ownerDocument.documentElement;return(e.ownerDocument.scrollingElement||o)[n]}function Be(e,t){var n="x"===t?"Left":"Top",i="Left"==n?"Right":"Bottom";return parseFloat(e["border"+n+"Width"],10)+parseFloat(e["border"+i+"Width"],10)}function qe(e,t,n,i){return Math.max(t["offset"+e],t["scroll"+e],n["client"+e],n["offset"+e],n["scroll"+e],Re(10)?parseInt(n["offset"+e])+parseInt(i["margin"+("Height"===e?"Top":"Left")])+parseInt(i["margin"+("Height"===e?"Bottom":"Right")]):0)}function Ke(e){var t=e.body,n=e.documentElement,i=Re(10)&&getComputedStyle(n);return{height:qe("Height",t,n,i),width:qe("Width",t,n,i)}}var Qe=function(e,t,n){return t&&Ve(e.prototype,t),n&&Ve(e,n),e};function Ve(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function Ye(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ze=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e};function Xe(e){return ze({},e,{right:e.left+e.width,bottom:e.top+e.height})}function Ge(e){var t={};try{if(Re(10)){t=e.getBoundingClientRect();var n=Ue(e,"top"),i=Ue(e,"left");t.top+=n,t.left+=i,t.bottom+=n,t.right+=i}else t=e.getBoundingClientRect()}catch(e){}var o={left:t.left,top:t.top,width:t.right-t.left,height:t.bottom-t.top}
vendor: 9,063 bytes, line 2707
2707,r="HTML"===e.nodeName?Ke(e.ownerDocument):{},s=r.width||e.clientWidth||o.width,a=r.height||e.clientHeight||o.height,l=e.offsetWidth-s,c=e.offsetHeight-a;if(l||c){var h=ke(e);l-=Be(h,"x"),c-=Be(h,"y"),o.width-=l,o.height-=c}return Xe(o)}function $e(e,t,n){var i=2<arguments.length&&void 0!==n&&n,o=Re(10),r="HTML"===t.nodeName,s=Ge(e),a=Ge(t),l=Pe(e),c=ke(t),h=parseFloat(c.borderTopWidth,10),u=parseFloat(c.borderLeftWidth,10);i&&r&&(a.top=Math.max(a.top,0),a.left=Math.max(a.left,0));var f=Xe({top:s.top-a.top-h,left:s.left-a.left-u,width:s.width,height:s.height});if(f.marginTop=0,f.marginLeft=0,!o&&r){var d=parseFloat(c.marginTop,10),p=parseFloat(c.marginLeft,10);f.top-=h-d,f.bottom-=h-d,f.left-=u-p,f.right-=u-p,f.marginTop=d,f.marginLeft=p}return(o&&!i?t.contains(l):t===l&&"BODY"!==l.nodeName)&&(f=function(e,t,n){var i=2<arguments.length&&void 0!==n&&n,o=Ue(t,"top"),r=Ue(t,"left"),s=i?-1:1;return e.top+=o*s,e.bottom+=o*s,e.left+=r*s,e.right+=r*s,e}(f,t)),f}function Je(e){if(!e||!e.parentElement||Re())return document.documentElement;for(var t=e.parentElement;t&&"none"===ke(t,"transform");)t=t.parentElement;return t||document.documentElement}function Ze(e,t,n,i,o){var r=4<arguments.length&&void 0!==o&&o,s={top:0,left:0},a=r?Je(e):We(e,xe(t));if("viewport"===i)s=function(e,t){var n=1<arguments.length&&void 0!==t&&t,i=e.ownerDocument.documentElement,o=$e(e,i),r=Math.max(i.clientWidth,window.innerWidth||0),s=Math.max(i.clientHeight,window.innerHeight||0),a=n?0:Ue(i),l=n?0:Ue(i,"left");return Xe({top:a-o.top+o.marginTop,left:l-o.left+o.marginLeft,width:r,height:s})}(a,r);else{var l=void 0;"scrollParent"===i?"BODY"===(l=Pe(Le(t))).nodeName&&(l=e.ownerDocument.documentElement):l="window"===i?e.ownerDocument.documentElement:i;var c=$e(l,a,r);if("HTML"!==l.nodeName||function e(t){var n=t.nodeName;if("BODY"===n||"HTML"===n)return!1;if("fixed"===ke(t,"position"))return!0;var i=Le(t);return!!i&&e(i)}(a))s=c;else{var h=Ke(e.ownerDocument),u=h.height,f=h.width;s.top+=c.top-c.marginTop,s.bottom=u+c.top,s.left+=c.left-c.marginLeft,s.right=f+c.left}}var d="number"==typeof(n=n||0);return s.left+=d?n:n.left||0,s.top+=d?n:n.top||0,s.right-=d?n:n.right||0,s.bottom-=d?n:n.bottom||0,s}function et(e,t,i,n,o,r){var s=5<arguments.length&&void 0!==r?r:0;if(-1===e.indexOf("auto"))return e;var a=Ze(i,n,s,o),l={top:{width:a.width,height:t.top-a.top},right:{width:a.right-t.right,height:a.height},bottom:{width:a.width,height:a.bottom-t.bottom},left:{width:t.left-a.left,height:a.height}},c=Object.keys(l).map(function(e){return ze({key:e},l[e],{area:function(e){return e.width*e.height}(l[e])})}).sort(function(e,t){return t.area-e.area}),h=c.filter(function(e){var t=e.width,n=e.height;return t>=i.clientWidth&&n>=i.clientHeight}),u=0<h.length?h[0].key:c[0].key,f=e.split("-")[1];return u+(f?"-"+f:"")}function tt(e,t,n,i){var o=3<arguments.length&&void 0!==i?i:null;return $e(n,o?Je(t):We(t,xe(n)),o)}function nt(e){var t=e.ownerDocument.defaultView.getComputedStyle(e),n=parseFloat(t.marginTop||0)+parseFloat(t.marginBottom||0),i=parseFloat(t.marginLeft||0)+parseFloat(t.marginRight||0);return{width:e.offsetWidth+i,height:e.offsetHeight+n}}function it(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function ot(e,t,n){n=n.split("-")[0];var i=nt(e),o={width:i.width,height:i.height},r=-1!==["right","left"].indexOf(n),s=r?"top":"left",a=r?"left":"top",l=r?"height":"width",c=r?"width":"height";return o[s]=t[s]+t[l]/2-i[l]/2,o[a]=n===a?t[a]-i[c]:t[it(a)],o}function rt(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function st(e,n,t){return(void 0===t?e:e.slice(0,function(e,t,n){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===n});var i=rt(e,function(e){return e[t]===n});return e.indexOf(i)}(e,"name",t))).forEach(function(e){e.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var t=e.function||e.fn;e.enabled&&Ne(t)&&(n.offsets.popper=Xe(n.offsets.popper),n.offsets.reference=Xe(n.offsets.reference),n=t(n,e))}),n}function at(e,n){return e.some(function(e){var t=e.name;return e.enabled&&t===n})}function lt(e){for(var t=[!1,"ms","Webkit","Moz","O"],n=e.charAt(0).toUpperCase()+e.slice(1),i=0;i<t.length;i++){var o=t[i],r=o?""+o+n:e;if("undefined"!=typeof document.body.style[r])return r}return null}function ct(e){var t=e.ownerDocument;return t?t.defaultView:window}function ht(e,t,n,i){n.updateBound=i,ct(e).addEventListener("resize",n.updateBound,{passive:!0});var o=Pe(e);return function e(t,n,i,o){var r="BODY"===t.nodeName,s=r?t.ownerDocument.defaultView:t;s.addEventListener(n,i,{passive:!0}),r||e(Pe(s.parentNode),n,i,o),o.push(s)}(o,"scroll",n.updateBound,n.scrollParents),n.scrollElement=o,n.eventsEnabled=!0,n}function ut(){this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=function(e,t){return ct(e).removeEventListener("resize",t.updateBound),t.scrollParents.forEach(function(e){e.removeEventListener("scroll",t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t}(this.reference,this.state))}function ft(e){return""!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function dt(n,i){Object.keys(i).forEach(function(e){var t="";-1!==["width","height","top","right","bottom","left"].indexOf(e)&&ft(i[e])&&(t="px"),n.style[e]=i[e]+t})}function pt(e,t){function n(e){return e}var i=e.offsets,o=i.popper,r=i.reference,s=Math.round,a=Math.floor,l=s(r.width),c=s(o.width),h=-1!==["left","right"].indexOf(e.placement),u=-1!==e.placement.indexOf("-"),f=t?h||u||l%2==c%2?s:a:n,d=t?s:n;return{left:f(l%2==1&&c%2==1&&!u&&t?o.left-1:o.left),top:d(o.top),bottom:d(o.bottom),right:f(o.right)}}var mt=Ie&&/Firefox/i.test(navigator.userAgent);function gt(e,t,n){var i=rt(e,function(e){return e.name===t}),o=!!i&&e.some(function(e){return e.name===n&&e.enabled&&e.order<i.order});if(!o){var r="`"+t+"`",s="`"+n+"`";console.warn(s+" modifier is required by "+r+" modifier in order to work, be sure to include it before "+r+"!")}return o}var _t=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],vt=_t.slice(3);function yt(e,t){var n=1<arguments.length&&void 0!==t&&t,i=vt.indexOf(e),o=vt.slice(i+1).concat(vt.slice(0,i));return n?o.reverse():o}var Et="flip",bt="clockwise",wt="counterclockwise";function Tt(e,o,r,t){var s=[0,0],a=-1!==["right","left"].indexOf(t),n=e.split(/(\+|\-)/).map(function(e){return e.trim()}),i=n.indexOf(rt(n,function(e){return-1!==e.search(/,|\s/)}));n[i]&&-1===n[i].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==i?[n.slice(0,i).concat([n[i].split(l)[0]]),[n[i].split(l)[1]].concat(n.slice(i+1))]:[n];return(c=c.map(function(e,t){var n=(1===t?!a:a)?"height":"width",i=!1;return e.reduce(function(e,t){return""===e[e.length-1]&&-1!==["+","-"].indexOf(t)?(e[e.length-1]=t,i=!0,e):i?(e[e.length-1]+=t,i=!1,e):e.concat(t)},[]).map(function(e){return function(e,t,n,i){var o=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+o[1],s=o[2];if(!r)return e;if(0!==s.indexOf("%"))return"vh"!==s&&"vw"!==s?r:("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r;var a=void 0;switch(s){case"%p":a=n;break;case"%":case"%r":default:a=i}return Xe(a)[t]/100*r}(e,n,o,r)})})).forEach(function(n,i){n.forEach(function(e,t){ft(e)&&(s[i]+=e*("-"===n[t-1]?-1:1))})}),s}var Ct={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,n=t.split("-")[0],i=t.split("-")[1];if(i){var o=e.offsets,r=o.reference,s=o.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",c=a?"width":"height",h={start:Ye({},l,r[l]),end:Ye({},l,r[l]+r[c]-s[c])};e.offsets.popper=ze({},s,h[i])}return e}},offset:{order:200,enabled:!0,fn:function(e,t){var n=t.offset,i=e.placement,o=e.offsets,r=o.popper,s=o.reference,a=i.split("-")[0],l=void 0;return l=ft(+n)?[+n,0]:Tt(n,r,s,a),"left"===a?(r.top+=l[0],r.left-=l[1]):"right"===a?(r.top+=l[0],r.left+=l[1]):"top"===a?(r.left+=l[0],r.top-=l[1]):"bottom"===a&&(r.left+=l[0],r.top+=l[1]),e.popper=r,e},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,i){var t=i.boundariesElement||Fe(e.instance.popper);e.instance.reference===t&&(t=Fe(t));var n=lt("transform"),o=e.instance.popper.style,r=o.top,s=o.left,a=o[n];o.top="",o.left="",o[n]="";var l=Ze(e.instance.popper,e.instance.reference,i.padding,t,e.positionFixed);o.top=r,o.left=s,o[n]=a,i.boundaries=l;var c=i.priority,h=e.offsets.popper,u={primary:function(e){var t=h[e];return h[e]<l[e]&&!i.escapeWithReference&&(t=Math.max(h[e],l[e])),Ye({},e,t)},secondary:function(e){var t="right"===e?"left":"top",n=h[t];return h[e]>l[e]&&!i.escapeWithReference&&(n=Math.min(h[t],l[e]-("right"===e?h.width:h.height))),Ye({},t,n)}};
vendor: 4,348 bytes, line 2707
2707return c.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";h=ze({},h,u[t](e))}),e.offsets.popper=h,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,i=t.reference,o=e.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(o),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return n[a]<r(i[l])&&(e.offsets.popper[l]=r(i[l])-n[c]),n[l]>r(i[a])&&(e.offsets.popper[l]=r(i[a])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){var n;if(!gt(e.instance.modifiers,"arrow","keepTogether"))return e;var i=t.element;if("string"==typeof i){if(!(i=e.instance.popper.querySelector(i)))return e}else if(!e.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var o=e.placement.split("-")[0],r=e.offsets,s=r.popper,a=r.reference,l=-1!==["left","right"].indexOf(o),c=l?"height":"width",h=l?"Top":"Left",u=h.toLowerCase(),f=l?"left":"top",d=l?"bottom":"right",p=nt(i)[c];a[d]-p<s[u]&&(e.offsets.popper[u]-=s[u]-(a[d]-p)),a[u]+p>s[d]&&(e.offsets.popper[u]+=a[u]+p-s[d]),e.offsets.popper=Xe(e.offsets.popper);var m=a[u]+a[c]/2-p/2,g=ke(e.instance.popper),_=parseFloat(g["margin"+h],10),v=parseFloat(g["border"+h+"Width"],10),y=m-e.offsets.popper[u]-_-v;return y=Math.max(Math.min(s[c]-p,y),0),e.arrowElement=i,e.offsets.arrow=(Ye(n={},u,Math.round(y)),Ye(n,f,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(m,g){if(at(m.instance.modifiers,"inner"))return m;if(m.flipped&&m.placement===m.originalPlacement)return m;var _=Ze(m.instance.popper,m.instance.reference,g.padding,g.boundariesElement,m.positionFixed),v=m.placement.split("-")[0],y=it(v),E=m.placement.split("-")[1]||"",b=[];switch(g.behavior){case Et:b=[v,y];break;case bt:b=yt(v);break;case wt:b=yt(v,!0);break;default:b=g.behavior}return b.forEach(function(e,t){if(v!==e||b.length===t+1)return m;v=m.placement.split("-")[0],y=it(v);var n=m.offsets.popper,i=m.offsets.reference,o=Math.floor,r="left"===v&&o(n.right)>o(i.left)||"right"===v&&o(n.left)<o(i.right)||"top"===v&&o(n.bottom)>o(i.top)||"bottom"===v&&o(n.top)<o(i.bottom),s=o(n.left)<o(_.left),a=o(n.right)>o(_.right),l=o(n.top)<o(_.top),c=o(n.bottom)>o(_.bottom),h="left"===v&&s||"right"===v&&a||"top"===v&&l||"bottom"===v&&c,u=-1!==["top","bottom"].indexOf(v),f=!!g.flipVariations&&(u&&"start"===E&&s||u&&"end"===E&&a||!u&&"start"===E&&l||!u&&"end"===E&&c),d=!!g.flipVariationsByContent&&(u&&"start"===E&&a||u&&"end"===E&&s||!u&&"start"===E&&c||!u&&"end"===E&&l),p=f||d;(r||h||p)&&(m.flipped=!0,(r||h)&&(v=b[t+1]),p&&(E=function(e){return"end"===e?"start":"start"===e?"end":e}(E)),m.placement=v+(E?"-"+E:""),m.offsets.popper=ze({},m.offsets.popper,ot(m.instance.popper,m.offsets.reference,m.placement)),m=st(m.instance.modifiers,m,"flip"))}),m},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],i=e.offsets,o=i.popper,r=i.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return o[s?"left":"top"]=r[n]-(a?o[s?"width":"height"]:0),e.placement=it(t),e.offsets.popper=Xe(o),e}},hide:{order:800,enabled:!0,fn:function(e){if(!gt(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=rt(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottom<n.top||t.left>n.right||t.top>n.bottom||t.right<n.left){if(!0===e.hide)return e;e.hide=!0,e.attributes["x-out-of-boundaries"]=""}else{if(!1===e.hide)return e;e.hide=!1,e.attributes["x-out-of-boundaries"]=!1}return e}},computeStyle:{order:850,enabled:!0,fn:function(e,t){var n=t.x,i=t.y,o=e.offsets.popper,r=rt(e.instance.modifiers,function(e){return"applyStyle"===e.name}).gpuAcceleration;void 0!==r&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var s=void 0!==r?r:t.gpuAcceleration,a=Fe(e.instance.popper),l=Ge(a),c={position:o.position},h=pt(e,window.devicePixelRatio<2||!mt),u="bottom"===n?"top":"bottom",f="right"===i?"left":"right",d=lt("transform"),p=void 0,m=void 0;if(m="bottom"==u?"HTML"===a.nodeName?-a.clientHeight+h.bottom:-l.he
2707ight+h.bottom:h.top,p="right"==f?"HTML"===a.nodeName?-a.clientWidth+h.right:-l.width+h.right:h.left,s&&d)c[d]="translate3d("+p+"px, "+m+"px, 0)",c[u]=0,c[f]=0,c.willChange="transform";else{var g="bottom"==u?-1:1,_="right"==f?-1:1;c[u]=m*g,c[f]=p*_,c.willChange=u+", "+f}var v={"x-placement":e.placement};return e.attributes=ze({},v,e.attributes),e.styles=ze({},c,e.styles),e.arrowStyles=ze({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(e){return dt(e.instance.popper,e.styles),function(t,n){Object.keys(n).forEach(function(e){!1!==n[e]?t.setAttribute(e,n[e]):t.removeAttribute(e)})}(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&dt(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,n,i,o){var r=tt(o,t,e,n.positionFixed),s=et(n.placement,r,t,e,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return t.setAttribute("x-placement",s),dt(t,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}},St=(Qe(Dt,[{key:"update",value:function(){return function(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=tt(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=et(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=ot(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=st(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}.call(this)}},{key:"destroy",value:function(){return function(){return this.state.isDestroyed=!0,at(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[lt("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}.call(this)}},{key:"enableEventListeners",value:function(){return function(){this.state.eventsEnabled||(this.state=ht(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)}},{key:"disableEventListeners",value:function(){return ut.call(this)}}]),Dt);function Dt(e,t){var n=this,i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Dt),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=Oe(this.update.bind(this)),this.options=ze({},Dt.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=t&&t.jquery?t[0]:t,this.options.modifiers={},Object.keys(ze({},Dt.Defaults.modifiers,i.modifiers)).forEach(function(e){n.options.modifiers[e]=ze({},Dt.Defaults.modifiers[e]||{},i.modifiers?i.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return ze({name:e},n.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(e){e.enabled&&Ne(e.onLoad)&&e.onLoad(n.reference,n.popper,n.options,e,n.state)}),this.update();var o=this.options.eventsEnabled;o&&this.enableEventListeners(),this.state.eventsEnabled=o}St.Utils=("undefined"!=typeof window?window:global).PopperUtils,St.placements=_t,St.Defaults=Ct;var It="dropdown",At="bs.dropdown",Ot="."+At,Nt=".data-api",kt=p.fn[It],Lt=new RegExp("38|40|27"),Pt={HIDE:"hide"+Ot,HIDDEN:"hidden"+Ot,SHOW:"show"+Ot,SHOWN:"shown"+Ot,CLICK:"click"+Ot,CLICK_DATA_API:"click"+Ot+Nt,KEYDOWN_DATA_API:"keydown"+Ot+Nt,KEYUP_DATA_API:"keyup"+Ot+Nt},xt="disabled",jt="show",Ht="dropup",Rt="dropright",Ft="dropleft",Mt="dropdown-menu-right",Wt="position-static",Ut='[data-toggle="dropdown"]',Bt=".dropdown form",qt=".dropdown-menu",Kt=".navbar-nav",Qt=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",Vt="top-start",Yt="top-end",zt="bottom-start",Xt="bottom-end",Gt="right-start",$t="left-start",Jt={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null}
2707,Zt={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"},en=function(){function c(e,t){this._element=e,this._popper=null,this._config=this._getConfig(t),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var e=c.prototype;return e.toggle=function(){if(!this._element.disabled&&!p(this._element).hasClass(xt)){var e=p(this._menu).hasClass(jt);c._clearMenus(),e||this.show(!0)}},e.show=function(e){if(void 0===e&&(e=!1),!(this._element.disabled||p(this._element).hasClass(xt)||p(this._menu).hasClass(jt))){var t={relatedTarget:this._element},n=p.Event(Pt.SHOW,t),i=c._getParentFromElement(this._element);if(p(i).trigger(n),!n.isDefaultPrevented()){if(!this._inNavbar&&e){if("undefined"==typeof St)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org/)");var o=this._element;"parent"===this._config.reference?o=i:m.isElement(this._config.reference)&&(o=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(o=this._config.reference[0])),"scrollParent"!==this._config.boundary&&p(i).addClass(Wt),this._popper=new St(o,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===p(i).closest(Kt).length&&p(document.body).children().on("mouseover",null,p.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),p(this._menu).toggleClass(jt),p(i).toggleClass(jt).trigger(p.Event(Pt.SHOWN,t))}}},e.hide=function(){if(!this._element.disabled&&!p(this._element).hasClass(xt)&&p(this._menu).hasClass(jt)){var e={relatedTarget:this._element},t=p.Event(Pt.HIDE,e),n=c._getParentFromElement(this._element);p(n).trigger(t),t.isDefaultPrevented()||(this._popper&&this._popper.destroy(),p(this._menu).toggleClass(jt),p(n).toggleClass(jt).trigger(p.Event(Pt.HIDDEN,e)))}},e.dispose=function(){p.removeData(this._element,At),p(this._element).off(Ot),this._element=null,(this._menu=null)!==this._popper&&(this._popper.destroy(),this._popper=null)},e.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},e._addEventListeners=function(){var t=this;p(this._element).on(Pt.CLICK,function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},e._getConfig=function(e){return e=l({},this.constructor.Default,{},p(this._element).data(),{},e),m.typeCheckConfig(It,e,this.constructor.DefaultType),e},e._getMenuElement=function(){if(!this._menu){var e=c._getParentFromElement(this._element);e&&(this._menu=e.querySelector(qt))}return this._menu},e._getPlacement=function(){var e=p(this._element.parentNode),t=zt;return e.hasClass(Ht)?(t=Vt,p(this._menu).hasClass(Mt)&&(t=Yt)):e.hasClass(Rt)?t=Gt:e.hasClass(Ft)?t=$t:p(this._menu).hasClass(Mt)&&(t=Xt),t},e._detectNavbar=function(){return 0<p(this._element).closest(".navbar").length},e._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=l({},e.offsets,{},t._config.offset(e.offsets,t._element)||{}),e}:e.offset=this._config.offset,e},e._getPopperConfig=function(){var e={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(e.modifiers.applyStyle={enabled:!1}),l({},e,{},this._config.popperConfig)},c._jQueryInterface=function(t){return this.each(function(){var e=p(this).data(At);if(e||(e=new c(this,"object"==typeof t?t:null),p(this).data(At,e)),"string"==typeof t){if("undefined"==typeof e[t])throw new TypeError('No method named "'+t+'"');e[t]()}})},c._clearMenus=function(e){if(!e||3!==e.which&&("keyup"!==e.type||9===e.which))for(var t=[].slice.call(document.querySelectorAll(Ut)),n=0,i=t.length;n<i;n++){var o=c._getParentFromElement(t[n]),r=p(t[n]).data(At),s={relatedTarget:t[n]};if(e&&"click"===e.type&&(s.clickEvent=e),r){var a=r._menu;if(p(o).hasClass(jt)&&!(e&&("click"===e.type&&/input|textarea/i.test(e.target.tagName)||"keyup"===e.type&&9===e.which)&&p.contains(o,e.target))){var l=p.Event(Pt.HIDE,s);p(o).trigger(l),l.isDefaultPrevented()||("ontouchstart"in document.documentElement&&p(document.body).children().off("mouseover",null,p.noop),t[n].setAttribute("aria-expanded","fal
2707se"),r._popper&&r._popper.destroy(),p(a).removeClass(jt),p(o).removeClass(jt).trigger(p.Event(Pt.HIDDEN,s)))}}}},c._getParentFromElement=function(e){var t,n=m.getSelectorFromElement(e);return n&&(t=document.querySelector(n)),t||e.parentNode},c._dataApiKeydownHandler=function(e){if((/input|textarea/i.test(e.target.tagName)?!(32===e.which||27!==e.which&&(40!==e.which&&38!==e.which||p(e.target).closest(qt).length)):Lt.test(e.which))&&(e.preventDefault(),e.stopPropagation(),!this.disabled&&!p(this).hasClass(xt))){var t=c._getParentFromElement(this),n=p(t).hasClass(jt);if(n||27!==e.which)if(n&&(!n||27!==e.which&&32!==e.which)){var i=[].slice.call(t.querySelectorAll(Qt)).filter(function(e){return p(e).is(":visible")});if(0!==i.length){var o=i.indexOf(e.target);38===e.which&&0<o&&o--,40===e.which&&o<i.length-1&&o++,o<0&&(o=0),i[o].focus()}}else{if(27===e.which){var r=t.querySelector(Ut);p(r).trigger("focus")}p(this).trigger("click")}}},s(c,null,[{key:"VERSION",get:function(){return"4.4.1"}},{key:"Default",get:function(){return Jt}},{key:"DefaultType",get:function(){return Zt}}]),c}();p(document).on(Pt.KEYDOWN_DATA_API,Ut,en._dataApiKeydownHandler).on(Pt.KEYDOWN_DATA_API,qt,en._dataApiKeydownHandler).on(Pt.CLICK_DATA_API+" "+Pt.KEYUP_DATA_API,en._clearMenus).on(Pt.CLICK_DATA_API,Ut,function(e){e.preventDefault(),e.stopPropagation(),en._jQueryInterface.call(p(this),"toggle")}).on(Pt.CLICK_DATA_API,Bt,function(e){e.stopPropagation()}),p.fn[It]=en._jQueryInterface,p.fn[It].Constructor=en,p.fn[It].noConflict=function(){return p.fn[It]=kt,en._jQueryInterface};var tn="modal",nn="bs.modal",on="."+nn,rn=p.fn[tn],sn={backdrop:!0,keyboard:!0,focus:!0,show:!0},an={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},ln={HIDE:"hide"+on,HIDE_PREVENTED:"hidePrevented"+on,HIDDEN:"hidden"+on,SHOW:"show"+on,SHOWN:"shown"+on,FOCUSIN:"focusin"+on,RESIZE:"resize"+on,CLICK_DISMISS:"click.dismiss"+on,KEYDOWN_DISMISS:"keydown.dismiss"+on,MOUSEUP_DISMISS:"mouseup.dismiss"+on,MOUSEDOWN_DISMISS:"mousedown.dismiss"+on,CLICK_DATA_API:"click"+on+".data-api"},cn="modal-dialog-scrollable",hn="modal-scrollbar-measure",un="modal-backdrop",fn="modal-open",dn="fade",pn="show",mn="modal-static",gn=".modal-dialog",_n=".modal-body",vn='[data-toggle="modal"]',yn='[data-dismiss="modal"]',En=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",bn=".sticky-top",wn=function(){function o(e,t){this._config=this._getConfig(t),this._element=e,this._dialog=e.querySelector(gn),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0}var e=o.prototype;return e.toggle=function(e){return this._isShown?this.hide():this.show(e)},e.show=function(e){var t=this;if(!this._isShown&&!this._isTransitioning){p(this._element).hasClass(dn)&&(this._isTransitioning=!0);var n=p.Event(ln.SHOW,{relatedTarget:e});p(this._element).trigger(n),this._isShown||n.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),p(this._element).on(ln.CLICK_DISMISS,yn,function(e){return t.hide(e)}),p(this._dialog).on(ln.MOUSEDOWN_DISMISS,function(){p(t._element).one(ln.MOUSEUP_DISMISS,function(e){p(e.target).is(t._element)&&(t._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return t._showElement(e)}))}},e.hide=function(e){var t=this;if(e&&e.preventDefault(),this._isShown&&!this._isTransitioning){var n=p.Event(ln.HIDE);if(p(this._element).trigger(n),this._isShown&&!n.isDefaultPrevented()){this._isShown=!1;var i=p(this._element).hasClass(dn);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),p(document).off(ln.FOCUSIN),p(this._element).removeClass(pn),p(this._element).off(ln.CLICK_DISMISS),p(this._dialog).off(ln.MOUSEDOWN_DISMISS),i){var o=m.getTransitionDurationFromElement(this._element);p(this._element).one(m.TRANSITION_END,function(e){return t._hideModal(e)}).emulateTransitionEnd(o)}else this._hideModal()}}},e.dispose=function(){[window,this._element,this._dialog].forEach(function(e){return p(e).off(on)}),p(document).off(ln.FOCUSIN),p.removeData(this._element,nn),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},e.handleUpdate=function(){this._adjustDialog()},e._getConfig=function(e){return e=l({},sn,{},e),m.typeCheckConfig(tn,e,an),e},e._triggerBackdropTransition=function(){var e=this;if("static"===this._config.backdrop){var t=p.Event(ln.HIDE_PREVENTED);if(p(this._element).trigger(t),t.defaultPrevented)return;this._element.classList.add(mn);var n=m.getTransitionDurationFromElement(this._element);p(this._element).one(m.TRANSITION_END,function(){e._element.classList.remove(mn)}).emulateTransitionEnd(n),this._element.focus()}else this.hide()},e._showElement=function(e){var t=this,n=p(this._element).hasClass(dn),i=this._dialog?this._dialog.querySelector(_n):null;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),p(this._dialog).hasClass(cn)&&i?i.scrollTop=0:this._element.scrollTop=0,n&&m.reflow(this._element),p(this._element).addClass(pn),this._config.focus&&this._enforceFocus();function o(){t._config.focus&&t._element.focus(),t._isTransitioning=!1,p(t._element).trigger(r)}var r=p.Event(ln.SHOWN,{relatedTarget:e});if(n){var s=m.getTransitionDurationFromElement(this._dialog);p(this._dialog).one(m.TRANSITION_END,o).emulateTransitionEnd(s)}else o()},e._enforceFocus=function(){var t=this;p(document).off(ln.FOCUSIN).on(ln.FOCUSIN,function(e){document!==e.target&&t._element!==e.target&&0===p(t._element).has(e.target).length&&t._element.focus()})},e._setEscapeEvent=function(){var t=this;this._isShown&&this._config.keyboard?p(this._element).on(ln.KEYDOWN_DISMISS,function(e){27===e.which&&t._triggerBackdropTransition()}):this._isShown||p(this._element).off(ln.KEYDOWN_DISMISS)},e._setResizeEvent=function(){var t=this;this._isShown?p(window).on(ln.RESIZE,function(e){return t.handleUpdate(e)}):p(window).off(ln.RESIZE)},e._hideModal=function(){var e=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(function(){p(document.body).removeClass(fn),e._resetAdjustments(),e._resetScrollbar(),p(e._element).trigger(ln.HIDDEN)})},e._removeBackdrop=function(){this._backdrop&&(p(this._backdrop).remove(),this._backdrop=null)},e._showBackdrop=function(e){var t=this,n=p(this._element).hasClass(dn)?dn:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=un,n&&this._backdrop.classList.add(n),p(this._backdrop).appendTo(document.body),p(this._element).on(ln.CLICK_DISMISS,function(e){t._ignoreBackdropClick?t._ignoreBackdropClick=!1:e.target===e.currentTarget&&t._triggerBackdropTransition()}),n&&m.reflow(this._backdrop),p(this._backdrop).addClass(pn),!e)return;if(!n)return void e();var i=m.getTransitionDurationFromElement(this._backdrop);p(this._backdrop).one(m.TRANSITION_END,e).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){p(this._backdrop).removeClass(pn);var o=function(){t._removeBackdrop(),e&&e()};if(p(this._element).hasClass(dn)){var r=m.getTransitionDurationFromElement(this._backdrop);p(this._backdrop).one(m.TRANSITION_END,o).emulateTransitionEnd(r)}else o()}else e&&e()},e._adjustDialog=function(){var e=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&e&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!e&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var e=document.body.getBoundingClientRect();this._isBodyOverflowing=e.left+e.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},e._setScrollbar=function(){var o=this;if(this._isBodyOverflowing){var e=[].slice.call(document.querySelectorAll(En)),t=[].slice.call(document.querySelectorAll(bn));p(e).each(function(e,t){var n=t.style.paddingRight,i=p(t).css("padding-right");p(t).data("padding-right",n).css("padding-right",parseFloat(i)+o._scrollbarWidth+"px")}),p(t).each(function(e,t){var n=t.style.marginRight,i=p(t).css("margin-right");p(t).data("margin-right",n).css("margin-right",parseFloat(i)-o._scrollbarWidth+"px")});var n=document.body.style.paddingRight,i=p(document.body).css("padding-right");p(document.body).data("padding-right",n).css("padding-right",parseFloat(i)+this._scrollbarWidth+"px")}p(document.body).addClass(fn)},e._resetScrollbar=function(){var e=[].slice.call(document.querySelectorAll(En));p(e).each(function(e,t){var n=p(t).data("padding-right");p(t).removeData("padding-right"),t.style.paddingRight=n||""});var t=[].slice.call(document.querySelectorAll(""+bn));p(t).each(function(e,t){var n=p(t).data("margin-right");"undefined"!=typeof n&&p(t).css("margin-right",n).removeData("margin-right")});var n=p(document.body).data("padding-right");p(document.body).removeData("padding-right"),document.body.style.paddingRight=n||""},e._getScrollbarWidth=function(){var e=document.createElement("div");e.className=hn,document.body.appendChild(e);var t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t},o._jQueryInterface=function(n,i){return this.each(function(){var e=p(this).data(nn),t=l({},sn,{},p(this).data(),{},"object"==typeof n&&n?n:{});if(e||(e=new o(this,t),p(this).data(nn,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method n
2707amed "'+n+'"');e[n](i)}else t.show&&e.show(i)})},s(o,null,[{key:"VERSION",get:function(){return"4.4.1"}},{key:"Default",get:function(){return sn}}]),o}();p(document).on(ln.CLICK_DATA_API,vn,function(e){var t,n=this,i=m.getSelectorFromElement(this);i&&(t=document.querySelector(i));var o=p(t).data(nn)?"toggle":l({},p(t).data(),{},p(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||e.preventDefault();var r=p(t).one(ln.SHOW,function(e){e.isDefaultPrevented()||r.one(ln.HIDDEN,function(){p(n).is(":visible")&&n.focus()})});wn._jQueryInterface.call(p(t),o,this)}),p.fn[tn]=wn._jQueryInterface,p.fn[tn].Constructor=wn,p.fn[tn].noConflict=function(){return p.fn[tn]=rn,wn._jQueryInterface};var Tn=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],Cn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Sn=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,Dn=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;function In(e,r,t){if(0===e.length)return e;if(t&&"function"==typeof t)return t(e);for(var n=(new window.DOMParser).parseFromString(e,"text/html"),s=Object.keys(r),a=[].slice.call(n.body.querySelectorAll("*")),i=function(e){var t=a[e],n=t.nodeName.toLowerCase();if(-1===s.indexOf(t.nodeName.toLowerCase()))return t.parentNode.removeChild(t),"continue";var i=[].slice.call(t.attributes),o=[].concat(r["*"]||[],r[n]||[]);i.forEach(function(e){!function(e,t){var n=e.nodeName.toLowerCase();if(-1!==t.indexOf(n))return-1===Tn.indexOf(n)||Boolean(e.nodeValue.match(Sn)||e.nodeValue.match(Dn));for(var i=t.filter(function(e){return e instanceof RegExp}),o=0,r=i.length;o<r;o++)if(n.match(i[o]))return!0;return!1}(e,o)&&t.removeAttribute(e.nodeName)})},o=0,l=a.length;o<l;o++)i(o);return n.body.innerHTML}var An="tooltip",On="bs.tooltip",Nn="."+On,kn=p.fn[An],Ln="bs-tooltip",Pn=new RegExp("(^|\\s)"+Ln+"\\S+","g"),xn=["sanitize","whiteList","sanitizeFn"],jn={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object",popperConfig:"(null|object)"},Hn={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Rn={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Cn,popperConfig:null},Fn="show",Mn="out",Wn={HIDE:"hide"+Nn,HIDDEN:"hidden"+Nn,SHOW:"show"+Nn,SHOWN:"shown"+Nn,INSERTED:"inserted"+Nn,CLICK:"click"+Nn,FOCUSIN:"focusin"+Nn,FOCUSOUT:"focusout"+Nn,MOUSEENTER:"mouseenter"+Nn,MOUSELEAVE:"mouseleave"+Nn},Un="fade",Bn="show",qn=".tooltip-inner",Kn=".arrow",Qn="hover",Vn="focus",Yn="click",zn="manual",Xn=function(){function i(e,t){if("undefined"==typeof St)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=e,this.config=this._getConfig(t),this.tip=null,this._setListeners()}var e=i.prototype;return e.enable=function(){this._isEnabled=!0},e.disable=function(){this._isEnabled=!1},e.toggleEnabled=function(){this._isEnabled=!this._isEnabled},e.toggle=function(e){if(this._isEnabled)if(e){var t=this.constructor.DATA_KEY,n=p(e.currentTarget).data(t);n||(n=new this.constructor(e.currentTarget,this._getDelegateConfig()),p(e.currentTarget).data(t,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(p(this.getTipElement()).hasClass(Bn))return void this._leave(null,this);this._enter(null,this)}},e.dispose=function(){clearTimeout(this._timeout),p.removeData(this.element,this.constructor.DATA_KEY),p(this.element).off(this.constructor.EVENT_KEY),p(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&p(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},e.show=function(){var t=this;if("none"===p(this.element).css("display"))throw new Error("Please use show on visible elements");var e=p.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){p(this.element).trigger(e);var n=m.findShadowRoot(this.element),i=p.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(e.isDefaultPrevented()||!i)return;var o=this.getTipElement(),r=m.getUID(this.constructor.NAME);o.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&p(o).addClass(Un);var s="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,a=this._getAttachment(s);this.addAttachmentClass(a);var l=this._getContainer();p(o).data(this.constructor.DATA_KEY,this),p.contains(this.element.ownerDocument.documentElement,this.tip)||p(o).appendTo(l),p(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new St(this.element,o,this._getPopperConfig(a)),p(o).addClass(Bn),"ontouchstart"in document.documentElement&&p(document.body).children().on("mouseover",null,p.noop);var c=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,p(t.element).trigger(t.constructor.Event.SHOWN),e===Mn&&t._leave(null,t)};if(p(this.tip).hasClass(Un)){var h=m.getTransitionDurationFromElement(this.tip);p(this.tip).one(m.TRANSITION_END,c).emulateTransitionEnd(h)}else c()}},e.hide=function(e){function t(){n._hoverState!==Fn&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),p(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),e&&e()}var n=this,i=this.getTipElement(),o=p.Event(this.constructor.Event.HIDE);
2707if(p(this.element).trigger(o),!o.isDefaultPrevented()){if(p(i).removeClass(Bn),"ontouchstart"in document.documentElement&&p(document.body).children().off("mouseover",null,p.noop),this._activeTrigger[Yn]=!1,this._activeTrigger[Vn]=!1,this._activeTrigger[Qn]=!1,p(this.tip).hasClass(Un)){var r=m.getTransitionDurationFromElement(i);p(i).one(m.TRANSITION_END,t).emulateTransitionEnd(r)}else t();this._hoverState=""}},e.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},e.isWithContent=function(){return Boolean(this.getTitle())},e.addAttachmentClass=function(e){p(this.getTipElement()).addClass(Ln+"-"+e)},e.getTipElement=function(){return this.tip=this.tip||p(this.config.template)[0],this.tip},e.setContent=function(){var e=this.getTipElement();this.setElementContent(p(e.querySelectorAll(qn)),this.getTitle()),p(e).removeClass(Un+" "+Bn)},e.setElementContent=function(e,t){"object"!=typeof t||!t.nodeType&&!t.jquery?this.config.html?(this.config.sanitize&&(t=In(t,this.config.whiteList,this.config.sanitizeFn)),e.html(t)):e.text(t):this.config.html?p(t).parent().is(e)||e.empty().append(t):e.text(p(t).text())},e.getTitle=function(){var e=this.element.getAttribute("data-original-title");return e=e||("function"==typeof this.config.title?this.config.title.call(this.element):this.config.title)},e._getPopperConfig=function(e){var t=this;return l({},{placement:e,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:Kn},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){return t._handlePopperPlacementChange(e)}},{},this.config.popperConfig)},e._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=l({},e.offsets,{},t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},e._getContainer=function(){return!1===this.config.container?document.body:m.isElement(this.config.container)?p(this.config.container):p(document).find(this.config.container)},e._getAttachment=function(e){return Hn[e.toUpperCase()]},e._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(e){if("click"===e)p(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(e){return i.toggle(e)});else if(e!==zn){var t=e===Qn?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=e===Qn?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;p(i.element).on(t,i.config.selector,function(e){return i._enter(e)}).on(n,i.config.selector,function(e){return i._leave(e)})}}),this._hideModalHandler=function(){i.element&&i.hide()},p(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=l({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},e._fixTitle=function(){var e=typeof this.element.getAttribute("data-original-title");!this.element.getAttribute("title")&&"string"==e||(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},e._enter=function(e,t){var n=this.constructor.DATA_KEY;(t=t||p(e.currentTarget).data(n))||(t=new this.constructor(e.currentTarget,this._getDelegateConfig()),p(e.currentTarget).data(n,t)),e&&(t._activeTrigger["focusin"===e.type?Vn:Qn]=!0),p(t.getTipElement()).hasClass(Bn)||t._hoverState===Fn?t._hoverState=Fn:(clearTimeout(t._timeout),t._hoverState=Fn,t.config.delay&&t.config.delay.show?t._timeout=setTimeout(function(){t._hoverState===Fn&&t.show()},t.config.delay.show):t.show())},e._leave=function(e,t){var n=this.constructor.DATA_KEY;(t=t||p(e.currentTarget).data(n))||(t=new this.constructor(e.currentTarget,this._getDelegateConfig()),p(e.currentTarget).data(n,t)),e&&(t._activeTrigger["focusout"===e.type?Vn:Qn]=!1),t._isWithActiveTrigger()||(clearTimeout(t._timeout),t._hoverState=Mn,t.config.delay&&t.config.delay.hide?t._timeout=setTimeout(function(){t._hoverState===Mn&&t.hide()},t.config.delay.hide):t.hide())},e._isWithActiveTrigger=function(){for(var e in this._activeTrigger)if(this._activeTrigger[e])return!0;return!1},e._getConfig=function(e){var t=p(this.element).data();return Object.keys(t).forEach(function(e){-1!==xn.indexOf(e)&&delete t[e]}),"number"==typeof(e=l({},this.constructor.Default,{},t,{},"object"==typeof e&&e?e:{})).delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),m.typeCheckConfig(An,e,this.constructor.DefaultType),e.sanitize&&(e.template=In(e.template,e.whiteList,e.sanitizeFn)),e},e._getDelegateConfig=function(){var e={};if(this.config)for(var t in this.config)this.constructor.Default[t]!==this.config[t]&&(e[t]=this.config[t]);return e},e._cleanTipClass=function(){var e=p(this.getTipElement()),t=e.attr("class").match(Pn);null!==t&&t.length&&e.removeClass(t.join(""))},e._handlePopperPlacementChange=function(e){var t=e.instance;this.tip=t.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(e.placement))},e._fixTransition=function(){var e=this.getTipElement(),t=this.config.animation;null===e.getAttribute("x-placement")&&(p(e).removeClass(Un),this.config.animation=!1,this.hide(),this.show(),this.config.animation=t)},i._jQueryInterface=function(n){return this.each(function(){var e=p(this).data(On),t="object"==typeof n&&n;if((e||!/dispose|hide/.test(n))&&(e||(e=new i(this,t),p(this).data(On,e)),"string"==typeof n)){if("undefined"==typeof e[n])throw new TypeError('No method n
2707amed "'+n+'"');e[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.4.1"}},{key:"Default",get:function(){return Rn}},{key:"NAME",get:function(){return An}},{key:"DATA_KEY",get:function(){return On}},{key:"Event",get:function(){return Wn}},{key:"EVENT_KEY",get:function(){return Nn}},{key:"DefaultType",get:function(){return jn}}]),i}();p.fn[An]=Xn._jQueryInterface,p.fn[An].Constructor=Xn,p.fn[An].noConflict=function(){return p.fn[An]=kn,Xn._jQueryInterface};var Gn="popover",$n="bs.popover",Jn="."+$n,Zn=p.fn[Gn],ei="bs-popover",ti=new RegExp("(^|\\s)"+ei+"\\S+","g"),ni=l({},Xn.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),ii=l({},Xn.DefaultType,{content:"(string|element|function)"}),oi="fade",ri="show",si=".popover-header",ai=".popover-body",li={HIDE:"hide"+Jn,HIDDEN:"hidden"+Jn,SHOW:"show"+Jn,SHOWN:"shown"+Jn,INSERTED:"inserted"+Jn,CLICK:"click"+Jn,FOCUSIN:"focusin"+Jn,FOCUSOUT:"focusout"+Jn,MOUSEENTER:"mouseenter"+Jn,MOUSELEAVE:"mouseleave"+Jn},ci=function(e){function i(){return e.apply(this,arguments)||this}!function(e,t){e.prototype=Object.create(t.prototype),(e.prototype.constructor=e).__proto__=t}(i,e);var t=i.prototype;return t.isWithContent=function(){return this.getTitle()||this._getContent()},t.addAttachmentClass=function(e){p(this.getTipElement()).addClass(ei+"-"+e)},t.getTipElement=function(){return this.tip=this.tip||p(this.config.template)[0],this.tip},t.setContent=function(){var e=p(this.getTipElement());this.setElementContent(e.find(si),this.getTitle());var t=this._getContent();"function"==typeof t&&(t=t.call(this.element)),this.setElementContent(e.find(ai),t),e.removeClass(oi+" "+ri)},t._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},t._cleanTipClass=function(){var e=p(this.getTipElement()),t=e.attr("class").match(ti);null!==t&&0<t.length&&e.removeClass(t.join(""))},i._jQueryInterface=function(n){return this.each(function(){var e=p(this).data($n),t="object"==typeof n?n:null;if((e||!/dispose|hide/.test(n))&&(e||(e=new i(this,t),p(this).data($n,e)),"string"==typeof n)){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.4.1"}},{key:"Default",get:function(){return ni}},{key:"NAME",get:function(){return Gn}},{key:"DATA_KEY",get:function(){return $n}},{key:"Event",get:function(){return li}},{key:"EVENT_KEY",get:function(){return Jn}},{key:"DefaultType",get:function(){return ii}}]),i}(Xn);p.fn[Gn]=ci._jQueryInterface,p.fn[Gn].Constructor=ci,p.fn[Gn].noConflict=function(){return p.fn[Gn]=Zn,ci._jQueryInterface};var hi="scrollspy",ui="bs.scrollspy",fi="."+ui,di=p.fn[hi],pi={offset:10,method:"auto",target:""},mi={offset:"number",method:"string",target:"(string|element)"},gi={ACTIVATE:"activate"+fi,SCROLL:"scroll"+fi,LOAD_DATA_API:"load"+fi+".data-api"},_i="dropdown-item",vi="active",yi='[data-spy="scroll"]',Ei=".nav, .list-group",bi=".nav-link",wi=".nav-item",Ti=".list-group-item",Ci=".dropdown",Si=".dropdown-item",Di=".dropdown-toggle",Ii="offset",Ai="position",Oi=function(){function n(e,t){var n=this;this._element=e,this._scrollElement="BODY"===e.tagName?window:e,this._config=this._getConfig(t),this._selector=this._config.target+" "+bi+","+this._config.target+" "+Ti+","+this._config.target+" "+Si,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,p(this._scrollElement).on(gi.SCROLL,function(e){return n._process(e)}),this.refresh(),this._process()}var e=n.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?Ii:Ai,o="auto"===this._config.method?e:this._config.method,r=o===Ai?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map(function(e){var t,n=m.getSelectorFromElement(e);if(n&&(t=document.querySelector(n)),t){var i=t.getBoundingClientRect();if(i.width||i.height)return[p(t)[o]().top+r,n]}return null}).filter(function(e){return e}).sort(function(e,t){return e[0]-t[0]}
2707).forEach(function(e){t._offsets.push(e[0]),t._targets.push(e[1])})},e.dispose=function(){p.removeData(this._element,ui),p(this._scrollElement).off(fi),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},e._getConfig=function(e){if("string"!=typeof(e=l({},pi,{},"object"==typeof e&&e?e:{})).target){var t=p(e.target).attr("id");t||(t=m.getUID(hi),p(e.target).attr("id",t)),e.target="#"+t}return m.typeCheckConfig(hi,e,mi),e},e._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},e._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},e._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},e._process=function(){var e=this._getScrollTop()+this._config.offset,t=this._getScrollHeight(),n=this._config.offset+t-this._getOffsetHeight();if(this._scrollHeight!==t&&this.refresh(),n<=e){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&e<this._offsets[0]&&0<this._offsets[0])return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&e>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||e<this._offsets[o+1])&&this._activate(this._targets[o])}}},e._activate=function(t){this._activeTarget=t,this._clear();var e=this._selector.split(",").map(function(e){return e+'[data-target="'+t+'"],'+e+'[href="'+t+'"]'}),n=p([].slice.call(document.querySelectorAll(e.join(","))));n.hasClass(_i)?(n.closest(Ci).find(Di).addClass(vi),n.addClass(vi)):(n.addClass(vi),n.parents(Ei).prev(bi+", "+Ti).addClass(vi),n.parents(Ei).prev(wi).children(bi).addClass(vi)),p(this._scrollElement).trigger(gi.ACTIVATE,{relatedTarget:t})},e._clear=function(){[].slice.call(document.querySelectorAll(this._selector)).filter(function(e){return e.classList.contains(vi)}).forEach(function(e){return e.classList.remove(vi)})},n._jQueryInterface=function(t){return this.each(function(){var e=p(this).data(ui);if(e||(e=new n(this,"object"==typeof t&&t),p(this).data(ui,e)),"string"==typeof t){if("undefined"==typeof e[t])throw new TypeError('No method named "'+t+'"');e[t]()}})},s(n,null,[{key:"VERSION",get:function(){return"4.4.1"}},{key:"Default",get:function(){return pi}}]),n}();p(window).on(gi.LOAD_DATA_API,function(){for(var e=[].slice.call(document.querySelectorAll(yi)),t=e.length;t--;){var n=p(e[t]);Oi._jQueryInterface.call(n,n.data())}}),p.fn[hi]=Oi._jQueryInterface,p.fn[hi].Constructor=Oi,p.fn[hi].noConflict=function(){return p.fn[hi]=di,Oi._jQueryInterface};var Ni="bs.tab",ki="."+Ni,Li=p.fn.tab,Pi={HIDE:"hide"+ki,HIDDEN:"hidden"+ki,SHOW:"show"+ki,SHOWN:"shown"+ki,CLICK_DATA_API:"click"+ki+".data-api"},xi="dropdown-menu",ji="active",Hi="disabled",Ri="fade",Fi="show",Mi=".dropdown",Wi=".nav, .list-group",Ui=".active",Bi="> li > .active",qi='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',Ki=".dropdown-toggle",Qi="> .dropdown-menu .active",Vi=function(){function i(e){this._element=e}var e=i.prototype;return e.show=function(){var n=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&p(this._element).hasClass(ji)||p(this._element).hasClass(Hi))){var e,i,t=p(this._element).closest(Wi)[0],o=m.getSelectorFromElement(this._element);if(t){var r="UL"===t.nodeName||"OL"===t.nodeName?Bi:Ui;i=(i=p.makeArray(p(t).find(r)))[i.length-1]}var s=p.Event(Pi.HIDE,{relatedTarget:this._element}),a=p.Event(Pi.SHOW,{relatedTarget:i});if(i&&p(i).trigger(s),p(this._element).trigger(a),!a.isDefaultPrevented()&&!s.isDefaultPrevented()){o&&(e=document.querySelector(o)),this._activate(this._element,t);var l=function(){var e=p.Event(Pi.HIDDEN,{relatedTarget:n._element}),t=p.Event(Pi.SHOWN,{relatedTarget:i});p(i).trigger(e),p(n._element).trigger(t)};e?this._activate(e,e.parentNode,l):l()}}},e.dispose=function(){p.removeData(this._element,Ni),this._element=null},e._activate=function(e,t,n){function i(){return o._transitionComplete(e,r,n)}var o=this,r=(!t||"UL"!==t.nodeName&&"OL"!==t.nodeName?p(t).children(Ui):p(t).find(Bi))[0],s=n&&r&&p(r).hasClass(Ri);if(r&&s){var a=m.getTransitionDurationFromElement(r);p(r).removeClass(Fi).one(m.TRANSITION_END,i).emulateTransitionEnd(a)}else i()},e._transitionComplete=function(e,t,n){if(t){p(t).removeClass(ji);var i=p(t.parentNode).find(Qi)[0];i&&p(i).removeClass(ji),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!1)}if(p(e).addClass(ji),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!0),m.reflow(e),e.classList.contains(Ri)&&e.classList.add(Fi),e.parentNode&&p(e.parentNode).hasClass(xi)){var o=p(e).closest(Mi)[0];if(o){var r=[].slice.call(o.querySelectorAll(Ki));p(r).addClass(ji)}e.setAttribute("aria-expanded",!0)}n&&n()},i._jQueryInterface=function(n){return this.each(function(){var e=p(this),t=e.data(Ni);if(t||(t=new i(this),e.data(Ni,t)),"string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method n
2707amed "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.4.1"}}]),i}();p(document).on(Pi.CLICK_DATA_API,qi,function(e){e.preventDefault(),Vi._jQueryInterface.call(p(this),"show")}),p.fn.tab=Vi._jQueryInterface,p.fn.tab.Constructor=Vi,p.fn.tab.noConflict=function(){return p.fn.tab=Li,Vi._jQueryInterface};var Yi="toast",zi="bs.toast",Xi="."+zi,Gi=p.fn[Yi],$i={CLICK_DISMISS:"click.dismiss"+Xi,HIDE:"hide"+Xi,HIDDEN:"hidden"+Xi,SHOW:"show"+Xi,SHOWN:"shown"+Xi},Ji="fade",Zi="hide",eo="show",to="showing",no={animation:"boolean",autohide:"boolean",delay:"number"},io={animation:!0,autohide:!0,delay:500},oo='[data-dismiss="toast"]',ro=function(){function i(e,t){this._element=e,this._config=this._getConfig(t),this._timeout=null,this._setListeners()}var e=i.prototype;return e.show=function(){var e=this,t=p.Event($i.SHOW);if(p(this._element).trigger(t),!t.isDefaultPrevented()){this._config.animation&&this._element.classList.add(Ji);var n=function(){e._element.classList.remove(to),e._element.classList.add(eo),p(e._element).trigger($i.SHOWN),e._config.autohide&&(e._timeout=setTimeout(function(){e.hide()},e._config.delay))};if(this._element.classList.remove(Zi),m.reflow(this._element),this._element.classList.add(to),this._config.animation){var i=m.getTransitionDurationFromElement(this._element);p(this._element).one(m.TRANSITION_END,n).emulateTransitionEnd(i)}else n()}},e.hide=function(){if(this._element.classList.contains(eo)){var e=p.Event($i.HIDE);p(this._element).trigger(e),e.isDefaultPrevented()||this._close()}},e.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(eo)&&this._element.classList.remove(eo),p(this._element).off($i.CLICK_DISMISS),p.removeData(this._element,zi),this._element=null,this._config=null},e._getConfig=function(e){return e=l({},io,{},p(this._element).data(),{},"object"==typeof e&&e?e:{}),m.typeCheckConfig(Yi,e,this.constructor.DefaultType),e},e._setListeners=function(){var e=this;p(this._element).on($i.CLICK_DISMISS,oo,function(){return e.hide()})},e._close=function(){function e(){t._element.classList.add(Zi),p(t._element).trigger($i.HIDDEN)}var t=this;if(this._element.classList.remove(eo),this._config.animation){var n=m.getTransitionDurationFromElement(this._element);p(this._element).one(m.TRANSITION_END,e).emulateTransitionEnd(n)}else e()},i._jQueryInterface=function(n){return this.each(function(){var e=p(this),t=e.data(zi);if(t||(t=new i(this,"object"==typeof n&&n),e.data(zi,t)),"string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n](this)}})},s(i,null,[{key:"VERSION",get:function(){return"4.4.1"}},{key:"DefaultType",get:function(){return no}},{key:"Default",get:function(){return io}}]),i}();p.fn[Yi]=ro._jQueryInterface,p.fn[Yi].Constructor=ro,p.fn[Yi].noConflict=function(){return p.fn[Yi]=Gi,ro._jQueryInterface},e.Alert=_,e.Button=x,e.Carousel=he,e.Collapse=De,e.Dropdown=en,e.Modal=wn,e.Popover=ci,e.Scrollspy=Oi,e.Tab=Vi,e.Toast=ro,e.Tooltip=Xn,e.Util=m,Object.defineProperty(e,"__esModule",{value:!0})});
2708
2709(function ($, Drupal) {
2710  Drupal.behaviors.mtWaypointsAnimations = {
2711    attach: function (context, settings) {
2712      $("body:not(.path-admin) [data-animate-effect]", context).once('mtWaypointsAnimations').each(function() {
2713        var thisObject = $(this);
2714        var animation = thisObject.attr("data-animate-effect");
2715        if(animation != "no-animation") {
2716          var waypoints = thisObject.waypoint(function(direction) {
2717            var animatedObject = $(this.element);
2718            setTimeout(function() {
2719              animatedObject.addClass("animated " + animation);
2720              animatedObject.removeClass("mt-no-opacity");
2721            }, 100);
2722            this.destroy();
2723          },{
2724            offset: "90%"
2725          });
2726        }
2727      });
2728    }
2729  };
2730})(jQuery, Drupal);
2731;
2732/*!
2733Waypoints Sticky Element Shortcut - 4.0.1
2734Copyright © 2011-2016 Caleb Troughton
2735Licensed under the MIT license.
2736https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
2737*/
2738!function(){"use strict";function t(s){this.options=e.extend({},i.defaults,t.defaults,s),this.element=this.options.element,this.$element=e(this.element),this.createWrapper(),this.createWaypoint()}var e=window.jQuery,i=window.Waypoint;t.prototype.createWaypoint=function(){var t=this.options.handler;this.waypoint=new i(e.extend({},this.options,{element:this.wrapper,handler:e.proxy(function(e){var i=this.options.direction.indexOf(e)>-1,s=i?this.$element.outerHeight(!0):"";this.$wrapper.height(s),this.$element.toggleClass(this.options.stuckClass,i),t&&t.call(this,e)},this)}))},t.prototype.createWrapper=function(){this.options.wrapper&&this.$element.wrap(this.options.wrapper),this.$wrapper=this.$element.parent(),this.wrapper=this.$wrapper[0]},t.prototype.destroy=function(){this.$element.parent()[0]===this.wrapper&&(this.waypoint.destroy(),this.$element.removeClass(this.options.stuckClass),this.options.wrapper&&this.$element.unwrap())},t.defaults={wrapper:'<div class="sticky-wrapper" />',stuckClass:"stuck",direction:"down right"},i.Sticky=t}();;
2739/*!
2740 * headroom.js v0.9.4 - Give your page some headroom. Hide your header until you need it
2741 * Copyright (c) 2017 Nick Williams - http://wicky.nillia.ms/headroom.js
2742 * License: MIT
2743 */
2744
2745!function(a,b){"use strict";"function"==typeof define&&define.amd?define([],b):"object"==typeof exports?module.exports=b():a.Headroom=b()}(this,function(){"use strict";function a(a){this.callback=a,this.ticking=!1}function b(a){return a&&"undefined"!=typeof window&&(a===window||a.nodeType)}function c(a){if(arguments.length<=0)throw new Error("Missing arguments in extend function");var d,e,f=a||{};for(e=1;e<arguments.length;e++){var g=arguments[e]||{};for(d in g)"object"!=typeof f[d]||b(f[d])?f[d]=f[d]||g[d]:f[d]=c(f[d],g[d])}return f}function d(a){return a===Object(a)?a:{down:a,up:a}}function e(a,b){b=c(b,e.options),this.lastKnownScrollY=0,this.elem=a,this.tolerance=d(b.tolerance),this.classes=b.classes,this.offset=b.offset,this.scroller=b.scroller,this.initialised=!1,this.onPin=b.onPin,this.onUnpin=b.onUnpin,this.onTop=b.onTop,this.onNotTop=b.onNotTop,this.onBottom=b.onBottom,this.onNotBottom=b.onNotBottom}var f={bind:!!function(){}.bind,classList:"classList"in document.documentElement,rAF:!!(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame)};return window.requestAnimationFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame,a.prototype={constructor:a,update:function(){this.callback&&this.callback(),this.ticking=!1},requestTick:function(){this.ticking||(requestAnimationFrame(this.rafCallback||(this.rafCallback=this.update.bind(this))),this.ticking=!0)},handleEvent:function(){this.requestTick()}},e.prototype={constructor:e,init:function(){if(e.cutsTheMustard)return this.debouncer=new a(this.update.bind(this)),this.elem.classList.add(this.classes.initial),setTimeout(this.attachEvent.bind(this),100),this},destroy:function(){var a=this.classes;this.initialised=!1;for(var b in a)a.hasOwnProperty(b)&&this.elem.classList.remove(a[b]);this.scroller.removeEventListener("scroll",this.debouncer,!1)},attachEvent:function(){this.initialised||(this.lastKnownScrollY=this.getScrollY(),this.initialised=!0,this.scroller.addEventListener("scroll",this.debouncer,!1),this.debouncer.handleEvent())},unpin:function(){var a=this.elem.classList,b=this.classes;!a.contains(b.pinned)&&a.contains(b.unpinned)||(a.add(b.unpinned),a.remove(b.pinned),this.onUnpin&&this.onUnpin.call(this))},pin:function(){var a=this.elem.classList,b=this.classes;a.contains(b.unpinned)&&(a.remove(b.unpinned),a.add(b.pinned),this.onPin&&this.onPin.call(this))},top:function(){var a=this.elem.classList,b=this.classes;
2745a.contains(b.top)||(a.add(b.top),a.remove(b.notTop),this.onTop&&this.onTop.call(this))},notTop:function(){var a=this.elem.classList,b=this.classes;a.contains(b.notTop)||(a.add(b.notTop),a.remove(b.top),this.onNotTop&&this.onNotTop.call(this))},bottom:function(){var a=this.elem.classList,b=this.classes;a.contains(b.bottom)||(a.add(b.bottom),a.remove(b.notBottom),this.onBottom&&this.onBottom.call(this))},notBottom:function(){var a=this.elem.classList,b=this.classes;a.contains(b.notBottom)||(a.add(b.notBottom),a.remove(b.bottom),this.onNotBottom&&this.onNotBottom.call(this))},getScrollY:function(){return void 0!==this.scroller.pageYOffset?this.scroller.pageYOffset:void 0!==this.scroller.scrollTop?this.scroller.scrollTop:(document.documentElement||document.body.parentNode||document.body).scrollTop},getViewportHeight:function(){return window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight},getElementPhysicalHeight:function(a){return Math.max(a.offsetHeight,a.clientHeight)},getScrollerPhysicalHeight:function(){return this.scroller===window||this.scroller===document.body?this.getViewportHeight():this.getElementPhysicalHeight(this.scroller)},getDocumentHeight:function(){var a=document.body,b=document.documentElement;return Math.max(a.scrollHeight,b.scrollHeight,a.offsetHeight,b.offsetHeight,a.clientHeight,b.clientHeight)},getElementHeight:function(a){return Math.max(a.scrollHeight,a.offsetHeight,a.clientHeight)},getScrollerHeight:function(){return this.scroller===window||this.scroller===document.body?this.getDocumentHeight():this.getElementHeight(this.scroller)},isOutOfBounds:function(a){var b=a<0,c=a+this.getScrollerPhysicalHeight()>this.getScrollerHeight();return b||c},toleranceExceeded:function(a,b){return Math.abs(a-this.lastKnownScrollY)>=this.tolerance[b]},shouldUnpin:function(a,b){var c=a>this.lastKnownScrollY,d=a>=this.offset;return c&&d&&b},shouldPin:function(a,b){var c=a<this.lastKnownScrollY,d=a<=this.offset;return c&&b||d},update:function(){var a=this.getScrollY(),b=a>this.lastKnownScrollY?"down":"up",c=this.toleranceExceeded(a,b);this.isOutOfBounds(a)||(a<=this.offset?this.top():this.notTop(),a+this.getViewportHeight()>=this.getScrollerHeight()?this.bottom():this.notBottom(),this.shouldUnpin(a,c)?this.unpin():this.shouldPin(a,c)&&this.pin(),this.lastKnownScrollY=a)}},e.options={tolerance:{up:0,down:0},offset:0,scroller:window,classes:{pinned:"headroom--pinned",unpinned:"headroom--unpinned",top:"headroom--top",notTop:"headroom--not-top",bottom:"headroom--bottom",notBottom:"headroom--not-bottom",initial:"headroom"}},e.cutsTheMustard="undefined"!=typeof f&&f.rAF&&f.bind&&f.classList,e});;
2746/*!
2747 * headroom.js v0.9.4 - Give your page some headroom. Hide your header until you need it
2748 * Copyright (c) 2017 Nick Williams - http://wicky.nillia.ms/headroom.js
2749 * License: MIT
2750 */
2751
2752!function(a){a&&(a.fn.headroom=function(b){return this.each(function(){var c=a(this),d=c.data("headroom"),e="object"==typeof b&&b;e=a.extend(!0,{},Headroom.options,e),d||(d=new Headroom(this,e),d.init(),c.data("headroom",d)),"string"==typeof b&&(d[b](),"destroy"===b&&c.removeData("headroom"))})},a("[data-headroom]").each(function(){var b=a(this);b.headroom(b.data())}))}(window.Zepto||window.jQuery);;
2753(function ($, Drupal) {
2754  Drupal.behaviors.mtHeadroomGlobal = {
2755    attach: function (context, settings) {
2756      $(context).find("body").once('mtHeadroomGlobalInit').each(function(index, item) {
2757        $(item).headroom({
2758          classes : {
2759            // when element is initialised
2760            initial : "headroom",
2761            // when scrolling up
2762            pinned : "headroom--scroll-up",
2763            // when scrolling down
2764            unpinned : "headroom--scroll-down",
2765            // when above offset
2766            top : "headroom--top",
2767            // when below offset
2768            notTop : "headroom--not-top",
2769            // when at bottom of scoll area
2770            bottom : "headroom--bottom",
2771            // when not at bottom of scroll area
2772            notBottom : "headroom--not-bottom"
2773          }
2774        });
2775      });
2776    }
2777  };
2778})(jQuery, Drupal);
2779;
2780(function ($, Drupal) {
2781  Drupal.behaviors.mtWaypointsFixedHeader = {
2782    attach: function (context, settings) {
2783      $(context).find(".header-container .header").once('mtWaypointsFixedHeaderInit').each(function(index, item) {
2784        var sticky = new Waypoint.Sticky ({
2785          element: $('.header-container .header')[0],
2786          stuckClass: 'js-fixed',
2787          handler: function(direction) {
2788            if (Waypoint.viewportWidth() > 752) {
2789              $('body', context).toggleClass('onscroll');
2790            } else {
2791              $('body', context).removeClass('onscroll');
2792            }
2793            var topValue = $('body').css('padding-top');
2794            $(".header.js-fixed").css("top", topValue);
2795          },
2796          offset: function() {
2797            var offsetValue = parseInt($('body').css('padding-top')) - 1;
2798            return offsetValue;
2799          }
2800        });
2801      });
2802    }
2803  };
2804})(jQuery, Drupal);
2805;

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.