var H5P = H5P || {};

/**
 * Constructor.
 *
 * @param {object} params Options for this library.
 */
H5P.Text = function (params) {
  this.text = params.text === undefined ? '<em>New text</em>' : params.text;
};

/**
 * Wipe out the content of the wrapper and put our HTML in it.
 *
 * @param {jQuery} $wrapper
 */
H5P.Text.prototype.attach = function ($wrapper) {
  $wrapper.addClass('h5p-text').html(this.text);
};
;var H5P = H5P || {};
/**
 * Transition contains helper function relevant for transitioning
 */
H5P.Transition = (function ($) {

  /**
   * @class
   * @namespace H5P
   */
  Transition = {};

  /**
   * @private
   */
  Transition.transitionEndEventNames = {
    'WebkitTransition': 'webkitTransitionEnd',
    'transition':       'transitionend',
    'MozTransition':    'transitionend',
    'OTransition':      'oTransitionEnd',
    'msTransition':     'MSTransitionEnd'
  };

  /**
   * @private
   */
  Transition.cache = [];

  /**
   * Get the vendor property name for an event
   *
   * @function H5P.Transition.getVendorPropertyName
   * @static
   * @private
   * @param  {string} prop Generic property name
   * @return {string}      Vendor specific property name
   */
  Transition.getVendorPropertyName = function (prop) {

    if (Transition.cache[prop] !== undefined) {
      return Transition.cache[prop];
    }

    var div = document.createElement('div');

    // Handle unprefixed versions (FF16+, for example)
    if (prop in div.style) {
      Transition.cache[prop] = prop;
    }
    else {
      var prefixes = ['Moz', 'Webkit', 'O', 'ms'];
      var prop_ = prop.charAt(0).toUpperCase() + prop.substr(1);

      if (prop in div.style) {
        Transition.cache[prop] = prop;
      }
      else {
        for (var i = 0; i < prefixes.length; ++i) {
          var vendorProp = prefixes[i] + prop_;
          if (vendorProp in div.style) {
            Transition.cache[prop] = vendorProp;
            break;
          }
        }
      }
    }

    return Transition.cache[prop];
  };

  /**
   * Get the name of the transition end event
   *
   * @static
   * @private
   * @return {string}  description
   */
  Transition.getTransitionEndEventName = function () {
    return Transition.transitionEndEventNames[Transition.getVendorPropertyName('transition')] || undefined;
  };

  /**
   * Helper function for listening on transition end events
   *
   * @function H5P.Transition.onTransitionEnd
   * @static
   * @param  {domElement} $element The element which is transitioned
   * @param  {function} callback The callback to be invoked when transition is finished
   * @param  {number} timeout  Timeout in milliseconds. Fallback if transition event is never fired
   */
  Transition.onTransitionEnd = function ($element, callback, timeout) {
    // Fallback on 1 second if transition event is not supported/triggered
    timeout = timeout || 1000;
    Transition.transitionEndEventName = Transition.transitionEndEventName || Transition.getTransitionEndEventName();
    var callbackCalled = false;

    var doCallback = function () {
      if (callbackCalled) {
        return;
      }
      $element.off(Transition.transitionEndEventName, callback);
      callbackCalled = true;
      clearTimeout(timer);
      callback();
    };

    var timer = setTimeout(function () {
      doCallback();
    }, timeout);

    $element.on(Transition.transitionEndEventName, function () {
      doCallback();
    });
  };

  /**
   * Wait for a transition - when finished, invokes next in line
   *
   * @private
   *
   * @param {Object[]}    transitions             Array of transitions
   * @param {H5P.jQuery}  transitions[].$element  Dom element transition is performed on
   * @param {number=}     transitions[].timeout   Timeout fallback if transition end never is triggered
   * @param {bool=}       transitions[].break     If true, sequence breaks after this transition
   * @param {number}      index                   The index for current transition
   */
  var runSequence = function (transitions, index) {
    if (index >= transitions.length) {
      return;
    }

    var transition = transitions[index];
    H5P.Transition.onTransitionEnd(transition.$element, function () {
      if (transition.end) {
        transition.end();
      }
      if (transition.break !== true) {
        runSequence(transitions, index+1);
      }
    }, transition.timeout || undefined);
  };

  /**
   * Run a sequence of transitions
   *
   * @function H5P.Transition.sequence
   * @static
   * @param {Object[]}    transitions             Array of transitions
   * @param {H5P.jQuery}  transitions[].$element  Dom element transition is performed on
   * @param {number=}     transitions[].timeout   Timeout fallback if transition end never is triggered
   * @param {bool=}       transitions[].break     If true, sequence breaks after this transition
   */
  Transition.sequence = function (transitions) {
    runSequence(transitions, 0);
  };

  return Transition;
})(H5P.jQuery);
;H5P.Column = (function (EventDispatcher) {

  /**
   * Column Constructor
   *
   * @class
   * @param {Object} params Describes task behavior
   * @param {number} id Content identifier
   * @param {Object} data User specific data to adapt behavior
   */
  function Column(params, id, data) {
    /** @alias H5P.Column# */
    var self = this;

    // We support events by extending this class
    EventDispatcher.call(self);

    // Add defaults
    params = params || {};
    if (params.useSeparators === undefined) {
      params.useSeparators = true;
    }

    // Fallback if column is empty
    if (params.content === undefined) {
      params.content = [];
    }

    this.contentData = data;

    // Column wrapper element
    var wrapper;

    // H5P content in the column
    var instances = [];
    var instanceContainers = [];

    // Number of tasks among instances
    var numTasks = 0;

    // Number of tasks that has been completed
    var numTasksCompleted = 0;

    // Keep track of result for each task
    var tasksResultEvent = [];

    // Keep track of last content's margin state
    var previousHasMargin;

    /**
     * Calculate score and trigger completed event.
     *
     * @private
     */
    var completed = function () {
      // Sum all scores
      var raw = 0;
      var max = 0;

      for (var i = 0; i < tasksResultEvent.length; i++) {
        var event = tasksResultEvent[i];
        raw += event.getScore();
        max += event.getMaxScore();
      }

      self.triggerXAPIScored(raw, max, 'completed');
    };

    /**
     * Generates an event handler for the given task index.
     *
     * @private
     * @param {number} taskIndex
     * @return {function} xAPI event handler
     */
    var trackScoring = function (taskIndex) {
      return function (event) {
        if (event.getScore() === null) {
          return; // Skip, not relevant
        }

        if (tasksResultEvent[taskIndex] === undefined) {
          // Update number of completed tasks
          numTasksCompleted++;
        }

        // Keep track of latest event with result
        tasksResultEvent[taskIndex] = event;

        // Track progress
        var progressed = self.createXAPIEventTemplate('progressed');
        progressed.data.statement.object.definition.extensions['http://id.tincanapi.com/extension/ending-point'] = taskIndex + 1;
        self.trigger(progressed);

        // Check to see if we're done
        if (numTasksCompleted === numTasks) {
          // Run this after the current event is sent
          setTimeout(function () {
            completed(); // Done
          }, 0);
        }
      };
    };

    /**
     * Creates a new ontent instance from the given content parameters and
     * then attaches it the wrapper. Sets up event listeners.
     *
     * @private
     * @param {Object} content Parameters
     * @param {Object} [contentData] Content Data
     */
    var addRunnable = function (content, contentData) {
      // Create container for content
      var container = document.createElement('div');
      container.classList.add('h5p-column-content');

      // Content overrides
      var library = content.library.split(' ')[0];
      if (library === 'H5P.Video') {
        // Prevent video from growing endlessly since height is unlimited.
        content.params.visuals.fit = false;
      }

      // Create content instance
      var instance = H5P.newRunnable(content, id, undefined, true, contentData);

      // Bubble resize events
      bubbleUp(instance, 'resize', self);

      // Keep track of all instances that are tasks
      const taskInstances = [];

      // Check if instance is a task
      if (Column.isTask(instance)) {
        // Tasks requires completion
        taskInstances.push(instance);
      }

      // For H5P.Row, we'll retrieve the actual task instances
      if (library === 'H5P.Row') {
        const rowColumns = instance.getInstances();

        // A row can have several columns
        for (const rowColumn of rowColumns) {

          // And each row column can have several content types,
          // some of which might be tasks
          const rowColumnInstances = rowColumn.getInstances();
          for (const rowColumnInstance of rowColumnInstances) {
            if (Column.isTask(rowColumnInstance)) {
              taskInstances.push(rowColumnInstance);
            }
          }
        }
      }

      for (const task of taskInstances) {
        task.on('xAPI', trackScoring(numTasks));
        numTasks++;
      }

      if (library === 'H5P.Image') {
        // Resize when images are loaded

        instance.on('loaded', function () {
          self.trigger('resize');
        });
      }

      // Keep track of all instances
      instances.push(instance);
      instanceContainers.push({
        hasAttached: false,
        container: container,
        instanceIndex: instances.length - 1,
      });

      // Add to DOM wrapper
      wrapper.appendChild(container);
    };

    /**
     * Help get data for content at given index
     *
     * @private
     * @param {number} index
     * @returns {Object} Data object with previous state
     */
    var grabContentData = function (index) {
      var contentData = {
        parent: self
      };

      if (data.previousState && data.previousState.instances && data.previousState.instances[index]) {
        contentData.previousState = data.previousState.instances[index];
      }

      return contentData;
    };

    /**
     * Adds separator before the next content.
     *
     * @private
     * @param {string} libraryName Name of the next content type
     * @param {string} useSeparator
     */
    var addSeparator = function (libraryName, useSeparator, content) {
      // Determine separator spacing
      var thisHasMargin = (hasMargins.indexOf(libraryName) !== -1);

      if (libraryName === 'H5P.Row') {
        let lastContent = null;
        let contentCount = content.params?.columns?.reduce((count, column) => {
          const contents = column.content?.params?.content;
          count += contents?.length ?? 0;
          if (contents?.length > 0) {
            lastContent = column.content.params.content[contents.length-1];
          }
          return count;
        }, 0);

        // To avoid messy margin computation, separator setting should be disabled when there is more
        // than a single content inside a row. We also don't want a separator if we don't have any content
        if (useSeparator === 'auto' && (contentCount > 1 || contentCount === 0)) {
          useSeparator = 'disabled';
        } else if (contentCount > 0) {
          // If we only have one content, we want to follow the same procedure as if that content was
          // not wrapped on Row and RowColumn. 
          addSeparator(lastContent.library.split(' ')[0], useSeparator ?? 'auto');
          return;
        } else {
          // No separator.
          return;
        }
      }

      // Only add if previous content exists
      if (previousHasMargin !== undefined) {

        // Create separator element
        let separator = document.createElement('div');

        // If no margins, check for top margin only
        if (!thisHasMargin && (hasTopMargins.indexOf(libraryName) === -1)) {
          if (!previousHasMargin) {
            // None of them have margin

            // Only add separator if forced
            if (useSeparator === 'enabled') {
              // Add ruler
              separator.classList.add('h5p-column-ruler');

              // Add space both before and after the ruler
              separator.classList.add('h5p-column-space-before-n-after');
            }
            else {
              // Default is to separte using a single space, no ruler
              separator.classList.add('h5p-column-space-before');
            }
          }
          else {
            // We don't have any margin but the previous content does

            // Only add separator if forced
            if (useSeparator === 'enabled') {
              // Add ruler
              separator.classList.add('h5p-column-ruler');

              // Add space after the ruler
              separator.classList.add('h5p-column-space-after');
            }
          }
        }
        else if (!previousHasMargin) {
          // We have margin but not the previous content doesn't

          // Only add separator if forced
          if (useSeparator === 'enabled') {
            // Add ruler
            separator.classList.add('h5p-column-ruler');

            // Add space after the ruler
            separator.classList.add('h5p-column-space-before');
          }
        }
        else {
          // Both already have margin

          if (useSeparator !== 'disabled') {
            // Default is to add ruler unless its disabled
            separator.classList.add('h5p-column-ruler');
          }
        }

        // Insert into DOM
        wrapper.appendChild(separator);
      }

      // Keep track of spacing for next separator
      previousHasMargin = thisHasMargin || (hasBottomMargins.indexOf(libraryName) !== -1);
    };

    /**
     * Creates a wrapper and the column content the first time the column
     * is attached to the DOM.
     *
     * @private
     */
    var createHTML = function () {
      // Create wrapper
      wrapper = document.createElement('div');

      // Go though all contents
      for (var i = 0; i < params.content.length; i++) {
        var content = params.content[i];

        // In case the author has created an element without selecting any
        // library
        if (content.content === undefined) {
          continue;
        }

        if (params.useSeparators) { // (check for global override)

          // Add separator between contents
          addSeparator(content.content.library.split(' ')[0], content.useSeparator, content.content);
        }

        // Add content
        addRunnable(content.content, grabContentData(i));
      }
    };

    /**
     * Attach the column to the given container
     *
     * @param {H5P.jQuery} $container
     */
    self.attach = function ($container) {
      if (wrapper === undefined) {
        // Create wrapper and content
        createHTML();
      }

      // Attach instances that have not been attached
      instanceContainers.filter(function (container) { return !container.hasAttached })
        .forEach(function (container) {
          instances[container.instanceIndex]
            .attach(H5P.jQuery(container.container));

          // Remove any fullscreen buttons
          disableFullscreen(instances[container.instanceIndex]);
        });


      // Add to DOM
      $container.addClass('h5p-column').html('').append(wrapper);
    };

    /**
     * Create object containing information about the current state
     * of this content.
     *
     * @return {Object}
     */
    self.getCurrentState = function () {
      // Get previous state object or create new state object
      var state = (data.previousState ? data.previousState : {});
      if (!state.instances) {
        state.instances = [];
      }

      // Grab the current state for each instance
      for (var i = 0; i < instances.length; i++) {
        var instance = instances[i];

        if (instance.getCurrentState instanceof Function ||
            typeof instance.getCurrentState === 'function') {

          state.instances[i] = instance.getCurrentState();
        }
      }

      // Done
      return state;
    };

    /**
     * Get xAPI data.
     * Contract used by report rendering engine.
     *
     * @see contract at {@link https://h5p.org/documentation/developers/contracts#guides-header-6}
     */
    self.getXAPIData = function () {
      var xAPIEvent = self.createXAPIEventTemplate('answered');
      addQuestionToXAPI(xAPIEvent);
      xAPIEvent.setScoredResult(self.getScore(),
        self.getMaxScore(),
        self,
        true,
        self.getScore() === self.getMaxScore()
      );
      return {
        statement: xAPIEvent.data.statement,
        children: getXAPIDataFromChildren(instances)
      };
    };

    /**
     * Get score for all children
     * Contract used for getting the complete score of task.
     *
     * @return {number} Score for questions
     */
    self.getScore = function () {
      return instances.reduce(function (prev, instance) {
        return prev + (instance.getScore ? instance.getScore() : 0);
      }, 0);
    };

    /**
     * Get maximum score possible for all children instances
     * Contract.
     *
     * @return {number} Maximum score for questions
     */
    self.getMaxScore = function () {
      return instances.reduce(function (prev, instance) {
        return prev + (instance.getMaxScore ? instance.getMaxScore() : 0);
      }, 0);
    };

    /**
     * Get answer given
     * Contract.
     *
     * @return {boolean} True, if all answers have been given.
     */
    self.getAnswerGiven = function () {
      return instances.reduce(function (prev, instance) {
        return prev && (instance.getAnswerGiven ? instance.getAnswerGiven() : prev);
      }, true);
    };

    /**
     * Show solutions.
     * Contract.
     */
    self.showSolutions = function () {
      instances.forEach(function (instance) {
        if (instance.toggleReadSpeaker) {
          instance.toggleReadSpeaker(true);
        }
        if (instance.showSolutions) {
          instance.showSolutions();
        }
        if (instance.toggleReadSpeaker) {
          instance.toggleReadSpeaker(false);
        }
      });
    };

    /**
     * Reset task.
     * Contract.
     */
    self.resetTask = function () {
      instances.forEach(function (instance) {
        if (instance.resetTask) {
          instance.resetTask();
        }
      });
    };

    /**
     * Get instances for all children
     * TODO: This is not a good interface, we should provide handling needed
     * handling of the tasks instead of repeating them for each parent...
     *
     * @return {Object[]} array of instances
     */
    self.getInstances = function () {
      return instances;
    };

    /**
     * Get title, e.g. for xAPI when Column is subcontent.
     *
     * @return {string} Title.
     */
    self.getTitle = function () {
      return H5P.createTitle((self.contentData && self.contentData.metadata && self.contentData.metadata.title) ? self.contentData.metadata.title : 'Column');
    };

    /**
     * Add the question itself to the definition part of an xAPIEvent
     */
    var addQuestionToXAPI = function (xAPIEvent) {
      var definition = xAPIEvent.getVerifiedStatementValue(['object', 'definition']);
      H5P.jQuery.extend(definition, getxAPIDefinition());
    };

    /**
     * Generate xAPI object definition used in xAPI statements.
     * @return {Object}
     */
    var getxAPIDefinition = function () {
      var definition = {};

      definition.interactionType = 'compound';
      definition.type = 'http://adlnet.gov/expapi/activities/cmi.interaction';
      definition.description = {
        'en-US': ''
      };

      return definition;
    };

    /**
     * Get xAPI data from sub content types
     *
     * @param {Array} of H5P instances
     * @returns {Array} of xAPI data objects used to build a report
     */
    var getXAPIDataFromChildren = function (children) {
      let childData = [];

      children.forEach(child => {
        if (child.libraryInfo.machineName === 'H5P.Row') {
          childData.push(...child.getXAPIDataFromChildren());
        }
        else if (typeof child.getXAPIData == 'function') {
          childData.push(child.getXAPIData());
        }
      });

      return childData.filter(function (data) {
        return !!data;
      });
    };

    // Resize children to fit inside parent
    bubbleDown(self, 'resize', instances);

    if (wrapper === undefined) {
      // Create wrapper and content
      createHTML();
    }

    self.setActivityStarted();
  }

  Column.prototype = Object.create(EventDispatcher.prototype);
  Column.prototype.constructor = Column;

  /**
   * Makes it easy to bubble events from parent to children
   *
   * @private
   * @param {Object} origin Origin of the Event
   * @param {string} eventName Name of the Event
   * @param {Array} targets Targets to trigger event on
   */
  function bubbleDown(origin, eventName, targets) {
    origin.on(eventName, function (event) {
      if (origin.bubblingUpwards) {
        return; // Prevent send event back down.
      }

      for (var i = 0; i < targets.length; i++) {
        targets[i].trigger(eventName, event);
      }
    });
  }

  /**
   * Makes it easy to bubble events from child to parent
   *
   * @private
   * @param {Object} origin Origin of the Event
   * @param {string} eventName Name of the Event
   * @param {Object} target Target to trigger event on
   */
  function bubbleUp(origin, eventName, target) {
    origin.on(eventName, function (event) {
      // Prevent target from sending event back down
      target.bubblingUpwards = true;

      // Trigger event
      target.trigger(eventName, event);

      // Reset
      target.bubblingUpwards = false;
    });
  }

  /**
   * Definition of which content types are tasks
   */
  var isTasks = [
    'H5P.ImageHotspotQuestion',
    'H5P.Blanks',
    'H5P.Essay',
    'H5P.SingleChoiceSet',
    'H5P.MultiChoice',
    'H5P.TrueFalse',
    'H5P.DragQuestion',
    'H5P.Summary',
    'H5P.DragText',
    'H5P.MarkTheWords',
    'H5P.MemoryGame',
    'H5P.QuestionSet',
    'H5P.InteractiveVideo',
    'H5P.CoursePresentation',
    'H5P.DocumentationTool',
    'H5P.MultiMediaChoice'
  ];

  /**
   * Check if the given content instance is a task (will give a score)
   *
   * @param {Object} instance
   * @return {boolean}
   */
  Column.isTask = function (instance) {
    if (instance.isTask !== undefined) {
      return instance.isTask; // Content will determine self if it's a task
    }

    // Go through the valid task names
    for (var i = 0; i < isTasks.length; i++) {
      // Check against library info. (instanceof is broken in H5P.newRunnable)
      if (instance.libraryInfo.machineName === isTasks[i]) {
        return true;
      }
    }

    return false;
  }

  /**
   * Definition of which content type have margins
   */
  var hasMargins = [
    'H5P.AdvancedText',
    'H5P.AudioRecorder',
    'H5P.Essay',
    'H5P.Link',
    'H5P.Accordion',
    'H5P.Table',
    'H5P.GuessTheAnswer',
    'H5P.Blanks',
    'H5P.MultiChoice',
    'H5P.TrueFalse',
    'H5P.DragQuestion',
    'H5P.Summary',
    'H5P.DragText',
    'H5P.MarkTheWords',
    'H5P.ImageHotspotQuestion',
    'H5P.MemoryGame',
    'H5P.Dialogcards',
    'H5P.QuestionSet',
    'H5P.DocumentationTool'
  ];

  /**
   * Definition of which content type have top margins
   */
  var hasTopMargins = [
    'H5P.SingleChoiceSet'
  ];

  /**
   * Definition of which content type have bottom margins
   */
  var hasBottomMargins = [
    'H5P.CoursePresentation',
    'H5P.Dialogcards',
    'H5P.GuessTheAnswer',
    'H5P.ImageSlider'
  ];

  /**
   * Remove custom fullscreen buttons from sub content.
   * (A bit of a hack, there should have been some sort of override…)
   *
   * @param {Object} instance
   */
  function disableFullscreen(instance) {
    switch (instance.libraryInfo.machineName) {
      case 'H5P.CoursePresentation':
        if (instance.$fullScreenButton) {
          instance.$fullScreenButton.remove();
        }
        break;

      case 'H5P.InteractiveVideo':
        instance.on('controls', function () {
          if (instance.controls.$fullscreen) {
            instance.controls.$fullscreen.remove();
          }
        });
        break;
    }
  }

  return Column;
})(H5P.EventDispatcher);
;var H5P = H5P || {};

/**
 * Constructor.
 *
 * @param {Object} params Options for this library.
 * @param {Number} id Content identifier
 * @returns {undefined}
 */
(function ($) {
  H5P.Image = function (params, id, extras) {
    H5P.EventDispatcher.call(this);
    this.extras = extras;

    if (params.file === undefined || !(params.file instanceof Object)) {
      this.placeholder = true;
    }
    else {
      this.source = H5P.getPath(params.file.path, id);
      this.width = params.file.width;
      this.height = params.file.height;
    }

    this.alt = (!params.decorative && params.alt !== undefined) ?
      this.stripHTML(this.htmlDecode(params.alt)) :
      '';

    if (params.title !== undefined) {
      this.title = this.stripHTML(this.htmlDecode(params.title));
    }
  };

  H5P.Image.prototype = Object.create(H5P.EventDispatcher.prototype);
  H5P.Image.prototype.constructor = H5P.Image;

  /**
   * Wipe out the content of the wrapper and put our HTML in it.
   *
   * @param {jQuery} $wrapper
   * @returns {undefined}
   */
  H5P.Image.prototype.attach = function ($wrapper) {
    var self = this;
    var source = this.source;

    if (self.$img === undefined) {
      if(self.placeholder) {
        self.$img = $('<div>', {
          width: '100%',
          height: '100%',
          class: 'h5p-placeholder',
          title: this.title === undefined ? '' : this.title,
          on: {
            load: function () {
              self.trigger('loaded');
            }
          }
        });
      } else {
        self.$img = $('<img>', {
          width: '100%',
          height: '100%',
          src: source,
          alt: this.alt,
          title: this.title === undefined ? '' : this.title,
          on: {
            load: function () {
              self.trigger('loaded');
            }
          }
        });
      }
    }

    $wrapper.addClass('h5p-image').html(self.$img);
  };

  /**
   * Retrieve decoded HTML encoded string.
   *
   * @param {string} input HTML encoded string.
   * @returns {string} Decoded string.
   */
  H5P.Image.prototype.htmlDecode = function (input) {
    const dparser = new DOMParser().parseFromString(input, 'text/html');
    return dparser.documentElement.textContent;
  };

  /**
   * Retrieve string without HTML tags.
   *
   * @param {string} input Input string.
   * @returns {string} Output string.
   */
  H5P.Image.prototype.stripHTML = function (html) {
    const div = document.createElement('div');
    div.innerHTML = html;
    return div.textContent || div.innerText || '';
  };

  return H5P.Image;
}(H5P.jQuery));
;/**
 * Defines the H5P.ImageHotspots class
 */
H5P.ImageHotspots = (function ($, EventDispatcher) {

  const DEFAULT_FONT_SIZE = 24;

  /**
   * Creates a new Image hotspots instance
   *
   * @class
   * @augments H5P.EventDispatcher
   * @namespace H5P
   * @param {Object} options
   * @param {number} id
   */
  function ImageHotspots(options, id) {
    EventDispatcher.call(this);

    // Extend defaults with provided options
    this.options = $.extend(true, {}, {
      image: null,
      hotspots: [],
      hotspotNumberLabel: 'Hotspot #num',
      closeButtonLabel: 'Close',
      containsAudioVideoLabel: 'Contains Audio/Video',
      iconType: 'icon',
      icon: 'plus'
    }, options);

    // Remove hotspots without any content
    this.options.hotspots = this.options.hotspots.filter((hotspot) => {
      hotspot.content = hotspot.content?.filter((content) => {
        return content.library !== undefined;
      });

      return hotspot.content?.length > 0;
    });

    // Keep provided id.
    this.id = id;
    this.isSmallDevice = false;

    /**
     * Process HTML escaped string for use as attribute value,
     * e.g. for alt text or title attributes.
     *
     * @param {string} value
     * @return {string} WARNING! Do NOT use for innerHTML.
     */
    this.massageAttributeOutput = function (value) {
      const dparser = new DOMParser().parseFromString(value, 'text/html');
      const div = document.createElement('div');
      div.innerHTML = dparser.documentElement.textContent;;
      return div.textContent || div.innerText || '';
    };
  }

  // Extends the event dispatcher
  ImageHotspots.prototype = Object.create(EventDispatcher.prototype);
  ImageHotspots.prototype.constructor = ImageHotspots;


  /**
   * Attach function called by H5P framework to insert H5P content into
   * page
   *
   * @public
   * @param {H5P.jQuery} $container
   */
  ImageHotspots.prototype.attach = function ($container) {
    var self = this;
    self.$container = $container;

    if (this.options.image === null || this.options.image === undefined) {
      $container.append('<div class="background-image-missing">Missing required background image</div>');
      return;
    }

    // Need to know since ios uses :hover when clicking on an element
    if (/(iPad|iPhone|iPod)/g.test( navigator.userAgent ) === false) {
      $container.addClass('not-an-ios-device');
    }

    $container.addClass('h5p-image-hotspots');

    this.$hotspotContainer = $('<div/>', {
      'class': 'h5p-image-hotspots-container'
    });

    if (this.options.image && this.options.image.path) {
      this.$image = $('<img/>', {
        'class': 'h5p-image-hotspots-background',
        src: H5P.getPath(this.options.image.path, this.id)
      }).appendTo(this.$hotspotContainer);

      // Set alt text of image
      if (this.options.backgroundImageAltText) {
        this.$image.attr('alt', this.massageAttributeOutput(this.options.backgroundImageAltText));
      }
      else {
        // Ignore image if no alternative text for assistive technologies
        this.$image.attr('aria-hidden', true);
      }

      this.$image.on('load', () => this.trigger('resize'));
    }

    var isSmallDevice = function () {
      return self.isSmallDevice;
    };

    // Add hotspots
    var numHotspots = this.options.hotspots.length;
    this.hotspots = [];

    this.options.hotspots.sort(function (a, b) {
      // Sanity checks, move data to the back if invalid
      var firstIsValid = a.position && a.position.x && a.position.y;
      var secondIsValid = b.position && b.position.x && b.position.y;
      if (!firstIsValid) {
        return 1;
      }

      if (!secondIsValid) {
        return -1;
      }

      // Order top-to-bottom, left-to-right
      if (a.position.y !== b.position.y) {
        return a.position.y < b.position.y ? -1 : 1;
      }
      else {
        // a and b y position is equal, sort on x
        return a.position.x < b.position.x ? -1 : 1;
      }
    });

    for (var i=0; i<numHotspots; i++) {
      try {
        var hotspot = new ImageHotspots.Hotspot(this.options.hotspots[i], this.options, this.id, isSmallDevice, self);
        hotspot.appendTo(this.$hotspotContainer);
        var hotspotTitle = this.options.hotspots[i].header ? this.options.hotspots[i].header
          : this.options.hotspotNumberLabel.replace('#num', (i + 1).toString());
        hotspot.setTitle(hotspotTitle);
        this.hotspots.push(hotspot);
      }
      catch (e) {
        H5P.error(e);
      }
    }
    this.$hotspotContainer.appendTo($container);

    this.on('resize', self.resize, self);

    this.on('enterFullScreen', function () {
      self.fullscreenButton.tabIndex = -1;
      // Resize image when entering fullscreen.
      setTimeout(function () {
        self.trigger('resize');

        // Trap focus
        self.toggleTrapFocus(true);
      });
    });

    this.on('exitFullScreen', function () {
      self.fullscreenButton.tabIndex = 0;
      // Do not rely on that isFullscreen has been updated
      self.trigger('resize', {forceImageHeight: true});
      self.toggleTrapFocus(false);
    });

    self.resize();

    // resize when content becomes visible
    const observer = new IntersectionObserver((entries, observer) => {
      for (let entry of entries) {
        if (entry.intersectionRatio > 0) {
          this.trigger('resize');
          return;
        }
      }
    });
    observer.observe(this.$hotspotContainer.get(0));
  };

  ImageHotspots.prototype.setShowingPopup = function (visible) {
    this.$container.toggleClass('showing-popup', visible);
  };

  /**
   * Toggle trap focus between hotspots
   *
   * @param {boolean} enable True to enable, otherwise will be released
   */
  ImageHotspots.prototype.toggleTrapFocus = function (enable) {
    if (this.hotspots.length < 1) {
      return;
    }
    if (enable) {
      // focus first hotspot
      this.hotspots[0].focus();

      // Trap focus
      if (this.hotspots.length > 1) {
        this.hotspots[this.hotspots.length - 1].setTrapFocusTo(this.hotspots[0]);
        this.hotspots[0].setTrapFocusTo(this.hotspots[this.hotspots.length - 1], true);
      }
    }
    else {
      // Untrap focus
      this.hotspots[this.hotspots.length - 1].releaseTrapFocus();
      this.hotspots[0].releaseTrapFocus();
    }
  };

  /**
   * Handle resizing
   * @private
   * @param {Event} [e]
   * @param {boolean} [e.forceImageHeight]
   * @param {boolean} [e.decreaseSize]
   */
  ImageHotspots.prototype.resize = function (e) {
    if (this.options.image === null) {
      return;
    }

    var self = this;
    self.fullscreenButton = document.querySelector('.h5p-enable-fullscreen');
    var containerWidth = self.$container.width();
    var containerHeight = self.$container.height();
    var width = containerWidth;
    var height = Math.floor((width/self.options.image.width) * self.options.image.height);
    var forceImageHeight = e && e.data && e.data.forceImageHeight;

    // Check if decreasing iframe size
    var decreaseSize = e && e.data && e.data.decreaseSize;
    if (!decreaseSize) {
      self.$container.css('width', '');
    }

    // If fullscreen & standalone
    if (this.isRoot() && H5P.isFullscreen) {
      // If fullscreen, we have both a max width and max height.
      if (!forceImageHeight && height > containerHeight) {
        height = containerHeight;
        width = Math.floor((height/self.options.image.height) * self.options.image.width);
      }

      // Check if we need to apply semi full screen fix.
      if (self.$container.is('.h5p-semi-fullscreen')) {

        // Reset semi fullscreen width
        self.$container.css('width', '');

        // Decrease iframe size
        if (!decreaseSize) {
          self.$hotspotContainer.css('width', '10px');
          self.$image.css('width', '10px');

          // Trigger changes
          setTimeout(function () {
            self.trigger('resize', {decreaseSize: true});
          }, 200);
        }

        // Set width equal to iframe parent width, since iframe content has not been updated yet.
        var $iframe = $(window.frameElement);
        if ($iframe) {
          var $iframeParent = $iframe.parent();
          width = $iframeParent.width();
          self.$container.css('width', width + 'px');
        }
      }
    }

    self.$image.css({
      width: width + 'px',
      height: height + 'px'
    });

    self.$hotspotContainer.css({
      width: width + 'px',
      height: height + 'px',
      fontSize: `clamp(${DEFAULT_FONT_SIZE}px, 1.2em, ${DEFAULT_FONT_SIZE*2}px)`,
    });

    self.isSmallDevice = (containerWidth / parseFloat($("body").css("font-size")) < 40);
  };

  ImageHotspots.prototype.pause = function() {
    this.hotspots.forEach(function(hotspot) {
      if (hotspot.pause) {
        hotspot.pause();
      }
    });
  };

  return ImageHotspots;
})(H5P.jQuery, H5P.EventDispatcher);
;/**
 * Defines the ImageHotspots.Hotspot class
 */
(function ($, ImageHotspots) {

  /**
   * Creates a new Hotspot
   *
   * @class
   * @namespace H5P.ImageHotspots
   * @param  {Object} config
   * @param  {Object} options
   * @param  {number} id
   * @param  {boolean} isSmallDeviceCB
   * @param  {H5P.ImageHotspots} parent
   */
  ImageHotspots.Hotspot = function (config, options, id, isSmallDeviceCB, parent) {
    var self = this;
    this.config = config;
    this.visible = false;
    this.id = id;
    this.isSmallDeviceCB = isSmallDeviceCB;
    this.options = options;
    this.parent = parent;

    // A utility variable to check if a Predefined icon or an uploaded image should be used.
    var iconImageExists = (options.iconImage !== undefined && options.iconType === 'image');

    if (this.config.content === undefined  || this.config.content.length === 0) {
      throw new Error('Missing content configuration for hotspot. Please fix in editor.');
    }

    // Check if there is an iconImage that should be used instead of fontawesome icons to determine the html element.
    this.$element = $(iconImageExists ? '<img/>' : '<button/>', {
      'class': 'h5p-image-hotspot ' +
        (!iconImageExists ? 'h5p-image-hotspot-' + options.icon : '') +
        (config.position.legacyPositioning ? ' legacy-positioning' : ''),
      'role': 'button',
      'tabindex': 0,
      'aria-haspopup': true,
      src: iconImageExists ? H5P.getPath(options.iconImage.path, this.id) : undefined,
      click: function () {
        // prevents duplicates while loading
        if (self.loadingPopup) {
          return false;
        }

        if (self.visible) {
          self.hidePopup();
        }
        else {
          self.showPopup(true);
        }
        return false;
      },
      keydown: function (e) {
        if (e.which === 32 || e.which === 13) {
          // Prevent duplicates while loading
          if (self.loadingPopup) {
            return false;
          }

          if (self.visible) {
            self.hidePopup();
          }
          else {
            self.showPopup(true);
          }
          e.stopPropagation();
          return false;
        }
      }
    });

    this.$element.css({
      top: this.config.position.y + '%',
      left: this.config.position.x + '%',
      color: options.color,
      backgroundColor: options.backgroundColor ? options.backgroundColor : ''
    });

    parent.on('resize', function () {
      if (self.popup) {

        self.actionInstances.forEach(function (actionInstance) {
          if (actionInstance.trigger !== undefined) {

            // The reason for this timeout is fullscreen on chrome on android
            setTimeout(function () {
              actionInstance.trigger('resize');
            }, 1);
          }
        });
      }
    });
  };

  /**
   * Append the hotspot to a container
   * @public
   * @param {H5P.jQuery} $container
   */
  ImageHotspots.Hotspot.prototype.appendTo = function ($container) {
    this.$container = $container;
    this.$element.appendTo($container);
  };

  /**
   * Display the popup
   * @param {boolean} [focusPopup] Focuses popup for keyboard accessibility
   */
  ImageHotspots.Hotspot.prototype.showPopup = function (focusPopup) {
    var self = this;

    // Create popup content:
    var $popupBody = $('<div/>', {'class': 'h5p-image-hotspot-popup-body'});
    self.loadingPopup = true;

    this.parent.setShowingPopup(true);

    this.actionInstances = [];
    var waitForLoaded = [];
    this.config.content.forEach(function (action) {
      var $popupFraction = $('<div>', {
        'class': 'h5p-image-hotspot-popup-body-fraction',
        appendTo: $popupBody
      });

      const machineName = action.library?.split(' ')[0];

      // Enforce autoplay for transparent audios
      if (machineName === 'H5P.Audio') {
        if (action.params.playerMode === 'transparent') {
          action.params.autoplay = true;
        }
      }
      else if (machineName === 'H5P.Text' || machineName === 'H5P.Image') {
        // @see https://www.w3.org/WAI/ARIA/apg/patterns/dialogmodal/
        $popupFraction[0].setAttribute('tabindex', '-1');
      }

      var actionInstance = H5P.newRunnable(action, self.id);

      self.actionInstances.push(actionInstance);
      if (machineName === 'H5P.Image' || machineName === 'H5P.Video') {
        waitForLoaded.push(actionInstance);
      }
      actionInstance.attach($popupFraction);

      if (machineName === 'H5P.Audio') {
        if (actionInstance.audio && actionInstance.params.playerMode === 'full' && !!window.chrome) {
          // Workaround for missing https://github.com/h5p/h5p-audio/pull/48
          actionInstance.audio.style.height = '54px';
        }
        else if (actionInstance.$audioButton && actionInstance.params.playerMode === 'transparent') {
          // Completely hide transparent button
          actionInstance.$audioButton.css({ height: 0, padding: 0 });
        }
      }

      // Stop screenreader to read fullscreen button
      if (self.parent.fullscreenButton) {
        self.parent.fullscreenButton.tabIndex = -1;
      }
    });

    var readyToPopup = function () {
      // Disable all hotspots
      self.toggleHotspotsTabindex(true);
      self.visible = true;
      self.popup.show(focusPopup);
      self.$element.addClass('active');
      self.actionInstances.forEach(function (actionInstance) {
        actionInstance.trigger('resize');
      });
    };

    // Popup style
    var popupClass = 'h5p-video';
    if (!waitForLoaded.length) {
      popupClass = 'h5p-text';
    }
    else if (self.actionInstances.length === 1 && self.actionInstances[0].libraryInfo.machineName === 'H5P.Image') {
      popupClass = 'h5p-image';
    }

    // Create Image hot-spots popup
    self.popup = new ImageHotspots.Popup(
      self.$container, $popupBody,
      self.config.position.x,
      self.config.position.y,
      self.$element.outerWidth(),
      self.config.header,
      popupClass,
      self.config.alwaysFullscreen || self.isSmallDeviceCB(),
      self.options,
      self.config.position.legacyPositioning
    );

    self.parent.on('resize', function () {
      if (self.visible) {
        self.popup.resize();
      }
    });

    // Release
    self.popup.on('closed', function (e) {
      self.hidePopup();

      // Refocus hotspot
      if (e.data && e.data.refocus) {
        self.focus();
      }
    });

    // Finished loading popup
    self.popup.on('finishedLoading', function () {
      self.loadingPopup = false;
    });

    if (waitForLoaded.length) {
      var loaded = 0;

      // Wait for libraries to load before showing popup
      waitForLoaded.forEach(function (unloaded) {

        // Signal that library has finished loading
        var fire = function () {
          clearTimeout(timeout);
          unloaded.off('loaded', fire);
          loaded += 1;

          if (loaded >= waitForLoaded.length) {
            setTimeout(function () {
              readyToPopup();
            }, 100);
          }
        };

        // Add timer fallback if loaded event is not triggered
        var timeout = setTimeout(fire, 1000);
        unloaded.on('loaded', fire, {unloaded: unloaded, timeout: timeout});
        unloaded.trigger('resize');
      });

    }
    else {
      setTimeout(function () {
        readyToPopup();
      }, 100);
    }

    // We don't get click events on body for iOS-devices
    $('body').children().on('click.h5p-image-hotspot-popup', function (event) {
      var $target = $(event.target);
      if (self.visible && !$target.hasClass('h5p-enable-fullscreen') && !$target.hasClass('h5p-disable-fullscreen')
        && event.target.id === 'h5p-image-hotspots-overlay') {
        self.hidePopup();
      }
    });
  };

  /**
   * Toggle whether hotspots has tabindex
   * @param {boolean} [disable] Disable tabindex if true
   */
  ImageHotspots.Hotspot.prototype.toggleHotspotsTabindex = function (disable) {
    this.$container.find('.h5p-image-hotspot')
      .attr('tabindex', disable ? '-1' : '0')
      .attr('aria-hidden', disable ? true : '');
  };

  /**
   * Hide popup
   * @public
   */
  ImageHotspots.Hotspot.prototype.hidePopup = function () {
    if (this.popup) {
      // We don't get click events on body for iOS-devices
      $('body').children().off('click.h5p-image-hotspot-popup');

      this.pause();
      this.popup.hide();
      this.$element.removeClass('active');
      this.visible = false;
      this.popup = undefined;
      this.toggleHotspotsTabindex();
    }

    this.parent.setShowingPopup(false);

    // Make fullscreen button focusable again
    if (this.parent.fullscreenButton) {
      this.parent.fullscreenButton.tabIndex = 0;
    }
  };

  /**
   * Focus hotspot
   */
  ImageHotspots.Hotspot.prototype.focus = function () {
    this.$element.focus();
  };

  /**
   * Set up trapping of focus
   *
   * @param {ImageHotspots.Hotspot} hotspot Hotspot that focus should be trapped to
   * @param {boolean} [trapReverseTab] Traps when tabbing backwards
   */
  ImageHotspots.Hotspot.prototype.setTrapFocusTo = function (hotspot, trapReverseTab) {
    this.$element.on('keydown.trapfocus', function (e) {
      var keyCombination = e.which === 9 && (trapReverseTab ? e.shiftKey : !e.shiftKey);
      if (keyCombination) {
        hotspot.focus();
        e.stopPropagation();
        return false;
      }
    });
  };

  /**
   * Release trap focus from hotspot
   */
  ImageHotspots.Hotspot.prototype.releaseTrapFocus = function () {
    this.$element.off('keydown.trapfocus');
  };

  /**
   * Set title of hotspot element
   * @param {string} title Title to set for hotspot element
   */
  ImageHotspots.Hotspot.prototype.setTitle = function (title) {
    title = this.htmlDecode(title);

    const index = this.$element.parent().find('button').index(this.$element);
    const content = this.options.hotspots[index].content;
    let hasAudioVideo = false;
    for (let item of content) {
      if (item.library.includes('Video') || item.library.includes('Audio')) {
        hasAudioVideo = true;
        break;
      }
    }

    this.$element.attr('title', title);
    this.$element.attr('aria-label', hasAudioVideo ? `${title}. ${this.options.containsAudioVideoLabel}` : title);
  };

  ImageHotspots.Hotspot.prototype.pause = function () {
    if (this.actionInstances) {
      this.actionInstances.forEach(function(actionInstance) {
        if (actionInstance.audio &&
            (actionInstance.audio.pause instanceof Function ||
            typeof actionInstance.audio.pause === 'function')) {
          actionInstance.audio.pause();
        }
      });
    };
  };

  /**
   * Decode special characters in the provided string
   * @param {string} input String to decode characters
   * @returns {string} Decoded string
   */
  ImageHotspots.Hotspot.prototype.htmlDecode = function (input) {
    const dparser = new DOMParser().parseFromString(input, 'text/html');
    return dparser.documentElement.textContent;
  };

})(H5P.jQuery, H5P.ImageHotspots);
;/**
 * Defines the ImageHotspots.Popup class
 */
(function ($, ImageHotspots, EventDispatcher) {

  /**
   * Creates new Popup instance
   *
   * @class
   * @namespace H5P.ImageHotspots
   * @param {H5P.jQuery} $container
   * @param {H5P.jQuery} $content
   * @param {number} x
   * @param {number} y
   * @param {number} hotspotWidth
   * @param {string} header
   * @param {string} className
   * @param {boolean} fullscreen
   * @param {Object} options
   *
   */
  ImageHotspots.Popup = function ($container, $content, x, y, hotspotWidth, header, className, fullscreen, options, legacy) {
    EventDispatcher.call(this);

    var self = this;
    this.$container = $container;
    var width = this.$container.width();
    var height = this.$container.height();

    var pointerWidthInPercent = 1.55;
    hotspotWidth = (hotspotWidth/width)*100;

    var popupLeft = 0;
    var popupWidth = 0;
    var toTheLeft = false;

    if (fullscreen) {
      popupWidth = 100;
      className += ' fullscreen-popup';
    }
    else {
      toTheLeft = (x > 50);
      popupLeft = (toTheLeft ? 0 : (x + hotspotWidth + pointerWidthInPercent));
      popupWidth = (toTheLeft ?  (x - hotspotWidth - pointerWidthInPercent) : 100 - popupLeft);
    }

    this.$popupBackground = $('<div/>', {
      'class': 'h5p-image-hotspots-overlay',
      'id': 'h5p-image-hotspots-overlay'
    });

    const headerID = `h5p-image-hotspot-popup-header-${H5P.createUUID()}`;
    this.$popup = $('<div/>', {
      'class': 'h5p-image-hotspot-popup ' + className,
      'tabindex': '0',
      'role': 'dialog',
      'aria-modal': 'true',
      'aria-labelledby': header ? headerID : undefined
    }).css({
      left: (toTheLeft ? '' : '-') + '100%',
      width: popupWidth + '%'
    }).appendTo(this.$popupBackground);

    this.$popupContent = $('<div/>', {
      'class': 'h5p-image-hotspot-popup-content',
      on: {
        scroll: function () {
          $(this).addClass('has-scrolled');
        }
      }
    });

    if (header) {
      this.$popupHeader = $('<div/>', {
        'class': 'h5p-image-hotspot-popup-header',
        'id': headerID,
        html: header,
        'aria-hidden': 'true'
      });
      this.$popupContent.append(this.$popupHeader);
      this.$popup.addClass('h5p-image-hotspot-has-header');
    }
    $content.appendTo(this.$popupContent);
    this.$popupContent.appendTo(this.$popup);

    // Add close button
    this.$closeButton = $('<button>', {
      'class': 'h5p-image-hotspot-close-popup-button',
      'aria-label': options.closeButtonLabel,
      'title': options.closeButtonLabel
    }).click(function () {
      self.trigger('closed');
    }).keydown(function (e) {
      if (e.which === 32 || e.which === 13) {
        self.trigger('closed', {refocus: true});
        return false;
      }
    }).appendTo(this.$popup);

    if (!header) {
      self.$popupContent.addClass('h5p-image-hotspot-popup-content-no-header');
    }

    // Need to add pointer to parent container, since this should be partly covered
    // by the popup
    if (!fullscreen) {
      this.$pointer = $('<div/>', {
        'class': 'h5p-image-hotspot-popup-pointer to-the-' + (toTheLeft ? 'left' : 'right') + (legacy ? ' legacy-positioning' : ''),
      }).css({
        top: y + '%',
      }).appendTo(this.$popupBackground);
    }

    this.$popupBackground.appendTo(this.$container);

    self.resize = function () {
      if (fullscreen) {
        return;
      }

      // Reset
      self.$popup.css({
        maxHeight: '',
        height: ''
      });
      self.$popupContent.css({
        height: ''
      });

      height = this.$container.height();
      var contentHeight = self.$popupContent.outerHeight();
      var parentHeight = self.$popup.outerHeight();

      var fitsWithin = contentHeight < height;

      if (fitsWithin) {
        // don't need all height:
        self.$popup.css({
          maxHeight: 'auto',
          height: 'auto'
        });

        // find new top:
        var top = Math.max(0, ((y / 100) * parentHeight) - (contentHeight / 2));

        // Check if we need to move it a bit up (in case it overflows)
        if (top + contentHeight > parentHeight) {
          top = parentHeight - contentHeight;
        }

        // From pixels to percent:
        self.$popup.css({
          top: (top / parentHeight) * 100 + '%'
        });
      }

      self.$popupContent.css({
        height: fitsWithin ? '' : '100%',
        overflow: fitsWithin ? '' : 'auto'
      }).toggleClass('overflowing', !fitsWithin);

      self.$popup.toggleClass('popup-overflowing', !fitsWithin);
    };

    /**
     * Show popup
     */
    self.show = function () {

      if (!fullscreen) {

        self.resize();

        // Need to move pointer:
        self.$pointer.css({
          left: toTheLeft ? (
            popupWidth + '%'
          ) : (
            popupLeft + '%'
          )
        });
      }

      self.$popup.css({
        left: popupLeft + '%'
      });
      self.$popupBackground.addClass('visible');

      H5P.Transition.onTransitionEnd(self.$popup, function () {
        self.$popup.focus();

        // Show pointer;
        if (self.$pointer) {
          self.$pointer.addClass('visible');
        }
        self.trigger('finishedLoading');
      }, 300);
    };

    self.hide = function () {
      self.$popupBackground.remove();
    };
  };

  // Extends the event dispatcher
  ImageHotspots.Popup.prototype = Object.create(EventDispatcher.prototype);
  ImageHotspots.Popup.prototype.constructor = ImageHotspots.Popup;

})(H5P.jQuery, H5P.ImageHotspots, H5P.EventDispatcher);
;var H5P = H5P || {};

/**
 * Class responsible for creating a help text dialog
 */
H5P.JoubelHelpTextDialog = (function ($) {

  var numInstances = 0;
  /**
   * Display a pop-up containing a message.
   *
   * @param {H5P.jQuery}  $container  The container which message dialog will be appended to
   * @param {string}      message     The message
   * @param {string}      closeButtonTitle The title for the close button
   * @return {H5P.jQuery}
   */
  function JoubelHelpTextDialog(header, message, closeButtonTitle) {
    H5P.EventDispatcher.call(this);

    var self = this;

    numInstances++;
    var headerId = 'joubel-help-text-header-' + numInstances;
    var helpTextId = 'joubel-help-text-body-' + numInstances;

    var $helpTextDialogBox = $('<div>', {
      'class': 'joubel-help-text-dialog-box',
      'role': 'dialog',
      'aria-labelledby': headerId,
      'aria-describedby': helpTextId
    });

    $('<div>', {
      'class': 'joubel-help-text-dialog-background'
    }).appendTo($helpTextDialogBox);

    var $helpTextDialogContainer = $('<div>', {
      'class': 'joubel-help-text-dialog-container'
    }).appendTo($helpTextDialogBox);

    $('<div>', {
      'class': 'joubel-help-text-header',
      'id': headerId,
      'role': 'header',
      'html': header
    }).appendTo($helpTextDialogContainer);

    $('<div>', {
      'class': 'joubel-help-text-body',
      'id': helpTextId,
      'html': message,
      'role': 'document',
      'tabindex': 0
    }).appendTo($helpTextDialogContainer);

    var handleClose = function () {
      $helpTextDialogBox.remove();
      self.trigger('closed');
    };

    var $closeButton = $('<div>', {
      'class': 'joubel-help-text-remove',
      'role': 'button',
      'title': closeButtonTitle,
      'tabindex': 1,
      'click': handleClose,
      'keydown': function (event) {
        // 32 - space, 13 - enter
        if ([32, 13].indexOf(event.which) !== -1) {
          event.preventDefault();
          handleClose();
        }
      }
    }).appendTo($helpTextDialogContainer);

    /**
     * Get the DOM element
     * @return {HTMLElement}
     */
    self.getElement = function () {
      return $helpTextDialogBox;
    };

    self.focus = function () {
      $closeButton.focus();
    };
  }

  JoubelHelpTextDialog.prototype = Object.create(H5P.EventDispatcher.prototype);
  JoubelHelpTextDialog.prototype.constructor = JoubelHelpTextDialog;

  return JoubelHelpTextDialog;
}(H5P.jQuery));
;var H5P = H5P || {};

/**
 * Class responsible for creating auto-disappearing dialogs
 */
H5P.JoubelMessageDialog = (function ($) {

  /**
   * Display a pop-up containing a message.
   *
   * @param {H5P.jQuery} $container The container which message dialog will be appended to
   * @param {string} message The message
   * @return {H5P.jQuery}
   */
  function JoubelMessageDialog ($container, message) {
    var timeout;

    var removeDialog = function () {
      $warning.remove();
      clearTimeout(timeout);
      $container.off('click.messageDialog');
    };

    // Create warning popup:
    var $warning = $('<div/>', {
      'class': 'joubel-message-dialog',
      text: message
    }).appendTo($container);

    // Remove after 3 seconds or if user clicks anywhere in $container:
    timeout = setTimeout(removeDialog, 3000);
    $container.on('click.messageDialog', removeDialog);

    return $warning;
  }

  return JoubelMessageDialog;
})(H5P.jQuery);
;var H5P = H5P || {};

/**
 * Class responsible for creating a circular progress bar
 */

H5P.JoubelProgressCircle = (function ($) {

  /**
   * Constructor for the Progress Circle
   *
   * @param {Number} number The amount of progress to display
   * @param {string} progressColor Color for the progress meter
   * @param {string} backgroundColor Color behind the progress meter
   */
  function ProgressCircle(number, progressColor, fillColor, backgroundColor) {
    progressColor = progressColor || '#1a73d9';
    fillColor = fillColor || '#f0f0f0';
    backgroundColor = backgroundColor || '#ffffff';
    var progressColorRGB = this.hexToRgb(progressColor);

    //Verify number
    try {
      number = Number(number);
      if (number === '') {
        throw 'is empty';
      }
      if (isNaN(number)) {
        throw 'is not a number';
      }
    } catch (e) {
      number = 'err';
    }

    //Draw circle
    if (number > 100) {
      number = 100;
    }

    // We can not use rgba, since they will stack on top of each other.
    // Instead we create the equivalent of the rgba color
    // and applies this to the activeborder and background color.
    var progressColorString = 'rgb(' + parseInt(progressColorRGB.r, 10) +
      ',' + parseInt(progressColorRGB.g, 10) +
      ',' + parseInt(progressColorRGB.b, 10) + ')';

    // Circle wrapper
    var $wrapper = $('<div/>', {
      'class': "joubel-progress-circle-wrapper"
    });

    //Active border indicates progress
    var $activeBorder = $('<div/>', {
      'class': "joubel-progress-circle-active-border"
    }).appendTo($wrapper);

    //Background circle
    var $backgroundCircle = $('<div/>', {
      'class': "joubel-progress-circle-circle"
    }).appendTo($activeBorder);

    //Progress text/number
    $('<span/>', {
      'text': number + '%',
      'class': "joubel-progress-circle-percentage"
    }).appendTo($backgroundCircle);

    var deg = number * 3.6;
    if (deg <= 180) {
      $activeBorder.css('background-image',
        'linear-gradient(' + (90 + deg) + 'deg, transparent 50%, ' + fillColor + ' 50%),' +
        'linear-gradient(90deg, ' + fillColor + ' 50%, transparent 50%)')
        .css('border', '2px solid' + backgroundColor)
        .css('background-color', progressColorString);
    } else {
      $activeBorder.css('background-image',
        'linear-gradient(' + (deg - 90) + 'deg, transparent 50%, ' + progressColorString + ' 50%),' +
        'linear-gradient(90deg, ' + fillColor + ' 50%, transparent 50%)')
        .css('border', '2px solid' + backgroundColor)
        .css('background-color', progressColorString);
    }

    this.$activeBorder = $activeBorder;
    this.$backgroundCircle = $backgroundCircle;
    this.$wrapper = $wrapper;

    this.initResizeFunctionality();

    return $wrapper;
  }

  /**
   * Initializes resize functionality for the progress circle
   */
  ProgressCircle.prototype.initResizeFunctionality = function () {
    var self = this;

    $(window).resize(function () {
      // Queue resize
      setTimeout(function () {
        self.resize();
      });
    });

    // First resize
    setTimeout(function () {
      self.resize();
    }, 0);
  };

  /**
   * Resize function makes progress circle grow or shrink relative to parent container
   */
  ProgressCircle.prototype.resize = function () {
    var $parent = this.$wrapper.parent();

    if ($parent !== undefined && $parent) {

      // Measurements
      var fontSize = parseInt($parent.css('font-size'), 10);

      // Static sizes
      var fontSizeMultiplum = 3.75;
      var progressCircleWidthPx = parseInt((fontSize / 4.5), 10) % 2 === 0 ? parseInt((fontSize / 4.5), 10) + 4 : parseInt((fontSize / 4.5), 10) + 5;
      var progressCircleOffset = progressCircleWidthPx / 2;

      var width = fontSize * fontSizeMultiplum;
      var height = fontSize * fontSizeMultiplum;
      this.$activeBorder.css({
        'width': width,
        'height': height
      });

      this.$backgroundCircle.css({
        'width': width - progressCircleWidthPx,
        'height': height - progressCircleWidthPx,
        'top': progressCircleOffset,
        'left': progressCircleOffset
      });
    }
  };

  /**
   * Hex to RGB conversion
   * @param hex
   * @returns {{r: Number, g: Number, b: Number}}
   */
  ProgressCircle.prototype.hexToRgb = function (hex) {
    var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
    return result ? {
      r: parseInt(result[1], 16),
      g: parseInt(result[2], 16),
      b: parseInt(result[3], 16)
    } : null;
  };

  return ProgressCircle;

}(H5P.jQuery));
;var H5P = H5P || {};

H5P.SimpleRoundedButton = (function ($) {

  /**
   * Creates a new tip
   */
  function SimpleRoundedButton(text) {

    var $simpleRoundedButton = $('<div>', {
      'class': 'joubel-simple-rounded-button',
      'title': text,
      'role': 'button',
      'tabindex': '0'
    }).keydown(function (e) {
      // 32 - space, 13 - enter
      if ([32, 13].indexOf(e.which) !== -1) {
        $(this).click();
        e.preventDefault();
      }
    });

    $('<span>', {
      'class': 'joubel-simple-rounded-button-text',
      'html': text
    }).appendTo($simpleRoundedButton);

    return $simpleRoundedButton;
  }

  return SimpleRoundedButton;
}(H5P.jQuery));
;var H5P = H5P || {};

/**
 * Class responsible for creating speech bubbles
 */
H5P.JoubelSpeechBubble = (function ($) {

  var $currentSpeechBubble;
  var $currentContainer;  
  var $tail;
  var $innerTail;
  var removeSpeechBubbleTimeout;
  var currentMaxWidth;

  var DEFAULT_MAX_WIDTH = 400;

  var iDevice = navigator.userAgent.match(/iPod|iPhone|iPad/g) ? true : false;

  /**
   * Creates a new speech bubble
   *
   * @param {H5P.jQuery} $container The speaking object
   * @param {string} text The text to display
   * @param {number} maxWidth The maximum width of the bubble
   * @return {H5P.JoubelSpeechBubble}
   */
  function JoubelSpeechBubble($container, text, maxWidth) {
    maxWidth = maxWidth || DEFAULT_MAX_WIDTH;
    currentMaxWidth = maxWidth;
    $currentContainer = $container;

    this.isCurrent = function ($tip) {
      return $tip.is($currentContainer);
    };

    this.remove = function () {
      remove();
    };

    var fadeOutSpeechBubble = function ($speechBubble) {
      if (!$speechBubble) {
        return;
      }

      // Stop removing bubble
      clearTimeout(removeSpeechBubbleTimeout);

      $speechBubble.removeClass('show');
      setTimeout(function () {
        if ($speechBubble) {
          $speechBubble.remove();
          $speechBubble = undefined;
        }
      }, 500);
    };

    if ($currentSpeechBubble !== undefined) {
      remove();
    }

    var $h5pContainer = getH5PContainer($container);

    // Make sure we fade out old speech bubble
    fadeOutSpeechBubble($currentSpeechBubble);

    // Create bubble
    $tail = $('<div class="joubel-speech-bubble-tail"></div>');
    $innerTail = $('<div class="joubel-speech-bubble-inner-tail"></div>');
    var $innerBubble = $(
      '<div class="joubel-speech-bubble-inner">' +
      '<div class="joubel-speech-bubble-text">' + text + '</div>' +
      '</div>'
    ).prepend($innerTail);

    $currentSpeechBubble = $(
      '<div class="joubel-speech-bubble" aria-live="assertive">'
    ).append([$tail, $innerBubble])
      .appendTo($h5pContainer);

    // Show speech bubble with transition
    setTimeout(function () {
      $currentSpeechBubble.addClass('show');
    }, 0);

    position($currentSpeechBubble, $currentContainer, maxWidth, $tail, $innerTail);

    // Handle click to close
    H5P.$body.on('mousedown.speechBubble', handleOutsideClick);

    // Handle window resizing
    H5P.$window.on('resize', '', handleResize);

    // Handle clicks when inside IV which blocks bubbling.
    $container.parents('.h5p-dialog')
      .on('mousedown.speechBubble', handleOutsideClick);

    if (iDevice) {
      H5P.$body.css('cursor', 'pointer');
    }

    return this;
  }

  // Remove speechbubble if it belongs to a dom element that is about to be hidden
  H5P.externalDispatcher.on('domHidden', function (event) {
    if ($currentSpeechBubble !== undefined && event.data.$dom.find($currentContainer).length !== 0) {
      remove();
    }
  });

  /**
   * Returns the closest h5p container for the given DOM element.
   * 
   * @param {object} $container jquery element
   * @return {object} the h5p container (jquery element)
   */
  function getH5PContainer($container) {
    var $h5pContainer = $container.closest('.h5p-frame');

    // Check closest h5p frame first, then check for container in case there is no frame.
    if (!$h5pContainer.length) {
      $h5pContainer = $container.closest('.h5p-container');
    }

    return $h5pContainer;
  }

  /**
   * Event handler that is called when the window is resized.
   */
  function handleResize() {
    position($currentSpeechBubble, $currentContainer, currentMaxWidth, $tail, $innerTail);
  }

  /**
   * Repositions the speech bubble according to the position of the container.
   * 
   * @param {object} $currentSpeechbubble the speech bubble that should be positioned   
   * @param {object} $container the container to which the speech bubble should point 
   * @param {number} maxWidth the maximum width of the speech bubble
   * @param {object} $tail the tail (the triangle that points to the referenced container)
   * @param {object} $innerTail the inner tail (the triangle that points to the referenced container)
   */
  function position($currentSpeechBubble, $container, maxWidth, $tail, $innerTail) {
    var $h5pContainer = getH5PContainer($container);

    // Calculate offset between the button and the h5p frame
    var offset = getOffsetBetween($h5pContainer, $container);

    var direction = (offset.bottom > offset.top ? 'bottom' : 'top');
    var tipWidth = offset.outerWidth * 0.9; // Var needs to be renamed to make sense
    var bubbleWidth = tipWidth > maxWidth ? maxWidth : tipWidth;

    var bubblePosition = getBubblePosition(bubbleWidth, offset);
    var tailPosition = getTailPosition(bubbleWidth, bubblePosition, offset, $container.width());
    // Need to set font-size, since element is appended to body.
    // Using same font-size as parent. In that way it will grow accordingly
    // when resizing
    var fontSize = 16;//parseFloat($parent.css('font-size'));

    // Set width and position of speech bubble
    $currentSpeechBubble.css(bubbleCSS(
      direction,
      bubbleWidth,
      bubblePosition,
      fontSize
    ));

    var preparedTailCSS = tailCSS(direction, tailPosition);
    $tail.css(preparedTailCSS);
    $innerTail.css(preparedTailCSS);
  }

  /**
   * Static function for removing the speechbubble
   */
  var remove = function () {
    H5P.$body.off('mousedown.speechBubble');
    H5P.$window.off('resize', '', handleResize);
    $currentContainer.parents('.h5p-dialog').off('mousedown.speechBubble');
    if (iDevice) {
      H5P.$body.css('cursor', '');
    }
    if ($currentSpeechBubble !== undefined) {
      // Apply transition, then remove speech bubble
      $currentSpeechBubble.removeClass('show');

      // Make sure we remove any old timeout before reassignment
      clearTimeout(removeSpeechBubbleTimeout);
      removeSpeechBubbleTimeout = setTimeout(function () {
        $currentSpeechBubble.remove();
        $currentSpeechBubble = undefined;
      }, 500);
    }
    // Don't return false here. If the user e.g. clicks a button when the bubble is visible,
    // we want the bubble to disapear AND the button to receive the event
  };

  /**
   * Remove the speech bubble and container reference
   */
  function handleOutsideClick(event) {
    if (event.target === $currentContainer[0]) {
      return; // Button clicks are not outside clicks
    }

    remove();
    // There is no current container when a container isn't clicked
    $currentContainer = undefined;
  }

  /**
   * Calculate position for speech bubble
   *
   * @param {number} bubbleWidth The width of the speech bubble
   * @param {object} offset
   * @return {object} Return position for the speech bubble
   */
  function getBubblePosition(bubbleWidth, offset) {
    var bubblePosition = {};

    var tailOffset = 9;
    var widthOffset = bubbleWidth / 2;

    // Calculate top position
    bubblePosition.top = offset.top + offset.innerHeight;

    // Calculate bottom position
    bubblePosition.bottom = offset.bottom + offset.innerHeight + tailOffset;

    // Calculate left position
    if (offset.left < widthOffset) {
      bubblePosition.left = 3;
    }
    else if ((offset.left + widthOffset) > offset.outerWidth) {
      bubblePosition.left = offset.outerWidth - bubbleWidth - 3;
    }
    else {
      bubblePosition.left = offset.left - widthOffset + (offset.innerWidth / 2);
    }

    return bubblePosition;
  }

  /**
   * Calculate position for speech bubble tail
   *
   * @param {number} bubbleWidth The width of the speech bubble
   * @param {object} bubblePosition Speech bubble position
   * @param {object} offset
   * @param {number} iconWidth The width of the tip icon
   * @return {object} Return position for the tail
   */
  function getTailPosition(bubbleWidth, bubblePosition, offset, iconWidth) {
    var tailPosition = {};
    // Magic numbers. Tuned by hand so that the tail fits visually within
    // the bounds of the speech bubble.
    var leftBoundary = 9;
    var rightBoundary = bubbleWidth - 20;

    tailPosition.left = offset.left - bubblePosition.left + (iconWidth / 2) - 6;
    if (tailPosition.left < leftBoundary) {
      tailPosition.left = leftBoundary;
    }
    if (tailPosition.left > rightBoundary) {
      tailPosition.left = rightBoundary;
    }

    tailPosition.top = -6;
    tailPosition.bottom = -6;

    return tailPosition;
  }

  /**
   * Return bubble CSS for the desired growth direction
   *
   * @param {string} direction The direction the speech bubble will grow
   * @param {number} width The width of the speech bubble
   * @param {object} position Speech bubble position
   * @param {number} fontSize The size of the bubbles font
   * @return {object} Return CSS
   */
  function bubbleCSS(direction, width, position, fontSize) {
    if (direction === 'top') {
      return {
        width: width + 'px',
        bottom: position.bottom + 'px',
        left: position.left + 'px',
        fontSize: fontSize + 'px',
        top: ''
      };
    }
    else {
      return {
        width: width + 'px',
        top: position.top + 'px',
        left: position.left + 'px',
        fontSize: fontSize + 'px',
        bottom: ''
      };
    }
  }

  /**
   * Return tail CSS for the desired growth direction
   *
   * @param {string} direction The direction the speech bubble will grow
   * @param {object} position Tail position
   * @return {object} Return CSS
   */
  function tailCSS(direction, position) {
    if (direction === 'top') {
      return {
        bottom: position.bottom + 'px',
        left: position.left + 'px',
        top: ''
      };
    }
    else {
      return {
        top: position.top + 'px',
        left: position.left + 'px',
        bottom: ''
      };
    }
  }

  /**
   * Calculates the offset between an element inside a container and the
   * container. Only works if all the edges of the inner element are inside the
   * outer element.
   * Width/height of the elements is included as a convenience.
   *
   * @param {H5P.jQuery} $outer
   * @param {H5P.jQuery} $inner
   * @return {object} Position offset
   */
  function getOffsetBetween($outer, $inner) {
    var outer = $outer[0].getBoundingClientRect();
    var inner = $inner[0].getBoundingClientRect();

    return {
      top: inner.top - outer.top,
      right: outer.right - inner.right,
      bottom: outer.bottom - inner.bottom,
      left: inner.left - outer.left,
      innerWidth: inner.width,
      innerHeight: inner.height,
      outerWidth: outer.width,
      outerHeight: outer.height
    };
  }

  return JoubelSpeechBubble;
})(H5P.jQuery);
;var H5P = H5P || {};

H5P.JoubelThrobber = (function ($) {

  /**
   * Creates a new tip
   */
  function JoubelThrobber() {

    // h5p-throbber css is described in core
    var $throbber = $('<div/>', {
      'class': 'h5p-throbber'
    });

    return $throbber;
  }

  return JoubelThrobber;
}(H5P.jQuery));
;H5P.JoubelTip = (function ($) {
  var $conv = $('<div/>');

  /**
   * Creates a new tip element.
   *
   * NOTE that this may look like a class but it doesn't behave like one.
   * It returns a jQuery object.
   *
   * @param {string} tipHtml The text to display in the popup
   * @param {Object} [behaviour] Options
   * @param {string} [behaviour.tipLabel] Set to use a custom label for the tip button (you want this for good A11Y)
   * @param {boolean} [behaviour.helpIcon] Set to 'true' to Add help-icon classname to Tip button (changes the icon)
   * @param {boolean} [behaviour.showSpeechBubble] Set to 'false' to disable functionality (you may this in the editor)
   * @param {boolean} [behaviour.tabcontrol] Set to 'true' if you plan on controlling the tabindex in the parent (tabindex="-1")
   * @return {H5P.jQuery|undefined} Tip button jQuery element or 'undefined' if invalid tip
   */
  function JoubelTip(tipHtml, behaviour) {

    // Keep track of the popup that appears when you click the Tip button
    var speechBubble;

    // Parse tip html to determine text
    var tipText = $conv.html(tipHtml).text().trim();
    if (tipText === '') {
      return; // The tip has no textual content, i.e. it's invalid.
    }

    // Set default behaviour
    behaviour = $.extend({
      tipLabel: tipText,
      helpIcon: false,
      showSpeechBubble: true,
      tabcontrol: false
    }, behaviour);

    // Create Tip button
    var $tipButton = $('<div/>', {
      class: 'joubel-tip-container' + (behaviour.showSpeechBubble ? '' : ' be-quiet'),
      'aria-label': behaviour.tipLabel,
      'aria-expanded': false,
      role: 'button',
      tabindex: (behaviour.tabcontrol ? -1 : 0),
      click: function (event) {
        // Toggle show/hide popup
        toggleSpeechBubble();
        event.preventDefault();
      },
      keydown: function (event) {
        if (event.which === 32 || event.which === 13) { // Space & enter key
          // Toggle show/hide popup
          toggleSpeechBubble();
          event.stopPropagation();
          event.preventDefault();
        }
        else { // Any other key
          // Toggle hide popup
          toggleSpeechBubble(false);
        }
      },
      // Add markup to render icon
      html: '<span class="joubel-icon-tip-normal ' + (behaviour.helpIcon ? ' help-icon': '') + '">' +
              '<span class="h5p-icon-shadow"></span>' +
              '<span class="h5p-icon-speech-bubble"></span>' +
              '<span class="h5p-icon-info"></span>' +
            '</span>'
      // IMPORTANT: All of the markup elements must have 'pointer-events: none;'
    });

    const $tipAnnouncer = $('<div>', {
      'class': 'hidden-but-read',
      'aria-live': 'polite',
      appendTo: $tipButton,
    });

    /**
     * Tip button interaction handler.
     * Toggle show or hide the speech bubble popup when interacting with the
     * Tip button.
     *
     * @private
     * @param {boolean} [force] 'true' shows and 'false' hides.
     */
    var toggleSpeechBubble = function (force) {
      if (speechBubble !== undefined && speechBubble.isCurrent($tipButton)) {
        // Hide current popup
        speechBubble.remove();
        speechBubble = undefined;

        $tipButton.attr('aria-expanded', false);
        $tipAnnouncer.html('');
      }
      else if (force !== false && behaviour.showSpeechBubble) {
        // Create and show new popup
        speechBubble = H5P.JoubelSpeechBubble($tipButton, tipHtml);
        $tipButton.attr('aria-expanded', true);
        $tipAnnouncer.html(tipHtml);
      }
    };

    return $tipButton;
  }

  return JoubelTip;
})(H5P.jQuery);
;var H5P = H5P || {};

H5P.JoubelSlider = (function ($) {

  /**
   * Creates a new Slider
   *
   * @param {object} [params] Additional parameters
   */
  function JoubelSlider(params) {
    H5P.EventDispatcher.call(this);

    this.$slider = $('<div>', $.extend({
      'class': 'h5p-joubel-ui-slider'
    }, params));

    this.$slides = [];
    this.currentIndex = 0;
    this.numSlides = 0;
  }
  JoubelSlider.prototype = Object.create(H5P.EventDispatcher.prototype);
  JoubelSlider.prototype.constructor = JoubelSlider;

  JoubelSlider.prototype.addSlide = function ($content) {
    $content.addClass('h5p-joubel-ui-slide').css({
      'left': (this.numSlides*100) + '%'
    });
    this.$slider.append($content);
    this.$slides.push($content);

    this.numSlides++;

    if(this.numSlides === 1) {
      $content.addClass('current');
    }
  };

  JoubelSlider.prototype.attach = function ($container) {
    $container.append(this.$slider);
  };

  JoubelSlider.prototype.move = function (index) {
    var self = this;

    if(index === 0) {
      self.trigger('first-slide');
    }
    if(index+1 === self.numSlides) {
      self.trigger('last-slide');
    }
    self.trigger('move');

    var $previousSlide = self.$slides[this.currentIndex];
    H5P.Transition.onTransitionEnd(this.$slider, function () {
      $previousSlide.removeClass('current');
      self.trigger('moved');
    });
    this.$slides[index].addClass('current');

    var translateX = 'translateX(' + (-index*100) + '%)';
    this.$slider.css({
      '-webkit-transform': translateX,
      '-moz-transform': translateX,
      '-ms-transform': translateX,
      'transform': translateX
    });

    this.currentIndex = index;
  };

  JoubelSlider.prototype.remove = function () {
    this.$slider.remove();
  };

  JoubelSlider.prototype.next = function () {
    if(this.currentIndex+1 >= this.numSlides) {
      return;
    }

    this.move(this.currentIndex+1);
  };

  JoubelSlider.prototype.previous = function () {
    this.move(this.currentIndex-1);
  };

  JoubelSlider.prototype.first = function () {
    this.move(0);
  };

  JoubelSlider.prototype.last = function () {
    this.move(this.numSlides-1);
  };

  return JoubelSlider;
})(H5P.jQuery);
;var H5P = H5P || {};

/**
 * @module
 */
H5P.JoubelScoreBar = (function ($) {

  /* Need to use an id for the star SVG since that is the only way to reference
     SVG filters  */
  var idCounter = 0;

  /**
   * Creates a score bar
   * @class H5P.JoubelScoreBar
   * @param {number} maxScore  Maximum score
   * @param {string} [label] Makes it easier for readspeakers to identify the scorebar
   * @param {string} [helpText] Score explanation
   * @param {string} [scoreExplanationButtonLabel] Label for score explanation button
   */
  function JoubelScoreBar(maxScore, label, helpText, scoreExplanationButtonLabel) {
    var self = this;

    self.maxScore = maxScore;
    self.score = 0;
    idCounter++;

    /**
     * @const {string}
     */
    self.STAR_MARKUP = '<svg tabindex="-1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 63.77 53.87" aria-hidden="true" focusable="false">' +
        '<title>star</title>' +
        '<filter tabindex="-1" id="h5p-joubelui-score-bar-star-inner-shadow-' + idCounter + '" x0="-50%" y0="-50%" width="200%" height="200%">' +
          '<feGaussianBlur in="SourceAlpha" stdDeviation="3" result="blur"></feGaussianBlur>' +
          '<feOffset dy="2" dx="4"></feOffset>' +
          '<feComposite in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowDiff"></feComposite>' +
          '<feFlood flood-color="#ffe95c" flood-opacity="1"></feFlood>' +
          '<feComposite in2="shadowDiff" operator="in"></feComposite>' +
          '<feComposite in2="SourceGraphic" operator="over" result="firstfilter"></feComposite>' +
          '<feGaussianBlur in="firstfilter" stdDeviation="3" result="blur2"></feGaussianBlur>' +
          '<feOffset dy="-2" dx="-4"></feOffset>' +
          '<feComposite in2="firstfilter" operator="arithmetic" k2="-1" k3="1" result="shadowDiff"></feComposite>' +
          '<feFlood flood-color="#ffe95c" flood-opacity="1"></feFlood>' +
          '<feComposite in2="shadowDiff" operator="in"></feComposite>' +
          '<feComposite in2="firstfilter" operator="over"></feComposite>' +
        '</filter>' +
        '<path tabindex="-1" class="h5p-joubelui-score-bar-star-shadow" d="M35.08,43.41V9.16H20.91v0L9.51,10.85,9,10.93C2.8,12.18,0,17,0,21.25a11.22,11.22,0,0,0,3,7.48l8.73,8.53-1.07,6.16Z"/>' +
        '<g tabindex="-1">' +
          '<path tabindex="-1" class="h5p-joubelui-score-bar-star-border" d="M61.36,22.8,49.72,34.11l2.78,16a2.6,2.6,0,0,1,.05.64c0,.85-.37,1.6-1.33,1.6A2.74,2.74,0,0,1,49.94,52L35.58,44.41,21.22,52a2.93,2.93,0,0,1-1.28.37c-.91,0-1.33-.75-1.33-1.6,0-.21.05-.43.05-.64l2.78-16L9.8,22.8A2.57,2.57,0,0,1,9,21.25c0-1,1-1.33,1.81-1.49l16.07-2.35L34.09,2.83c.27-.59.85-1.33,1.55-1.33s1.28.69,1.55,1.33l7.21,14.57,16.07,2.35c.75.11,1.81.53,1.81,1.49A3.07,3.07,0,0,1,61.36,22.8Z"/>' +
          '<path tabindex="-1" class="h5p-joubelui-score-bar-star-fill" d="M61.36,22.8,49.72,34.11l2.78,16a2.6,2.6,0,0,1,.05.64c0,.85-.37,1.6-1.33,1.6A2.74,2.74,0,0,1,49.94,52L35.58,44.41,21.22,52a2.93,2.93,0,0,1-1.28.37c-.91,0-1.33-.75-1.33-1.6,0-.21.05-.43.05-.64l2.78-16L9.8,22.8A2.57,2.57,0,0,1,9,21.25c0-1,1-1.33,1.81-1.49l16.07-2.35L34.09,2.83c.27-.59.85-1.33,1.55-1.33s1.28.69,1.55,1.33l7.21,14.57,16.07,2.35c.75.11,1.81.53,1.81,1.49A3.07,3.07,0,0,1,61.36,22.8Z"/>' +
          '<path tabindex="-1" filter="url(#h5p-joubelui-score-bar-star-inner-shadow-' + idCounter + ')" class="h5p-joubelui-score-bar-star-fill-full-score" d="M61.36,22.8,49.72,34.11l2.78,16a2.6,2.6,0,0,1,.05.64c0,.85-.37,1.6-1.33,1.6A2.74,2.74,0,0,1,49.94,52L35.58,44.41,21.22,52a2.93,2.93,0,0,1-1.28.37c-.91,0-1.33-.75-1.33-1.6,0-.21.05-.43.05-.64l2.78-16L9.8,22.8A2.57,2.57,0,0,1,9,21.25c0-1,1-1.33,1.81-1.49l16.07-2.35L34.09,2.83c.27-.59.85-1.33,1.55-1.33s1.28.69,1.55,1.33l7.21,14.57,16.07,2.35c.75.11,1.81.53,1.81,1.49A3.07,3.07,0,0,1,61.36,22.8Z"/>' +
        '</g>' +
      '</svg>';

    /**
     * @function appendTo
     * @memberOf H5P.JoubelScoreBar#
     * @param {H5P.jQuery}  $wrapper  Dom container
     */
    self.appendTo = function ($wrapper) {
      self.$scoreBar.appendTo($wrapper);
    };

    /**
     * Create the text representation of the scorebar .
     *
     * @private
     * @return {string}
     */
    var createLabel = function (score) {
      if (!label) {
        return '';
      }

      return label.replace(':num', score).replace(':total', self.maxScore);
    };

    /**
     * Creates the html for this widget
     *
     * @method createHtml
     * @private
     */
    var createHtml = function () {
      // Container div
      self.$scoreBar = $('<div>', {
        'class': 'h5p-joubelui-score-bar',
      });

      var $visuals = $('<div>', {
        'class': 'h5p-joubelui-score-bar-visuals',
        appendTo: self.$scoreBar
      });

      // The progress bar wrapper
      self.$progressWrapper = $('<div>', {
        'class': 'h5p-joubelui-score-bar-progress-wrapper',
        appendTo: $visuals
      });

      self.$progress = $('<div>', {
        'class': 'h5p-joubelui-score-bar-progress',
        'html': createLabel(self.score),
        appendTo: self.$progressWrapper
      });

      // The star
      $('<div>', {
        'class': 'h5p-joubelui-score-bar-star',
        html: self.STAR_MARKUP
      }).appendTo($visuals);

      // The score container
      var $numerics = $('<div>', {
        'class': 'h5p-joubelui-score-numeric',
        appendTo: self.$scoreBar,
        'aria-hidden': true
      });

      // The current score
      self.$scoreCounter = $('<span>', {
        'class': 'h5p-joubelui-score-number h5p-joubelui-score-number-counter',
        text: 0,
        appendTo: $numerics
      });

      // The separator
      $('<span>', {
        'class': 'h5p-joubelui-score-number-separator',
        text: '/',
        appendTo: $numerics
      });

      // Max score
      self.$maxScore = $('<span>', {
        'class': 'h5p-joubelui-score-number h5p-joubelui-score-max',
        text: self.maxScore,
        appendTo: $numerics
      });

      if (helpText) {
        H5P.JoubelUI.createTip(helpText, {
          tipLabel: scoreExplanationButtonLabel ? scoreExplanationButtonLabel : helpText,
          helpIcon: true
        }).appendTo(self.$scoreBar);
        self.$scoreBar.addClass('h5p-score-bar-has-help');
      }
    };

    /**
     * Set the current score
     * @method setScore
     * @memberOf H5P.JoubelScoreBar#
     * @param  {number} score
     */
    self.setScore = function (score) {
      // Do nothing if score hasn't changed
      if (score === self.score) {
        return;
      }
      self.score = score > self.maxScore ? self.maxScore : score;
      self.updateVisuals();
    };

    /**
     * Increment score
     * @method incrementScore
     * @memberOf H5P.JoubelScoreBar#
     * @param  {number=}        incrementBy Optional parameter, defaults to 1
     */
    self.incrementScore = function (incrementBy) {
      self.setScore(self.score + (incrementBy || 1));
    };

    /**
     * Set the max score
     * @method setMaxScore
     * @memberOf H5P.JoubelScoreBar#
     * @param  {number}    maxScore The max score
     */
    self.setMaxScore = function (maxScore) {
      self.maxScore = maxScore;
    };

    /**
     * Updates the progressbar visuals
     * @memberOf H5P.JoubelScoreBar#
     * @method updateVisuals
     */
    self.updateVisuals = function () {
      self.$progress.html(createLabel(self.score));
      self.$scoreCounter.text(self.score);
      self.$maxScore.text(self.maxScore);

      setTimeout(function () {
        // Start the progressbar animation
        self.$progress.css({
          width: ((self.score / self.maxScore) * 100) + '%'
        });

        H5P.Transition.onTransitionEnd(self.$progress, function () {
          // If fullscore fill the star and start the animation
          self.$scoreBar.toggleClass('h5p-joubelui-score-bar-full-score', self.score === self.maxScore);
          self.$scoreBar.toggleClass('h5p-joubelui-score-bar-animation-active', self.score === self.maxScore);

          // Only allow the star animation to run once
          self.$scoreBar.one("animationend", function() {
            self.$scoreBar.removeClass("h5p-joubelui-score-bar-animation-active");
          });
        }, 600);
      }, 300);
    };

    /**
     * Removes all classes
     * @method reset
     */
    self.reset = function () {
      self.$scoreBar.removeClass('h5p-joubelui-score-bar-full-score');
    };

    createHtml();
  }

  return JoubelScoreBar;
})(H5P.jQuery);
;var H5P = H5P || {};

H5P.JoubelProgressbar = (function ($) {

  /**
   * Joubel progressbar class
   * @method JoubelProgressbar
   * @constructor
   * @param  {number}          steps Number of steps
   * @param {Object} [options] Additional options
   * @param {boolean} [options.disableAria] Disable readspeaker assistance
   * @param {string} [options.progressText] A progress text for describing
   *  current progress out of total progress for readspeakers.
   *  e.g. "Slide :num of :total"
   */
  function JoubelProgressbar(steps, options) {
    H5P.EventDispatcher.call(this);
    var self = this;
    this.options = $.extend({
      progressText: 'Slide :num of :total'
    }, options);
    this.currentStep = 0;
    this.steps = steps;

    this.$progressbar = $('<div>', {
      'class': 'h5p-joubelui-progressbar'
    });
    this.$background = $('<div>', {
      'class': 'h5p-joubelui-progressbar-background'
    }).appendTo(this.$progressbar);
  }

  JoubelProgressbar.prototype = Object.create(H5P.EventDispatcher.prototype);
  JoubelProgressbar.prototype.constructor = JoubelProgressbar;

  JoubelProgressbar.prototype.updateAria = function () {
    var self = this;
    if (this.options.disableAria) {
      return;
    }

    if (!this.$currentStatus) {
      this.$currentStatus = $('<div>', {
        'class': 'h5p-joubelui-progressbar-slide-status-text',
        'aria-live': 'assertive'
      }).appendTo(this.$progressbar);
    }
    var interpolatedProgressText = self.options.progressText
      .replace(':num', self.currentStep)
      .replace(':total', self.steps);
    this.$currentStatus.html(interpolatedProgressText);
  };

  /**
   * Appends to a container
   * @method appendTo
   * @param  {H5P.jquery} $container
   */
  JoubelProgressbar.prototype.appendTo = function ($container) {
    this.$progressbar.appendTo($container);
  };

  /**
   * Update progress
   * @method setProgress
   * @param  {number}    step
   */
  JoubelProgressbar.prototype.setProgress = function (step) {
    // Check for valid value:
    if (step > this.steps || step < 0) {
      return;
    }
    this.currentStep = step;
    this.$background.css({
      width: ((this.currentStep/this.steps)*100) + '%'
    });

    this.updateAria();
  };

  /**
   * Increment progress with 1
   * @method next
   */
  JoubelProgressbar.prototype.next = function () {
    this.setProgress(this.currentStep+1);
  };

  /**
   * Reset progressbar
   * @method reset
   */
  JoubelProgressbar.prototype.reset = function () {
    this.setProgress(0);
  };

  /**
   * Check if last step is reached
   * @method isLastStep
   * @return {Boolean}
   */
  JoubelProgressbar.prototype.isLastStep = function () {
    return this.steps === this.currentStep;
  };

  return JoubelProgressbar;
})(H5P.jQuery);
;var H5P = H5P || {};

/**
 * H5P Joubel UI library.
 *
 * This is a utility library, which does not implement attach. I.e, it has to bee actively used by
 * other libraries
 * @module
 */
H5P.JoubelUI = (function ($) {

  /**
   * The internal object to return
   * @class H5P.JoubelUI
   * @static
   */
  function JoubelUI() {}

  /* Public static functions */

  /**
   * Create a tip icon
   * @method H5P.JoubelUI.createTip
   * @param  {string}  text   The textual tip
   * @param  {Object}  params Parameters
   * @return {H5P.JoubelTip}
   */
  JoubelUI.createTip = function (text, params) {
    return new H5P.JoubelTip(text, params);
  };

  /**
   * Create message dialog
   * @method H5P.JoubelUI.createMessageDialog
   * @param  {H5P.jQuery}               $container The dom container
   * @param  {string}                   message    The message
   * @return {H5P.JoubelMessageDialog}
   */
  JoubelUI.createMessageDialog = function ($container, message) {
    return new H5P.JoubelMessageDialog($container, message);
  };

  /**
   * Create help text dialog
   * @method H5P.JoubelUI.createHelpTextDialog
   * @param  {string}             header  The textual header
   * @param  {string}             message The textual message
   * @param  {string}             closeButtonTitle The title for the close button
   * @return {H5P.JoubelHelpTextDialog}
   */
  JoubelUI.createHelpTextDialog = function (header, message, closeButtonTitle) {
    return new H5P.JoubelHelpTextDialog(header, message, closeButtonTitle);
  };

  /**
   * Create progress circle
   * @method H5P.JoubelUI.createProgressCircle
   * @param  {number}             number          The progress (0 to 100)
   * @param  {string}             progressColor   The progress color in hex value
   * @param  {string}             fillColor       The fill color in hex value
   * @param  {string}             backgroundColor The background color in hex value
   * @return {H5P.JoubelProgressCircle}
   */
  JoubelUI.createProgressCircle = function (number, progressColor, fillColor, backgroundColor) {
    return new H5P.JoubelProgressCircle(number, progressColor, fillColor, backgroundColor);
  };

  /**
   * Create throbber for loading
   * @method H5P.JoubelUI.createThrobber
   * @return {H5P.JoubelThrobber}
   */
  JoubelUI.createThrobber = function () {
    return new H5P.JoubelThrobber();
  };

  /**
   * Create simple rounded button
   * @method H5P.JoubelUI.createSimpleRoundedButton
   * @param  {string}                  text The button label
   * @return {H5P.SimpleRoundedButton}
   */
  JoubelUI.createSimpleRoundedButton = function (text) {
    return new H5P.SimpleRoundedButton(text);
  };

  /**
   * Create Slider
   * @method H5P.JoubelUI.createSlider
   * @param  {Object} [params] Parameters
   * @return {H5P.JoubelSlider}
   */
  JoubelUI.createSlider = function (params) {
    return new H5P.JoubelSlider(params);
  };

  /**
   * Create Score Bar
   * @method H5P.JoubelUI.createScoreBar
   * @param  {number=}       maxScore The maximum score
   * @param {string} [label] Makes it easier for readspeakers to identify the scorebar
   * @return {H5P.JoubelScoreBar}
   */
  JoubelUI.createScoreBar = function (maxScore, label, helpText, scoreExplanationButtonLabel) {
    return new H5P.JoubelScoreBar(maxScore, label, helpText, scoreExplanationButtonLabel);
  };

  /**
   * Create Progressbar
   * @method H5P.JoubelUI.createProgressbar
   * @param  {number=}       numSteps The total numer of steps
   * @param {Object} [options] Additional options
   * @param {boolean} [options.disableAria] Disable readspeaker assistance
   * @param {string} [options.progressText] A progress text for describing
   *  current progress out of total progress for readspeakers.
   *  e.g. "Slide :num of :total"
   * @return {H5P.JoubelProgressbar}
   */
  JoubelUI.createProgressbar = function (numSteps, options) {
    return new H5P.JoubelProgressbar(numSteps, options);
  };

  /**
   * Create standard Joubel button
   *
   * @method H5P.JoubelUI.createButton
   * @param {object} params
   *  May hold any properties allowed by jQuery. If href is set, an A tag
   *  is used, if not a button tag is used.
   * @return {H5P.jQuery} The jquery element created
   */
  JoubelUI.createButton = function(params) {
    var type = 'button';
    if (params.href) {
      type = 'a';
    }
    else {
      params.type = 'button';
    }
    if (params.class) {
      params.class += ' h5p-joubelui-button';
    }
    else {
      params.class = 'h5p-joubelui-button';
    }
    return $('<' + type + '/>', params);
  };

  /**
   * Fix for iframe scoll bug in IOS. When focusing an element that doesn't have
   * focus support by default the iframe will scroll the parent frame so that
   * the focused element is out of view. This varies dependening on the elements
   * of the parent frame.
   */
  if (H5P.isFramed && !H5P.hasiOSiframeScrollFix &&
      /iPad|iPhone|iPod/.test(navigator.userAgent)) {
    H5P.hasiOSiframeScrollFix = true;

    // Keep track of original focus function
    var focus = HTMLElement.prototype.focus;

    // Override the original focus
    HTMLElement.prototype.focus = function () {
      // Only focus the element if it supports it natively
      if ( (this instanceof HTMLAnchorElement ||
            this instanceof HTMLInputElement ||
            this instanceof HTMLSelectElement ||
            this instanceof HTMLTextAreaElement ||
            this instanceof HTMLButtonElement ||
            this instanceof HTMLIFrameElement ||
            this instanceof HTMLAreaElement) && // HTMLAreaElement isn't supported by Safari yet.
          !this.getAttribute('role')) { // Focus breaks if a different role has been set
          // In theory this.isContentEditable should be able to recieve focus,
          // but it didn't work when tested.

        // Trigger the original focus with the proper context
        focus.call(this);
      }
    };
  }

  return JoubelUI;
})(H5P.jQuery);
;H5P.Tooltip = H5P.Tooltip || function() {};

H5P.Question = (function ($, EventDispatcher, JoubelUI) {

  /**
   * Extending this class make it alot easier to create tasks for other
   * content types.
   *
   * @class H5P.Question
   * @extends H5P.EventDispatcher
   * @param {string} type
   */
  function Question(type) {
    var self = this;

    // Inheritance
    EventDispatcher.call(self);

    // Register default section order
    self.order = ['video', 'image', 'audio', 'introduction', 'content', 'explanation', 'feedback', 'scorebar', 'buttons', 'read'];

    // Keep track of registered sections
    var sections = {};

    // Buttons
    var buttons = {};
    var buttonOrder = [];

    // Wrapper when attached
    var $wrapper;

    // Click element
    var clickElement;

    // ScoreBar
    var scoreBar;

    // Keep track of the feedback's visual status.
    var showFeedback;

    // Keep track of which buttons are scheduled for hiding.
    var buttonsToHide = [];

    // Keep track of which buttons are scheduled for showing.
    var buttonsToShow = [];

    // Keep track of the hiding and showing of buttons.
    var toggleButtonsTimer;
    var toggleButtonsTransitionTimer;
    var buttonTruncationTimer;

    // Keeps track of initialization of question
    var initialized = false;

    /**
     * @type {Object} behaviour Behaviour of Question
     * @property {Boolean} behaviour.disableFeedback Set to true to disable feedback section
     */
    var behaviour = {
      disableFeedback: false,
      disableReadSpeaker: false
    };

    // Keeps track of thumb state
    var imageThumb = true;

    // Keeps track of image transitions
    var imageTransitionTimer;

    // Keep track of whether sections is transitioning.
    var sectionsIsTransitioning = false;

    // Keep track of auto play state
    var disableAutoPlay = false;

    // Feedback transition timer
    var feedbackTransitionTimer;

    // Used when reading messages to the user
    var $read, readText;

    /**
     * Register section with given content.
     *
     * @private
     * @param {string} section ID of the section
     * @param {(string|H5P.jQuery)} [content]
     */
    var register = function (section, content) {
      sections[section] = {};
      var $e = sections[section].$element = $('<div/>', {
        'class': 'h5p-question-' + section,
      });
      if (content) {
        $e[content instanceof $ ? 'append' : 'html'](content);
      }
    };

    /**
     * Update registered section with content.
     *
     * @private
     * @param {string} section ID of the section
     * @param {(string|H5P.jQuery)} content
     */
    var update = function (section, content) {
      if (content instanceof $) {
        sections[section].$element.html('').append(content);
      }
      else {
        sections[section].$element.html(content);
      }
    };

    /**
     * Insert element with given ID into the DOM.
     *
     * @private
     * @param {array|Array|string[]} order
     * List with ordered element IDs
     * @param {string} id
     * ID of the element to be inserted
     * @param {Object} elements
     * Maps ID to the elements
     * @param {H5P.jQuery} $container
     * Parent container of the elements
     */
    var insert = function (order, id, elements, $container) {
      // Try to find an element id should be after
      for (var i = 0; i < order.length; i++) {
        if (order[i] === id) {
          // Found our pos
          while (i > 0 &&
          (elements[order[i - 1]] === undefined ||
          !elements[order[i - 1]].isVisible)) {
            i--;
          }
          if (i === 0) {
            // We are on top.
            elements[id].$element.prependTo($container);
          }
          else {
            // Add after element
            elements[id].$element.insertAfter(elements[order[i - 1]].$element);
          }
          elements[id].isVisible = true;
          break;
        }
      }
    };

    /**
     * Make feedback into a popup and position relative to click.
     *
     * @private
     * @param {string} [closeText] Text for the close button
     */
    var makeFeedbackPopup = function (closeText) {
      var $element = sections.feedback.$element;
      var $parent = sections.content.$element;
      var $click = (clickElement != null ? clickElement.$element : null);

      $element.appendTo($parent).addClass('h5p-question-popup');

      if (sections.scorebar) {
        sections.scorebar.$element.appendTo($element);
      }

      $parent.addClass('h5p-has-question-popup');

      // Draw the tail
      var $tail = $('<div/>', {
        'class': 'h5p-question-feedback-tail'
      }).hide()
        .appendTo($parent);

      // Draw the close button
      var $close = $('<div/>', {
        'class': 'h5p-question-feedback-close',
        'tabindex': 0,
        'title': closeText,
        on: {
          click: function (event) {
            $element.remove();
            $tail.remove();
            event.preventDefault();
          },
          keydown: function (event) {
            switch (event.which) {
              case 13: // Enter
              case 32: // Space
                $element.remove();
                $tail.remove();
                event.preventDefault();
            }
          }
        }
      }).hide().appendTo($element);

      if ($click != null) {
        if ($click.hasClass('correct')) {
          $element.addClass('h5p-question-feedback-correct');
          $close.show();
          sections.buttons.$element.hide();
        }
        else {
          sections.buttons.$element.appendTo(sections.feedback.$element);
        }
      }

      positionFeedbackPopup($element, $click);
    };

    /**
     * Position the feedback popup.
     *
     * @private
     * @param {H5P.jQuery} $element Feedback div
     * @param {H5P.jQuery} $click Visual click div
     */
    var positionFeedbackPopup = function ($element, $click) {
      var $container = $element.parent();
      var $tail = $element.siblings('.h5p-question-feedback-tail');
      var popupWidth = $element.outerWidth();
      var popupHeight = setElementHeight($element);
      var space = 15;
      var disableTail = false;
      var positionY = $container.height() / 2 - popupHeight / 2;
      var positionX = $container.width() / 2 - popupWidth / 2;
      var tailX = 0;
      var tailY = 0;
      var tailRotation = 0;

      if ($click != null) {
        // Edge detection for click, takes space into account
        var clickNearTop = ($click[0].offsetTop < space);
        var clickNearBottom = ($click[0].offsetTop + $click.height() > $container.height() - space);
        var clickNearLeft = ($click[0].offsetLeft < space);
        var clickNearRight = ($click[0].offsetLeft + $click.width() > $container.width() - space);

        // Click is not in a corner or close to edge, calculate position normally
        positionX = $click[0].offsetLeft - popupWidth / 2  + $click.width() / 2;
        positionY = $click[0].offsetTop - popupHeight - space;
        tailX = positionX + popupWidth / 2 - $tail.width() / 2;
        tailY = positionY + popupHeight - ($tail.height() / 2);
        tailRotation = 225;

        // If popup is outside top edge, position under click instead
        if (popupHeight + space > $click[0].offsetTop) {
          positionY = $click[0].offsetTop + $click.height() + space;
          tailY = positionY - $tail.height() / 2 ;
          tailRotation = 45;
        }

        // If popup is outside left edge, position left
        if (positionX < 0) {
          positionX = 0;
        }

        // If popup is outside right edge, position right
        if (positionX + popupWidth > $container.width()) {
          positionX = $container.width() - popupWidth;
        }

        // Special cases such as corner clicks, or close to an edge, they override X and Y positions if met
        if (clickNearTop && (clickNearLeft || clickNearRight)) {
          positionX = $click[0].offsetLeft + (clickNearLeft ? $click.width() : -popupWidth);
          positionY = $click[0].offsetTop + $click.height();
          disableTail = true;
        }
        else if (clickNearBottom && (clickNearLeft || clickNearRight)) {
          positionX = $click[0].offsetLeft + (clickNearLeft ? $click.width() : -popupWidth);
          positionY = $click[0].offsetTop - popupHeight;
          disableTail = true;
        }
        else if (!clickNearTop && !clickNearBottom) {
          if (clickNearLeft || clickNearRight) {
            positionY = $click[0].offsetTop - popupHeight / 2 + $click.width() / 2;
            positionX = $click[0].offsetLeft + (clickNearLeft ? $click.width() + space : -popupWidth + -space);
            // Make sure this does not position the popup off screen
            if (positionX < 0) {
              positionX = 0;
              disableTail = true;
            }
            else {
              tailX = positionX + (clickNearLeft ? - $tail.width() / 2 : popupWidth - $tail.width() / 2);
              tailY = positionY + popupHeight / 2 - $tail.height() / 2;
              tailRotation = (clickNearLeft ? 315 : 135);
            }
          }
        }

        // Contain popup from overflowing bottom edge
        if (positionY + popupHeight > $container.height()) {
          positionY = $container.height() - popupHeight;

          if (popupHeight > $container.height() - ($click[0].offsetTop + $click.height() + space)) {
            disableTail = true;
          }
        }
      }
      else {
        disableTail = true;
      }

      // Contain popup from ovreflowing top edge
      if (positionY < 0) {
        positionY = 0;
      }

      $element.css({top: positionY, left: positionX});
      $tail.css({top: tailY, left: tailX});

      if (!disableTail) {
        $tail.css({
          'left': tailX,
          'top': tailY,
          'transform': 'rotate(' + tailRotation + 'deg)'
        }).show();
      }
      else {
        $tail.hide();
      }
    };

    /**
     * Set element max height, used for animations.
     *
     * @param {H5P.jQuery} $element
     */
    var setElementHeight = function ($element) {
      if (!$element.is(':visible')) {
        // No animation
        $element.css('max-height', 'none');
        return;
      }

      // If this element is shown in the popup, we can't set width to 100%,
      // since it already has a width set in CSS
      var isFeedbackPopup = $element.hasClass('h5p-question-popup');

      // Get natural element height
      var $tmp = $element.clone()
        .css({
          'position': 'absolute',
          'max-height': 'none',
          'width': isFeedbackPopup ? '' : '100%'
        })
        .appendTo($element.parent());

      // Need to take margins into account when calculating available space
      var sideMargins = parseFloat($element.css('margin-left'))
        + parseFloat($element.css('margin-right'));
      var tmpElWidth = $tmp.css('width') ? $tmp.css('width') : '100%';
      $tmp.css('width', 'calc(' + tmpElWidth + ' - ' + sideMargins + 'px)');

      // Apply height to element
      var h = Math.round($tmp.get(0).getBoundingClientRect().height);
      var fontSize = parseFloat($element.css('fontSize'));
      var relativeH = h / fontSize;
      $element.css('max-height', relativeH + 'em');
      $tmp.remove();

      if (h > 0 && sections.buttons && sections.buttons.$element === $element) {
        // Make sure buttons section is visible
        showSection(sections.buttons);

        // Resize buttons after resizing button section
        setTimeout(resizeButtons, 150);
      }
      return h;
    };

    /**
     * Does the actual job of hiding the buttons scheduled for hiding.
     *
     * @private
     * @param {boolean} [relocateFocus] Find a new button to focus
     */
    var hideButtons = function (relocateFocus) {
      for (var i = 0; i < buttonsToHide.length; i++) {
        hideButton(buttonsToHide[i].id);
      }
      buttonsToHide = [];

      if (relocateFocus) {
        self.focusButton();
      }
    };

    /**
     * Does the actual hiding.
     * @private
     * @param {string} buttonId
     */
    var hideButton = function (buttonId) {
      // Using detach() vs hide() makes it harder to cheat.
      buttons[buttonId].$element.detach();
      buttons[buttonId].isVisible = false;
    };

    /**
     * Shows the buttons on the next tick. This is to avoid buttons flickering
     * If they're both added and removed on the same tick.
     *
     * @private
     */
    var toggleButtons = function () {
      // If no buttons section, return
      if (sections.buttons === undefined) {
        return;
      }

      // Clear transition timer, reevaluate if buttons will be detached
      clearTimeout(toggleButtonsTransitionTimer);

      // Show buttons
      for (var i = 0; i < buttonsToShow.length; i++) {
        insert(buttonOrder, buttonsToShow[i].id, buttons, sections.buttons.$element);
        buttons[buttonsToShow[i].id].isVisible = true;
      }
      buttonsToShow = [];

      // Hide buttons
      var numToHide = 0;
      var relocateFocus = false;
      for (var j = 0; j < buttonsToHide.length; j++) {
        var button = buttons[buttonsToHide[j].id];
        if (button.isVisible) {
          numToHide += 1;
        }
        if (button.$element.is(':focus')) {
          // Move focus to the first visible button.
          relocateFocus = true;
        }
      }

      var animationTimer = 150;
      if (sections.feedback && sections.feedback.$element.hasClass('h5p-question-popup')) {
        animationTimer = 0;
      }

      if (numToHide === sections.buttons.$element.children().length) {
        // All buttons are going to be hidden. Hide container using transition.
        hideSection(sections.buttons);
        // Detach buttons
        hideButtons(relocateFocus);
      }
      else {
        hideButtons(relocateFocus);

        // Show button section
        if (!sections.buttons.$element.is(':empty')) {
          showSection(sections.buttons);
          setElementHeight(sections.buttons.$element);

          // Trigger resize after animation
          toggleButtonsTransitionTimer = setTimeout(function () {
            self.trigger('resize');
          }, animationTimer);
        }

        // Resize buttons to fit container
        resizeButtons();
      }

      toggleButtonsTimer = undefined;
    };

    /**
     * Allows for scaling of the question image.
     */
    var scaleImage = function () {
      var $imgSection = sections.image.$element;
      clearTimeout(imageTransitionTimer);

      // Add this here to avoid initial transition of the image making
      // content overflow. Alternatively we need to trigger a resize.
      $imgSection.addClass('animatable');

      if (imageThumb) {

        // Expand image
        $(this).attr('aria-expanded', true);
        $imgSection.addClass('h5p-question-image-fill-width');
        imageThumb = false;

        imageTransitionTimer = setTimeout(function () {
          self.trigger('resize');
        }, 600);
      }
      else {

        // Scale down image
        $(this).attr('aria-expanded', false);
        $imgSection.removeClass('h5p-question-image-fill-width');
        imageThumb = true;

        imageTransitionTimer = setTimeout(function () {
          self.trigger('resize');
        }, 600);
      }
    };

    /**
     * Get scrollable ancestor of element
     *
     * @private
     * @param {H5P.jQuery} $element
     * @param {Number} [currDepth=0] Current recursive calls to ancestor, stop at maxDepth
     * @param {Number} [maxDepth=5] Maximum depth for finding ancestor.
     * @returns {H5P.jQuery} Parent element that is scrollable
     */
    var findScrollableAncestor = function ($element, currDepth, maxDepth) {
      if (!currDepth) {
        currDepth = 0;
      }
      if (!maxDepth) {
        maxDepth = 5;
      }
      // Check validation of element or if we have reached document root
      if (!$element || !($element instanceof $) || document === $element.get(0) || currDepth >= maxDepth) {
        return;
      }

      if ($element.css('overflow-y') === 'auto') {
        return $element;
      }
      else {
        return findScrollableAncestor($element.parent(), currDepth + 1, maxDepth);
      }
    };

    /**
     * Scroll to bottom of Question.
     *
     * @private
     */
    var scrollToBottom = function () {
      if (!$wrapper || ($wrapper.hasClass('h5p-standalone') && !H5P.isFullscreen)) {
        return; // No scroll
      }

      var scrollableAncestor = findScrollableAncestor($wrapper);

      // Scroll to bottom of scrollable ancestor
      if (scrollableAncestor) {
        scrollableAncestor.animate({
          scrollTop: $wrapper.css('height')
        }, "slow");
      }
    };

    /**
     * Resize buttons to fit container width
     *
     * @private
     */
    var resizeButtons = function () {
      if (!buttons || !sections.buttons) {
        return;
      }

      var go = function () {
        // Don't do anything if button elements are not visible yet
        if (!sections.buttons.$element.is(':visible')) {
          return;
        }

        // Width of all buttons
        var buttonsWidth = {
          max: 0,
          min: 0,
          current: 0
        };

        for (var i in buttons) {
          var button = buttons[i];
          if (button.isVisible) {
            setButtonWidth(buttons[i]);
            buttonsWidth.max += button.width.max;
            buttonsWidth.min += button.width.min;
            buttonsWidth.current += button.isTruncated ? button.width.min : button.width.max;
          }
        }

        var makeButtonsFit = function (availableWidth) {
          if (buttonsWidth.max < availableWidth) {
            // It is room for everyone on the right side of the score bar (without truncating)
            if (buttonsWidth.max !== buttonsWidth.current) {
              // Need to make everyone big
              restoreButtonLabels(buttonsWidth.current, availableWidth);
            }
            return true;
          }
          else if (buttonsWidth.min < availableWidth) {
            // Is it room for everyone on the right side of the score bar with truncating?
            if (buttonsWidth.current > availableWidth) {
              removeButtonLabels(buttonsWidth.current, availableWidth);
            }
            else {
              restoreButtonLabels(buttonsWidth.current, availableWidth);
            }
            return true;
          }
          return false;
        };

        toggleFullWidthScorebar(false);

        var buttonSectionWidth = Math.floor(sections.buttons.$element.width()) - 1;

        if (!makeButtonsFit(buttonSectionWidth)) {
          // If we get here we need to wrap:
          toggleFullWidthScorebar(true);
          buttonSectionWidth = Math.floor(sections.buttons.$element.width()) - 1;
          makeButtonsFit(buttonSectionWidth);
        }
      };

      // If visible, resize right away
      if (sections.buttons.$element.is(':visible')) {
        go();
      }
      else { // If not visible, try on the next tick
        // Clear button truncation timer if within a button truncation function
        if (buttonTruncationTimer) {
          clearTimeout(buttonTruncationTimer);
        }
        buttonTruncationTimer = setTimeout(function () {
          buttonTruncationTimer = undefined;
          go();
        }, 0);
      }
    };

    var toggleFullWidthScorebar = function (enabled) {
      if (sections.scorebar &&
          sections.scorebar.$element &&
          sections.scorebar.$element.hasClass('h5p-question-visible')) {
        sections.buttons.$element.addClass('has-scorebar');
        sections.buttons.$element.toggleClass('wrap', enabled);
        sections.scorebar.$element.toggleClass('full-width', enabled);
      }
      else {
        sections.buttons.$element.removeClass('has-scorebar');
      }
    };

    /**
     * Remove button labels until they use less than max width.
     *
     * @private
     * @param {Number} buttonsWidth Total width of all buttons
     * @param {Number} maxButtonsWidth Max width allowed for buttons
     */
    var removeButtonLabels = function (buttonsWidth, maxButtonsWidth) {
      // Reverse traversal
      for (var i = buttonOrder.length - 1; i >= 0; i--) {
        var buttonId = buttonOrder[i];
        var button = buttons[buttonId];
        if (!button.isTruncated && button.isVisible) {
          var $button = button.$element;
          buttonsWidth -= button.width.max - button.width.min;
          // Set tooltip (needed by H5P.Tooltip)
          let buttonText = $button.text();
          $button.attr('data-tooltip', buttonText);

          // Use button text as aria label if a specific one isn't provided
          if (!button.ariaLabel) {
            $button.attr('aria-label', buttonText);
          }
          // Remove label
          $button.html('').addClass('truncated');
          button.isTruncated = true;
          if (buttonsWidth <= maxButtonsWidth) {
            // Buttons are small enough.
            return;
          }
        }
      }
    };

    /**
     * Restore button labels until it fills maximum possible width without exceeding the max width.
     *
     * @private
     * @param {Number} buttonsWidth Total width of all buttons
     * @param {Number} maxButtonsWidth Max width allowed for buttons
     */
    var restoreButtonLabels = function (buttonsWidth, maxButtonsWidth) {
      for (var i = 0; i < buttonOrder.length; i++) {
        var buttonId = buttonOrder[i];
        var button = buttons[buttonId];
        if (button.isTruncated && button.isVisible) {
          // Calculate new total width of buttons with a static pixel for consistency cross-browser
          buttonsWidth += button.width.max - button.width.min + 1;

          if (buttonsWidth > maxButtonsWidth) {
            return;
          }
          // Restore label
          button.$element.html(button.text);

          // Remove tooltip (used by H5P.Tooltip)
          button.$element.removeAttr('data-tooltip');

          // Remove aria-label if a specific one isn't provided
          if (!button.ariaLabel) {
            button.$element.removeAttr('aria-label');
          }

          button.$element.removeClass('truncated');
          button.isTruncated = false;
        }
      }
    };

    /**
     * Helper function for finding index of keyValue in array
     *
     * @param {String} keyValue Value to be found
     * @param {String} key In key
     * @param {Array} array In array
     * @returns {number}
     */
    var existsInArray = function (keyValue, key, array) {
      var i;
      for (i = 0; i < array.length; i++) {
        if (array[i][key] === keyValue) {
          return i;
        }
      }
      return -1;
    };

    /**
     * Show a section
     * @param {Object} section
     */
    var showSection = function (section) {
      section.$element.addClass('h5p-question-visible');
      section.isVisible = true;
    };

    /**
     * Hide a section
     * @param {Object} section
     */
    var hideSection = function (section) {
      section.$element.css('max-height', '');
      section.isVisible = false;

      setTimeout(function () {
        // Only hide if section hasn't been set to visible in the meantime
        if (!section.isVisible) {
          section.$element.removeClass('h5p-question-visible');
        }
      }, 150);
    };

    /**
     * Set behaviour for question.
     *
     * @param {Object} options An object containing behaviour that will be extended by Question
     */
    self.setBehaviour = function (options) {
      $.extend(behaviour, options);
    };

    /**
     * A video to display above the task.
     *
     * @param {object} params
     */
    self.setVideo = function (params) {
      sections.video = {
        $element: $('<div/>', {
          'class': 'h5p-question-video'
        })
      };

      if (disableAutoPlay && params.params.playback) {
        params.params.playback.autoplay = false;
      }

      // Never fit to wrapper
      if (!params.params.visuals) {
        params.params.visuals = {};
      }
      params.params.visuals.fit = false;
      sections.video.instance = H5P.newRunnable(params, self.contentId, sections.video.$element, true);
      var fromVideo = false; // Hack to avoid never ending loop
      sections.video.instance.on('resize', function () {
        fromVideo = true;
        self.trigger('resize');
        fromVideo = false;
      });
      self.on('resize', function () {
        if (!fromVideo) {
          sections.video.instance.trigger('resize');
        }
      });

      return self;
    };

    /**
     * An audio player to display above the task.
     *
     * @param {object} params
     */
    self.setAudio = function (params) {
      params.params = params.params || {};

      sections.audio = {
        $element: $('<div/>', {
          'class': 'h5p-question-audio',
        })
      };

      if (disableAutoPlay) {
        params.params.autoplay = false;
      }
      else if (params.params.playerMode === 'transparent') {
        params.params.autoplay = true; // false doesn't make sense for transparent audio
      }

      sections.audio.instance = H5P.newRunnable(params, self.contentId, sections.audio.$element, true);
      // The height value that is set by H5P.Audio is counter-productive here.
      if (sections.audio.instance.audio) {
        sections.audio.instance.audio.style.height = '';
      }

      return self;
    };

    /**
     * Will stop any playback going on in the task.
     */
    self.pause = function () {
      if (sections.video && sections.video.isVisible) {
        sections.video.instance.pause();
      }
      if (sections.audio && sections.audio.isVisible) {
        sections.audio.instance.pause();
      }
    };

    /**
     * Start playback of video
     */
    self.play = function () {
      if (sections.video && sections.video.isVisible) {
        sections.video.instance.play();
      }
      if (sections.audio && sections.audio.isVisible) {
        sections.audio.instance.play();
      }
    };

    /**
     * Disable auto play, useful in editors.
     */
    self.disableAutoPlay = function () {
      disableAutoPlay = true;
    };

    /**
     * Process HTML escaped string for use as attribute value,
     * e.g. for alt text or title attributes.
     *
     * @param {string} value
     * @return {string} WARNING! Do NOT use for innerHTML.
     */
    self.massageAttributeOutput = function (value) {
      const dparser = new DOMParser().parseFromString(value, 'text/html');
      const div = document.createElement('div');
      div.innerHTML = dparser.documentElement.textContent;;
      return div.textContent || div.innerText || '';
    };

    /**
     * Add task image.
     *
     * @param {string} path Relative
     * @param {Object} [options] Options object
     * @param {string} [options.alt] Text representation
     * @param {string} [options.title] Hover text
     * @param {Boolean} [options.disableImageZooming] Set as true to disable image zooming
     * @param {string} [options.expandImage] Localization strings
     * @param {string} [options.minimizeImage] Localization string

     */
    self.setImage = function (path, options) {
      options = options ? options : {};
      sections.image = {};
      // Image container
      sections.image.$element = $('<div/>', {
        'class': 'h5p-question-image h5p-question-image-fill-width'
      });

      // Inner wrap
      var $imgWrap = $('<div/>', {
        'class': 'h5p-question-image-wrap',
        appendTo: sections.image.$element
      });

      // Image element
      var $img = $('<img/>', {
        src: H5P.getPath(path, self.contentId),
        alt: (options.alt === undefined ? '' : self.massageAttributeOutput(options.alt)),
        title: (options.title === undefined ? '' : self.massageAttributeOutput(options.title)),
        on: {
          load: function () {
            self.trigger('imageLoaded', this);
            self.trigger('resize');
          }
        },
        appendTo: $imgWrap
      });

      // Disable image zooming
      if (options.disableImageZooming) {
        $img.css('maxHeight', 'none');

        // Make sure we are using the correct amount of width at all times
        var determineImgWidth = function () {

          // Remove margins if natural image width is bigger than section width
          var imageSectionWidth = sections.image.$element.get(0).getBoundingClientRect().width;

          // Do not transition, for instant measurements
          $imgWrap.css({
            '-webkit-transition': 'none',
            'transition': 'none'
          });

          // Margin as translateX on both sides of image.
          var diffX = 2 * ($imgWrap.get(0).getBoundingClientRect().left -
            sections.image.$element.get(0).getBoundingClientRect().left);

          if ($img.get(0).naturalWidth >= imageSectionWidth - diffX) {
            sections.image.$element.addClass('h5p-question-image-fill-width');
          }
          else { // Use margin for small res images
            sections.image.$element.removeClass('h5p-question-image-fill-width');
          }

          // Reset transition rules
          $imgWrap.css({
            '-webkit-transition': '',
            'transition': ''
          });
        };

        // Determine image width
        if ($img.is(':visible')) {
          determineImgWidth();
        }
        else {
          $img.on('load', determineImgWidth);
        }

        // Skip adding zoom functionality
        return;
      }

      const setAriaLabel = () => {
        const ariaLabel = $imgWrap.attr('aria-expanded') === 'true'
          ? options.minimizeImage 
          : options.expandImage;
          
          $imgWrap.attr('aria-label', `${ariaLabel} ${options.alt}`);
        };

      var sizeDetermined = false;
      var determineSize = function () {
        if (sizeDetermined || !$img.is(':visible')) {
          return; // Try again next time.
        }

        $imgWrap.addClass('h5p-question-image-scalable')
          .attr('aria-expanded', false)
          .attr('role', 'button')
          .attr('tabIndex', '0')
          .on('click', function (event) {
            if (event.which === 1) {
              scaleImage.apply(this); // Left mouse button click
              setAriaLabel();
            }
          }).on('keypress', function (event) {
            if (event.which === 32) {
              event.preventDefault(); // Prevent default behaviour; page scroll down
              scaleImage.apply(this); // Space bar pressed
              setAriaLabel();
            }
          });

        setAriaLabel();

        sections.image.$element.removeClass('h5p-question-image-fill-width');

        sizeDetermined  = true; // Prevent any futher events
      };

      self.on('resize', determineSize);

      return self;
    };

    /**
     * Add the introduction section.
     *
     * @param {(string|H5P.jQuery)} content
     */
    self.setIntroduction = function (content) {
      register('introduction', content);

      return self;
    };

    /**
     * Add the content section.
     *
     * @param {(string|H5P.jQuery)} content
     * @param {Object} [options]
     * @param {string} [options.class]
     */
    self.setContent = function (content, options) {
      register('content', content);

      if (options && options.class) {
        sections.content.$element.addClass(options.class);
      }

      return self;
    };

    /**
     * Force readspeaker to read text. Useful when you have to use
     * setTimeout for animations.
     */
    self.read = function (content) {
      if (!$read) {
        return; // Not ready yet
      }

      if (readText) {
        // Combine texts if called multiple times
        readText += (readText.substr(-1, 1) === '.' ? ' ' : '. ') + content;
      }
      else {
        readText = content;
      }

      // Set text
      $read.html(readText);

      setTimeout(function () {
        // Stop combining when done reading
        readText = null;
        $read.html('');
      }, 100);
    };

    /**
     * Read feedback
     */
    self.readFeedback = function () {
      var invalidFeedback =
        behaviour.disableReadSpeaker ||
        !showFeedback ||
        !sections.feedback ||
        !sections.feedback.$element;

      if (invalidFeedback) {
        return;
      }

      var $feedbackText = $('.h5p-question-feedback-content-text', sections.feedback.$element);
      if ($feedbackText && $feedbackText.html() && $feedbackText.html().length) {
        self.read($feedbackText.html());
      }
    };

    /**
     * Remove feedback
     *
     * @return {H5P.Question}
     */
    self.removeFeedback = function () {

      clearTimeout(feedbackTransitionTimer);

      if (sections.feedback && showFeedback) {

        showFeedback = false;

        // Hide feedback & scorebar
        hideSection(sections.scorebar);
        hideSection(sections.feedback);

        sectionsIsTransitioning = true;

        // Detach after transition
        feedbackTransitionTimer = setTimeout(function () {
          // Avoiding Transition.onTransitionEnd since it will register multiple events, and there's no way to cancel it if the transition changes back to "show" while the animation is happening.
          if (!showFeedback) {
            sections.feedback.$element.children().detach();
            sections.scorebar.$element.children().detach();

            // Trigger resize after animation
            self.trigger('resize');
          }
          sectionsIsTransitioning = false;
          scoreBar.setScore(0);
        }, 150);

        if ($wrapper) {
          $wrapper.find('.h5p-question-feedback-tail').remove();
        }
      }

      return self;
    };

    /**
     * Set feedback message.
     *
     * @param {string} [content]
     * @param {number} score The score
     * @param {number} maxScore The maximum score for this question
     * @param {string} [scoreBarLabel] Makes it easier for readspeakers to identify the scorebar
     * @param {string} [helpText] Help text that describes the score inside a tip icon
     * @param {object} [popupSettings] Extra settings for popup feedback
     * @param {boolean} [popupSettings.showAsPopup] Should the feedback display as popup?
     * @param {string} [popupSettings.closeText] Translation for close button text
     * @param {object} [popupSettings.click] Element representing where user clicked on screen
     */
    self.setFeedback = function (content, score, maxScore, scoreBarLabel, helpText, popupSettings, scoreExplanationButtonLabel) {
      // Feedback is disabled
      if (behaviour.disableFeedback) {
        return self;
      }

      // Need to toggle buttons right away to avoid flickering/blinking
      // Note: This means content types should invoke hide/showButton before setFeedback
      toggleButtons();

      clickElement = (popupSettings != null && popupSettings.click != null ? popupSettings.click : null);
      clearTimeout(feedbackTransitionTimer);

      var $feedback = $('<div>', {
        'class': 'h5p-question-feedback-container'
      });

      var $feedbackContent = $('<div>', {
        'class': 'h5p-question-feedback-content'
      }).appendTo($feedback);

      // Feedback text
      $('<div>', {
        'class': 'h5p-question-feedback-content-text',
        'html': content
      }).appendTo($feedbackContent);

      var $scorebar = $('<div>', {
        'class': 'h5p-question-scorebar-container'
      });
      if (scoreBar === undefined) {
        scoreBar = JoubelUI.createScoreBar(maxScore, scoreBarLabel, helpText, scoreExplanationButtonLabel);
      }
      scoreBar.appendTo($scorebar);

      $feedbackContent.toggleClass('has-content', content !== undefined && content.length > 0);

      // Feedback for readspeakers
      if (!behaviour.disableReadSpeaker && scoreBarLabel) {
        self.read(scoreBarLabel.replace(':num', score).replace(':total', maxScore) + '. ' + (content ? content : ''));
      }

      showFeedback = true;
      if (sections.feedback) {
        // Update section
        update('feedback', $feedback);
        update('scorebar', $scorebar);
      }
      else {
        // Create section
        register('feedback', $feedback);
        register('scorebar', $scorebar);
        if (initialized && $wrapper) {
          insert(self.order, 'feedback', sections, $wrapper);
          insert(self.order, 'scorebar', sections, $wrapper);
        }
      }

      showSection(sections.feedback);
      showSection(sections.scorebar);

      resizeButtons();

      if (popupSettings != null && popupSettings.showAsPopup == true) {
        makeFeedbackPopup(popupSettings.closeText);
        scoreBar.setScore(score);
      }
      else {
        // Show feedback section
        feedbackTransitionTimer = setTimeout(function () {
          setElementHeight(sections.feedback.$element);
          setElementHeight(sections.scorebar.$element);
          sectionsIsTransitioning = true;

          // Scroll to bottom after showing feedback
          scrollToBottom();

          // Trigger resize after animation
          feedbackTransitionTimer = setTimeout(function () {
            sectionsIsTransitioning = false;
            self.trigger('resize');
            scoreBar.setScore(score);
          }, 150);
        }, 0);
      }

      return self;
    };

    /**
     * Set feedback content (no animation).
     *
     * @param {string} content
     * @param {boolean} [extendContent] True will extend content, instead of replacing it
     */
    self.updateFeedbackContent = function (content, extendContent) {
      if (sections.feedback && sections.feedback.$element) {

        if (extendContent) {
          content = $('.h5p-question-feedback-content', sections.feedback.$element).html() + ' ' + content;
        }

        // Update feedback content html
        $('.h5p-question-feedback-content', sections.feedback.$element).html(content).addClass('has-content');

        // Make sure the height is correct
        setElementHeight(sections.feedback.$element);

        // Need to trigger resize when feedback has finished transitioning
        setTimeout(self.trigger.bind(self, 'resize'), 150);
      }

      return self;
    };

    /**
     * Set the content of the explanation / feedback panel
     *
     * @param {Object} data
     * @param {string} data.correct
     * @param {string} data.wrong
     * @param {string} data.text
     * @param {string} title Title for explanation panel
     *
     * @return {H5P.Question}
     */
    self.setExplanation = function (data, title) {
      if (data) {
        var explainer = new H5P.Question.Explainer(title, data);

        if (sections.explanation) {
          // Update section
          update('explanation', explainer.getElement());
        }
        else {
          register('explanation', explainer.getElement());

          if (initialized && $wrapper) {
            insert(self.order, 'explanation', sections, $wrapper);
          }
        }
      }
      else if (sections.explanation) {
        // Hide explanation section
        sections.explanation.$element.children().detach();
      }

      return self;
    };

    /**
     * Checks to see if button is registered.
     *
     * @param {string} id
     * @returns {boolean}
     */
    self.hasButton = function (id) {
      return (buttons[id] !== undefined);
    };

    /**
     * @typedef {Object} ConfirmationDialog
     * @property {boolean} [enable] Must be true to show confirmation dialog
     * @property {Object} [instance] Instance that uses confirmation dialog
     * @property {jQuery} [$parentElement] Append to this element.
     * @property {Object} [l10n] Translatable fields
     * @property {string} [l10n.header] Header text
     * @property {string} [l10n.body] Body text
     * @property {string} [l10n.cancelLabel]
     * @property {string} [l10n.confirmLabel]
     */

    /**
     * Register buttons for the task.
     *
     * @param {string} id
     * @param {string} text label
     * @param {function} clicked
     * @param {boolean} [visible=true]
     * @param {Object} [options] Options for button
     * @param {Object} [extras] Extra options
     * @param {ConfirmationDialog} [extras.confirmationDialog] Confirmation dialog
     * @param {Object} [extras.contentData] Content data
     * @params {string} [extras.textIfSubmitting] Text to display if submitting
     */
    self.addButton = function (id, text, clicked, visible, options, extras) {
      if (buttons[id]) {
        return self; // Already registered
      }

      if (sections.buttons === undefined)  {
        // We have buttons, register wrapper
        register('buttons');
        if (initialized) {
          insert(self.order, 'buttons', sections, $wrapper);
        }
      }

      extras = extras || {};
      extras.confirmationDialog = extras.confirmationDialog || {};
      options = options || {};

      var confirmationDialog =
        self.addConfirmationDialogToButton(extras.confirmationDialog, clicked);

      /**
       * Handle button clicks through both mouse and keyboard
       * @private
       */
      var handleButtonClick = function () {
        if (extras.confirmationDialog.enable && confirmationDialog) {
          // Show popups section if used
          if (!extras.confirmationDialog.$parentElement) {
            sections.popups.$element.removeClass('hidden');
          }
          confirmationDialog.show($e.position().top);
        }
        else {
          clicked();
        }
      };

      const isSubmitting = extras.contentData && extras.contentData.standalone
        && (extras.contentData.isScoringEnabled || extras.contentData.isReportingEnabled);

      if (isSubmitting && extras.textIfSubmitting) {
        text = extras.textIfSubmitting;
      }

      buttons[id] = {
        isTruncated: false,
        text: text,
        isVisible: false,
        ariaLabel: options['aria-label']
      };

      // The button might be <button> or <a>
      // (dependent on options.href set or not)
      var isAnchorTag = (options.href !== undefined);
      var $e = buttons[id].$element = JoubelUI.createButton($.extend({
        'class': 'h5p-question-' + id,
        html: text,
        on: {
          click: function (event) {
            handleButtonClick();
            if (isAnchorTag) {
              event.preventDefault();
            }
          }
        }
      }, options));
      buttonOrder.push(id);

      H5P.Tooltip($e.get(0), {tooltipSource: 'data-tooltip'});

      // The button might be <button> or <a>. If <a>, the space key is not
      // triggering the click event, must therefore handle this here:
      if (isAnchorTag) {
        $e.on('keypress', function (event) {
          if (event.which === 32) { // Space
            handleButtonClick();
            event.preventDefault();
          }
        });
      }

      if (visible === undefined || visible) {
        // Button should be visible
        $e.appendTo(sections.buttons.$element);
        buttons[id].isVisible = true;
        showSection(sections.buttons);
      }

      return self;
    };

    var setButtonWidth = function (button) {
      var $button = button.$element;
      var $tmp = $button.clone()
        .css({
          'position': 'absolute',
          'white-space': 'nowrap',
          'max-width': 'none'
        }).removeClass('truncated')
        .html(button.text)
        .appendTo($button.parent());

      // Calculate max width (button including text)
      button.width = {
        max: Math.ceil($tmp.outerWidth() + parseFloat($tmp.css('margin-left')) + parseFloat($tmp.css('margin-right')))
      };

      // Calculate min width (truncated, icon only)
      $tmp.html('').addClass('truncated');
      button.width.min = Math.ceil($tmp.outerWidth() + parseFloat($tmp.css('margin-left')) + parseFloat($tmp.css('margin-right')));
      $tmp.remove();
    };

    /**
     * Add confirmation dialog to button
     * @param {ConfirmationDialog} options
     *  A confirmation dialog that will be shown before click handler of button
     *  is triggered
     * @param {function} clicked
     *  Click handler of button
     * @return {H5P.ConfirmationDialog|undefined}
     *  Confirmation dialog if enabled
     */
    self.addConfirmationDialogToButton = function (options, clicked) {
      options = options || {};

      if (!options.enable) {
        return;
      }

      // Confirmation dialog
      var confirmationDialog = new H5P.ConfirmationDialog({
        instance: options.instance,
        headerText: options.l10n.header,
        dialogText: options.l10n.body,
        cancelText: options.l10n.cancelLabel,
        confirmText: options.l10n.confirmLabel
      });

      // Determine parent element
      if (options.$parentElement) {
        const parentElement = options.$parentElement.get(0);
        let dialogParent;
        // If using h5p-content, dialog will not appear on embedded fullscreen
        if (parentElement.classList.contains('h5p-content')) {
          dialogParent = parentElement.querySelector('.h5p-container');
        }

        confirmationDialog.appendTo(dialogParent ?? parentElement);
      }
      else {

        // Create popup section and append to that
        if (sections.popups === undefined) {
          register('popups');
          if (initialized) {
            insert(self.order, 'popups', sections, $wrapper);
          }
          sections.popups.$element.addClass('hidden');
          self.order.push('popups');
        }
        confirmationDialog.appendTo(sections.popups.$element.get(0));
      }

      // Add event listeners
      confirmationDialog.on('confirmed', function () {
        if (!options.$parentElement) {
          sections.popups.$element.addClass('hidden');
        }
        clicked();

        // Trigger to content type
        self.trigger('confirmed');
      });

      confirmationDialog.on('canceled', function () {
        if (!options.$parentElement) {
          sections.popups.$element.addClass('hidden');
        }
        // Trigger to content type
        self.trigger('canceled');
      });

      return confirmationDialog;
    };

    /**
     * Show registered button with given identifier.
     *
     * @param {string} id
     * @param {Number} [priority]
     */
    self.showButton = function (id, priority) {
      var aboutToBeHidden = existsInArray(id, 'id', buttonsToHide) !== -1;
      if (buttons[id] === undefined || (buttons[id].isVisible === true && !aboutToBeHidden)) {
        return self;
      }

      priority = priority || 0;

      // Skip if already being shown
      var indexToShow = existsInArray(id, 'id', buttonsToShow);
      if (indexToShow !== -1) {

        // Update priority
        if (buttonsToShow[indexToShow].priority < priority) {
          buttonsToShow[indexToShow].priority = priority;
        }

        return self;
      }

      // Check if button is going to be hidden on next tick
      var exists = existsInArray(id, 'id', buttonsToHide);
      if (exists !== -1) {

        // Skip hiding if higher priority
        if (buttonsToHide[exists].priority <= priority) {
          buttonsToHide.splice(exists, 1);
          buttonsToShow.push({id: id, priority: priority});
        }

      } // If button is not shown
      else if (!buttons[id].$element.is(':visible')) {

        // Show button on next tick
        buttonsToShow.push({id: id, priority: priority});
      }

      if (!toggleButtonsTimer) {
        toggleButtonsTimer = setTimeout(toggleButtons, 0);
      }

      return self;
    };

    /**
     * Hide registered button with given identifier.
     *
     * @param {string} id
     * @param {number} [priority]
     */
    self.hideButton = function (id, priority) {
      var aboutToBeShown = existsInArray(id, 'id', buttonsToShow) !== -1;
      if (buttons[id] === undefined || (buttons[id].isVisible === false && !aboutToBeShown)) {
        return self;
      }

      priority = priority || 0;

      // Skip if already being hidden
      var indexToHide = existsInArray(id, 'id', buttonsToHide);
      if (indexToHide !== -1) {

        // Update priority
        if (buttonsToHide[indexToHide].priority < priority) {
          buttonsToHide[indexToHide].priority = priority;
        }

        return self;
      }

      // Check if buttons is going to be shown on next tick
      var exists = existsInArray(id, 'id', buttonsToShow);
      if (exists !== -1) {

        // Skip showing if higher priority
        if (buttonsToShow[exists].priority <= priority) {
          buttonsToShow.splice(exists, 1);
          buttonsToHide.push({id: id, priority: priority});
        }
      }
      else if (!buttons[id].$element.is(':visible')) {

        // Make sure it is detached in case the container is hidden.
        hideButton(id);
      }
      else {

        // Hide button on next tick.
        buttonsToHide.push({id: id, priority: priority});
      }

      if (!toggleButtonsTimer) {
        toggleButtonsTimer = setTimeout(toggleButtons, 0);
      }

      return self;
    };

    /**
     * Set focus to the given button. If no button is given the first visible
     * button gets focused. This is useful if you lose focus.
     *
     * @param {string} [id]
     */
    self.focusButton = function (id) {
      if (id === undefined) {
        // Find first button that is visible.
        for (var i = 0; i < buttonOrder.length; i++) {
          var button = buttons[buttonOrder[i]];
          if (button && button.isVisible) {
            // Give that button focus
            button.$element.focus();
            break;
          }
        }
      }
      else if (buttons[id] && buttons[id].$element.is(':visible')) {
        // Set focus to requested button
        buttons[id].$element.focus();
      }

      return self;
    };

    /**
     * Toggle readspeaker functionality
     * @param {boolean} [disable] True to disable, false to enable.
     */
    self.toggleReadSpeaker = function (disable) {
      behaviour.disableReadSpeaker = disable || !behaviour.disableReadSpeaker;
    };

    /**
     * Set new element for section.
     *
     * @param {String} id
     * @param {H5P.jQuery} $element
     */
    self.insertSectionAtElement = function (id, $element) {
      if (sections[id] === undefined) {
        register(id);
      }
      sections[id].parent = $element;

      // Insert section if question is not initialized
      if (!initialized) {
        insert([id], id, sections, $element);
      }

      return self;
    };

    /**
     * Attach content to given container.
     *
     * @param {H5P.jQuery} $container
     */
    self.attach = function ($container) {
      if (self.isRoot()) {
        self.setActivityStarted();
      }

      // The first time we attach we also create our DOM elements.
      if ($wrapper === undefined) {
        if (self.registerDomElements !== undefined &&
           (self.registerDomElements instanceof Function ||
           typeof self.registerDomElements === 'function')) {

          // Give the question type a chance to register before attaching
          self.registerDomElements();
        }

        // Create section for reading messages
        $read = $('<div/>', {
          'aria-live': 'polite',
          'class': 'h5p-hidden-read'
        });
        register('read', $read);
        self.trigger('registerDomElements');
      }

      // Prepare container
      $wrapper = $container;
      $container.html('')
        .addClass('h5p-question h5p-' + type);

      // Add sections in given order
      var $sections = [];
      for (var i = 0; i < self.order.length; i++) {
        var section = self.order[i];
        if (sections[section]) {
          if (sections[section].parent) {
            // Section has a different parent
            sections[section].$element.appendTo(sections[section].parent);
          }
          else {
            $sections.push(sections[section].$element);
          }
          sections[section].isVisible = true;
        }
      }

      // Only append once to DOM for optimal performance
      $container.append($sections);

      // Let others react to dom changes
      self.trigger('domChanged', {
        '$target': $container,
        'library': self.libraryInfo.machineName,
        'contentId': self.contentId,
        'key': 'newLibrary'
      }, {'bubbles': true, 'external': true});

      // ??
      initialized = true;

      return self;
    };

    /**
     * Detach all sections from their parents
     */
    self.detachSections = function () {
      // Deinit Question
      initialized = false;

      // Detach sections
      for (var section in sections) {
        sections[section].$element.detach();
      }

      return self;
    };

    // Listen for resize
    self.on('resize', function () {
      // Allow elements to attach and set their height before resizing
      if (!sectionsIsTransitioning && sections.feedback && showFeedback) {
        // Resize feedback to fit
        setElementHeight(sections.feedback.$element);
      }

      // Re-position feedback popup if in use
      var $element = sections.feedback;
      var $click = clickElement;

      if ($element != null && $element.$element != null && $click != null && $click.$element != null) {
        setTimeout(function () {
          positionFeedbackPopup($element.$element, $click.$element);
        }, 10);
      }

      resizeButtons();
    });
  }

  // Inheritance
  Question.prototype = Object.create(EventDispatcher.prototype);
  Question.prototype.constructor = Question;

  /**
   * Determine the overall feedback to display for the question.
   * Returns empty string if no matching range is found.
   *
   * @param {Object[]} feedbacks
   * @param {number} scoreRatio
   * @return {string}
   */
  Question.determineOverallFeedback = function (feedbacks, scoreRatio) {
    scoreRatio = Math.floor(scoreRatio * 100);

    for (var i = 0; i < feedbacks.length; i++) {
      var feedback = feedbacks[i];
      var hasFeedback = (feedback.feedback !== undefined && feedback.feedback.trim().length !== 0);

      if (feedback.from <= scoreRatio && feedback.to >= scoreRatio && hasFeedback) {
        return feedback.feedback;
      }
    }

    return '';
  };

  return Question;
})(H5P.jQuery, H5P.EventDispatcher, H5P.JoubelUI);
;H5P.Question.Explainer = (function ($) {
  /**
   * Constructor
   *
   * @class
   * @param {string} title
   * @param {array} explanations
   */
  function Explainer(title, explanations) {
    var self = this;

    /**
     * Create the DOM structure
     */
    var createHTML = function () {
      self.$explanation = $('<div>', {
        'class': 'h5p-question-explanation-container'
      });

      // Add title:
      $('<div>', {
        'class': 'h5p-question-explanation-title',
        role: 'heading',
        html: title,
        appendTo: self.$explanation
      });

      var $explanationList = $('<ul>', {
        'class': 'h5p-question-explanation-list',
        appendTo: self.$explanation
      });

      for (var i = 0; i < explanations.length; i++) {
        var feedback = explanations[i];
        var $explanationItem = $('<li>', {
          'class': 'h5p-question-explanation-item',
          appendTo: $explanationList
        });

        var $content = $('<div>', {
          'class': 'h5p-question-explanation-status'
        });

        if (feedback.correct) {
          $('<span>', {
            'class': 'h5p-question-explanation-correct',
            html: feedback.correct,
            appendTo: $content
          });
        }
        if (feedback.wrong) {
          $('<span>', {
            'class': 'h5p-question-explanation-wrong',
            html: feedback.wrong,
            appendTo: $content
          });
        }
        $content.appendTo($explanationItem);

        if (feedback.text) {
          $('<div>', {
            'class': 'h5p-question-explanation-text',
            html: feedback.text,
            appendTo: $explanationItem
          });
        }
      }
    };

    createHTML();

    /**
     * Return the container HTMLElement
     *
     * @return {HTMLElement}
     */
    self.getElement = function () {
      return self.$explanation;
    };
  }

  return Explainer;

})(H5P.jQuery);
;(function (Question) {

  /**
   * Makes it easy to add animated score points for your question type.
   *
   * @class H5P.Question.ScorePoints
   */
  Question.ScorePoints = function () {
    var self = this;

    var elements = [];
    var showElementsTimer;

    /**
     * Create the element that displays the score point element for questions.
     *
     * @param {boolean} isCorrect
     * @return {HTMLElement}
     */
    self.getElement = function (isCorrect) {
      var element = document.createElement('div');
      element.classList.add(isCorrect ? 'h5p-question-plus-one' : 'h5p-question-minus-one');
      element.classList.add('h5p-question-hidden-one');
      elements.push(element);

      // Schedule display animation of all added elements
      if (showElementsTimer) {
        clearTimeout(showElementsTimer);
      }
      showElementsTimer = setTimeout(showElements, 0);

      return element;
    };

    /**
     * @private
     */
    var showElements = function () {
      // Determine delay between triggering animations
      var delay = 0;
      var increment = 150;
      var maxTime = 1000;

      if (elements.length && elements.length > Math.ceil(maxTime / increment)) {
        // Animations will run for more than ~1 second, reduce it.
        increment = maxTime / elements.length;
      }

      for (var i = 0; i < elements.length; i++) {
        // Use timer to trigger show
        setTimeout(showElement(elements[i]), delay);

        // Increse delay for next element
        delay += increment;
      }
    };

    /**
     * Trigger transition animation for the given element
     *
     * @private
     * @param {HTMLElement} element
     * @return {function}
     */
    var showElement = function (element) {
      return function () {
        element.classList.remove('h5p-question-hidden-one');
      };
    };
  };

})(H5P.Question);
;H5P.TrueFalse = (function ($, Question) {
  'use strict';

  // Maximum score for True False
  var MAX_SCORE = 1;

  /**
   * Enum containing the different states this content type can exist in
   *
   * @enum
   */
  var State = Object.freeze({
    ONGOING: 1,
    FINISHED_WRONG: 2,
    FINISHED_CORRECT: 3,
    INTERNAL_SOLUTION: 4,
    EXTERNAL_SOLUTION: 5
  });

  /**
   * Button IDs
   */
  var Button = Object.freeze({
    CHECK: 'check-answer',
    TRYAGAIN: 'try-again',
    SHOW_SOLUTION: 'show-solution'
  });

  /**
   * Initialize module.
   *
   * @class H5P.TrueFalse
   * @extends H5P.Question
   * @param {Object} options
   * @param {number} id Content identification
   * @param {Object} contentData Task specific content data
   */
  function TrueFalse(options, id, contentData) {
    var self = this;

    // Inheritance
    Question.call(self, 'true-false');

    var params = $.extend(true, {
      question: 'No question text provided',
      correct: 'true',
      l10n: {
        trueText: 'True',
        falseText: 'False',
        score: 'You got @score of @total points',
        checkAnswer: 'Check',
        submitAnswer: 'Submit',
        showSolutionButton: 'Show solution',
        tryAgain: 'Retry',
        wrongAnswerMessage: 'Wrong answer',
        correctAnswerMessage: 'Correct answer',
        scoreBarLabel: 'You got :num out of :total points',
        a11yCheck: 'Check the answers. The responses will be marked as correct, incorrect, or unanswered.',
        a11yShowSolution: 'Show the solution. The task will be marked with its correct solution.',
        a11yRetry: 'Retry the task. Reset all responses and start the task over again.',
      },
      behaviour: {
        enableRetry: true,
        enableSolutionsButton: true,
        enableCheckButton: true,
        confirmCheckDialog: false,
        confirmRetryDialog: false,
        autoCheck: false
      }
    }, options);

    // Counter used to create unique id for this question
    TrueFalse.counter = (TrueFalse.counter === undefined ? 0 : TrueFalse.counter + 1);

    // A unique ID is needed for aria label
    var domId = 'h5p-tfq' + H5P.TrueFalse.counter;

    // saves the content id
    this.contentId = id;
    this.contentData = contentData;

    // The radio group
    var answerGroup = new H5P.TrueFalse.AnswerGroup(domId, params.correct, params.l10n);
    if (contentData.previousState !== undefined && contentData.previousState.answer !== undefined) {
      answerGroup.check(contentData.previousState.answer);
    }
    answerGroup.on('selected', function () {
      self.triggerXAPI('interacted');

      if (params.behaviour.autoCheck) {
        checkAnswer();
        triggerXAPIAnswered();
      }
    });


    /**
     * Create the answers
     *
     * @method createAnswers
     * @private
     * @return {H5P.jQuery}
     */
    var createAnswers = function () {
      return answerGroup.getDomElement();
    };

    /**
     * Register buttons
     *
     * @method registerButtons
     * @private
     */
    var registerButtons = function () {
      var $content = $('[data-content-id="' + self.contentId + '"].h5p-content');
      var $containerParents = $content.parents('.h5p-container');

      // select find container to attach dialogs to
      var $container;
      if($containerParents.length !== 0) {
        // use parent highest up if any
        $container = $containerParents.last();
      }
      else if($content.length !== 0){
        $container = $content;
      }
      else  {
        $container = $(document.body);
      }

      // Show solution button
      if (params.behaviour.enableSolutionsButton === true) {
        self.addButton(Button.SHOW_SOLUTION, params.l10n.showSolutionButton, function () {
          self.showSolutions(true);
        }, false, {
          'aria-label': params.l10n.a11yShowSolution,
        });
      }

      // Check button
      if (!params.behaviour.autoCheck && params.behaviour.enableCheckButton) {
        self.addButton(Button.CHECK, params.l10n.checkAnswer, function () {
          checkAnswer();
          triggerXAPIAnswered();
        }, true, {
          'aria-label': params.l10n.a11yCheck
        }, {
          confirmationDialog: {
            enable: params.behaviour.confirmCheckDialog,
            l10n: params.confirmCheck,
            instance: self,
            $parentElement: $container
          },
          contentData: self.contentData,
          textIfSubmitting: params.l10n.submitAnswer,
        });
      }

      // Try again button
      if (params.behaviour.enableRetry === true) {
        self.addButton(Button.TRYAGAIN, params.l10n.tryAgain, function () {
          self.resetTask();
        }, true, {
          'aria-label': params.l10n.a11yRetry,
        }, {
          confirmationDialog: {
            enable: params.behaviour.confirmRetryDialog,
            l10n: params.confirmRetry,
            instance: self,
            $parentElement: $container
          }
        });
      }

      toggleButtonState(State.ONGOING);
    };

    /**
     * Creates and triggers the xAPI answered event
     *
     * @method triggerXAPIAnswered
     * @private
     * @fires xAPIEvent
     */
    var triggerXAPIAnswered = function () {
      var xAPIEvent = self.createXAPIEventTemplate('answered');
      addQuestionToXAPI(xAPIEvent);
      addResponseToXAPI(xAPIEvent);
      self.trigger(xAPIEvent);
    };

    /**
     * Add the question itself to the definition part of an xAPIEvent
     *
     * @method addQuestionToXAPI
     * @param {XAPIEvent} xAPIEvent
     * @private
     */
    var addQuestionToXAPI = function(xAPIEvent) {
      var definition = xAPIEvent.getVerifiedStatementValue(['object', 'definition']);
      definition.description = {
        // Remove tags, must wrap in div tag because jQuery 1.9 will crash if the string isn't wrapped in a tag.
        'en-US': $('<div>' + params.question + '</div>').text()
      };
      definition.type = 'http://adlnet.gov/expapi/activities/cmi.interaction';
      definition.interactionType = 'true-false';
      definition.correctResponsesPattern = [getCorrectAnswer()];
    };

    /**
     * Returns the correct answer
     *
     * @method getCorrectAnswer
     * @private
     * @return {String}
     */
    var getCorrectAnswer = function () {
      return (params.correct === 'true' ? 'true' : 'false');
    };

    /**
     * Returns the wrong answer
     *
     * @method getWrongAnswer
     * @private
     * @return {String}
     */
    var getWrongAnswer = function () {
      return (params.correct === 'false' ? 'true' : 'false');
    };

    /**
     * Add the response part to an xAPI event
     *
     * @method addResponseToXAPI
     * @private
     * @param {H5P.XAPIEvent} xAPIEvent
     *  The xAPI event we will add a response to
     */
    var addResponseToXAPI = function(xAPIEvent) {
      var isCorrect = answerGroup.isCorrect();
      xAPIEvent.setScoredResult(isCorrect ? MAX_SCORE : 0, MAX_SCORE, self, true, isCorrect);
      xAPIEvent.data.statement.result.response = (isCorrect ? getCorrectAnswer() : getWrongAnswer());
    };

    /**
     * Toggles btton visibility dependent of current state
     *
     * @method toggleButtonVisibility
     * @private
     * @param  {String}    buttonId
     * @param  {Boolean}   visible
     */
    var toggleButtonVisibility = function (buttonId, visible) {
      if (visible === true) {
        self.showButton(buttonId);
      }
      else {
        self.hideButton(buttonId);
      }
    };

    /**
     * Toggles buttons state
     *
     * @method toggleButtonState
     * @private
     * @param  {String}          state
     */
    var toggleButtonState = function (state) {
      toggleButtonVisibility(Button.SHOW_SOLUTION, state === State.FINISHED_WRONG);
      toggleButtonVisibility(Button.CHECK, state === State.ONGOING);
      toggleButtonVisibility(Button.TRYAGAIN, state === State.FINISHED_WRONG || state === State.INTERNAL_SOLUTION);
    };

    /**
     * Check if answer is correct or wrong, and update visuals accordingly
     *
     * @method checkAnswer
     * @private
     */
    var checkAnswer = function () {
      // Create feedback widget
      var score = self.getScore();
      var scoreText;

      toggleButtonState(score === MAX_SCORE ? State.FINISHED_CORRECT : State.FINISHED_WRONG);

      if (score === MAX_SCORE && params.behaviour.feedbackOnCorrect) {
        scoreText = params.behaviour.feedbackOnCorrect;
      }
      else if (score === 0 && params.behaviour.feedbackOnWrong) {
        scoreText = params.behaviour.feedbackOnWrong;
      }
      else {
        scoreText = params.l10n.score;
      }
      // Replace relevant variables:
      scoreText = scoreText.replace('@score', score).replace('@total', MAX_SCORE);
      self.setFeedback(scoreText, score, MAX_SCORE, params.l10n.scoreBarLabel);
      answerGroup.reveal();
    };

    /**
     * Registers this question type's DOM elements before they are attached.
     * Called from H5P.Question.
     *
     * @method registerDomElements
     * @private
     */
    self.registerDomElements = function () {
      var self = this;

      // Check for task media
      var media = params.media;
      if (media && media.type && media.type.library) {
        media = media.type;
        var type = media.library.split(' ')[0];
        if (type === 'H5P.Image') {
          if (media.params.file) {
            // Register task image
            self.setImage(media.params.file.path, {
              disableImageZooming: params.media.disableImageZooming || false,
              alt: media.params.alt,
              title: media.params.title,
              expandImage: media.params.expandImage,
              minimizeImage: media.params.minimizeImage
            });
          }
        }
        else if (type === 'H5P.Video') {
          if (media.params.sources) {
            // Register task video
            self.setVideo(media);
          }
        }
        else if (type === 'H5P.Audio') {
          if (media.params.files) {
            // Register task audio
            self.setAudio(media);
          }
        }
      }

      // Add task question text
      self.setIntroduction('<div id="' + domId + '">' + params.question + '</div>');

      // Register task content area
      self.$content = createAnswers();
      self.setContent(self.$content);

      // ... and buttons
      registerButtons();
    };

    /**
     * Implements resume (save content state)
     *
     * @method getCurrentState
     * @public
     * @returns {object} object containing answer
     */
    self.getCurrentState = function () {
      return {answer: answerGroup.getAnswer()};
    };

    /**
     * Used for contracts.
     * Checks if the parent program can proceed. Always true.
     *
     * @method getAnswerGiven
     * @public
     * @returns {Boolean} true
     */
    self.getAnswerGiven = function () {
      return answerGroup.hasAnswered();
    };

    /**
     * Used for contracts.
     * Checks the current score for this task.
     *
     * @method getScore
     * @public
     * @returns {Number} The current score.
     */
    self.getScore = function () {
      return answerGroup.isCorrect() ? MAX_SCORE : 0;
    };

    /**
     * Used for contracts.
     * Checks the maximum score for this task.
     *
     * @method getMaxScore
     * @public
     * @returns {Number} The maximum score.
     */
    self.getMaxScore = function () {
      return MAX_SCORE;
    };

    /**
     * Get title of task
     *
     * @method getTitle
     * @public
     * @returns {string} title
     */
    self.getTitle = function () {
      return H5P.createTitle((self.contentData && self.contentData.metadata && self.contentData.metadata.title) ? self.contentData.metadata.title : 'True-False');
    };

    /**
     * Used for contracts.
     * Show the solution.
     *
     * @method showSolutions
     * @public
     */
    self.showSolutions = function (internal) {
      checkAnswer();
      answerGroup.showSolution();
      toggleButtonState(internal ? State.INTERNAL_SOLUTION : State.EXTERNAL_SOLUTION);
    };

    /**
     * Used for contracts.
     * Resets the complete task back to its' initial state.
     *
     * @method resetTask
     * @public
     */
    self.resetTask = function () {
      answerGroup.reset();
      self.removeFeedback();
      toggleButtonState(State.ONGOING);
    };

    /**
     * Get xAPI data.
     * Contract used by report rendering engine.
     *
     * @see contract at {@link https://h5p.org/documentation/developers/contracts#guides-header-6}
     */
    self.getXAPIData = function(){
      var xAPIEvent = this.createXAPIEventTemplate('answered');
      this.addQuestionToXAPI(xAPIEvent);
      this.addResponseToXAPI(xAPIEvent);
      return {
        statement: xAPIEvent.data.statement
      };
    };

    /**
     * Add the question itself to the definition part of an xAPIEvent
     */
    self.addQuestionToXAPI = function(xAPIEvent) {
      var definition = xAPIEvent.getVerifiedStatementValue(['object', 'definition']);
      $.extend(definition, this.getxAPIDefinition());
    };

    /**
     * Generate xAPI object definition used in xAPI statements.
     * @return {Object}
     */
    self.getxAPIDefinition = function () {
      var definition = {};
      definition.interactionType = 'true-false';
      definition.type = 'http://adlnet.gov/expapi/activities/cmi.interaction';
      definition.description = {
        'en-US': $('<div>' + params.question + '</div>').text()
      };
      definition.correctResponsesPattern = [getCorrectAnswer()];

      return definition;
    };

    /**
     * Add the response part to an xAPI event
     *
     * @param {H5P.XAPIEvent} xAPIEvent
     *  The xAPI event we will add a response to
     */
    self.addResponseToXAPI = function (xAPIEvent) {
      var isCorrect = answerGroup.isCorrect();
      var rawUserScore = isCorrect ? MAX_SCORE : 0;
      var currentResponse = '';

      xAPIEvent.setScoredResult(rawUserScore, MAX_SCORE, self, true, isCorrect);

      if(self.getCurrentState().answer !== undefined) {
        currentResponse += answerGroup.isCorrect() ? getCorrectAnswer() : getWrongAnswer();
      }
      xAPIEvent.data.statement.result.response = currentResponse;
    };
   }

  // Inheritance
  TrueFalse.prototype = Object.create(Question.prototype);
  TrueFalse.prototype.constructor = TrueFalse;

  return TrueFalse;
})(H5P.jQuery, H5P.Question);
;H5P.TrueFalse.AnswerGroup = (function ($, EventDispatcher) {
  'use strict';

  /**
   * Initialize module.
   *
   * @class H5P.TrueFalse.AnswerGroup
   * @extends H5P.EventDispatcher
   * @param {String} domId Id for label
   * @param {String} correctOption Correct option ('true' or 'false')
   * @param {Object} l10n Object containing all interface translations
   */
  function AnswerGroup(domId, correctOption, l10n) {
    var self = this;

    EventDispatcher.call(self);

    var $answers = $('<div>', {
      'class': 'h5p-true-false-answers',
      role: 'radiogroup',
      'aria-labelledby': domId
    });

    var answer;
    var trueAnswer = new H5P.TrueFalse.Answer(l10n.trueText, l10n.correctAnswerMessage, l10n.wrongAnswerMessage);
    var falseAnswer = new H5P.TrueFalse.Answer(l10n.falseText, l10n.correctAnswerMessage, l10n.wrongAnswerMessage);
    var correctAnswer = (correctOption === 'true' ? trueAnswer : falseAnswer);
    var wrongAnswer = (correctOption === 'false' ? trueAnswer : falseAnswer);

    // Handle checked
    var handleChecked = function (newAnswer, other) {
      return function () {
        answer = newAnswer;
        other.uncheck();
        self.trigger('selected');
      };
    };
    trueAnswer.on('checked', handleChecked(true, falseAnswer));
    falseAnswer.on('checked', handleChecked(false, trueAnswer));

    // Handle switches (using arrow keys)
    var handleInvert = function (newAnswer, other) {
      return function () {
        answer = newAnswer;
        other.check();
        self.trigger('selected');
      };
    };
    trueAnswer.on('invert', handleInvert(false, falseAnswer));
    falseAnswer.on('invert', handleInvert(true, trueAnswer));

    // Handle tabbing
    var handleTabable = function(other, tabable) {
      return function () {
        // If one of them are checked, that one should get tabfocus
        if (!tabable || !self.hasAnswered() || other.isChecked()) {
          other.tabable(tabable);
        }
      };
    };
    // Need to remove tabIndex on the other alternative on focus
    trueAnswer.on('focus', handleTabable(falseAnswer, false));
    falseAnswer.on('focus', handleTabable(trueAnswer, false));
    // Need to make both alternatives tabable on blur:
    trueAnswer.on('blur', handleTabable(falseAnswer, true));
    falseAnswer.on('blur', handleTabable(trueAnswer, true));

    $answers.append(trueAnswer.getDomElement());
    $answers.append(falseAnswer.getDomElement());

    /**
     * Get hold of the DOM element representing this thingy
     * @method getDomElement
     * @return {jQuery}
     */
    self.getDomElement = function () {
      return $answers;
    };

    /**
     * Programatic check
     * @method check
     * @param  {[type]} answer [description]
     */
    self.check = function (answer) {
      if (answer) {
        trueAnswer.check();
      }
      else {
        falseAnswer.check();
      }
    };

    /**
     * Return current answer
     * @method getAnswer
     * @return {Boolean} undefined if no answer if given
     */
    self.getAnswer = function () {
      return answer;
    };

    /**
     * Check if user has answered question yet
     * @method hasAnswered
     * @return {Boolean}
     */
    self.hasAnswered = function () {
      return answer !== undefined;
    };

    /**
     * Is answer correct?
     * @method isCorrect
     * @return {Boolean}
     */
    self.isCorrect = function () {
      return correctAnswer.isChecked();
    };

    /**
     * Enable user input
     *
     * @method enable
     */
    self.enable = function () {
      trueAnswer.enable().tabable(true);
      falseAnswer.enable();
    };

    /**
     * Disable user input
     *
     * @method disable
     */
    self.disable = function () {
      trueAnswer.disable();
      falseAnswer.disable();
    };

    /**
     * Reveal correct/wrong answer
     *
     * @method reveal
     */
    self.reveal = function () {
      if (self.hasAnswered()) {
        if (self.isCorrect()) {
          correctAnswer.markCorrect();
        }
        else {
          wrongAnswer.markWrong();
        }
      }

      self.disable();
    };

    /**
     * Reset task
     * @method reset
     */
    self.reset = function () {
      trueAnswer.reset();
      falseAnswer.reset();
      self.enable();
      answer = undefined;
    };

    /**
     * Show the solution
     * @method showSolution
     * @return {[type]}
     */
    self.showSolution = function () {
      correctAnswer.markCorrect();
      wrongAnswer.unmark();
    };
  }

  // Inheritance
  AnswerGroup.prototype = Object.create(EventDispatcher.prototype);
  AnswerGroup.prototype.constructor = AnswerGroup;

  return AnswerGroup;
})(H5P.jQuery, H5P.EventDispatcher);
;H5P.TrueFalse.Answer = (function ($, EventDispatcher) {
  'use strict';

  var Keys = {
    ENTER: 13,
    SPACE: 32,
    LEFT_ARROW: 37,
    UP_ARROW: 38,
    RIGHT_ARROW: 39,
    DOWN_ARROW: 40
  };

  /**
   * Initialize module.
   *
   * @class H5P.TrueFalse.Answer
   * @extends H5P.EventDispatcher
   * @param {String} text Label
   * @param {String} correctMessage Message read by readspeaker when correct alternative is chosen
   * @param {String} wrongMessage Message read by readspeaker when wrong alternative is chosen
   */
  function Answer (text, correctMessage, wrongMessage) {
    var self = this;

    EventDispatcher.call(self);

    var checked = false;
    var enabled = true;

    var $answer = $('<div>', {
      'class': 'h5p-true-false-answer',
      role: 'radio',
      'aria-checked': false,
      html: text + '<span class="aria-label"></span>',
      tabindex: 0, // Tabable by default
      click: function (event) {
        // Handle left mouse (or tap on touch devices)
        if (event.which === 1) {
          self.check();
        }
      },
      keydown: function (event) {
        if (!enabled) {
          return;
        }
        if ([Keys.SPACE, Keys.ENTER].indexOf(event.keyCode) !== -1) {
          event.preventDefault();
          self.check();
        }
        else if ([Keys.LEFT_ARROW, Keys.UP_ARROW, Keys.RIGHT_ARROW, Keys.DOWN_ARROW].indexOf(event.keyCode) !== -1) {
          event.preventDefault();
          self.uncheck();
          self.trigger('invert');
        }
      },
      focus: function () {
        self.trigger('focus');
      },
      blur: function () {
        self.trigger('blur');
      }
    });

    var $ariaLabel = $answer.find('.aria-label');

    // A bug in Chrome 54 makes the :after icons (V and X) not beeing rendered.
    // Doing this in a timeout solves this
    // Might be removed when Chrome 56 is out
    var chromeBugFixer = function (callback) {
      setTimeout(function () {
        callback();
      }, 0);
    };

    /**
     * Return the dom element representing the alternative
     *
     * @public
     * @method getDomElement
     * @return {H5P.jQuery}
     */
    self.getDomElement = function () {
      return $answer;
    };

    /**
     * Unchecks the alternative
     *
     * @public
     * @method uncheck
     * @return {H5P.TrueFalse.Answer}
     */
    self.uncheck = function () {
      if (enabled) {
        $answer.blur();
        checked = false;
        chromeBugFixer(function () {
          $answer.attr('aria-checked', checked);
        });
      }
      return self;
    };

    /**
     * Set tabable or not
     * @method tabable
     * @param  {Boolean} enabled
     * @return {H5P.TrueFalse.Answer}
     */
    self.tabable = function (enabled) {
      $answer.attr('tabIndex', enabled ? 0 : null);
      return self;
    };

    /**
     * Checks the alternative
     *
     * @method check
     * @return {H5P.TrueFalse.Answer}
     */
    self.check = function () {
      if (enabled) {
        checked = true;
        chromeBugFixer(function () {
          $answer.attr('aria-checked', checked);
        });
        self.trigger('checked');
        $answer.focus();
      }
      return self;
    };

    /**
     * Is this alternative checked?
     *
     * @method isChecked
     * @return {boolean}
     */
    self.isChecked = function () {
      return checked;
    };

    /**
     * Enable alternative
     *
     * @method enable
     * @return {H5P.TrueFalse.Answer}
     */
    self.enable = function () {
      $answer.attr({
        'aria-disabled': '',
        tabIndex: 0
      });
      enabled = true;

      return self;
    };

    /**
     * Disables alternative
     *
     * @method disable
     * @return {H5P.TrueFalse.Answer}
     */
    self.disable = function () {
      $answer.attr({
        'aria-disabled': true,
        tabIndex: null
      });
      enabled = false;

      return self;
    };

    /**
     * Reset alternative
     *
     * @method reset
     * @return {H5P.TrueFalse.Answer}
     */
    self.reset = function () {
      self.enable();
      self.uncheck();
      self.unmark();
      $ariaLabel.html('');

      return self;
    };

    /**
     * Marks this alternative as the wrong one
     *
     * @method markWrong
     * @return {H5P.TrueFalse.Answer}
     */
    self.markWrong = function () {
      chromeBugFixer(function () {
        $answer.addClass('wrong');
      });
      $ariaLabel.html('.' + wrongMessage);

      return self;
    };

    /**
     * Marks this alternative as the wrong one
     *
     * @method markCorrect
     * @return {H5P.TrueFalse.Answer}
     */
    self.markCorrect = function () {
      chromeBugFixer(function () {
        $answer.addClass('correct');
      });
      $ariaLabel.html('.' + correctMessage);

      return self;
    };

    self.unmark = function () {
      chromeBugFixer(function () {
        $answer.removeClass('wrong correct');
      });

      return self;
    };
  }

  // Inheritance
  Answer.prototype = Object.create(EventDispatcher.prototype);
  Answer.prototype.constructor = Answer;

  return Answer;

})(H5P.jQuery, H5P.EventDispatcher);
;(()=>{var e={454:e=>{e.exports=function(e,t){this.index=e,this.parent=t}},270:(e,t,i)=>{const n=i(454),r=H5P.EventDispatcher;function s(e,t){const i=this;r.call(i),i.children=[];var s=function(e){for(let t=e;t<i.children.length;t++)i.children[t].index=t};if(i.addChild=function(t,r){void 0===r&&(r=i.children.length);const o=new n(r,i);return r===i.children.length?i.children.push(o):(i.children.splice(r,0,o),s(r)),e.call(o,t),o},i.removeChild=function(e){i.children.splice(e,1),s(e)},i.moveChild=function(e,t){const n=i.children.splice(e,1)[0];i.children.splice(t,0,n),s(t<e?t:e)},t)for(let e=0;e<t.length;e++)i.addChild(t[e])}s.prototype=Object.create(r.prototype),s.prototype.constructor=s,e.exports=s}},t={};function i(n){var r=t[n];if(void 0!==r)return r.exports;var s=t[n]={exports:{}};return e[n](s,s.exports,i),s.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";var e=i(270),t=i.n(e),n=H5P.jQuery,r=H5P.EventDispatcher,s=H5P.JoubelUI,o=function(e){return e.concat.apply([],e)},a=function(e){return"function"==typeof e},l=null!==navigator.userAgent.match(/iPad/i),c=null!==navigator.userAgent.match(/iPad|iPod|iPhone/i),d=function(e,t){return-1!==e.indexOf(t)},p=function(e,t){return void 0!==e?e:t},h=13,u=27,f=32,m=function(e,t,i){e.click((function(e){t.call(i||this,e)})),e.keydown((function(e){d([h,f],e.which)&&(e.preventDefault(),t.call(i||this,e))}))},v=n("<div>");const g=function(){function e(e,t){this.$summarySlide=t,this.cp=e}return e.prototype.updateSummarySlide=function(e,t){var i=this,r=void 0===this.cp.editor&&void 0!==this.$summarySlide&&e>=this.cp.slides.length-1,o=!this.cp.showSummarySlide&&this.cp.hasAnswerElements;if(r){i.cp.presentation.keywordListEnabled&&i.cp.presentation.keywordListAlwaysShow&&i.cp.hideKeywords(),this.$summarySlide.children().remove();var a=i.cp.getSlideScores(t),l=i.outputScoreStats(a);if(n(l).appendTo(i.$summarySlide),!o){var c=i.totalScores(a);if(!isNaN(c.totalPercentage)){var d=s.createScoreBar(c.totalMaxScore,"","","");d.setScore(c.totalScore);var p=n(".h5p-summary-total-score",i.$summarySlide);d.appendTo(p),setTimeout((function(){p.append(n("<div/>",{"aria-live":"polite",class:"hidden-but-read",html:i.cp.l10n.summary+". "+i.cp.l10n.accessibilityTotalScore.replace("@score",c.totalScore).replace("@maxScore",c.totalMaxScore)}))}),100)}if(!0===i.cp.enableTwitterShare){var h=n(".h5p-summary-twitter-message",i.$summarySlide);this.addTwitterScoreLinkTo(h,c)}if(!0===i.cp.enableFacebookShare){var u=n(".h5p-summary-facebook-message",i.$summarySlide);this.addFacebookScoreLinkTo(u,c)}if(!0===i.cp.enableGoogleShare){var f=n(".h5p-summary-google-message",i.$summarySlide);this.addGoogleScoreLinkTo(f)}i.$summarySlide.find(".h5p-td > .h5p-slide-link").each((function(){var e=n(this);e.click((function(t){i.cp.jumpToSlide(parseInt(e.data("slide"),10)-1),t.preventDefault()}))}))}var m=n(".h5p-summary-footer",i.$summarySlide);this.cp.showSummarySlideSolutionButton&&s.createButton({class:"h5p-show-solutions",html:i.cp.l10n.showSolutions,on:{click:function(){i.toggleSolutionMode(!0)}},appendTo:m}),this.cp.showSummarySlideRetryButton&&s.createButton({class:"h5p-cp-retry-button",html:i.cp.l10n.retry,on:{click:function(){i.cp.resetTask()}},appendTo:m}),i.cp.hasAnswerElements&&s.createButton({class:"h5p-eta-export",html:i.cp.l10n.exportAnswers,on:{click:function(){H5P.ExportableTextArea.Exporter.run(i.cp.slides,i.cp.elementInstances)}},appendTo:m})}},e.prototype.outputScoreStats=function(e){if(void 0===e)return this.$summarySlide.addClass("h5p-summary-only-export"),'<div class="h5p-summary-footer"></div>';var t,i=this,n=0,r=0,s="",o=0,a="";for(t=0;t<e.length;t+=1)a=this.getSlideDescription(e[t]),o=Math.round(e[t].score/e[t].maxScore*100),isNaN(o)&&(o=0),s+='<tr><td class="h5p-td h5p-summary-task-title"><a href="#" class="h5p-slide-link"  aria-label=" '+i.cp.l10n.slide+" "+e[t].slide+": "+a.replace(/(<([^>]+)>)/gi,"")+" "+o+'%" data-slide="'+e[t].slide+'">'+i.cp.l10n.slide+" "+e[t].slide+": "+a.replace(/(<([^>]+)>)/gi,"")+'</a></td><td class="h5p-td h5p-summary-score-bar"><p class="hidden-but-read">'+o+"%</p><p>"+e[t].score+"<span>/</span>"+e[t].maxScore+"</p></td></tr>",n+=e[t].score,r+=e[t].maxScore;this.cp.isSolutionMode||this.cp.ignoreResize||i.cp.triggerXAPICompleted(n,r);var l=i.cp.enableTwitterShare||i.cp.enableFacebookShare||i.cp.enableGoogleShare?'<span class="h5p-show-results-text">'+i.cp.l10n.shareResult+"</span>":"",c=!0===i.cp.enableTwitterShare?'<span class="h5p-summary-twitter-message" aria-label="'+i.cp.l10n.shareTwitter+'"></span>':"",d=!0===i.cp.enableFacebookShare?'<span class="h5p-summary-facebook-message" aria-label="'+i.cp.l10n.shareFacebook+'"></span>':"",p=!0===i.cp.enableGoogleShare?'<span class="h5p-summary-google-message" aria-label="'+i.cp.l10n.shareGoogle+'"></span>':"";return'<div class="h5p-summary-table-holder"><div class="h5p-summary-table-pages"><table class="h5p-score-table"><thead><tr><th class="h5p-summary-table-header slide">'+i.cp.l10n.slide+'</th><th class="h5p-summary-table-header score">'+i.cp.l10n.score+"<span>/</span>"+i.cp.l10n.total.toLowerCase()+"</th></tr></thead><tbody>"+s+'</tbody></table></div><div class="h5p-summary-total-table"><div class="h5p-summary-social">'+l+d+c+p+'</div><div class="h5p-summary-total-score"><p>'+i.cp.l10n.totalScore+'</p></div></div></div><div class="h5p-summary-footer"></div>'},e.prototype.getSlideDescription=function(e){var t,i,n=this,r=n.cp.slides[e.slide-1].elements;if(e.indexes.length>1)t=n.cp.l10n.summaryMultipleTaskText;else if(void 0!==r[e.indexes[0]]&&r[0])if(i=r[e.indexes[0]].action,"function"==typeof n.cp.elementInstances[e.slide-1][e.indexes[0]].getTitle)t=n.cp.elementInstances[e.slide-1][e.indexes[0]].getTitle();else if(void 0!==i.library&&i.library){var s=i.library.split(" ")[0].split(".")[1].split(/(?=[A-Z])/),o="";s.forEach((function(e,t){0!==t&&(e=e.toLowerCase()),o+=e,t<=s.length-1&&(o+=" ")})),t=o}return t},e.prototype.addTwitterScoreLinkTo=function(e,t){var i=this,n=i.cp.twitterShareStatement||"",r=i.cp.twitterShareHashtags||"",s=i.cp.twitterShareUrl||"";s=s.replace("@currentpageurl",window.location.href),n=n.replace("@score",t.totalScore).replace("@maxScore",t.totalMaxScore).replace("@percentage",t.totalPercentage+"%").replace("@currentpageurl",window.location.href),r=r.trim().replace(" ",""),n=encodeURIComponent(n),r=encodeURIComponent(r),s=encodeURIComponent(s);var o="https://twitter.com/intent/tweet?";o+=n.length>0?"text="+n+"&":"",o+=s.length>0?"url="+s+"&":"",o+=r.length>0?"hashtags="+r:"";var a=window.innerWidth/2,l=window.innerHeight/2;e.attr("tabindex","0").attr("role","button"),m(e,(function(){return window.open(o,i.cp.l10n.shareTwitter,"width=800,height=300,left="+a+",top="+l),!1}))},e.prototype.addFacebookScoreLinkTo=function(e,t){var i=this,n=i.cp.facebookShareUrl||"",r=i.cp.facebookShareQuote||"";n=n.replace("@currentpageurl",window.location.href),r=r.replace("@currentpageurl",window.location.href).replace("@percentage",t.totalPercentage+"%").replace("@score",t.totalScore).replace("@maxScore",t.totalMaxScore),n=encodeURIComponent(n),r=encodeURIComponent(r);var s="https://www.facebook.com/sharer/sharer.php?";s+=n.length>0?"u="+n+"&":"",s+=r.length>0?"quote="+r:"";var o=window.innerWidth/2,a=window.innerHeight/2;e.attr("tabindex","0").attr("role","button"),m(e,(function(){return window.open(s,i.cp.l10n.shareFacebook,"width=800,height=300,left="+o+",top="+a),!1}))},e.prototype.addGoogleScoreLinkTo=function(e){var t=this,i=t.cp.googleShareUrl||"";i=i.replace("@currentpageurl",window.location.href),i=encodeURIComponent(i);var n="https://plus.google.com/share?";n+=i.length>0?"url="+i:"";var r=window.innerWidth/2,s=window.innerHeight/2;e.attr("tabindex","0").attr("role","button"),m(e,(function(){return window.open(n,t.cp.l10n.shareGoogle,"width=401,height=437,left="+r+",top="+s),!1}))},e.prototype.totalScores=function(e){if(void 0===e)return{totalScore:0,totalMaxScore:0,totalPercentage:0};var t,i=0,n=0;for(t=0;t<e.length;t+=1)i+=e[t].score,n+=e[t].maxScore;var r=Math.round(i/n*100);return isNaN(r)&&(r=0),{totalScore:i,totalMaxScore:n,totalPercentage:r}},e.prototype.toggleSolutionMode=function(e){if(this.cp.isSolutionMode=e,e){var t=this.cp.showSolutions();this.cp.setProgressBarFeedback(t),this.cp.$footer.addClass("h5p-footer-solution-mode"),this.setFooterSolutionModeText(this.cp.l10n.solutionModeText)}else this.cp.$footer.removeClass("h5p-footer-solution-mode"),this.setFooterSolutionModeText(),this.cp.setProgressBarFeedback()},e.prototype.setFooterSolutionModeText=function(e){void 0!==e&&e?this.cp.$exitSolutionModeText.html(e):this.cp.$exitSolutionModeText&&this.cp.$exitSolutionModeText.html("")},e}();var b=function(e){var t=0;function i(){}return i.supported=function(){return"function"==typeof window.print},i.print=function(t,i,n){t.trigger("printing",{finished:!1,allSlides:n});var r=e(".h5p-slide.h5p-current"),s=r.height(),o=r.width()/670,a=e(".h5p-slide");a.css({height:s/o+"px",width:"670px",fontSize:Math.floor(100/o)+"%"}),e(".h5p-summary-slide").css("height","");var l=e(".h5p-joubelui-score-bar-star").css("display");e(".h5p-joubelui-score-bar-star").css("display","none");var c=i.height();i.css("height","auto"),a.toggleClass("doprint",!0===n),r.addClass("doprint");var d=function(){a.css({height:"",width:"",fontSize:""}),i.css("height",c+"px"),e(".h5p-joubelui-score-bar-star").css("display",l),t.trigger("printing",{finished:!0})};setTimeout((function(){window.focus(),window.print(),/iPad|iPhone|Macintosh|MacIntel|MacPPC|Mac68K/.test(navigator.userAgent)?setTimeout((function(){d()}),1500):d()}),500)},i.showDialog=function(i,n,r){var s=this,o=t++,a="h5p-cp-print-dialog-".concat(o,"-title"),l="h5p-cp-print-dialog-".concat(o,"-ingress"),c=e('<div class="h5p-popup-dialog h5p-print-dialog">\n                      <div role="dialog" aria-labelledby="'.concat(a,'" aria-describedby="').concat(l,'" tabindex="-1" class="h5p-inner">\n                        <h2 id="').concat(a,'">').concat(i.printTitle,'</h2>\n                        <div class="h5p-scroll-content"></div>\n                        <div class="h5p-close" role="button" tabindex="0" title="').concat(H5P.t("close"),'">\n                      </div>\n                    </div>')).insertAfter(n).click((function(){s.close()})).children(".h5p-inner").click((function(){return!1})).end();m(c.find(".h5p-close"),(function(){return s.close()}));var d=c.find(".h5p-scroll-content");return d.append(e("<div>",{class:"h5p-cp-print-ingress",id:l,html:i.printIngress})),H5P.JoubelUI.createButton({html:i.printAllSlides,class:"h5p-cp-print-all-slides",click:function(){s.close(),r(!0)}}).appendTo(d),H5P.JoubelUI.createButton({html:i.printCurrentSlide,class:"h5p-cp-print-current-slide",click:function(){s.close(),r(!1)}}).appendTo(d),this.open=function(){setTimeout((function(){c.addClass("h5p-open"),H5P.jQuery(s).trigger("dialog-opened",[c])}),1)},this.close=function(){c.removeClass("h5p-open"),setTimeout((function(){c.remove()}),200)},this.open(),c},i}(H5P.jQuery);const y=b,S=function(e){const t=e.length;return function i(){const n=Array.prototype.slice.call(arguments,0);return n.length>=t?e.apply(null,n):function(){const e=Array.prototype.slice.call(arguments,0);return i.apply(null,n.concat(e))}}},w=S((function(e,t){t.forEach(e)})),x=(S((function(e,t){return t.map(e)})),S((function(e,t){return t.filter(e)}))),T=(S((function(e,t){return t.some(e)})),S((function(e,t){return-1!=t.indexOf(e)}))),k=S((function(e,t){return x((t=>!T(t,e)),t)})),C=S(((e,t)=>t.getAttribute(e))),E=S(((e,t,i)=>i.setAttribute(e,t))),P=S(((e,t)=>t.removeAttribute(e))),$=S(((e,t)=>t.hasAttribute(e))),I=(S(((e,t,i)=>i.getAttribute(e)===t)),S(((e,t)=>{const i=C(e,t);E(e,("true"!==i).toString(),t)})),S(((e,t)=>e.appendChild(t))),S(((e,t)=>t.querySelector(e))),S(((e,t)=>{return i=t.querySelectorAll(e),Array.prototype.slice.call(i);var i})),S(((e,t)=>e.removeChild(t))),S(((e,t)=>t.classList.contains(e))),S(((e,t)=>t.classList.add(e)))),A=S(((e,t)=>t.classList.remove(e))),B=I("hidden"),H=A("hidden"),M=(S(((e,t)=>(e?H:B)(t))),S(((e,t,i)=>{i.classList[t?"add":"remove"](e)})),P("tabindex")),L=(w(M),E("tabindex","0")),j=E("tabindex","-1"),D=$("tabindex");class O{constructor(e){Object.assign(this,{listeners:{},on:function(e,t,i){const n={listener:t,scope:i};return this.listeners[e]=this.listeners[e]||[],this.listeners[e].push(n),this},fire:function(e,t){return(this.listeners[e]||[]).every((function(e){return!1!==e.listener.call(e.scope||this,t)}))},propagate:function(e,t){let i=this;e.forEach((e=>t.on(e,(t=>i.fire(e,t)))))}}),this.plugins=e||[],this.elements=[],this.negativeTabIndexAllowed=!1,this.on("nextElement",this.nextElement,this),this.on("previousElement",this.previousElement,this),this.on("firstElement",this.firstElement,this),this.on("lastElement",this.lastElement,this),this.initPlugins()}addElement(e){this.elements.push(e),this.firesEvent("addElement",e),1===this.elements.length&&this.setTabbable(e)}insertElementAt(e,t){this.elements.splice(t,0,e),this.firesEvent("addElement",e),1===this.elements.length&&this.setTabbable(e)}removeElement(e){this.elements=k([e],this.elements),D(e)&&(this.setUntabbable(e),this.elements[0]&&this.setTabbable(this.elements[0])),this.firesEvent("removeElement",e)}count(){return this.elements.length}firesEvent(e,t){const i=this.elements.indexOf(t);return this.fire(e,{element:t,index:i,elements:this.elements,oldElement:this.tabbableElement})}nextElement({index:e}){const t=e===this.elements.length-1,i=this.elements[t?0:e+1];this.setTabbable(i),i.focus()}firstElement(){const e=this.elements[0];this.setTabbable(e),e.focus()}lastElement(){const e=this.elements[this.elements.length-1];this.setTabbable(e),e.focus()}setTabbableByIndex(e){const t=this.elements[e];t&&this.setTabbable(t)}setTabbable(e){w(this.setUntabbable.bind(this),this.elements),L(e),this.tabbableElement=e}setUntabbable(e){e!==document.activeElement&&(this.negativeTabIndexAllowed?j(e):M(e))}previousElement({index:e}){const t=0===e,i=this.elements[t?this.elements.length-1:e-1];this.setTabbable(i),i.focus()}useNegativeTabIndex(){this.negativeTabIndexAllowed=!0,this.elements.forEach((e=>{e.hasAttribute("tabindex")||j(e)}))}initPlugins(){this.plugins.forEach((function(e){void 0!==e.init&&e.init(this)}),this)}}class K{constructor(){this.selectability=!0}init(e){this.boundHandleKeyDown=this.handleKeyDown.bind(this),this.controls=e,this.controls.on("addElement",this.listenForKeyDown,this),this.controls.on("removeElement",this.removeKeyDownListener,this)}listenForKeyDown({element:e}){e.addEventListener("keydown",this.boundHandleKeyDown)}removeKeyDownListener({element:e}){e.removeEventListener("keydown",this.boundHandleKeyDown)}handleKeyDown(e){switch(e.which){case 27:this.close(e.target),e.preventDefault(),e.stopPropagation();break;case 35:this.lastElement(e.target),e.preventDefault(),e.stopPropagation();break;case 36:this.firstElement(e.target),e.preventDefault(),e.stopPropagation();break;case 13:case 32:this.select(e.target),e.preventDefault(),e.stopPropagation();break;case 37:case 38:this.hasChromevoxModifiers(e)||(this.previousElement(e.target),e.preventDefault(),e.stopPropagation());break;case 39:case 40:this.hasChromevoxModifiers(e)||(this.nextElement(e.target),e.preventDefault(),e.stopPropagation())}}hasChromevoxModifiers(e){return e.shiftKey||e.ctrlKey}previousElement(e){!1!==this.controls.firesEvent("beforePreviousElement",e)&&(this.controls.firesEvent("previousElement",e),this.controls.firesEvent("afterPreviousElement",e))}nextElement(e){!1!==this.controls.firesEvent("beforeNextElement",e)&&(this.controls.firesEvent("nextElement",e),this.controls.firesEvent("afterNextElement",e))}select(e){this.selectability&&!1!==this.controls.firesEvent("before-select",e)&&(this.controls.firesEvent("select",e),this.controls.firesEvent("after-select",e))}firstElement(e){!1!==this.controls.firesEvent("beforeFirstElement",e)&&(this.controls.firesEvent("firstElement",e),this.controls.firesEvent("afterFirstElement",e))}lastElement(e){!1!==this.controls.firesEvent("beforeLastElement",e)&&(this.controls.firesEvent("lastElement",e),this.controls.firesEvent("afterLastElement",e))}disableSelectability(){this.selectability=!1}enableSelectability(){this.selectability=!0}close(e){!1!==this.controls.firesEvent("before-close",e)&&(this.controls.firesEvent("close",e),this.controls.firesEvent("after-close",e))}}function F(e){return F="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},F(e)}function W(e,t,i){var n;return n=function(e,t){if("object"!=F(e)||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,t||"default");if("object"!=F(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(t,"string"),(t="symbol"==F(n)?n:n+"")in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var N="none",z="not-answered",R="answered",Q="has-only-correct",U="has-incorrect",G=function(e){function t(e){this.cp=e,this.answeredLabels=W(W(W(W(W({},z,this.cp.l10n.containsNotCompleted+"."),R,this.cp.l10n.containsCompleted+"."),Q,this.cp.l10n.containsOnlyCorrect+"."),U,this.cp.l10n.containsIncorrectAnswers+"."),N,""),this.initProgressbar(this.cp.slidesWithSolutions),this.initFooter(),this.initTaskAnsweredListener(),this.toggleNextAndPreviousButtonDisabled(this.cp.getCurrentSlideIndex())}return t.prototype.initTaskAnsweredListener=function(){var e=this;this.cp.elementInstances.forEach((function(t,i){t.filter((function(e){return a(e.on)})).forEach((function(t){t.on("xAPI",(function(t){var n=t.getVerb();if(d(["interacted","answered","attempted"],n)){var r=e.cp.slideHasAnsweredTask(i);e.setTaskAnswered(i,r)}else if("completed"===n){var s=e.cp.slideHasAnsweredTask(i);e.setTaskAnswered(i,s),t.setVerb("answered")}void 0===t.data.statement.context.extensions&&(t.data.statement.context.extensions={}),t.data.statement.context.extensions["http://id.tincanapi.com/extension/ending-point"]=i+1}))}))}))},t.prototype.initProgressbar=function(t){var i=this,n=i.cp.previousState&&i.cp.previousState.progress||0;this.progresbarKeyboardControls=new O([new K]),this.progresbarKeyboardControls.negativeTabIndexAllowed=!0,this.progresbarKeyboardControls.on("select",(function(t){i.displaySlide(e(t.element).data("slideNumber"))})),this.progresbarKeyboardControls.on("beforeNextElement",(function(e){return e.index!==e.elements.length-1})),this.progresbarKeyboardControls.on("beforePreviousElement",(function(e){return 0!==e.index})),void 0!==this.cp.progressbarParts&&this.cp.progressbarParts&&this.cp.progressbarParts.forEach((function(e){i.progresbarKeyboardControls.removeElement(e.children("a").get(0)),e.remove()})),i.cp.progressbarParts=[];for(var r=function(t){t.preventDefault();var n=e(this).data("slideNumber");i.progresbarKeyboardControls.setTabbableByIndex(n),i.displaySlide(n),i.cp.focus()},s=0;s<this.cp.slides.length;s+=1){var o=this.cp.slides[s],a=this.createSlideTitle(s),l=e("<div>",{class:"h5p-progressbar-part",id:"progressbar-part-"+s,role:"tab","aria-label":a,"aria-controls":"slide-"+s,"aria-selected":!1}).appendTo(i.cp.$progressbar),d=e("<a>",{href:"#",html:'<span class="h5p-progressbar-part-title hidden-but-read">'+a+"</span>",tabindex:"-1"}).data("slideNumber",s).click(r).appendTo(l);if(this.progresbarKeyboardControls.addElement(d.get(0)),this.isSummarySlide(s)&&l.addClass("progressbar-part-summary-slide"),c||H5P.Tooltip(l.get(0),{position:"top"}),0===s&&l.addClass("h5p-progressbar-part-show"),s===n&&l.addClass("h5p-progressbar-part-selected").attr("aria-selected",!0),i.cp.progressbarParts.push(l),this.updateSlideTitle(s),this.cp.slides.length<=60&&o.elements&&o.elements.length>0){var p=t[s]&&t[s].length>0,h=!!(i.cp.previousState&&i.cp.previousState.answered&&i.cp.previousState.answered[s]);p&&(e("<div>",{class:"h5p-progressbar-part-has-task"}).appendTo(d),this.setTaskAnswered(s,h))}}},t.prototype.displaySlide=function(e){var t=this;this.cp.jumpToSlide(e,!1,(function(){var i=t.cp.getCurrentSlideIndex();t.updateSlideTitle(e,{isCurrent:!0}),t.updateSlideTitle(i,{isCurrent:!1}),t.toggleNextAndPreviousButtonDisabled(e),t.cp.focus()}))},t.prototype.createSlideTitle=function(e){var t=this.cp.slides[e];return t.keywords&&t.keywords.length>0?t.keywords[0].main:this.isSummarySlide(e)?this.cp.l10n.summary:this.cp.l10n.slide+" "+(e+1)},t.prototype.isSummarySlide=function(e){return!(void 0!==this.cp.editor||e!==this.cp.slides.length-1||!this.cp.showSummarySlide)},t.prototype.initFooter=function(){var t=this,i=this,n=this.cp.$footer,r=e("<div/>",{class:"h5p-footer-left-adjusted"}).appendTo(n),s=e("<div/>",{class:"h5p-footer-center-adjusted"}).appendTo(n),o=e("<div/>",{role:"toolbar",class:"h5p-footer-right-adjusted"}).appendTo(n);this.cp.$keywordsButton=e("<div/>",{class:"h5p-footer-button h5p-footer-toggle-keywords","aria-expanded":"false","aria-label":this.cp.l10n.showKeywords,role:"button",tabindex:"0",html:'<span class="h5p-icon-menu"></span><span class="current-slide-title"></span>'}).appendTo(r),H5P.Tooltip(this.cp.$keywordsButton.get(0)),m(this.cp.$keywordsButton,(function(e){i.cp.presentation.keywordListAlwaysShow||(i.cp.toggleKeywords(),e.stopPropagation())})),!this.cp.presentation.keywordListAlwaysShow&&this.cp.initKeywords||this.cp.$keywordsButton.hide(),this.cp.presentation.keywordListEnabled||this.cp.$keywordsWrapper.add(this.$keywordsButton).hide(),this.updateFooterKeyword(0),this.cp.$prevSlideButton=e("<div/>",{class:"h5p-footer-button h5p-footer-previous-slide","aria-label":this.cp.l10n.prevSlide,role:"button",tabindex:"-1","aria-disabled":"true"}).appendTo(s),new H5P.Tooltip(this.cp.$prevSlideButton.get(0),{position:"left"}),m(this.cp.$prevSlideButton,(function(){return t.cp.previousSlide(void 0,!1)}));var a=e("<div/>",{class:"h5p-footer-slide-count"}).appendTo(s);this.cp.$footerCurrentSlide=e("<div/>",{html:"1",class:"h5p-footer-slide-count-current",title:this.cp.l10n.currentSlide,"aria-hidden":"true"}).appendTo(a),this.cp.$footerCounter=e("<div/>",{class:"hidden-but-read",html:this.cp.l10n.slideCount.replace("@index","1").replace("@total",this.cp.slides.length.toString())}).appendTo(s),e("<div/>",{html:"/",class:"h5p-footer-slide-count-delimiter","aria-hidden":"true"}).appendTo(a),this.cp.$footerMaxSlide=e("<div/>",{html:this.cp.slides.length,class:"h5p-footer-slide-count-max",title:this.cp.l10n.lastSlide,"aria-hidden":"true"}).appendTo(a),this.cp.$nextSlideButton=e("<div/>",{class:"h5p-footer-button h5p-footer-next-slide","aria-label":this.cp.l10n.nextSlide,role:"button",tabindex:"0"}).appendTo(s),H5P.Tooltip(this.cp.$nextSlideButton.get(0),{position:"right"}),m(this.cp.$nextSlideButton,(function(){return t.cp.nextSlide(void 0,!1)})),void 0===this.cp.editor&&(this.cp.$exitSolutionModeButton=e("<div/>",{role:"button",class:"h5p-footer-exit-solution-mode","aria-label":this.cp.l10n.solutionModeTitle,tabindex:"0"}).appendTo(o),H5P.Tooltip(this.cp.$exitSolutionModeButton.get(0)),m(this.cp.$exitSolutionModeButton,(function(){return i.cp.jumpToSlide(i.cp.slides.length-1)})),this.cp.enablePrintButton&&y.supported()&&(this.cp.$printButton=e("<div/>",{class:"h5p-footer-button h5p-footer-print","aria-label":this.cp.l10n.printTitle,role:"button",tabindex:"0"}).appendTo(o),H5P.Tooltip(this.cp.$printButton.get(0)),m(this.cp.$printButton,(function(){return i.openPrintDialog()}))),H5P.fullscreenSupported&&(this.cp.$fullScreenButton=e("<div/>",{class:"h5p-footer-button h5p-footer-toggle-full-screen","aria-label":this.cp.l10n.fullscreen,role:"button",tabindex:"0"}),H5P.Tooltip(this.cp.$fullScreenButton.get(0),{position:"left"}),m(this.cp.$fullScreenButton,(function(){return i.cp.toggleFullScreen()})),this.cp.$fullScreenButton.appendTo(o))),this.cp.$exitSolutionModeText=e("<div/>",{html:"",class:"h5p-footer-exit-solution-mode-text"}).appendTo(this.cp.$exitSolutionModeButton)},t.prototype.openPrintDialog=function(){var t=this,i=e(".h5p-wrapper");y.showDialog(this.cp.l10n,i,(function(e){y.print(t.cp,i,e)})).children('[role="dialog"]').focus()},t.prototype.updateProgressBar=function(e,t,i){var n,r=this;for(n=0;n<r.cp.progressbarParts.length;n+=1)e+1>n?r.cp.progressbarParts[n].addClass("h5p-progressbar-part-show"):r.cp.progressbarParts[n].removeClass("h5p-progressbar-part-show");r.progresbarKeyboardControls.setTabbableByIndex(e),r.cp.progressbarParts[e].addClass("h5p-progressbar-part-selected").attr("aria-selected",!0).siblings().removeClass("h5p-progressbar-part-selected").attr("aria-selected",!1),void 0!==t?!i&&r.cp.editor:r.cp.progressbarParts.forEach((function(e,t){r.setTaskAnswered(t,!1)}))},t.prototype.setTaskAnswered=function(e,t){this.cp.progressbarParts[e].find(".h5p-progressbar-part-has-task").toggleClass("h5p-answered",t),this.updateSlideTitle(e,{state:t?R:z})},t.prototype.updateSlideTitle=function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).state;this.setSlideTitle(e,{state:p(t,this.getAnsweredState(e))})},t.prototype.setSlideTitle=function(e,t){var i=t.state,n=void 0===i?N:i,r=this.cp.progressbarParts[e].find(".h5p-progressbar-part-title"),s=this.answeredLabels[n].replace("@slideName",this.createSlideTitle(e));r.html("".concat(s))},t.prototype.getAnsweredState=function(e){var t=this.cp.progressbarParts[e],i=this.slideHasInteraction(e),n=this.cp.slideHasAnsweredTask(e);return i?t.find(".h5p-is-correct").length>0?Q:t.find(".h5p-is-wrong").length>0?U:n?R:z:N},t.prototype.slideHasInteraction=function(e){return this.cp.progressbarParts[e].find(".h5p-progressbar-part-has-task").length>0},t.prototype.updateFooter=function(e){this.cp.$footerCurrentSlide.html(e+1),this.cp.$footerMaxSlide.html(this.cp.slides.length),this.cp.$footerCounter.html(this.cp.l10n.slideCount.replace("@index",(e+1).toString()).replace("@total",this.cp.slides.length.toString())),this.cp.isSolutionMode&&e===this.cp.slides.length-1?this.cp.$footer.addClass("summary-slide"):this.cp.$footer.removeClass("summary-slide"),this.toggleNextAndPreviousButtonDisabled(e),this.updateFooterKeyword(e)},t.prototype.toggleNextAndPreviousButtonDisabled=function(e){var t=this.cp.slides.length-1;this.cp.$prevSlideButton.attr("aria-disabled",(0===e).toString()),this.cp.$nextSlideButton.attr("aria-disabled",(e===t).toString()),this.cp.$prevSlideButton.attr("tabindex",0===e?"-1":"0"),this.cp.$nextSlideButton.attr("tabindex",e===t?"-1":"0")},t.prototype.updateFooterKeyword=function(e){var t=this.cp.slides[e],i="";t&&t.keywords&&t.keywords[0]&&(i=t.keywords[0].main),!this.cp.isEditor()&&this.cp.showSummarySlide&&e>=this.cp.slides.length-1&&(i=this.cp.l10n.summary),this.cp.$keywordsButton.children(".current-slide-title").html(p(i,""))},t}(H5P.jQuery);const q=G;var X=function(e){var t=e.presentation;t=n.extend(!0,{globalBackgroundSelector:{fillGlobalBackground:"",imageGlobalBackground:{}},slides:[{slideBackgroundSelector:{fillSlideBackground:"",imageSlideBackground:{}}}]},t);var i,r=function(t,i,n){var r=e.$slidesWrapper.children().filter(":not(.h5p-summary-slide)");void 0!==n&&(r=r.eq(n)),t&&""!==t?r.addClass("has-background").css("background-image","").css("background-color",t):i&&i.path&&r.addClass("has-background").css("background-color","").css("background-image","url("+H5P.getPath(i.path,e.contentId)+")")};i=t.globalBackgroundSelector,r(i.fillGlobalBackground,i.imageGlobalBackground),t.slides.forEach((function(e,t){var i=e.slideBackgroundSelector;i&&r(i.fillSlideBackground,i.imageSlideBackground,t)}))},J=function(e){return parseInt(e.dataset.index)},V=function(){function e(e){var t=this,i=e.l10n,n=e.currentIndex;this.l10n=i,this.state={currentIndex:p(n,0)},this.eventDispatcher=new r,this.controls=new O([new K]),this.controls.on("select",(function(e){t.onMenuItemSelect(J(e.element))})),this.controls.on("close",(function(){return t.eventDispatcher.trigger("close")})),this.menuElement=this.createMenuElement(),this.currentSlideMarkerElement=this.createCurrentSlideMarkerElement()}var t=e.prototype;return t.init=function(e){var t=this;return this.menuItemElements=e.map((function(e){return t.createMenuItemElement(e)})),this.menuItemElements.forEach((function(e){return t.menuElement.appendChild(e)})),this.menuItemElements.forEach((function(e){return t.controls.addElement(e)})),this.setCurrentSlideIndex(this.state.currentIndex),this.menuItemElements},t.on=function(e,t){this.eventDispatcher.on(e,t)},t.getElement=function(){return this.menuElement},t.removeAllMenuItemElements=function(){var e=this;this.menuItemElements.forEach((function(t){e.controls.removeElement(t),e.menuElement.removeChild(t)})),this.menuItemElements=[]},t.createMenuElement=function(){var e=this.menuElement=document.createElement("ol");return e.setAttribute("role","menu"),e.classList.add("list-unstyled"),e},t.createMenuItemElement=function(e){var t=this,i=document.createElement("li");return i.setAttribute("role","menuitem"),i.addEventListener("click",(function(e){t.onMenuItemSelect(J(e.currentTarget))})),this.applyConfigToMenuItemElement(i,e),i},t.applyConfigToMenuItemElement=function(e,t){e.innerHTML='<div class="h5p-keyword-subtitle">'.concat(t.subtitle,'</div><span class="h5p-keyword-title">').concat(t.title,"</span>"),e.dataset.index=t.index},t.onMenuItemSelect=function(e){this.setCurrentSlideIndex(e),this.eventDispatcher.trigger("select",{index:e})},t.setCurrentSlideIndex=function(e){var t=this.getElementByIndex(this.menuItemElements,e);t&&(this.state.currentIndex=e,this.updateCurrentlySelected(this.menuItemElements,this.state),this.controls.setTabbable(t))},t.updateCurrentlySelected=function(e,t){var i=this;e.forEach((function(e){var n=t.currentIndex===J(e);e.classList.toggle("h5p-current",n),n&&e.appendChild(i.currentSlideMarkerElement)}))},t.scrollToKeywords=function(e){var t=this.getFirstElementAfter(e);if(t){var i=n(this.menuElement),r=i.scrollTop()+n(t).position().top-8;l?i.scrollTop(r):i.stop().animate({scrollTop:r},250)}},t.getFirstElementAfter=function(e){return this.menuItemElements.filter((function(t){return J(t)>=e}))[0]},t.getElementByIndex=function(e,t){return e.filter((function(e){return J(e)===t}))[0]},t.createCurrentSlideMarkerElement=function(){var e=document.createElement("div");return e.classList.add("hidden-but-read"),e.innerHTML=this.l10n.currentSlide,e},e}(),Y="specified",_="next",Z="previous",ee=function(){function e(e,t){var i=this,s=e.title,o=e.goToSlide,a=void 0===o?1:o,l=e.invisible,c=e.goToSlideType,d=void 0===c?Y:c,p=t.l10n,h=t.currentIndex;this.eventDispatcher=new r;var u="h5p-press-to-go",f=0;if(l)s=void 0,f=-1;else{if(!s)switch(d){case Y:s=p.goToSlide.replace(":num",a.toString());break;case _:s=p.goToSlide.replace(":num",p.nextSlide);break;case Z:s=p.goToSlide.replace(":num",p.prevSlide)}u+=" h5p-visible"}var v=a-1;d===_?v=h+1:d===Z&&(v=h-1),this.$element=n("<a/>",{href:"#",class:u,tabindex:f,title:s}),m(this.$element,(function(e){i.eventDispatcher.trigger("navigate",v),e.preventDefault()}))}var t=e.prototype;return t.attach=function(e){e.html("").addClass("h5p-go-to-slide").append(this.$element)},t.on=function(e,t){this.eventDispatcher.on(e,t)},e}();const te=function(e){var t=this;if(void 0===e.action)t.instance=new ee(e,{l10n:t.parent.parent.l10n,currentIndex:t.parent.index}),t.parent.parent.isEditor()||t.instance.on("navigate",(function(e){var i=e.data;t.parent.parent.jumpToSlide(i),t.parent.parent.focus()}));else{var i;i=t.parent.parent.isEditor()?H5P.jQuery.extend(!0,{},e.action,t.parent.parent.elementsOverride):H5P.jQuery.extend(!0,e.action,t.parent.parent.elementsOverride);var n=t.parent.parent.elementInstances[t.parent.index]?t.parent.parent.elementInstances[t.parent.index].length:0;t.parent.parent.previousState&&t.parent.parent.previousState.answers&&t.parent.parent.previousState.answers[t.parent.index]&&t.parent.parent.previousState.answers[t.parent.index][n]&&(i.userDatas={state:t.parent.parent.previousState.answers[t.parent.index][n]}),i.params=i.params||{},t.instance=H5P.newRunnable(i,t.parent.parent.contentId,void 0,!0,{parent:t.parent.parent}),void 0!==t.instance.preventResize&&(t.instance.preventResize=!0)}void 0===t.parent.parent.elementInstances[t.parent.index]?t.parent.parent.elementInstances[t.parent.index]=[t.instance]:t.parent.parent.elementInstances[t.parent.index].push(t.instance),void 0!==t.instance.showCPComments||t.instance.isTask||void 0===t.instance.isTask&&void 0!==t.instance.showSolutions?(t.instance.coursePresentationIndexOnSlide=t.parent.parent.elementInstances[t.parent.index].length-1,void 0===t.parent.parent.slidesWithSolutions[t.parent.index]&&(t.parent.parent.slidesWithSolutions[t.parent.index]=[]),t.parent.parent.slidesWithSolutions[t.parent.index].push(t.instance)):e.solution&&(void 0===t.parent.parent.showCommentsAfterSolution[t.parent.index]&&(t.parent.parent.showCommentsAfterSolution[t.parent.index]=[]),t.parent.parent.showCommentsAfterSolution[t.parent.index].push(t.instance)),void 0!==t.instance.exportAnswers&&t.instance.exportAnswers&&(t.parent.parent.hasAnswerElements=!0),t.parent.parent.isTask||t.parent.parent.hideSummarySlide||(t.instance.isTask||void 0===t.instance.isTask&&void 0!==t.instance.showSolutions)&&(t.parent.parent.isTask=!0)};function ie(e){return ie="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ie(e)}function ne(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function re(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?ne(Object(i),!0).forEach((function(t){se(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):ne(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function se(e,t,i){var n;return n=function(e,t){if("object"!=ie(e)||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,t||"default");if("object"!=ie(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(t,"string"),(t="symbol"==ie(n)?n:n+"")in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function oe(e){var i,n=this;t().call(n,te,e.elements),n.getElement=function(){return i||(i=H5P.jQuery(oe.createHTML(re(re({},e),{},{index:n.index})))),i},n.setCurrent=function(){this.parent.$current=i.addClass("h5p-current")},n.appendElements=function(){for(var t=0;t<n.children.length;t++)n.parent.attachElement(e.elements[t],n.children[t].instance,i,n.index);n.parent.elementsAttached[n.index]=!0,n.parent.trigger("domChanged",{$target:i,library:"CoursePresentation",key:"newSlide"},{bubbles:!0,external:!0})}}oe.createHTML=function(e){return'<div role="tabpanel" id="slide-'+e.index+'" aria-labelledby="progressbar-part-'+e.index+'" class="h5p-slide"> <div role="document" tabindex="0" '+(void 0!==e.background?' style="background:'+e.background+'"':"")+"></div></div>"};const ae=oe;const le=function(e){var t=new H5P.ConfirmationDialog(e).appendTo(document.body);return t.getElement().classList.add("h5p-cp-confirmation-dialog"),t.show(),t};function ce(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var n,r,s,o,a=[],l=!0,c=!1;try{if(s=(i=i.call(e)).next,0===t){if(Object(i)!==i)return;l=!1}else for(;!(l=(n=s.call(i)).done)&&(a.push(n.value),a.length!==t);l=!0);}catch(e){c=!0,r=e}finally{try{if(!l&&null!=i.return&&(o=i.return(),Object(o)!==o))return}finally{if(c)throw r}}return a}}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return de(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);"Object"===i&&e.constructor&&(i=e.constructor.name);if("Map"===i||"Set"===i)return Array.from(e);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return de(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function de(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}function pe(e){return pe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},pe(e)}var he=function(e,i,r){var s=this;this.presentation=e.presentation,this.slides=this.presentation.slides,this.contentId=i,this.elementInstances=[],this.elementsAttached=[],this.slidesWithSolutions=[],this.showCommentsAfterSolution=[],this.hasAnswerElements=!1,this.ignoreResize=!1,this.isTask=!1,this.standalone=!0,this.isReportingEnabled=!1,this.popups={},r.cpEditor&&(this.editor=r.cpEditor),r&&(this.previousState=r.previousState,this.standalone=r.standalone,this.isReportingEnabled=r.isReportingEnabled||r.isScoringEnabled),this.currentSlideIndex=this.previousState&&this.previousState.progress?this.previousState.progress:0,this.presentation.keywordListEnabled=void 0===e.presentation.keywordListEnabled||e.presentation.keywordListEnabled,this.l10n=n.extend({slide:"Slide",score:"Score",yourScore:"Your score",maxScore:"Max score",total:"Total",totalScore:"Total Score",showSolutions:"Show solutions",summary:"summary",retry:"Retry",exportAnswers:"Export text",close:"Close",hideKeywords:"Hide sidebar navigation menu",showKeywords:"Show sidebar navigation menu",fullscreen:"Fullscreen",exitFullscreen:"Exit fullscreen",prevSlide:"Previous slide",nextSlide:"Next slide",currentSlide:"Current slide",lastSlide:"Last slide",solutionModeTitle:"Exit solution mode",solutionModeText:"Solution Mode",summaryMultipleTaskText:"Multiple tasks",scoreMessage:"You achieved:",shareFacebook:"Share on Facebook",shareTwitter:"Share on Twitter",shareGoogle:"Share on Google+",goToSlide:"Go to slide :num",solutionsButtonTitle:"Show comments",printTitle:"Print",printIngress:"How would you like to print this presentation?",printAllSlides:"Print all slides",printCurrentSlide:"Print current slide",noTitle:"No title",accessibilitySlideNavigationExplanation:"Use left and right arrow to change slide in that direction whenever canvas is selected.",accessibilityProgressBarLabel:"Choose slide to display",containsNotCompleted:"@slideName contains not completed interaction",containsCompleted:"@slideName contains completed interaction",slideCount:"Slide @index of @total",accessibilityCanvasLabel:"Presentation canvas. Use left and right arrow to move between slides.",containsOnlyCorrect:"@slideName only has correct answers",containsIncorrectAnswers:"@slideName has incorrect answers",shareResult:"Share Result",accessibilityTotalScore:"You got @score of @maxScore points in total",accessibilityEnteredFullscreen:"Entered fullscreen",accessibilityExitedFullscreen:"Exited fullscreen",confirmDialogHeader:"Submit your answers",confirmDialogText:"This will submit your results, do you want to continue?",confirmDialogConfirmText:"Submit and see results",confirmDialogConfirmLabel:"Confirm",confirmDialogCancelLabel:"Cancel",slideshowNavigationLabel:"Slideshow navigation"},void 0!==e.l10n?e.l10n:{}),e.override&&(this.activeSurface=!!e.override.activeSurface,this.hideSummarySlide=!!e.override.hideSummarySlide,this.enablePrintButton=!!e.override.enablePrintButton,this.showSummarySlideSolutionButton=void 0===e.override.summarySlideSolutionButton||e.override.summarySlideSolutionButton,this.showSummarySlideRetryButton=void 0===e.override.summarySlideRetryButton||e.override.summarySlideRetryButton,e.override.social&&(this.enableTwitterShare=!!e.override.social.showTwitterShare,this.enableFacebookShare=!!e.override.social.showFacebookShare,this.enableGoogleShare=!!e.override.social.showGoogleShare,this.twitterShareStatement=e.override.social.twitterShare.statement,this.twitterShareHashtags=e.override.social.twitterShare.hashtags,this.twitterShareUrl=e.override.social.twitterShare.url,this.facebookShareUrl=e.override.social.facebookShare.url,this.facebookShareQuote=e.override.social.facebookShare.quote,this.googleShareUrl=e.override.social.googleShareUrl)),this.keywordMenu=new V({l10n:this.l10n,currentIndex:void 0!==this.previousState?this.previousState.progress:0}),this.setElementsOverride(e.override),t().call(this,ae,e.presentation.slides),this.on("resize",this.resize,this),this.on("printing",(function(e){s.ignoreResize=!e.data.finished,e.data.finished?s.resize():e.data.allSlides&&s.attachAllElements()}))};(he.prototype=Object.create(t().prototype)).constructor=he,he.prototype.getCurrentState=function(){var e=this,t=this.previousState?this.previousState:{};t.progress=this.getCurrentSlideIndex()||null,t.answers||(t.answers=[]),t.answered=this.elementInstances.map((function(t,i){return e.slideHasAnsweredTask(i)||null}));for(var i=0;i<this.elementInstances.length;i++)if(this.elementInstances[i])for(var n=0;n<this.elementInstances[i].length;n++){var r=this.elementInstances[i][n];(r.getCurrentState instanceof Function||"function"==typeof r.getCurrentState)&&(t.answers[i]||(t.answers[i]=[]),t.answers[i][n]=r.getCurrentState())}return t},he.prototype.slideHasAnsweredTask=function(e){return(this.slidesWithSolutions[e]||[]).filter((function(e){return a(e.getAnswerGiven)})).some((function(e){return e.getAnswerGiven()&&!H5P.isEmpty(e.getCurrentState())}))},he.prototype.attach=function(e){var t=this,i=this;void 0!==this.isRoot&&this.isRoot()&&this.setActivityStarted();var r='<div class="h5p-keymap-explanation hidden-but-read">'+(!this.activeSurface&&this.l10n.accessibilitySlideNavigationExplanation)+'</div><div class="h5p-fullscreen-announcer hidden-but-read" aria-live="polite"></div><div class="h5p-wrapper" tabindex="0" role="region" aria-roledescription="carousel" aria-label="'+(!this.activeSurface&&this.l10n.accessibilityCanvasLabel)+'">  <div class="h5p-current-slide-announcer hidden-but-read" aria-live="polite"></div>  <div tabindex="-1"></div>  <div class="h5p-box-wrapper">    <div class="h5p-presentation-wrapper">      <div class="h5p-keywords-wrapper"></div>     <div class="h5p-slides-wrapper"></div>    </div>  </div>  <nav class="h5p-cp-navigation" aria-label="'+this.l10n.slideshowNavigationLabel+'">    <div class="h5p-progressbar" role="tablist" aria-label="'+this.l10n.accessibilityProgressBarLabel+'"></div>  </nav>  <div class="h5p-footer"></div></div>';e.attr("role","application").addClass("h5p-course-presentation").html(r),this.$container=e,this.$slideAnnouncer=e.find(".h5p-current-slide-announcer"),this.$fullscreenAnnouncer=e.find(".h5p-fullscreen-announcer"),this.$slideTop=this.$slideAnnouncer.next(),this.$wrapper=e.children(".h5p-wrapper"),this.activeSurface&&this.$wrapper.addClass("h5p-course-presentation-active-surface"),this.$wrapper.focus((function(){i.initKeyEvents()})).blur((function(){void 0!==i.keydown&&(H5P.jQuery("body").unbind("keydown",i.keydown),delete i.keydown)})).click((function(e){var t=H5P.jQuery(e.target),n=i.belongsToTagName(e.target,["input","textarea","a","button"],e.currentTarget),r=i.hasTabIndex(e.target,e.currentTarget),s=t.closest(".h5p-popup-container"),o=0!==s.length;if(!n&&!r&&!i.editor)if(o){var a=t.closest("[tabindex]");1===a.closest(".h5p-popup-container").length?a.focus():s.find(".h5p-close-popup").focus()}else i.$wrapper.focus();i.presentation.keywordListEnabled&&!i.presentation.keywordListAlwaysShow&&i.presentation.keywordListAutoHide&&!t.is("textarea, .h5p-icon-pencil, span")&&i.hideKeywords()})),this.on("exitFullScreen",(function(){t.$footer.removeClass("footer-full-screen"),t.$fullScreenButton.attr("aria-label",t.l10n.fullscreen),t.$fullscreenAnnouncer.html(t.l10n.accessibilityExitedFullscreen)})),this.on("enterFullScreen",(function(){t.$fullscreenAnnouncer.html(t.l10n.accessibilityEnteredFullscreen)}));var s=parseInt(this.$wrapper.css("width"));this.width=0!==s?s:640;var o=parseInt(this.$wrapper.css("height"));this.height=0!==o?o:400,this.ratio=16/9,this.fontSize=16,this.$boxWrapper=this.$wrapper.children(".h5p-box-wrapper");var a,l=this.$boxWrapper.children(".h5p-presentation-wrapper");if(this.$slidesWrapper=l.children(".h5p-slides-wrapper"),this.$keywordsWrapper=l.children(".h5p-keywords-wrapper"),this.$progressbar=this.$wrapper.find(".h5p-progressbar"),this.$footer=this.$wrapper.children(".h5p-footer"),this.initKeywords=void 0===this.presentation.keywordListEnabled||!0===this.presentation.keywordListEnabled||void 0!==this.editor,this.activeSurface&&void 0===this.editor&&(this.initKeywords=!1,this.$boxWrapper.css("height","100%")),this.isSolutionMode=!1,this.createSlides(),this.elementsAttached[this.currentSlideIndex]=!0,this.showSummarySlide=!1,this.hideSummarySlide?this.showSummarySlide=!this.hideSummarySlide:this.slidesWithSolutions.forEach((function(e){i.showSummarySlide=e.length})),void 0===this.editor&&(this.showSummarySlide||this.hasAnswerElements)){var c={elements:[],keywords:[]};this.slides.push(c),(a=H5P.jQuery(ae.createHTML(c)).appendTo(this.$slidesWrapper)).addClass("h5p-summary-slide"),this.isCurrentSlide(this.slides.length-1)&&(this.$current=a)}var d=this.getKeywordMenuConfig();d.length>0||this.isEditor()?(this.keywordMenu.init(d),this.keywordMenu.on("select",(function(e){return t.keywordClick(e.data.index)})),this.keywordMenu.on("close",(function(){return t.hideKeywords()})),this.keywordMenu.on("select",(function(){t.$currentKeyword=t.$keywords.children(".h5p-current")})),this.$keywords=n(this.keywordMenu.getElement()).appendTo(this.$keywordsWrapper),this.$currentKeyword=this.$keywords.children(".h5p-current"),void 0!==this.presentation.keywordListOpacity&&this.setKeywordsOpacity(this.presentation.keywordListOpacity),this.presentation.keywordListAlwaysShow&&this.showKeywords()):(this.$keywordsWrapper.remove(),this.initKeywords=!1),void 0===this.editor&&this.activeSurface?(this.$progressbar.add(this.$footer).remove(),H5P.fullscreenSupported&&(this.$fullScreenButton=H5P.jQuery("<div/>",{class:"h5p-toggle-full-screen","aria-label":this.l10n.fullscreen,role:"button",tabindex:0,appendTo:this.$wrapper}),H5P.Tooltip(this.$fullScreenButton.get(0),{position:"left"}),m(this.$fullScreenButton,(function(){return i.toggleFullScreen()})))):(this.initTouchEvents(),this.navigationLine=new q(this),this.previousState&&this.previousState.progress||this.setSlideNumberAnnouncer(0,!1),this.summarySlideObject=new g(this,a)),new X(this),this.previousState&&this.previousState.progress&&this.jumpToSlide(this.previousState.progress,!1,null,!1,!0)},he.prototype.belongsToTagName=function(e,t,i){if(!e)return!1;i=i||document.body,"string"==typeof t&&(t=[t]),t=t.map((function(e){return e.toLowerCase()}));var n=e.tagName.toLowerCase();return-1!==t.indexOf(n)||i!==e&&this.belongsToTagName(e.parentNode,t,i)},he.prototype.hasTabIndex=function(e,t){if(-1!==e.tabIndex)return!0;var i=n(e).parents();for(var r in i){if(-1!==i[r].tabIndex)return!0;if(t&&i[r]===t)return!1}return!1},he.prototype.updateKeywordMenuFromSlides=function(){this.keywordMenu.removeAllMenuItemElements();var e=this.getKeywordMenuConfig();return n(this.keywordMenu.init(e))},he.prototype.getKeywordMenuConfig=function(){var e=this;return this.slides.map((function(t,i){return{title:e.createSlideTitle(t),subtitle:"".concat(e.l10n.slide," ").concat(i+1),index:i}})).filter((function(e){return null!==e.title}))},he.prototype.createSlideTitle=function(e){var t=this.isEditor()?this.l10n.noTitle:null;return this.hasKeywords(e)?e.keywords[0].main:t},he.prototype.isEditor=function(){return void 0!==this.editor},he.prototype.hasKeywords=function(e){return void 0!==e.keywords&&e.keywords.length>0},he.prototype.createSlides=function(){for(var e=this,t=0;t<e.children.length;t++){var i=t===e.currentSlideIndex;e.children[t].getElement().appendTo(e.$slidesWrapper),i&&e.children[t].setCurrent(),(e.isEditor()||0===t||1===t||i)&&e.children[t].appendElements()}},he.prototype.hasScoreData=function(e){return"undefined"!==pe(e)&&"function"==typeof e.getScore&&"function"==typeof e.getMaxScore},he.prototype.getScore=function(){var e=this;return o(e.slidesWithSolutions).reduce((function(t,i){return t+(e.hasScoreData(i)?i.getScore():0)}),0)},he.prototype.getMaxScore=function(){var e=this;return o(e.slidesWithSolutions).reduce((function(t,i){return t+(e.hasScoreData(i)?i.getMaxScore():0)}),0)},he.prototype.setProgressBarFeedback=function(e){var t=this;void 0!==e&&e?e.forEach((function(e){var i=t.progressbarParts[e.slide-1].find(".h5p-progressbar-part-has-task");if(i.hasClass("h5p-answered")){var n=e.score>=e.maxScore;i.addClass(n?"h5p-is-correct":"h5p-is-wrong"),t.navigationLine.updateSlideTitle(e.slide-1)}})):this.progressbarParts.forEach((function(e){e.find(".h5p-progressbar-part-has-task").removeClass("h5p-is-correct").removeClass("h5p-is-wrong")}))},he.prototype.toggleKeywords=function(){this[this.$keywordsWrapper.hasClass("h5p-open")?"hideKeywords":"showKeywords"]()},he.prototype.hideKeywords=function(){this.$keywordsWrapper.hasClass("h5p-open")&&(void 0!==this.$keywordsButton&&(this.$keywordsButton.attr("aria-label",this.l10n.showKeywords),this.$keywordsButton.attr("aria-expanded","false"),this.$keywordsButton.focus()),this.$keywordsWrapper.removeClass("h5p-open"))},he.prototype.showKeywords=function(){this.$keywordsWrapper.hasClass("h5p-open")||(void 0!==this.$keywordsButton&&(this.$keywordsButton.attr("aria-label",this.l10n.hideKeywords),this.$keywordsButton.attr("aria-expanded","true")),this.$keywordsWrapper.addClass("h5p-open"),this.presentation.keywordListAlwaysShow||this.$keywordsWrapper.find('li[tabindex="0"]').focus())},he.prototype.setKeywordsOpacity=function(e){if(""!==this.$keywordsWrapper.css("background-color")){var t=ce(this.$keywordsWrapper.css("background-color").match(/\d+/g),3),i=t[0],n=t[1],r=t[2];this.$keywordsWrapper.css("background-color","rgba(".concat(i,", ").concat(n,", ").concat(r,", ").concat(e/100,")"))}},he.prototype.fitCT=function(){void 0===this.editor&&this.$current.find(".h5p-ct").each((function(){for(var e=100,t=H5P.jQuery(this),i=t.parent().height();t.outerHeight()>i&&(e--,t.css({fontSize:e+"%",lineHeight:e+65+"%"}),!(e<0)););}))},he.prototype.resize=function(){var e=this.$container.hasClass("h5p-fullscreen")||this.$container.hasClass("h5p-semi-fullscreen");if(!this.ignoreResize){this.$wrapper.css("width","auto");var t=this.$container.width(),i={};if(e){var n=this.$container.height();t/n>this.ratio&&(t=n*this.ratio,i.width=t+"px")}var r=t/this.width;i.height=t/this.ratio+"px",i.fontSize=this.fontSize*r+"px",void 0!==this.editor&&this.editor.setContainerEm(this.fontSize*r*.75),this.$wrapper.css(i),this.swipeThreshold=100*r;var s=this.elementInstances[this.$current.index()];if(void 0!==s)for(var o=this.slides[this.$current.index()].elements,a=0;a<s.length;a++){var l=s[a];void 0!==l.preventResize&&!1!==l.preventResize||void 0===l.$||o[a].displayAsButton||H5P.trigger(l,"resize")}this.fitCT()}},he.prototype.toggleFullScreen=function(){H5P.isFullscreen||this.$container.hasClass("h5p-fullscreen")||this.$container.hasClass("h5p-semi-fullscreen")?void 0!==H5P.exitFullScreen&&void 0!==H5P.fullScreenBrowserPrefix?H5P.exitFullScreen():void 0===H5P.fullScreenBrowserPrefix?H5P.jQuery(".h5p-disable-fullscreen").click():""===H5P.fullScreenBrowserPrefix?window.top.document.exitFullScreen():"ms"===H5P.fullScreenBrowserPrefix?window.top.document.msExitFullscreen():window.top.document[H5P.fullScreenBrowserPrefix+"CancelFullScreen"]():(this.$footer.addClass("footer-full-screen"),this.$fullScreenButton.attr("aria-label",this.l10n.exitFullscreen),H5P.fullScreen(this.$container,this),void 0===H5P.fullScreenBrowserPrefix&&H5P.jQuery(".h5p-disable-fullscreen").hide())},he.prototype.focus=function(){this.$wrapper.focus()},he.prototype.keywordClick=function(e){this.shouldHideKeywordsAfterSelect()&&this.hideKeywords(),this.jumpToSlide(e,!0)},he.prototype.shouldHideKeywordsAfterSelect=function(){return this.presentation.keywordListEnabled&&!this.presentation.keywordListAlwaysShow&&this.presentation.keywordListAutoHide&&void 0===this.editor},he.prototype.setElementsOverride=function(e){this.elementsOverride={params:{}},e&&(this.elementsOverride.params.behaviour={},e.showSolutionButton&&(this.elementsOverride.params.behaviour.enableSolutionsButton="on"===e.showSolutionButton),e.retryButton&&(this.elementsOverride.params.behaviour.enableRetry="on"===e.retryButton))},he.prototype.attachElements=function(e,t){if(void 0===this.elementsAttached[t]){var i=this.slides[t],n=this.elementInstances[t];if(void 0!==i.elements)for(var r=0;r<i.elements.length;r++)this.attachElement(i.elements[r],n[r],e,t);this.trigger("domChanged",{$target:e,library:"CoursePresentation",key:"newSlide"},{bubbles:!0,external:!0}),this.elementsAttached[t]=!0}},he.prototype.attachElement=function(e,t,i,n){var r=void 0!==e.displayAsButton&&e.displayAsButton,s=void 0!==e.buttonSize?"h5p-element-button-"+e.buttonSize:"",o="h5p-element"+(r?" h5p-element-button-wrapper":"")+(s.length?" "+s:""),a=H5P.jQuery("<div>",{class:o}).css({left:e.x+"%",top:e.y+"%",width:e.width+"%",height:e.height+"%"}).appendTo(i.children('[role="document"]').first()),l=void 0===e.backgroundOpacity||0===e.backgroundOpacity;if(a.toggleClass("h5p-transparent",l),r){this.createInteractionButton(e,t).appendTo(a)}else{var c=e.action&&e.action.library?this.getLibraryTypePmz(e.action.library):"other",d=H5P.jQuery("<div>",{class:"h5p-element-outer ".concat(c,"-outer-element")}).css({background:"rgba(255,255,255,"+(void 0===e.backgroundOpacity?0:e.backgroundOpacity/100)+")"}).appendTo(a),p=H5P.jQuery("<div>",{class:"h5p-element-inner"}).appendTo(d);if(t.on("set-size",(function(e){for(var t in e.data)a.get(0).style[t]=e.data[t]})),t.attach(p),void 0!==e.action&&"H5P.InteractiveVideo"===e.action.library.substr(0,20)){var h=function(){t.$container.addClass("h5p-fullscreen"),t.controls.$fullscreen&&t.controls.$fullscreen.remove(),t.hasFullScreen=!0,t.controls.$play.hasClass("h5p-pause")?t.$controls.addClass("h5p-autohide"):t.enableAutoHide()};void 0!==t.controls?h():t.on("controls",h)}this.setOverflowTabIndex()}return void 0!==this.editor?this.editor.processElement(e,a,n,t):(e.solution&&this.addElementSolutionButton(e,t,a),this.hasAnswerElements=this.hasAnswerElements||void 0!==t.exportAnswers),a},he.prototype.disableTabIndexes=function(){var e=this.$container.find(".h5p-popup-container");this.$tabbables=this.$container.find("a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]").filter((function(){var t=n(this),i=n.contains(e.get(0),t.get(0));if(t.data("tabindex"))return!0;if(!i){var r=t.attr("tabindex");return t.data("tabindex",r),t.attr("tabindex","-1"),!0}return!1}))},he.prototype.restoreTabIndexes=function(){this.$tabbables&&this.$tabbables.each((function(){var e=n(this),t=e.data("tabindex");e.hasClass("ui-slider-handle")?(e.attr("tabindex",0),e.removeData("tabindex")):void 0!==t?(e.attr("tabindex",t),e.removeData("tabindex")):e.removeAttr("tabindex")}))},he.prototype.createInteractionButton=function(e,t){var i,r,s=this,o=e.action.metadata?e.action.metadata.title:"";""!==o&&void 0!==o||(o=(null===(i=e.action)||void 0===i||null===(i=i.params)||void 0===i?void 0:i.contentName)||(null===(r=e.action)||void 0===r||null===(r=r.params)||void 0===r?void 0:r.title)||e.action.library.split(" ")[0].split(".")[1]);var a=this.getLibraryTypePmz(e.action.library),l=n("<div>",{role:"button",tabindex:0,"aria-label":o,"aria-haspopup":"dialog","aria-expanded":!1,class:"h5p-element-button h5p-element-button-".concat(e.buttonSize," ").concat(a,"-button")}),c=n('<div class="h5p-button-element"></div>');t.attach(c);var d="h5p-advancedtext"===a?{x:e.x,y:e.y}:null;return m(l,(function(){var e;l.attr("aria-expanded","true"),s.showInteractionPopup(t,l,c,a,(e=l,function(){return e.attr("aria-expanded","false")}),d)})),void 0!==e.action&&"H5P.InteractiveVideo"===e.action.library.substr(0,20)&&t.on("controls",(function(){t.controls.$fullscreen&&t.controls.$fullscreen.remove()})),l},he.prototype.showInteractionPopup=function(e,t,i,n,r){var s=this,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,l=function(){e.trigger("resize")};this.isEditor()||(this.on("exitFullScreen",l),this.showPopup({popupContent:i,$focusOnClose:t,parentPosition:o,remove:function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0]||i.detach(),s.off("exitFullScreen",l),r()},classes:n,instance:e,keepInDOM:"h5p-interactivevideo"===n}),H5P.trigger(e,"resize"),"h5p-image"===n&&this.resizePopupImage(i),setTimeout((function(){var e=i.find(":input").add(i.find("[tabindex]"));e.length?e[0].focus():(i.attr("tabindex",0),i.focus())}),200),a(e.setActivityStarted)&&a(e.getScore)&&e.setActivityStarted())},he.prototype.getLibraryTypePmz=function(e){return(t=e.split(" ")[0],t.replace(/[\W]/g,"-")).toLowerCase();var t},he.prototype.resizePopupImage=function(e){var t=Number(e.css("fontSize").replace("px","")),i=e.find("img"),n=function(i,n){if(!(n/t<18.5)){var r=i/n;n=18.5*t,e.css({width:n*r,height:n})}};i.height()?n(i.width(),i.height()):i.one("load",(function(){n(this.width,this.height)}))},he.prototype.addElementSolutionButton=function(e,t,i){var r=this;t.showCPComments=function(){if(0===i.children(".h5p-element-solution").length&&(o=e.solution,v.html(o).text().trim()).length>0){var t=n("<div/>",{role:"button",tabindex:0,title:r.l10n.solutionsButtonTitle,"aria-haspopup":"dialog","aria-expanded":!1,class:"h5p-element-solution"}).append('<span class="joubel-icon-comment-normal"><span class="h5p-icon-shadow"></span><span class="h5p-icon-speech-bubble"></span><span class="h5p-icon-question"></span></span>').appendTo(i),s={x:e.x,y:e.y};e.displayAsButton||(s.x+=e.width-4,s.y+=e.height-12),m(t,(function(i){r.showPopup({popupContent:e.solution,$focusOnClose:t,parentPosition:s,updateAriaExpanded:!0}),t.attr("aria-expanded",!0),i.stopPropagation()}))}var o},void 0!==e.alwaysDisplayComments&&e.alwaysDisplayComments&&t.showCPComments()},he.prototype.showPopup=function(e){var t,i,r=this,s=e.popupContent,o=e.$focusOnClose,a=e.parentPosition,l=void 0===a?null:a,c=e.remove,d=e.classes,p=void 0===d?"h5p-popup-comment-field":d,h=e.instance,f=e.keepInDOM,v=void 0!==f&&f,g=e.updateAriaExpanded,b=this;if(this.popupId=void 0===this.popupId?0:this.popupId+1,this.closePopup=function(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];t?t=!1:(b.restoreTabIndexes(),n&&o.focus(),g&&o.attr("aria-expanded",!1),void 0!==c&&setTimeout((function(){c(v)}),100),e&&e.preventDefault(),i.addClass("h5p-animate"),i.find(".h5p-popup-container").addClass("h5p-animate"),setTimeout((function(){v?i.hide():i.remove()}),100))},v&&h&&b.popups[h.subContentId]&&(i=b.popups[h.subContentId]),void 0===i){var y=(i=n('<div class="h5p-popup-overlay '+p+'"><div class="h5p-popup-container" role="dialog"aria-modal="true" aria-live="true" aria-labelledby="popup-title-'+this.popupId+'"> <div role="button" tabindex="0" class="h5p-close-popup" title="'+this.l10n.close+'"></div><div class="h5p-popup-wrapper" role="document"></div></div></div>')).find(".h5p-popup-wrapper");s instanceof H5P.jQuery?y.append(s):y.html(s);var S="";y.children().each((function(e,t){t.setAttribute("id","popup-content-"+r.popupId+"-"+e),S+="popup-content-"+r.popupId+"-"+e+" "})),i.find(".h5p-popup-container").attr("aria-describedby",S),h&&h.subContentId&&(b.popups[h.subContentId]=i)}var w=i.find(".h5p-popup-container");return function(e,t,i){if(i){t.css({visibility:"hidden"}),e.prependTo(r.$wrapper);var n=t.height(),s=t.width(),o=e.height(),a=s*(100/e.width()),l=n*(100/o);if(a>50&&l>50)e.detach();else{a>l&&l<45&&(a=Math.sqrt(a*l),t.css({width:a+"%"}));a>90?a=90:a<22&&(a=22);var c=100-a-5,d=i.x;i.x>c?d=c:i.x<5&&(d=5);var p=100-(l=t.height()*(100/o))-10,h=i.y;i.y>p?h=p:i.y<10&&(h=10),e.detach(),t.css({left:d+"%",top:h+"%"})}}}(i,w,l),i.addClass("h5p-animate"),w.css({visibility:""}).addClass("h5p-animate"),0===i.parent().length?i.prependTo(this.$wrapper):i.show(),i.removeClass("h5p-animate").click(b.closePopup).find(".h5p-popup-container").removeClass("h5p-animate").click((function(){t=!0})).keydown((function(e){e.which===u&&b.closePopup(e)})).find(".h5p-close-popup").focus(),this.disableTabIndexes(),m(i.find(".h5p-close-popup"),(function(e){return b.closePopup(e)})),i},he.prototype.checkForSolutions=function(e){return void 0!==e.showSolutions||void 0!==e.showCPComments},he.prototype.initKeyEvents=function(){if(void 0===this.keydown&&!this.activeSurface){var e=this,t=!1;this.keydown=function(i){t||((37!==i.keyCode&&33!==i.keyCode||!e.previousSlide(void 0,!1))&&(39!==i.keyCode&&34!==i.keyCode||!e.nextSlide(void 0,!1))||(i.preventDefault(),t=!0),t&&setTimeout((function(){t=!1}),300))},H5P.jQuery("body").keydown(this.keydown)}},he.prototype.initTouchEvents=function(){var e,t,i,n,r,s,o=this,a=!1,l=!1,c=function(e){return{"-webkit-transform":e,"-moz-transform":e,"-ms-transform":e,transform:e}},d=c("");this.$slidesWrapper.bind("touchstart",(function(c){l=!1,i=e=c.originalEvent.touches[0].pageX,t=c.originalEvent.touches[0].pageY;var d=o.$slidesWrapper.width();n=0===o.currentSlideIndex?0:-d,r=o.currentSlideIndex+1>=o.slides.length?0:d,s=null,a=!0})).bind("touchmove",(function(d){var p=d.originalEvent.touches;a&&(o.$current.prev().addClass("h5p-touch-move"),o.$current.next().addClass("h5p-touch-move"),a=!1),i=p[0].pageX;var h=e-i;null===s&&(s=Math.abs(t-d.originalEvent.touches[0].pageY)>Math.abs(h)),1!==p.length||s||(d.preventDefault(),l||(h<0?o.$current.prev().css(c("translateX("+(n-h)+"px")):o.$current.next().css(c("translateX("+(r-h)+"px)")),o.$current.css(c("translateX("+-h+"px)"))))})).bind("touchend",(function(){if(!s){var t=e-i;if(t>o.swipeThreshold&&o.nextSlide(void 0,!1)||t<-o.swipeThreshold&&o.previousSlide(void 0,!1))return}o.$slidesWrapper.children().css(d).removeClass("h5p-touch-move")}))},he.prototype.updateTouchPopup=function(e,t,i,n){if(arguments.length<=0)void 0!==this.touchPopup&&this.touchPopup.remove();else{var r="";if(void 0!==this.$keywords&&void 0!==this.$keywords.children(":eq("+t+")").find("span").html())r+=this.$keywords.children(":eq("+t+")").find("span").html();else{var s=t+1;r+=this.l10n.slide+" "+s}void 0===this.editor&&t>=this.slides.length-1&&(r=this.l10n.showSolutions),void 0===this.touchPopup?this.touchPopup=H5P.jQuery("<div/>",{class:"h5p-touch-popup"}).insertAfter(e):this.touchPopup.insertAfter(e),n-.15*e.parent().height()<0?n=0:n-=.15*e.parent().height(),this.touchPopup.css({"max-width":e.width()-i,left:i,top:n}),this.touchPopup.html(r)}},he.prototype.previousSlide=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this.$current.prev();return!!i.length&&(t?this.processJumpToSlide(i.index(),e,!1):this.jumpToSlide(i.index(),e,null,!1))},he.prototype.nextSlide=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this.$current.next();return!!i.length&&(t?this.processJumpToSlide(i.index(),e,!1):this.jumpToSlide(i.index(),e,null,!1))},he.prototype.isCurrentSlide=function(e){return this.currentSlideIndex===e},he.prototype.getCurrentSlideIndex=function(){return this.currentSlideIndex},he.prototype.attachAllElements=function(){for(var e=this.$slidesWrapper.children(),t=0;t<this.slides.length;t++)this.attachElements(e.eq(t),t);void 0!==this.summarySlideObject&&this.summarySlideObject.updateSummarySlide(this.slides.length-1,!0)},he.prototype.processJumpToSlide=function(e,t,i){var n=this;if(void 0===this.editor&&this.contentId){var r=this.createXAPIEventTemplate("progressed");r.data.statement.object.definition.extensions["http://id.tincanapi.com/extension/ending-point"]=e+1,this.trigger(r)}if(!this.$current.hasClass("h5p-animate")){var s=this.$current.addClass("h5p-animate"),o=n.$slidesWrapper.children(),a=o.filter(":lt("+e+")");this.$current=o.eq(e).addClass("h5p-animate");var l=this.currentSlideIndex;this.currentSlideIndex=e,this.attachElements(this.$current,e);var c=this.$current.next();return c.length&&this.attachElements(c,e+1),this.setOverflowTabIndex(),setTimeout((function(){s.removeClass("h5p-current"),o.css({"-webkit-transform":"","-moz-transform":"","-ms-transform":"",transform:""}).removeClass("h5p-touch-move").removeClass("h5p-previous"),a.addClass("h5p-previous"),n.$current.addClass("h5p-current"),n.trigger("changedSlide",n.$current.index())}),1),setTimeout((function(){if(n.$slidesWrapper.children().removeClass("h5p-animate"),void 0===n.editor){var e=n.elementInstances[n.currentSlideIndex],t=n.slides[n.currentSlideIndex].elements;if(void 0!==e)for(var i=0;i<e.length;i++)t[i].displayAsButton||"function"!=typeof e[i].setActivityStarted||"function"!=typeof e[i].getScore||e[i].setActivityStarted()}}),250),void 0!==this.$keywords&&(this.keywordMenu.setCurrentSlideIndex(e),this.$currentKeyword=this.$keywords.find(".h5p-current"),t||this.keywordMenu.scrollToKeywords(e)),n.presentation.keywordListEnabled&&n.presentation.keywordListAlwaysShow&&n.showKeywords(),n.navigationLine&&(n.navigationLine.updateProgressBar(e,l,this.isSolutionMode),n.navigationLine.updateFooter(e),this.setSlideNumberAnnouncer(e,i)),n.summarySlideObject&&n.summarySlideObject.updateSummarySlide(e,!0),void 0!==this.editor&&void 0!==this.editor.dnb&&(this.editor.dnb.setContainer(this.$current),this.editor.dnb.blurAll()),this.trigger("resize"),this.fitCT(),!0}},he.prototype.jumpToSlide=function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],s=arguments.length>4&&void 0!==arguments[4]&&arguments[4];if(this.standalone&&this.showSummarySlide&&e===this.slides.length-1&&!this.isSolutionMode&&this.isReportingEnabled&&!s){if(this.currentSlideIndex===this.slides.length-1)return!1;var o=le({headerText:this.l10n.confirmDialogHeader,dialogText:this.l10n.confirmDialogText,confirmText:this.l10n.confirmDialogConfirmLabel,cancelText:this.l10n.confirmDialogCancelLabel});o.on("canceled",(function(){return!1})),o.on("confirmed",(function(){t.processJumpToSlide(e,i,r),n&&n()}))}else this.processJumpToSlide(e,i,r),n&&n()},he.prototype.setOverflowTabIndex=function(){void 0!==this.$current&&this.$current.find(".h5p-element-inner").each((function(){var e,t=n(this);this.classList.contains("h5p-table")&&(e=t.find(".h5p-table").outerHeight());var i=t.closest(".h5p-element-outer").innerHeight();void 0!==e&&null!==i&&e>i&&t.attr("tabindex",0)}))},he.prototype.setSlideNumberAnnouncer=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i="";if(!this.navigationLine)return i;var n=this.slides[e];n.keywords&&n.keywords.length>0&&!this.navigationLine.isSummarySlide(e)&&(i+=this.l10n.slide+" "+(e+1)+": "),i+=this.navigationLine.createSlideTitle(e),this.$slideAnnouncer.html(i),t&&this.$slideTop.focus()},he.prototype.resetTask=function(){var e,t,i=arguments.length>0&&void 0!==arguments[0]&&arguments[0];null===(e=this.summarySlideObject)||void 0===e||e.toggleSolutionMode(!1);for(var n=0;n<this.elementInstances.length;n++)if(this.elementInstances[n])for(var r=0;r<this.elementInstances[n].length;r++){var s=this.elementInstances[n][r];s.resetTask&&s.resetTask()}null===(t=this.navigationLine)||void 0===t||t.updateProgressBar(0),this.$container&&(this.jumpToSlide(0,!1),this.closePopup&&this.closePopup(void 0,i))},he.prototype.showSolutions=function(){for(var e=!1,t=[],i=!1,n=0;n<this.slidesWithSolutions.length;n++){if(void 0!==this.slidesWithSolutions[n]){this.elementsAttached[n]||this.attachElements(this.$slidesWrapper.children(":eq("+n+")"),n),e||(this.jumpToSlide(n,!1),e=!0);for(var r=0,s=0,o=[],a=0;a<this.slidesWithSolutions[n].length;a++){var l=this.slidesWithSolutions[n][a];void 0!==l.addSolutionButton&&l.addSolutionButton(),l.showSolutions&&l.showSolutions(),l.showCPComments&&l.showCPComments(),void 0!==l.getMaxScore&&(s+=l.getMaxScore(),r+=l.getScore(),i=!0,o.push(l.coursePresentationIndexOnSlide))}t.push({indexes:o,slide:n+1,score:r,maxScore:s})}if(this.showCommentsAfterSolution[n])for(var c=0;c<this.showCommentsAfterSolution[n].length;c++)"function"==typeof this.showCommentsAfterSolution[n][c].showCPComments&&this.showCommentsAfterSolution[n][c].showCPComments()}if(i)return t},he.prototype.getSlideScores=function(e){for(var t=!0===e,i=[],n=!1,r=0;r<this.slidesWithSolutions.length;r++)if(void 0!==this.slidesWithSolutions[r]){this.elementsAttached[r]||this.attachElements(this.$slidesWrapper.children(":eq("+r+")"),r),t||(this.jumpToSlide(r,!1),t=!0);for(var s=0,o=0,a=[],l=0;l<this.slidesWithSolutions[r].length;l++){var c=this.slidesWithSolutions[r][l];void 0!==c.getMaxScore&&(o+=c.getMaxScore(),s+=c.getScore(),n=!0,a.push(c.coursePresentationIndexOnSlide))}i.push({indexes:a,slide:r+1,score:s,maxScore:o})}if(n)return i},he.prototype.getCopyrights=function(){var e,t=new H5P.ContentCopyrights;if(this.presentation&&this.presentation.globalBackgroundSelector&&this.presentation.globalBackgroundSelector.imageGlobalBackground){var i=this.presentation.globalBackgroundSelector.imageGlobalBackground,n=new H5P.MediaCopyright(i.copyright);n.setThumbnail(new H5P.Thumbnail(H5P.getPath(i.path,this.contentId),i.width,i.height)),t.addMedia(n)}for(var r=0;r<this.slides.length;r++){var s=new H5P.ContentCopyrights;if(s.setLabel(this.l10n.slide+" "+(r+1)),this.slides[r]&&this.slides[r].slideBackgroundSelector&&this.slides[r].slideBackgroundSelector.imageSlideBackground){var o=this.slides[r].slideBackgroundSelector.imageSlideBackground,a=new H5P.MediaCopyright(o.copyright);a.setThumbnail(new H5P.Thumbnail(H5P.getPath(o.path,this.contentId),o.width,o.height)),s.addMedia(a)}if(void 0!==this.elementInstances[r])for(var l=0;l<this.elementInstances[r].length;l++){var c=this.elementInstances[r][l];if(this.slides[r].elements[l].action){var d=this.slides[r].elements[l].action.params,p=this.slides[r].elements[l].action.metadata;e=void 0,void 0!==c.getCopyrights&&(e=c.getCopyrights()),void 0===e&&(e=new H5P.ContentCopyrights,H5P.findCopyrights(e,d,this.contentId,{metadata:p,machineName:c.libraryInfo.machineName}));var h=l+1;void 0!==d.contentName?h+=": "+d.contentName:void 0!==c.getTitle?h+=": "+c.getTitle():d.l10n&&d.l10n.name&&(h+=": "+d.l10n.name),e.setLabel(h),s.addContent(e)}}t.addContent(s)}return t},he.prototype.getXAPIData=function(){var e=this.createXAPIEventTemplate("answered"),t=e.getVerifiedStatementValue(["object","definition"]);H5P.jQuery.extend(t,{interactionType:"compound",type:"http://adlnet.gov/expapi/activities/cmi.interaction"});var i=this.getScore(),n=this.getMaxScore();e.setScoredResult(i,n,this,!0,i===n);var r=o(this.slidesWithSolutions).map((function(e){if(e&&e.getXAPIData)return e.getXAPIData()})).filter((function(e){return!!e}));return{statement:e.data.statement,children:r}},he.prototype.getContext=function(){return{type:"slide",value:this.currentSlideIndex+1}};const ue=he;H5P=H5P||{},H5P.Tooltip=H5P.Tooltip||function(){},H5P.CoursePresentation=ue})()})();;/*! For license information please see h5p-interactive-book.js.LICENSE.txt */
(()=>{var t={880:t=>{"use strict";t.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},250:(t,e,s)=>{var a=s(880),r=s(852),i=Object.hasOwnProperty,n=Object.create(null);for(var o in a)i.call(a,o)&&(n[a[o]]=o);var c=t.exports={to:{},get:{}};function h(t,e,s){return Math.min(Math.max(e,t),s)}function l(t){var e=Math.round(t).toString(16).toUpperCase();return e.length<2?"0"+e:e}c.get=function(t){var e,s;switch(t.substring(0,3).toLowerCase()){case"hsl":e=c.get.hsl(t),s="hsl";break;case"hwb":e=c.get.hwb(t),s="hwb";break;default:e=c.get.rgb(t),s="rgb"}return e?{model:s,value:e}:null},c.get.rgb=function(t){if(!t)return null;var e,s,r,n=[0,0,0,1];if(e=t.match(/^#([a-f0-9]{6})([a-f0-9]{2})?$/i)){for(r=e[2],e=e[1],s=0;s<3;s++){var o=2*s;n[s]=parseInt(e.slice(o,o+2),16)}r&&(n[3]=parseInt(r,16)/255)}else if(e=t.match(/^#([a-f0-9]{3,4})$/i)){for(r=(e=e[1])[3],s=0;s<3;s++)n[s]=parseInt(e[s]+e[s],16);r&&(n[3]=parseInt(r+r,16)/255)}else if(e=t.match(/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/)){for(s=0;s<3;s++)n[s]=parseInt(e[s+1],0);e[4]&&(e[5]?n[3]=.01*parseFloat(e[4]):n[3]=parseFloat(e[4]))}else{if(!(e=t.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/)))return(e=t.match(/^(\w+)$/))?"transparent"===e[1]?[0,0,0,0]:i.call(a,e[1])?((n=a[e[1]])[3]=1,n):null:null;for(s=0;s<3;s++)n[s]=Math.round(2.55*parseFloat(e[s+1]));e[4]&&(e[5]?n[3]=.01*parseFloat(e[4]):n[3]=parseFloat(e[4]))}for(s=0;s<3;s++)n[s]=h(n[s],0,255);return n[3]=h(n[3],0,1),n},c.get.hsl=function(t){if(!t)return null;var e=t.match(/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/);if(e){var s=parseFloat(e[4]);return[(parseFloat(e[1])%360+360)%360,h(parseFloat(e[2]),0,100),h(parseFloat(e[3]),0,100),h(isNaN(s)?1:s,0,1)]}return null},c.get.hwb=function(t){if(!t)return null;var e=t.match(/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/);if(e){var s=parseFloat(e[4]);return[(parseFloat(e[1])%360+360)%360,h(parseFloat(e[2]),0,100),h(parseFloat(e[3]),0,100),h(isNaN(s)?1:s,0,1)]}return null},c.to.hex=function(){var t=r(arguments);return"#"+l(t[0])+l(t[1])+l(t[2])+(t[3]<1?l(Math.round(255*t[3])):"")},c.to.rgb=function(){var t=r(arguments);return t.length<4||1===t[3]?"rgb("+Math.round(t[0])+", "+Math.round(t[1])+", "+Math.round(t[2])+")":"rgba("+Math.round(t[0])+", "+Math.round(t[1])+", "+Math.round(t[2])+", "+t[3]+")"},c.to.rgb.percent=function(){var t=r(arguments),e=Math.round(t[0]/255*100),s=Math.round(t[1]/255*100),a=Math.round(t[2]/255*100);return t.length<4||1===t[3]?"rgb("+e+"%, "+s+"%, "+a+"%)":"rgba("+e+"%, "+s+"%, "+a+"%, "+t[3]+")"},c.to.hsl=function(){var t=r(arguments);return t.length<4||1===t[3]?"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)":"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+t[3]+")"},c.to.hwb=function(){var t=r(arguments),e="";return t.length>=4&&1!==t[3]&&(e=", "+t[3]),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+e+")"},c.to.keyword=function(t){return n[t.slice(0,3)]}},308:(t,e,s)=>{const a=s(250),r=s(349),i=["keyword","gray","hex"],n={};for(const t of Object.keys(r))n[[...r[t].labels].sort().join("")]=t;const o={};function c(t,e){if(!(this instanceof c))return new c(t,e);if(e&&e in i&&(e=null),e&&!(e in r))throw new Error("Unknown model: "+e);let s,h;if(null==t)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(t instanceof c)this.model=t.model,this.color=[...t.color],this.valpha=t.valpha;else if("string"==typeof t){const e=a.get(t);if(null===e)throw new Error("Unable to parse color from string: "+t);this.model=e.model,h=r[this.model].channels,this.color=e.value.slice(0,h),this.valpha="number"==typeof e.value[h]?e.value[h]:1}else if(t.length>0){this.model=e||"rgb",h=r[this.model].channels;const s=Array.prototype.slice.call(t,0,h);this.color=d(s,h),this.valpha="number"==typeof t[h]?t[h]:1}else if("number"==typeof t)this.model="rgb",this.color=[t>>16&255,t>>8&255,255&t],this.valpha=1;else{this.valpha=1;const e=Object.keys(t);"alpha"in t&&(e.splice(e.indexOf("alpha"),1),this.valpha="number"==typeof t.alpha?t.alpha:0);const a=e.sort().join("");if(!(a in n))throw new Error("Unable to parse color from object: "+JSON.stringify(t));this.model=n[a];const{labels:i}=r[this.model],o=[];for(s=0;s<i.length;s++)o.push(t[i[s]]);this.color=d(o)}if(o[this.model])for(h=r[this.model].channels,s=0;s<h;s++){const t=o[this.model][s];t&&(this.color[s]=t(this.color[s]))}this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze&&Object.freeze(this)}c.prototype={toString(){return this.string()},toJSON(){return this[this.model]()},string(t){let e=this.model in a.to?this:this.rgb();e=e.round("number"==typeof t?t:1);const s=1===e.valpha?e.color:[...e.color,this.valpha];return a.to[e.model](s)},percentString(t){const e=this.rgb().round("number"==typeof t?t:1),s=1===e.valpha?e.color:[...e.color,this.valpha];return a.to.rgb.percent(s)},array(){return 1===this.valpha?[...this.color]:[...this.color,this.valpha]},object(){const t={},{channels:e}=r[this.model],{labels:s}=r[this.model];for(let a=0;a<e;a++)t[s[a]]=this.color[a];return 1!==this.valpha&&(t.alpha=this.valpha),t},unitArray(){const t=this.rgb().color;return t[0]/=255,t[1]/=255,t[2]/=255,1!==this.valpha&&t.push(this.valpha),t},unitObject(){const t=this.rgb().object();return t.r/=255,t.g/=255,t.b/=255,1!==this.valpha&&(t.alpha=this.valpha),t},round(t){return t=Math.max(t||0,0),new c([...this.color.map(h(t)),this.valpha],this.model)},alpha(t){return void 0!==t?new c([...this.color,Math.max(0,Math.min(1,t))],this.model):this.valpha},red:l("rgb",0,p(255)),green:l("rgb",1,p(255)),blue:l("rgb",2,p(255)),hue:l(["hsl","hsv","hsl","hwb","hcg"],0,(t=>(t%360+360)%360)),saturationl:l("hsl",1,p(100)),lightness:l("hsl",2,p(100)),saturationv:l("hsv",1,p(100)),value:l("hsv",2,p(100)),chroma:l("hcg",1,p(100)),gray:l("hcg",2,p(100)),white:l("hwb",1,p(100)),wblack:l("hwb",2,p(100)),cyan:l("cmyk",0,p(100)),magenta:l("cmyk",1,p(100)),yellow:l("cmyk",2,p(100)),black:l("cmyk",3,p(100)),x:l("xyz",0,p(95.047)),y:l("xyz",1,p(100)),z:l("xyz",2,p(108.833)),l:l("lab",0,p(100)),a:l("lab",1),b:l("lab",2),keyword(t){return void 0!==t?new c(t):r[this.model].keyword(this.color)},hex(t){return void 0!==t?new c(t):a.to.hex(this.rgb().round().color)},hexa(t){if(void 0!==t)return new c(t);const e=this.rgb().round().color;let s=Math.round(255*this.valpha).toString(16).toUpperCase();return 1===s.length&&(s="0"+s),a.to.hex(e)+s},rgbNumber(){const t=this.rgb().color;return(255&t[0])<<16|(255&t[1])<<8|255&t[2]},luminosity(){const t=this.rgb().color,e=[];for(const[s,a]of t.entries()){const t=a/255;e[s]=t<=.04045?t/12.92:((t+.055)/1.055)**2.4}return.2126*e[0]+.7152*e[1]+.0722*e[2]},contrast(t){const e=this.luminosity(),s=t.luminosity();return e>s?(e+.05)/(s+.05):(s+.05)/(e+.05)},level(t){const e=this.contrast(t);return e>=7?"AAA":e>=4.5?"AA":""},isDark(){const t=this.rgb().color;return(2126*t[0]+7152*t[1]+722*t[2])/1e4<128},isLight(){return!this.isDark()},negate(){const t=this.rgb();for(let e=0;e<3;e++)t.color[e]=255-t.color[e];return t},lighten(t){const e=this.hsl();return e.color[2]+=e.color[2]*t,e},darken(t){const e=this.hsl();return e.color[2]-=e.color[2]*t,e},saturate(t){const e=this.hsl();return e.color[1]+=e.color[1]*t,e},desaturate(t){const e=this.hsl();return e.color[1]-=e.color[1]*t,e},whiten(t){const e=this.hwb();return e.color[1]+=e.color[1]*t,e},blacken(t){const e=this.hwb();return e.color[2]+=e.color[2]*t,e},grayscale(){const t=this.rgb().color,e=.3*t[0]+.59*t[1]+.11*t[2];return c.rgb(e,e,e)},fade(t){return this.alpha(this.valpha-this.valpha*t)},opaquer(t){return this.alpha(this.valpha+this.valpha*t)},rotate(t){const e=this.hsl();let s=e.color[0];return s=(s+t)%360,s=s<0?360+s:s,e.color[0]=s,e},mix(t,e){if(!t||!t.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof t);const s=t.rgb(),a=this.rgb(),r=void 0===e?.5:e,i=2*r-1,n=s.alpha()-a.alpha(),o=((i*n==-1?i:(i+n)/(1+i*n))+1)/2,h=1-o;return c.rgb(o*s.red()+h*a.red(),o*s.green()+h*a.green(),o*s.blue()+h*a.blue(),s.alpha()*r+a.alpha()*(1-r))}};for(const t of Object.keys(r)){if(i.includes(t))continue;const{channels:e}=r[t];c.prototype[t]=function(...e){return this.model===t?new c(this):e.length>0?new c(e,t):new c([...(s=r[this.model][t].raw(this.color),Array.isArray(s)?s:[s]),this.valpha],t);var s},c[t]=function(...s){let a=s[0];return"number"==typeof a&&(a=d(s,e)),new c(a,t)}}function h(t){return function(e){return function(t,e){return Number(t.toFixed(e))}(e,t)}}function l(t,e,s){t=Array.isArray(t)?t:[t];for(const a of t)(o[a]||(o[a]=[]))[e]=s;return t=t[0],function(a){let r;return void 0!==a?(s&&(a=s(a)),r=this[t](),r.color[e]=a,r):(r=this[t]().color[e],s&&(r=s(r)),r)}}function p(t){return function(e){return Math.max(0,Math.min(t,e))}}function d(t,e){for(let s=0;s<e;s++)"number"!=typeof t[s]&&(t[s]=0);return t}t.exports=c},252:(t,e,s)=>{const a=s(37),r={};for(const t of Object.keys(a))r[a[t]]=t;const i={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};t.exports=i;for(const t of Object.keys(i)){if(!("channels"in i[t]))throw new Error("missing channels property: "+t);if(!("labels"in i[t]))throw new Error("missing channel labels property: "+t);if(i[t].labels.length!==i[t].channels)throw new Error("channel and label counts mismatch: "+t);const{channels:e,labels:s}=i[t];delete i[t].channels,delete i[t].labels,Object.defineProperty(i[t],"channels",{value:e}),Object.defineProperty(i[t],"labels",{value:s})}i.rgb.hsl=function(t){const e=t[0]/255,s=t[1]/255,a=t[2]/255,r=Math.min(e,s,a),i=Math.max(e,s,a),n=i-r;let o,c;i===r?o=0:e===i?o=(s-a)/n:s===i?o=2+(a-e)/n:a===i&&(o=4+(e-s)/n),o=Math.min(60*o,360),o<0&&(o+=360);const h=(r+i)/2;return c=i===r?0:h<=.5?n/(i+r):n/(2-i-r),[o,100*c,100*h]},i.rgb.hsv=function(t){let e,s,a,r,i;const n=t[0]/255,o=t[1]/255,c=t[2]/255,h=Math.max(n,o,c),l=h-Math.min(n,o,c),p=function(t){return(h-t)/6/l+.5};return 0===l?(r=0,i=0):(i=l/h,e=p(n),s=p(o),a=p(c),n===h?r=a-s:o===h?r=1/3+e-a:c===h&&(r=2/3+s-e),r<0?r+=1:r>1&&(r-=1)),[360*r,100*i,100*h]},i.rgb.hwb=function(t){const e=t[0],s=t[1];let a=t[2];const r=i.rgb.hsl(t)[0],n=1/255*Math.min(e,Math.min(s,a));return a=1-1/255*Math.max(e,Math.max(s,a)),[r,100*n,100*a]},i.rgb.cmyk=function(t){const e=t[0]/255,s=t[1]/255,a=t[2]/255,r=Math.min(1-e,1-s,1-a);return[100*((1-e-r)/(1-r)||0),100*((1-s-r)/(1-r)||0),100*((1-a-r)/(1-r)||0),100*r]},i.rgb.keyword=function(t){const e=r[t];if(e)return e;let s,i=1/0;for(const e of Object.keys(a)){const r=a[e],c=(o=r,((n=t)[0]-o[0])**2+(n[1]-o[1])**2+(n[2]-o[2])**2);c<i&&(i=c,s=e)}var n,o;return s},i.keyword.rgb=function(t){return a[t]},i.rgb.xyz=function(t){let e=t[0]/255,s=t[1]/255,a=t[2]/255;e=e>.04045?((e+.055)/1.055)**2.4:e/12.92,s=s>.04045?((s+.055)/1.055)**2.4:s/12.92,a=a>.04045?((a+.055)/1.055)**2.4:a/12.92;return[100*(.4124*e+.3576*s+.1805*a),100*(.2126*e+.7152*s+.0722*a),100*(.0193*e+.1192*s+.9505*a)]},i.rgb.lab=function(t){const e=i.rgb.xyz(t);let s=e[0],a=e[1],r=e[2];s/=95.047,a/=100,r/=108.883,s=s>.008856?s**(1/3):7.787*s+16/116,a=a>.008856?a**(1/3):7.787*a+16/116,r=r>.008856?r**(1/3):7.787*r+16/116;return[116*a-16,500*(s-a),200*(a-r)]},i.hsl.rgb=function(t){const e=t[0]/360,s=t[1]/100,a=t[2]/100;let r,i,n;if(0===s)return n=255*a,[n,n,n];r=a<.5?a*(1+s):a+s-a*s;const o=2*a-r,c=[0,0,0];for(let t=0;t<3;t++)i=e+1/3*-(t-1),i<0&&i++,i>1&&i--,n=6*i<1?o+6*(r-o)*i:2*i<1?r:3*i<2?o+(r-o)*(2/3-i)*6:o,c[t]=255*n;return c},i.hsl.hsv=function(t){const e=t[0];let s=t[1]/100,a=t[2]/100,r=s;const i=Math.max(a,.01);a*=2,s*=a<=1?a:2-a,r*=i<=1?i:2-i;return[e,100*(0===a?2*r/(i+r):2*s/(a+s)),100*((a+s)/2)]},i.hsv.rgb=function(t){const e=t[0]/60,s=t[1]/100;let a=t[2]/100;const r=Math.floor(e)%6,i=e-Math.floor(e),n=255*a*(1-s),o=255*a*(1-s*i),c=255*a*(1-s*(1-i));switch(a*=255,r){case 0:return[a,c,n];case 1:return[o,a,n];case 2:return[n,a,c];case 3:return[n,o,a];case 4:return[c,n,a];case 5:return[a,n,o]}},i.hsv.hsl=function(t){const e=t[0],s=t[1]/100,a=t[2]/100,r=Math.max(a,.01);let i,n;n=(2-s)*a;const o=(2-s)*r;return i=s*r,i/=o<=1?o:2-o,i=i||0,n/=2,[e,100*i,100*n]},i.hwb.rgb=function(t){const e=t[0]/360;let s=t[1]/100,a=t[2]/100;const r=s+a;let i;r>1&&(s/=r,a/=r);const n=Math.floor(6*e),o=1-a;i=6*e-n,1&n&&(i=1-i);const c=s+i*(o-s);let h,l,p;switch(n){default:case 6:case 0:h=o,l=c,p=s;break;case 1:h=c,l=o,p=s;break;case 2:h=s,l=o,p=c;break;case 3:h=s,l=c,p=o;break;case 4:h=c,l=s,p=o;break;case 5:h=o,l=s,p=c}return[255*h,255*l,255*p]},i.cmyk.rgb=function(t){const e=t[0]/100,s=t[1]/100,a=t[2]/100,r=t[3]/100;return[255*(1-Math.min(1,e*(1-r)+r)),255*(1-Math.min(1,s*(1-r)+r)),255*(1-Math.min(1,a*(1-r)+r))]},i.xyz.rgb=function(t){const e=t[0]/100,s=t[1]/100,a=t[2]/100;let r,i,n;return r=3.2406*e+-1.5372*s+-.4986*a,i=-.9689*e+1.8758*s+.0415*a,n=.0557*e+-.204*s+1.057*a,r=r>.0031308?1.055*r**(1/2.4)-.055:12.92*r,i=i>.0031308?1.055*i**(1/2.4)-.055:12.92*i,n=n>.0031308?1.055*n**(1/2.4)-.055:12.92*n,r=Math.min(Math.max(0,r),1),i=Math.min(Math.max(0,i),1),n=Math.min(Math.max(0,n),1),[255*r,255*i,255*n]},i.xyz.lab=function(t){let e=t[0],s=t[1],a=t[2];e/=95.047,s/=100,a/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,s=s>.008856?s**(1/3):7.787*s+16/116,a=a>.008856?a**(1/3):7.787*a+16/116;return[116*s-16,500*(e-s),200*(s-a)]},i.lab.xyz=function(t){let e,s,a;s=(t[0]+16)/116,e=t[1]/500+s,a=s-t[2]/200;const r=s**3,i=e**3,n=a**3;return s=r>.008856?r:(s-16/116)/7.787,e=i>.008856?i:(e-16/116)/7.787,a=n>.008856?n:(a-16/116)/7.787,e*=95.047,s*=100,a*=108.883,[e,s,a]},i.lab.lch=function(t){const e=t[0],s=t[1],a=t[2];let r;r=360*Math.atan2(a,s)/2/Math.PI,r<0&&(r+=360);return[e,Math.sqrt(s*s+a*a),r]},i.lch.lab=function(t){const e=t[0],s=t[1],a=t[2]/360*2*Math.PI;return[e,s*Math.cos(a),s*Math.sin(a)]},i.rgb.ansi16=function(t,e=null){const[s,a,r]=t;let n=null===e?i.rgb.hsv(t)[2]:e;if(n=Math.round(n/50),0===n)return 30;let o=30+(Math.round(r/255)<<2|Math.round(a/255)<<1|Math.round(s/255));return 2===n&&(o+=60),o},i.hsv.ansi16=function(t){return i.rgb.ansi16(i.hsv.rgb(t),t[2])},i.rgb.ansi256=function(t){const e=t[0],s=t[1],a=t[2];if(e===s&&s===a)return e<8?16:e>248?231:Math.round((e-8)/247*24)+232;return 16+36*Math.round(e/255*5)+6*Math.round(s/255*5)+Math.round(a/255*5)},i.ansi16.rgb=function(t){let e=t%10;if(0===e||7===e)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];const s=.5*(1+~~(t>50));return[(1&e)*s*255,(e>>1&1)*s*255,(e>>2&1)*s*255]},i.ansi256.rgb=function(t){if(t>=232){const e=10*(t-232)+8;return[e,e,e]}let e;t-=16;return[Math.floor(t/36)/5*255,Math.floor((e=t%36)/6)/5*255,e%6/5*255]},i.rgb.hex=function(t){const e=(((255&Math.round(t[0]))<<16)+((255&Math.round(t[1]))<<8)+(255&Math.round(t[2]))).toString(16).toUpperCase();return"000000".substring(e.length)+e},i.hex.rgb=function(t){const e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let s=e[0];3===e[0].length&&(s=s.split("").map((t=>t+t)).join(""));const a=parseInt(s,16);return[a>>16&255,a>>8&255,255&a]},i.rgb.hcg=function(t){const e=t[0]/255,s=t[1]/255,a=t[2]/255,r=Math.max(Math.max(e,s),a),i=Math.min(Math.min(e,s),a),n=r-i;let o,c;return o=n<1?i/(1-n):0,c=n<=0?0:r===e?(s-a)/n%6:r===s?2+(a-e)/n:4+(e-s)/n,c/=6,c%=1,[360*c,100*n,100*o]},i.hsl.hcg=function(t){const e=t[1]/100,s=t[2]/100,a=s<.5?2*e*s:2*e*(1-s);let r=0;return a<1&&(r=(s-.5*a)/(1-a)),[t[0],100*a,100*r]},i.hsv.hcg=function(t){const e=t[1]/100,s=t[2]/100,a=e*s;let r=0;return a<1&&(r=(s-a)/(1-a)),[t[0],100*a,100*r]},i.hcg.rgb=function(t){const e=t[0]/360,s=t[1]/100,a=t[2]/100;if(0===s)return[255*a,255*a,255*a];const r=[0,0,0],i=e%1*6,n=i%1,o=1-n;let c=0;switch(Math.floor(i)){case 0:r[0]=1,r[1]=n,r[2]=0;break;case 1:r[0]=o,r[1]=1,r[2]=0;break;case 2:r[0]=0,r[1]=1,r[2]=n;break;case 3:r[0]=0,r[1]=o,r[2]=1;break;case 4:r[0]=n,r[1]=0,r[2]=1;break;default:r[0]=1,r[1]=0,r[2]=o}return c=(1-s)*a,[255*(s*r[0]+c),255*(s*r[1]+c),255*(s*r[2]+c)]},i.hcg.hsv=function(t){const e=t[1]/100,s=e+t[2]/100*(1-e);let a=0;return s>0&&(a=e/s),[t[0],100*a,100*s]},i.hcg.hsl=function(t){const e=t[1]/100,s=t[2]/100*(1-e)+.5*e;let a=0;return s>0&&s<.5?a=e/(2*s):s>=.5&&s<1&&(a=e/(2*(1-s))),[t[0],100*a,100*s]},i.hcg.hwb=function(t){const e=t[1]/100,s=e+t[2]/100*(1-e);return[t[0],100*(s-e),100*(1-s)]},i.hwb.hcg=function(t){const e=t[1]/100,s=1-t[2]/100,a=s-e;let r=0;return a<1&&(r=(s-a)/(1-a)),[t[0],100*a,100*r]},i.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]},i.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]},i.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]},i.gray.hsl=function(t){return[0,0,t[0]]},i.gray.hsv=i.gray.hsl,i.gray.hwb=function(t){return[0,100,t[0]]},i.gray.cmyk=function(t){return[0,0,0,t[0]]},i.gray.lab=function(t){return[t[0],0,0]},i.gray.hex=function(t){const e=255&Math.round(t[0]/100*255),s=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(s.length)+s},i.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}},349:(t,e,s)=>{const a=s(252),r=s(196),i={};Object.keys(a).forEach((t=>{i[t]={},Object.defineProperty(i[t],"channels",{value:a[t].channels}),Object.defineProperty(i[t],"labels",{value:a[t].labels});const e=r(t);Object.keys(e).forEach((s=>{const a=e[s];i[t][s]=function(t){const e=function(...e){const s=e[0];if(null==s)return s;s.length>1&&(e=s);const a=t(e);if("object"==typeof a)for(let t=a.length,e=0;e<t;e++)a[e]=Math.round(a[e]);return a};return"conversion"in t&&(e.conversion=t.conversion),e}(a),i[t][s].raw=function(t){const e=function(...e){const s=e[0];return null==s?s:(s.length>1&&(e=s),t(e))};return"conversion"in t&&(e.conversion=t.conversion),e}(a)}))})),t.exports=i},196:(t,e,s)=>{const a=s(252);function r(t){const e=function(){const t={},e=Object.keys(a);for(let s=e.length,a=0;a<s;a++)t[e[a]]={distance:-1,parent:null};return t}(),s=[t];for(e[t].distance=0;s.length;){const t=s.pop(),r=Object.keys(a[t]);for(let a=r.length,i=0;i<a;i++){const a=r[i],n=e[a];-1===n.distance&&(n.distance=e[t].distance+1,n.parent=t,s.unshift(a))}}return e}function i(t,e){return function(s){return e(t(s))}}function n(t,e){const s=[e[t].parent,t];let r=a[e[t].parent][t],n=e[t].parent;for(;e[n].parent;)s.unshift(e[n].parent),r=i(a[e[n].parent][n],r),n=e[n].parent;return r.conversion=s,r}t.exports=function(t){const e=r(t),s={},a=Object.keys(e);for(let t=a.length,r=0;r<t;r++){const t=a[r];null!==e[t].parent&&(s[t]=n(t,e))}return s}},37:t=>{"use strict";t.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},199:t=>{t.exports=function(t){return!(!t||"string"==typeof t)&&(t instanceof Array||Array.isArray(t)||t.length>=0&&(t.splice instanceof Function||Object.getOwnPropertyDescriptor(t,t.length-1)&&"String"!==t.constructor.name))}},683:(t,e,s)=>{var a,r,i;r=[s(648)],void 0===(i="function"==typeof(a=function(t){function e(t){this.init(t)}e.prototype={value:0,size:100,startAngle:-Math.PI,thickness:"auto",fill:{gradient:["#3aeabb","#fdd250"]},emptyFill:"rgba(0, 0, 0, .1)",animation:{duration:1200,easing:"circleProgressEasing"},animationStartValue:0,reverse:!1,lineCap:"butt",insertMode:"prepend",constructor:e,el:null,canvas:null,ctx:null,radius:0,arcFill:null,lastFrameValue:0,init:function(e){t.extend(this,e),this.radius=this.size/2,this.initWidget(),this.initFill(),this.draw(),this.el.trigger("circle-inited")},initWidget:function(){this.canvas||(this.canvas=t("<canvas>")["prepend"==this.insertMode?"prependTo":"appendTo"](this.el)[0]);var e=this.canvas;if(e.width=this.size,e.height=this.size,this.ctx=e.getContext("2d"),window.devicePixelRatio>1){var s=window.devicePixelRatio;e.style.width=e.style.height=this.size+"px",e.width=e.height=this.size*s,this.ctx.scale(s,s)}},initFill:function(){var e,s=this,a=this.fill,r=this.ctx,i=this.size;if(!a)throw Error("The fill is not specified!");if("string"==typeof a&&(a={color:a}),a.color&&(this.arcFill=a.color),a.gradient){var n=a.gradient;if(1==n.length)this.arcFill=n[0];else if(n.length>1){for(var o=a.gradientAngle||0,c=a.gradientDirection||[i/2*(1-Math.cos(o)),i/2*(1+Math.sin(o)),i/2*(1+Math.cos(o)),i/2*(1-Math.sin(o))],h=r.createLinearGradient.apply(r,c),l=0;l<n.length;l++){var p=n[l],d=l/(n.length-1);t.isArray(p)&&(d=p[1],p=p[0]),h.addColorStop(d,p)}this.arcFill=h}}function u(){var a=t("<canvas>")[0];a.width=s.size,a.height=s.size,a.getContext("2d").drawImage(e,0,0,i,i),s.arcFill=s.ctx.createPattern(a,"no-repeat"),s.drawFrame(s.lastFrameValue)}a.image&&(a.image instanceof Image?e=a.image:(e=new Image).src=a.image,e.complete?u():e.onload=u)},draw:function(){this.animation?this.drawAnimated(this.value):this.drawFrame(this.value)},drawFrame:function(t){this.lastFrameValue=t,this.ctx.clearRect(0,0,this.size,this.size),this.drawEmptyArc(t),this.drawArc(t)},drawArc:function(t){if(0!==t){var e=this.ctx,s=this.radius,a=this.getThickness(),r=this.startAngle;e.save(),e.beginPath(),this.reverse?e.arc(s,s,s-a/2,r-2*Math.PI*t,r):e.arc(s,s,s-a/2,r,r+2*Math.PI*t),e.lineWidth=a,e.lineCap=this.lineCap,e.strokeStyle=this.arcFill,e.stroke(),e.restore()}},drawEmptyArc:function(t){var e=this.ctx,s=this.radius,a=this.getThickness(),r=this.startAngle;t<1&&(e.save(),e.beginPath(),t<=0?e.arc(s,s,s-a/2,0,2*Math.PI):this.reverse?e.arc(s,s,s-a/2,r,r-2*Math.PI*t):e.arc(s,s,s-a/2,r+2*Math.PI*t,r),e.lineWidth=a,e.strokeStyle=this.emptyFill,e.stroke(),e.restore())},drawAnimated:function(e){var s=this,a=this.el,r=t(this.canvas);r.stop(!0,!1),a.trigger("circle-animation-start"),r.css({animationProgress:0}).animate({animationProgress:1},t.extend({},this.animation,{step:function(t){var r=s.animationStartValue*(1-t)+e*t;s.drawFrame(r),a.trigger("circle-animation-progress",[t,r])}})).promise().always((function(){a.trigger("circle-animation-end")}))},getThickness:function(){return t.isNumeric(this.thickness)?this.thickness:this.size/14},getValue:function(){return this.value},setValue:function(t){this.animation&&(this.animationStartValue=this.lastFrameValue),this.value=t,this.draw()}},t.circleProgress={defaults:e.prototype},t.easing.circleProgressEasing=function(t){return t<.5?.5*(t*=2)*t*t:1-.5*(t=2-2*t)*t*t},t.fn.circleProgress=function(s,a){var r="circle-progress",i=this.data(r);if("widget"==s){if(!i)throw Error('Calling "widget" method on not initialized instance is forbidden');return i.canvas}if("value"==s){if(!i)throw Error('Calling "value" method on not initialized instance is forbidden');if(void 0===a)return i.getValue();var n=arguments[1];return this.each((function(){t(this).data(r).setValue(n)}))}return this.each((function(){var a=t(this),i=a.data(r),n=t.isPlainObject(s)?s:{};if(i)i.init(n);else{var o=t.extend({},a.data());"string"==typeof o.fill&&(o.fill=JSON.parse(o.fill)),"string"==typeof o.animation&&(o.animation=JSON.parse(o.animation)),(n=t.extend(o,n)).el=a,i=new e(n),a.data(r,i)}}))}})?a.apply(e,r):a)||(t.exports=i)},852:(t,e,s)=>{"use strict";var a=s(199),r=Array.prototype.concat,i=Array.prototype.slice,n=t.exports=function(t){for(var e=[],s=0,n=t.length;s<n;s++){var o=t[s];a(o)?e=r.call(e,i.call(o)):e.push(o)}return e};n.wrap=function(t){return function(){return t(n(arguments))}}},648:t=>{"use strict";t.exports=H5P.jQuery}},e={};function s(a){var r=e[a];if(void 0!==r)return r.exports;var i=e[a]={exports:{}};return t[a](i,i.exports,s),i.exports}s.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.d=(t,e)=>{for(var a in e)s.o(e,a)&&!s.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";const t=class{static extractFragmentsFromURL(t,e){if(!e.location.hash)return{};const s={};return e.location.hash.replace("#","").split("&").forEach((t=>{if(-1===t.indexOf("="))return;const e=t.split("=");s[e[0]]=e[1]})),"function"!=typeof t||t(s)?s:{}}static createFragmentsString(t){let e=[];for(const s in t)e.push(`${s}=${t[s]}`);return`#${e.join("&")}`}static areFragmentsEqual(t,e,s=[]){for(const a in t)if(t.hasOwnProperty(a)){if(s.length>0&&-1===s.indexOf(a))continue;if(!e[a]||t[a].toString()!==e[a].toString())return!1}return!0}};class e extends H5P.EventDispatcher{constructor(t,e,s,a,r){super(),this.id=e,this.parent=a,this.behaviour=t.behaviour,this.content=document.createElement("ul"),this.content.classList.add("navigation-list"),this.container=this.addSideBar(),this.l10n=t.l10n,this.chapters=this.findAllChapters(r),this.chapterNodes=this.getChapterNodes(),s&&(this.titleElem=this.addMainTitle(s),this.container.appendChild(this.titleElem)),this.chapterNodes.forEach((t=>{this.content.appendChild(t)})),this.chapters.length>20&&this.content.classList.add("large-navigation-list"),this.container.appendChild(this.content),this.addTransformListener(),this.initializeNavigationControls()}initializeNavigationControls(){const t=Object.freeze({UP:38,DOWN:40});this.chapterNodes.forEach(((e,s)=>{e.querySelector(".h5p-interactive-book-navigation-chapter-button").addEventListener("keydown",(e=>{switch(e.keyCode){case t.UP:this.setFocusToChapterItem(s,-1),e.preventDefault();break;case t.DOWN:this.setFocusToChapterItem(s,1),e.preventDefault()}}));const a=e.querySelectorAll(".h5p-interactive-book-navigation-section");for(let e=0;e<a.length;e++){a[e].querySelector(".section-button").addEventListener("keydown",(a=>{switch(a.keyCode){case t.UP:this.setFocusToSectionItem(s,e,-1),a.preventDefault();break;case t.DOWN:this.setFocusToSectionItem(s,e,1),a.preventDefault()}}))}}))}focus(){this.content.querySelector("button").focus()}setFocusToChapterItem(t,e=0){let s=t+e;if(s<0?s=this.chapterNodes.length-1:s>this.chapterNodes.length-1&&(s=0),e){const a=e>0?t:s,r=this.chapterNodes[a];if(!r.classList.contains("h5p-interactive-book-navigation-closed")){const t=r.querySelectorAll(".h5p-interactive-book-navigation-section");if(t.length){const s=e>0?0:t.length-1;return void this.setFocusToSectionItem(a,s)}}}const a=this.chapterNodes[s].querySelector(".h5p-interactive-book-navigation-chapter-button");this.setFocusToItem(a,s)}setFocusToSectionItem(t,e,s=0){const a=this.chapterNodes[t].querySelectorAll(".h5p-interactive-book-navigation-section"),r=e+s;if(r>a.length-1)return void this.setFocusToChapterItem(t+1);if(r<0)return void this.setFocusToChapterItem(t);const i=a[r].querySelector(".section-button");this.setFocusToItem(i,t)}setFocusToItem(t,e,s=!1){this.chapterNodes.forEach(((t,s)=>{const a=t.querySelector(".h5p-interactive-book-navigation-chapter-button");s===e?a.classList.add("h5p-interactive-book-navigation-current"):a.classList.remove("h5p-interactive-book-navigation-current"),a.setAttribute("tabindex","-1");const r=t.querySelectorAll(".h5p-interactive-book-navigation-section");for(let t=0;t<r.length;t++){r[t].querySelector(".section-button").setAttribute("tabindex","-1")}})),t.setAttribute("tabindex","0"),this.focusedChapter=e,s||t.focus()}addSideBar(){const t=document.createElement("div");return t.id="h5p-interactive-book-navigation-menu",t.classList.add("h5p-interactive-book-navigation"),t}addMainTitle(t){const e=document.createElement("h2");e.classList.add("navigation-title"),e.innerHTML=t,e.setAttribute("title",t);const s=document.createElement("div");return s.classList.add("h5p-interactive-book-navigation-maintitle"),s.appendChild(e),s}findSectionsInChapter(t){const e=[],s=t.sections;for(let t=0;t<s.length;t++){const a=s[t].content;let r="";if("H5P.Link"===a.library.split(" ")[0])r=a.params.title?a.params.title:"New link";else r=a.metadata.title;e.push({...s[t],title:r,id:a.subContentId?`h5p-interactive-book-section-${a.subContentId}`:void 0})}return e}findAllChapters(t){const e=[];for(let s=0;s<t.length;s++)e.push({...t[s],id:t[s].isSummary?"h5p-interactive-book-chapter-summary":`h5p-interactive-book-chapter-${t[s].instance.subContentId}`,sections:this.findSectionsInChapter(t[s])});return e}toggleChapter(t,e){e=void 0!==e?e:!t.classList.contains("h5p-interactive-book-navigation-closed");const s=t.querySelector(".h5p-interactive-book-navigation-sectionlist"),a=t.getElementsByClassName("h5p-interactive-book-navigation-chapter-accordion")[0];t.querySelector(".h5p-interactive-book-navigation-chapter-button").setAttribute("aria-expanded",(!e).toString()),!0===e?(t.classList.add("h5p-interactive-book-navigation-closed"),a&&(a.classList.remove("icon-expanded"),a.classList.add("icon-collapsed"),s&&(s.setAttribute("aria-hidden",!0),s.setAttribute("tabindex","-1")))):(t.classList.remove("h5p-interactive-book-navigation-closed"),a&&(a.classList.remove("icon-collapsed"),a.classList.add("icon-expanded"),s&&(s.removeAttribute("aria-hidden"),s.removeAttribute("tabindex"))))}redirectHandler(t){if(this.chapterNodes.forEach(((e,s)=>{this.toggleChapter(e,s!==t)})),this.parent.trigger("resize"),t!==this.focusedChapter){const e=this.chapterNodes[t].querySelector(".h5p-interactive-book-navigation-chapter-button");this.setFocusToItem(e,t,!0)}}resetIndicators(){this.chapterNodes.forEach(((t,e)=>{this.updateChapterProgressIndicator(e,"BLANK");const s=t.getElementsByClassName("h5p-interactive-book-navigation-section");for(let t of s){const e=t.querySelector(".h5p-interactive-book-navigation-section-icon");e&&(e.classList.remove("icon-question-answered"),e.classList.add("icon-chapter-blank"))}}))}updateChapterProgressIndicator(t,e){if(!this.behaviour.progressIndicators)return;if(this.chapters[t].isSummary)return;const s=this.chapterNodes[t].getElementsByClassName("h5p-interactive-book-navigation-chapter-progress")[0];"BLANK"===e?(s.classList.remove("icon-chapter-started"),s.classList.remove("icon-chapter-done"),s.classList.add("icon-chapter-blank")):"DONE"===e?(s.classList.remove("icon-chapter-blank"),s.classList.remove("icon-chapter-started"),s.classList.add("icon-chapter-done")):"STARTED"===e&&(s.classList.remove("icon-chapter-blank"),s.classList.remove("icon-chapter-done"),s.classList.add("icon-chapter-started"))}setSectionMarker(t,e){const s=this.chapterNodes[t].querySelector(".h5p-interactive-book-navigation-section-"+e+" .h5p-interactive-book-navigation-section-icon");s&&(s.classList.remove("icon-chapter-blank"),s.classList.add("icon-question-answered"))}getNodesFromChapter(t,e){const s=document.createElement("li"),a="h5p-interactive-book-sectionlist-"+e;if(s.classList.add("h5p-interactive-book-navigation-chapter"),t.isSummary){s.classList.add("h5p-interactive-book-navigation-summary-button");const t=this.parent.chapters[e].instance.summaryMenuButton;return t.classList.add("h5p-interactive-book-navigation-chapter-button"),s.appendChild(t),s}const r=document.createElement("div");r.classList.add("h5p-interactive-book-navigation-chapter-accordion");const i=document.createElement("div");i.classList.add("h5p-interactive-book-navigation-chapter-title-text"),i.innerHTML=t.title,i.setAttribute("title",t.title);const n=document.createElement("div");this.behaviour.progressIndicators&&(n.classList.add("icon-chapter-blank"),n.classList.add("h5p-interactive-book-navigation-chapter-progress"));const o=document.createElement("button");o.setAttribute("tabindex",0===e?"0":"-1"),o.classList.add("h5p-interactive-book-navigation-chapter-button"),this.parent.activeChapter!==e?(r.classList.add("icon-collapsed"),o.setAttribute("aria-expanded","false")):(r.classList.add("icon-expanded"),o.setAttribute("aria-expanded","true")),o.setAttribute("aria-controls",a),o.onclick=t=>{const s=!t.currentTarget.querySelector(".h5p-interactive-book-navigation-chapter-accordion").classList.contains("hidden"),a="true"===t.currentTarget.getAttribute("aria-expanded");if(this.isOpenOnMobile()&&this.parent.trigger("toggleMenu"),this.isOpenOnMobile()||!s||!a){const t={h5pbookid:this.parent.contentId,chapter:this.chapters[e].id,section:0};this.parent.trigger("newChapter",t)}s&&(this.toggleChapter(t.currentTarget.parentElement),this.parent.trigger("resize"))},o.appendChild(r),o.appendChild(i),o.appendChild(n),s.appendChild(o),this.parent.activeChapter===e?s.querySelector(".h5p-interactive-book-navigation-chapter-button").classList.add("h5p-interactive-book-navigation-current"):this.toggleChapter(s,!0);const c=document.createElement("ul");c.classList.add("h5p-interactive-book-navigation-sectionlist"),c.id=a;const h=[];for(let t=0;t<this.chapters[e].sections.length;t++)if(this.parent.chapters[e].sections[t].isTask){const s=this.createSectionLink(e,t);h.push(s),c.appendChild(s)}else{const s=this.chapters[e].sections[t].content;if("H5P.AdvancedText"===s.library.split(" ")[0]){const a=document.createElement("div");a.innerHTML=s.params.text;const r=a.querySelectorAll("h2, h3");for(let s=0;s<r.length;s++){const a=r[s],i=this.createSectionLink(e,t,a.textContent,s);h.push(i),c.appendChild(i)}}}if(t.tasksLeft&&(t.maxTasks=t.tasksLeft),0===h.length){const t=s.querySelector(".h5p-interactive-book-navigation-chapter-accordion");t&&t.classList.add("hidden")}return s.appendChild(c),s}createSectionLink(t,e,s=null,a=null){const r=this.chapters[t].sections[e],i=document.createElement("div");i.innerHTML=s||r.title,i.setAttribute("title",s||r.title),i.classList.add("h5p-interactive-book-navigation-section-title");const n=document.createElement("div");n.classList.add("h5p-interactive-book-navigation-section-icon"),n.classList.add("icon-chapter-blank"),this.parent.chapters[t].sections[e].isTask&&n.classList.add("h5p-interactive-book-navigation-section-task");const o=document.createElement("button");o.classList.add("section-button"),o.setAttribute("tabindex","-1"),o.onclick=e=>{const s={h5pbookid:this.parent.contentId,chapter:this.chapters[t].id,section:r.id};null!==a&&(s.headerNumber=a),this.parent.trigger("newChapter",s),this.isOpenOnMobile()&&this.parent.trigger("toggleMenu"),e.preventDefault()},o.appendChild(n),o.appendChild(i);const c=document.createElement("li");return c.classList.add("h5p-interactive-book-navigation-section"),c.classList.add("h5p-interactive-book-navigation-section-"+e),c.appendChild(o),c}getChapterNodes(){return this.chapters.map(((t,e)=>this.getNodesFromChapter(t,e)))}isOpenOnMobile(){return this.parent.isMenuOpen()&&this.parent.isSmallSurface()}addTransformListener(){this.container.addEventListener("transitionend",(t=>{"flex-basis"===t.propertyName&&this.parent.trigger("resize")}))}}const a=e;class r extends H5P.EventDispatcher{constructor(t,e,s,a,r){super(),this.id=t,this.parent=s,this.params=a||{},this.preventScrollToTop=a.preventScrollToTop,this.params.l10n=a.l10n,this.params.a11y=Object.assign({progress:"Page @page of @total",menu:"Toggle navigation menu"},this.params.a11y||{}),this.totalChapters=e,this.arrows=this.addArrows(),this.progressBar=this.createProgressBar(),this.progressIndicator=this.createProgressIndicator(),this.chapterTitle=this.createChapterTitle(),this.menuToggleButton=this.createMenuToggleButton();const i=document.createElement("div");i.classList.add("h5p-interactive-book-status"),this.params.displayToTopButton&&i.appendChild(this.createToTopButton()),this.params.displayFullScreenButton&&H5P.fullscreenSupported&&i.appendChild(this.createFullScreenButton()),i.appendChild(this.arrows.buttonWrapperNext),i.appendChild(this.arrows.buttonWrapperPrevious),this.params.displayMenuToggleButton&&i.appendChild(this.menuToggleButton),i.appendChild(this.progressIndicator.wrapper),i.appendChild(this.chapterTitle.wrapper),this.wrapper=document.createElement("div"),this.wrapper.classList.add(r),this.wrapper.setAttribute("tabindex","-1"),this.wrapper.appendChild(this.progressBar.wrapper),this.wrapper.appendChild(i),this.on("updateStatusBar",this.updateStatusBar),this.on("seqChapter",(t=>{const e={h5pbookid:this.parent.contentId};t.data.toTop&&(e.section="top"),"next"===t.data.direction?this.parent.activeChapter+1<this.parent.chapters.length?e.chapter=`h5p-interactive-book-chapter-${this.parent.chapters[this.parent.activeChapter+1].instance.subContentId}`:this.parent.hasSummary()&&this.parent.activeChapter+1===this.parent.chapters.length&&this.parent.trigger("viewSummary",e):"prev"===t.data.direction&&this.parent.activeChapter>0&&(e.chapter=`h5p-interactive-book-chapter-${this.parent.chapters[this.parent.activeChapter-1].instance.subContentId}`),this.preventScrollToTop&&(e.preventScrollToTop=!0),e.chapter&&this.parent.trigger("newChapter",e)}))}updateProgressBar(t){const e=t/this.totalChapters*100+"%";this.progressBar.progress.style.width=e;const s=this.params.a11y.progress.replace("@page",t).replace("@total",this.totalChapters);this.progressBar.progress.title=s}updateA11yProgress(t){this.progressIndicator.hiddenButRead.innerHTML=this.params.a11y.progress.replace("@page",t).replace("@total",this.totalChapters)}updateStatusBar(){const t=this.parent.getActiveChapter()+1,e=this.parent.chapters[t-1].title;this.progressIndicator.current.innerHTML=t,this.updateA11yProgress(t),this.updateProgressBar(t),this.chapterTitle.text.innerHTML=e,this.chapterTitle.text.setAttribute("title",e),this.parent.activeChapter<=0?this.setButtonStatus("Previous",!0):this.setButtonStatus("Previous",!1),this.parent.activeChapter+1>=this.totalChapters?this.setButtonStatus("Next",!0):this.setButtonStatus("Next",!1)}addArrows(){const t={};return t.buttonPrevious=document.createElement("div"),t.buttonPrevious.classList.add("navigation-button","icon-previous"),t.buttonPrevious.setAttribute("title",this.params.l10n.previousPage),t.buttonWrapperPrevious=document.createElement("button"),t.buttonWrapperPrevious.classList.add("h5p-interactive-book-status-arrow","h5p-interactive-book-status-button","previous"),t.buttonWrapperPrevious.setAttribute("aria-label",this.params.l10n.previousPage),t.buttonWrapperPrevious.onclick=()=>{this.trigger("seqChapter",{direction:"prev",toTop:!0})},t.buttonWrapperPrevious.appendChild(t.buttonPrevious),t.buttonNext=document.createElement("div"),t.buttonNext.classList.add("navigation-button","icon-next"),t.buttonNext.setAttribute("title",this.params.l10n.nextPage),t.buttonWrapperNext=document.createElement("button"),t.buttonWrapperNext.classList.add("h5p-interactive-book-status-arrow","h5p-interactive-book-status-button","next"),t.buttonWrapperNext.setAttribute("aria-label",this.params.l10n.nextPage),t.buttonWrapperNext.onclick=()=>{this.trigger("seqChapter",{direction:"next",toTop:!0})},t.buttonWrapperNext.appendChild(t.buttonNext),t}createMenuToggleButton(){const t=document.createElement("a");t.classList.add("icon-menu");const e=document.createElement("button");return e.classList.add("h5p-interactive-book-status-menu"),e.classList.add("h5p-interactive-book-status-button"),e.setAttribute("aria-label",this.params.a11y.menu),e.setAttribute("aria-expanded","false"),e.setAttribute("aria-controls","h5p-interactive-book-navigation-menu"),e.onclick=()=>{this.parent.trigger("toggleMenu")},e.appendChild(t),e}isMenuOpen(){return this.menuToggleButton.classList.contains("h5p-interactive-book-status-menu-active")}createProgressBar(){const t=document.createElement("div");t.classList.add("h5p-interactive-book-status-progressbar-front"),t.setAttribute("tabindex","-1");const e=document.createElement("div");return e.classList.add("h5p-interactive-book-status-progressbar-back"),e.appendChild(t),{wrapper:e,progress:t}}createChapterTitle(){const t=document.createElement("h1");t.classList.add("title");const e=document.createElement("div");return e.classList.add("h5p-interactive-book-status-chapter"),e.appendChild(t),{wrapper:e,text:t}}createToTopButton(){const t=document.createElement("div");t.classList.add("icon-up"),t.classList.add("navigation-button");const e=document.createElement("button");return e.classList.add("h5p-interactive-book-status-to-top"),e.classList.add("h5p-interactive-book-status-button"),e.classList.add("h5p-interactive-book-status-arrow"),e.setAttribute("aria-label",this.params.l10n.navigateToTop),e.addEventListener("click",(()=>{this.parent.trigger("scrollToTop"),document.querySelector(".h5p-interactive-book-status-menu").focus()})),e.appendChild(t),e}setVisibility(t){t?this.wrapper.classList.add("footer-hidden"):this.wrapper.classList.remove("footer-hidden")}createProgressIndicator(){const t=document.createElement("span");t.classList.add("h5p-interactive-book-status-progress-number"),t.setAttribute("aria-hidden","true");const e=document.createElement("span");e.classList.add("h5p-interactive-book-status-progress-divider"),e.innerHTML=" / ",e.setAttribute("aria-hidden","true");const s=document.createElement("span");s.classList.add("h5p-interactive-book-status-progress-number"),s.innerHTML=this.totalChapters,s.setAttribute("aria-hidden","true");const a=document.createElement("p");a.classList.add("hidden-but-read");const r=document.createElement("p");r.classList.add("h5p-interactive-book-status-progress"),r.appendChild(t),r.appendChild(e),r.appendChild(s),r.appendChild(a);const i=document.createElement("div");return i.classList.add("h5p-interactive-book-status-progress-wrapper"),i.appendChild(r),{wrapper:i,current:t,total:s,divider:e,progressText:r,hiddenButRead:a}}setButtonStatus(t,e){e?(this.arrows["buttonWrapper"+t].setAttribute("disabled","disabled"),this.arrows["button"+t].classList.add("disabled")):(this.arrows["buttonWrapper"+t].removeAttribute("disabled"),this.arrows["button"+t].classList.remove("disabled"))}createFullScreenButton(){const t=()=>{!0===H5P.isFullscreen?H5P.exitFullScreen():H5P.fullScreen(this.parent.mainWrapper,this.parent)},e=document.createElement("button");return e.classList.add("h5p-interactive-book-status-fullscreen"),e.classList.add("h5p-interactive-book-status-button"),e.classList.add("h5p-interactive-book-enter-fullscreen"),e.setAttribute("title",this.params.l10n.fullscreen),e.setAttribute("aria-label",this.params.l10n.fullscreen),e.addEventListener("click",t),e.addEventListener("keyPress",(e=>{13!==e.which&&32!==e.which||(t(),e.preventDefault())})),this.parent.on("enterFullScreen",(()=>{this.parent.isFullscreen=!0,e.classList.remove("h5p-interactive-book-enter-fullscreen"),e.classList.add("h5p-interactive-book-exit-fullscreen"),e.setAttribute("title",this.params.l10n.exitFullscreen),e.setAttribute("aria-label",this.params.l10n.exitFullScreen),this.parent.pageContent.updateFooter()})),this.parent.on("exitFullScreen",(()=>{this.parent.isFullscreen=!1,e.classList.remove("h5p-interactive-book-exit-fullscreen"),e.classList.add("h5p-interactive-book-enter-fullscreen"),e.setAttribute("title",this.params.l10n.fullscreen),e.setAttribute("aria-label",this.params.l10n.fullscreen),this.parent.pageContent.updateFooter()})),e}}const i=r;class n extends H5P.EventDispatcher{constructor(t,e,s,a,r){super(),this.parent=r,this.params=t,this.contentId=a,this.container=this.createContainer(),t.coverMedium?(this.visuals=this.createVisualsElement(t.coverMedium),this.visuals&&this.container.appendChild(this.visuals)):this.container.classList.add("h5p-cover-nographics"),this.container.appendChild(this.createTitleElement(e)),t.coverDescription&&this.container.appendChild(this.createDescriptionElement(t.coverDescription)),this.container.appendChild(this.createReadButton(s))}createContainer(){const t=document.createElement("div");return t.classList.add("h5p-interactive-book-cover"),t}createVisualsElement(t){if(!t||!t.params)return null;const e=document.createElement("div");return e.classList.add("h5p-interactive-book-cover-graphics"),e}initMedia(){if(!this.visuals||!this.params.coverMedium)return;const t=this.params.coverMedium;"H5P.Video"===(t.library||"").split(" ")[0]&&(t.params.visuals.fit=!1);const e=H5P.newRunnable(t,this.contentId,H5P.jQuery(this.visuals),!1,{metadata:t.medatata});if(this.bubbleUp(e,"resize",this.parent),this.bubbleDown(this.parent,"resize",[e]),"H5P.Image"===(t.library||"").split(" ")[0]){const t=this.visuals.querySelector("img")||this.visuals.querySelector(".h5p-placeholder");t.style.height="auto",t.style.width="auto"}this.visuals.appendChild(this.createCoverBar())}bubbleUp(t,e,s){t.on(e,(t=>{s.bubblingUpwards=!0,s.trigger(e,t),s.bubblingUpwards=!1}))}bubbleDown(t,e,s){t.on(e,(a=>{t.bubblingUpwards||s.forEach((t=>{t.trigger(e,a)}))}))}createImage(t,e,s){const a=document.createElement("img");return a.classList.add("h5p-interactive-book-cover-image"),a.src=H5P.getPath(t,e),a.setAttribute("draggable","false"),s&&(a.alt=s),a}createCoverBar(){const t=document.createElement("div");return t.classList.add("h5p-interactive-book-cover-bar"),t}createTitleElement(t){const e=document.createElement("p");e.innerHTML=t;const s=document.createElement("div");return s.classList.add("h5p-interactive-book-cover-title"),s.appendChild(e),s}createDescriptionElement(t){if(!t)return null;const e=document.createElement("div");return e.classList.add("h5p-interactive-book-cover-description"),e.innerHTML=t,e}createReadButton(t){const e=document.createElement("button");e.innerHTML=t,e.onclick=()=>{this.removeCover(!0)};const s=document.createElement("div");return s.classList.add("h5p-interactive-book-cover-readbutton"),s.appendChild(e),s}removeCover(t=!1){this.container.parentElement&&(this.container.parentElement.classList.remove("covered"),this.container.parentElement.removeChild(this.container)),this.hidden=!0,this.parent.trigger("coverRemoved",t)}}const o=n;s(683);var c=s(308),h=s.n(c);class l{static setBase(t){t&&(l.colorBase=h()(t),l.colorText=[l.DEFAULT_COLOR_BG,l.computeContrastColor(l.colorBase),l.computeContrastColor(l.colorBase,l.DEFAULT_COLOR_BG)].map((t=>({color:t,contrast:l.colorBase.contrast(t)}))).reduce(((t,e)=>e.contrast>t.contrast?e:t),{contrast:0}).color)}static getColor(t,e={}){if("string"==typeof e.opacity&&/^([0-9]|[1-8][0-9]|9[0-9]|100)(\.\d+)?\s?%$/.test(e.opacity)&&(e.opacity=parseInt(e.opacity)/100),"number"!=typeof e.opacity||e.opacity<0||e.opacity>1)return t;const s=h()("#ffffff").rgb().array();return h().rgb(t.rgb().array().map(((t,a)=>e.opacity*t+(1-e.opacity)*s[a])))}static isBaseColor(t){return h()(t).hex()===l.colorBase.hex()}static computeContrastColor(t,e){const s=(e=e||t).luminosity();let a;for(let r=0;r<=1;r+=.05){a=h().rgb(t.rgb().array().map((t=>t*(s>.5?1-r:1+r))));if(a.contrast(e)>=l.MINIMUM_ACCEPTABLE_CONTRAST)break}return a}static getContentTypeCSS(t){return l.COLOR_OVERRIDES[t]?l.COLOR_OVERRIDES[t].getCSS():""}static getCSS(){return`:root{\n      --color-base: ${l.colorBase};\n      --color-base-5: ${l.getColor(l.colorBase,{opacity:.05})};\n      --color-base-10: ${l.getColor(l.colorBase,{opacity:.1})};\n      --color-base-20: ${l.getColor(l.colorBase,{opacity:.2})};\n      --color-base-75: ${l.getColor(l.colorBase,{opacity:.75})};\n      --color-base-80: ${l.getColor(l.colorBase,{opacity:.8})};\n      --color-base-85: ${l.getColor(l.colorBase,{opacity:.85})};\n      --color-base-90: ${l.getColor(l.colorBase,{opacity:.9})};\n      --color-base-95: ${l.getColor(l.colorBase,{opacity:.95})};\n      --color-text: ${l.colorText};\n      --color-contrast: ${l.computeContrastColor(l.colorBase,l.DEFAULT_COLOR_BG)};\n    }`}}l.DEFAULT_COLOR_BASE=h()("#1768c4"),l.DEFAULT_COLOR_BG=h()("#ffffff"),l.MINIMUM_ACCEPTABLE_CONTRAST=4.5,l.colorBase=l.DEFAULT_COLOR_BASE,l.colorText=l.DEFAULT_COLOR_BG;class p extends H5P.EventDispatcher{constructor(t,e,s){super(),this.parent=e,this.behaviour=t.behaviour,this.l10n=t.l10n,this.chapters=s||[],this.subContentId="summary",this.wrapper=null,this.summaryMenuButton=this.createSummaryButton(),this.filterActionAll="all",this.filterActionUnanswered="unanswered",this.bookCompleted=!1,this.tempState=JSON.stringify(this.parent.previousState&&this.parent.previousState.chapters?this.parent.previousState.chapters:this.getChapterStats()),e.on("bookCompleted",(t=>this.setBookComplete(t.data.completed))),e.on("toggleMenu",(()=>{const t=document.querySelector(".h5p-interactive-book-summary-footer");t&&this.bookCompleted&&(this.parent.isMenuOpen()?t.classList.add("menu-open"):t.classList.remove("menu-open"))}))}setBookComplete(t){let e=this.parent.mainWrapper?this.parent.mainWrapper[0].querySelector(".h5p-interactive-book-summary-footer"):null;!e&&this.parent.isSmallSurface()&&(e=document.createElement("div"),e.classList.add("h5p-interactive-book-summary-footer"),e.appendChild(this.createSummaryButton()),this.parent.mainWrapper.append(e)),e&&t&&setTimeout((()=>e.classList.add("show-footer")),0),this.bookCompleted=t,Array.from(document.querySelectorAll(".h5p-interactive-book-summary-menu-button")).forEach((e=>e.setAttribute("data-book-completed",t.toString())))}setChapters(t){this.chapters=Array.isArray(t)?t:[]}setSummaryMenuButtonDisabled(t=!0){this.summaryMenuButton.disabled=t}setFilter(t){const e=this.wrapper.querySelector(".h5p-interactive-book-summary-overview-list"),s=Array.from(e.querySelectorAll(".h5p-interactive-book-summary-overview-section"));s.forEach((t=>{t.classList.remove("h5p-interactive-book-summary-top-section"),t.classList.remove("h5p-interactive-book-summary-bottom-section")}));const a=e.querySelector(".h5p-interactive-book-summary-overview-list-empty");if(a.style.display="none",t===this.filterActionUnanswered){e.classList.add("h5p-interactive-book-summary-overview-list-only-unanswered");const t=s.filter((t=>!t.classList.contains("h5p-interactive-book-summary-no-interactions")));t.length?(t[0].classList.add("h5p-interactive-book-summary-top-section"),t[t.length-1].classList.add("h5p-interactive-book-summary-bottom-section")):a.style.display="block"}else t===this.filterActionAll&&e.classList.remove("h5p-interactive-book-summary-overview-list-only-unanswered");setTimeout((()=>this.trigger("resize")),1)}createSummaryButton(){const t=document.createElement("button");t.classList.add("h5p-interactive-book-summary-menu-button"),t.onclick=()=>{const t={h5pbookid:this.parent.contentId,chapter:"h5p-interactive-book-chapter-summary",section:"top"};this.parent.trigger("newChapter",t),this.parent.isMenuOpen()&&this.parent.isSmallSurface()&&this.parent.trigger("toggleMenu")};const e=document.createElement("span");e.classList.add("h5p-interactive-book-summary-icon"),e.classList.add("icon-paper"),e.setAttribute("aria-hidden","true");const s=document.createElement("span");s.classList.add("h5p-interactive-book-summary-text"),s.innerHTML=this.l10n.summaryAndSubmit;const a=document.createElement("span");return a.classList.add("h5p-interactive-book-summary-menu-button-arrow"),a.classList.add("icon-up"),a.setAttribute("aria-hidden","true"),t.appendChild(e),t.appendChild(s),t.appendChild(a),t}createCircle(t){const e=l.computeContrastColor(l.colorBase,l.DEFAULT_COLOR_BG),s=document.createElement("div");return s.classList.add("h5p-interactive-book-summary-progress-circle"),s.setAttribute("data-value",t),s.setAttribute("data-start-angle",-Math.PI/3),s.setAttribute("data-thickness",13),s.setAttribute("data-empty-fill",`rgba(${e.rgb().array().join(", ")}, .1)`),s.setAttribute("data-fill",JSON.stringify({color:e.hex()})),s}createProgress(t,e,s,a,r=!1,i,n){const o=document.createElement("div"),c=document.createElement("h3");c.innerHTML=t;const h=100*s/a;void 0===i&&(i=s),void 0===n&&(n=a);const l=document.createElement("p");if(l.classList.add("h5p-interactive-book-summary-progressbox-bigtext"),l.innerHTML=Math.round(h)+"%",r){const t=document.createElement("span");t.classList.add("absolute-value"),t.innerHTML=s;const e=document.createElement("span");e.classList.add("separator"),e.innerHTML="/";const r=document.createElement("span");r.classList.add("absolute-value"),r.innerHTML=a,l.innerHTML="",l.appendChild(t),l.appendChild(e),l.appendChild(r)}const p=document.createElement("span");p.classList.add("h5p-interactive-book-summary-progressbox-smalltext"),p.innerHTML=e.replace("@count",i).replace("@total",n),o.appendChild(c),o.appendChild(l),o.appendChild(p);const d=document.createElement("div");return d.appendChild(o),d.appendChild(this.createCircle(s/a)),d}addScoreProgress(){let t=0,e=0;for(const s of this.chapters)t+=s.maxTasks,e+=s.tasksLeft;const s=this.createProgress(this.l10n.totalScoreLabel,this.l10n.interactionsProgressSubtext,this.parent.getScore(),this.parent.getMaxScore(),!0,Math.max(t-e,0),t);s.classList.add("h5p-interactive-book-summary-progress-container"),s.classList.add("h5p-interactive-book-summary-score-progress");const a=s.querySelector(".h5p-interactive-book-summary-progress-circle");return a.setAttribute("data-empty-fill","rgb(198, 220, 212)"),a.setAttribute("data-fill",JSON.stringify({color:"#0e7c57"})),s}addBookProgress(){const t=this.createProgress(this.l10n.bookProgress,this.l10n.bookProgressSubtext,this.chapters.filter((t=>t.completed)).length,this.chapters.length);return t.classList.add("h5p-interactive-book-summary-progress-container"),t.classList.add("h5p-interactive-book-summary-book-progress"),t}addInteractionsProgress(){let t=0,e=0;for(const s of this.chapters)t+=s.maxTasks,e+=s.tasksLeft;const s=this.createProgress(this.l10n.interactionsProgress,this.l10n.interactionsProgressSubtext,Math.max(t-e,0),t);return s.classList.add("h5p-interactive-book-summary-progress-container"),s.classList.add("h5p-interactive-book-summary-interactions-progress"),s}addProgressIndicators(){if(!this.behaviour.progressIndicators)return;const t=document.createElement("div");t.classList.add("h5p-interactive-box-summary-progress"),t.appendChild(this.addScoreProgress()),t.appendChild(this.addBookProgress()),t.appendChild(this.addInteractionsProgress()),setTimeout((()=>H5P.jQuery(".h5p-interactive-book-summary-progress-circle").circleProgress()),100),this.wrapper.appendChild(t)}addActionButtons(){const t=document.createElement("div");if(t.classList.add("h5p-interactive-book-summary-buttons"),this.checkTheAnswerIsUpdated(),this.parent.isSubmitButtonEnabled&&this.parent.isAnswerUpdated){const e=this.addButton("icon-paper-pencil",this.l10n.submitReport);e.classList.add("h5p-interactive-book-summary-submit"),e.onclick=()=>{this.trigger("submitted"),this.parent.triggerXAPIScored(this.parent.getScore(),this.parent.getMaxScore(),"completed"),t.classList.add("submitted");t.querySelector(".answers-submitted").focus(),this.tempState=JSON.stringify(this.getChapterStats()),this.parent.isAnswerUpdated=!1},t.appendChild(e)}this.behaviour.enableRetry&&t.appendChild(this.createRestartButton()),t.appendChild(this.createSubmittedConfirmation()),this.wrapper.appendChild(t)}createRestartButton(){const t=this.addButton("icon-restart",this.l10n.restartLabel);return t.classList.add("h5p-interactive-book-summary-restart"),t.onclick=()=>this.parent.resetTask(),t}createSubmittedConfirmation(){const t=document.createElement("div");t.classList.add("h5p-interactive-book-summary-submitted");const e=document.createElement("span");e.classList.add("icon-chapter-done"),e.classList.add("icon-check-mark"),t.appendChild(e);const s=document.createElement("p");return s.innerHTML=this.l10n.yourAnswersAreSubmittedForReview,s.tabIndex=-1,s.classList.add("answers-submitted"),t.appendChild(s),this.behaviour.enableRetry&&t.appendChild(this.createRestartButton()),t}addButton(t,e){const s=document.createElement("button");s.type="button",s.classList.add("h5p-interactive-book-summary-button"),s.innerHTML=e;const a=document.createElement("span");return a.classList.add(t),a.setAttribute("aria-hidden","true"),s.appendChild(a),s}createSectionList(t,e){let s=[],a=!1;for(const r of t){const t=document.createElement("li");if(t.classList.add("h5p-interactive-book-summary-overview-section-details"),this.behaviour.progressIndicators){const e=document.createElement("span");e.classList.add("h5p-interactive-book-summary-section-icon"),e.classList.add(r.taskDone?"icon-chapter-done":"icon-chapter-blank"),t.appendChild(e)}const i=document.createElement("button");i.type="button",i.classList.add("h5p-interactive-book-summary-section-title"),i.onclick=()=>{const t={h5pbookid:this.parent.contentId,chapter:`h5p-interactive-book-chapter-${e}`,section:`h5p-interactive-book-section-${r.instance.subContentId}`};this.parent.trigger("newChapter",t)};const n=r.instance.contentData&&r.instance.contentData.metadata&&r.instance.contentData.metadata.title,o=r.content&&r.content.metadata&&r.content.metadata.title;i.innerHTML=n||(o||"Untitled");const c=document.createElement("div");c.classList.add("h5p-interactive-book-summary-section-score"),c.innerHTML="-","function"==typeof r.instance.getScore&&(c.innerHTML=this.l10n.scoreText.replace("@score",r.instance.getScore()).replace("@maxscore",r.instance.getMaxScore())),r.taskDone?t.classList.add("h5p-interactive-book-summary-overview-section-details-task-done"):a=!0,t.appendChild(i),t.appendChild(c),s.push(t)}if(s.length){const t=document.createElement("div");t.classList.add("h5p-interactive-book-summary-overview-section-score-header");const e=document.createElement("div");e.innerHTML=this.l10n.score,t.appendChild(e),s.unshift(t)}return{hasUnansweredInteractions:a,sectionElements:s}}createChapterOverview(t){const e=document.createElement("li");e.classList.add("h5p-interactive-book-summary-overview-section");const s=document.createElement("h4");s.onclick=()=>{const e={h5pbookid:this.parent.contentId,chapter:`h5p-interactive-book-chapter-${t.instance.subContentId}`,section:"top"};this.parent.trigger("newChapter",e)};const a=document.createElement("span");if(a.innerHTML=t.title,s.appendChild(a),this.behaviour.progressIndicators){const e=document.createElement("span"),a=this.parent.getChapterStatus(t);e.classList.add(`icon-chapter-${a.toLowerCase()}`),s.appendChild(e)}e.appendChild(s);let{sectionElements:r,hasUnansweredInteractions:i}=this.createSectionList(t.sections.filter((t=>t.isTask)),t.instance.subContentId);!1===i&&e.classList.add("h5p-interactive-book-summary-no-interactions");const n=document.createElement("div");n.classList.add("h5p-interactive-book-summary-chapter-subheader"),t.maxTasks?n.innerHTML=this.l10n.leftOutOfTotalCompleted.replace("@left",Math.max(t.maxTasks-t.tasksLeft,0)).replace("@max",t.maxTasks):n.innerHTML=this.l10n.noInteractions,e.appendChild(n);const o=document.createElement("ul");return r.length&&r.map((t=>o.appendChild(t))),e.appendChild(o),e}createFilterDropdown(){const t=(t,r)=>{const i=document.createElement("li");i.role="menuitem";const n=document.createElement("button");return n.textContent=t,n.type="button",n.onclick=t=>{this.setFilter(r),e.removeAttribute("active"),s.setAttribute("aria-expanded","false"),a.textContent=t.currentTarget.innerHTML},i.appendChild(n),i},e=document.createElement("div");e.classList.add("h5p-interactive-book-summary-dropdown");const s=document.createElement("button");s.setAttribute("aria-haspopup","true"),s.setAttribute("aria-expanded","false"),s.type="button",s.onclick=()=>{e.hasAttribute("active")?(e.removeAttribute("active"),s.setAttribute("aria-expanded","false")):(e.setAttribute("active",""),s.setAttribute("aria-expanded","true"),s.focus())};const a=document.createElement("span");a.textContent=this.l10n.allInteractions,s.appendChild(a);const r=document.createElement("span");r.classList.add("h5p-interactive-book-summary-dropdown-icon"),r.classList.add("icon-expanded"),r.setAttribute("aria-hidden","true"),s.appendChild(r);const i=document.createElement("ul");i.role="menu",i.classList.add("h5p-interactive-book-summary-dropdown-menu");const n=t(this.l10n.allInteractions,this.filterActionAll),o=t(this.l10n.unansweredInteractions,this.filterActionUnanswered);return i.appendChild(n),i.appendChild(o),e.appendChild(s),e.appendChild(i),e}addSummaryOverview(){const t=document.createElement("ul");t.classList.add("h5p-interactive-book-summary-list");const e=document.createElement("li");e.classList.add("h5p-interactive-book-summary-overview-header");const s=document.createElement("h3");s.innerHTML=this.l10n.summaryHeader,e.appendChild(s),e.appendChild(this.createFilterDropdown()),t.appendChild(e);const a=document.createElement("ol");a.classList.add("h5p-interactive-book-summary-overview-list");for(const t of this.chapters)a.appendChild(this.createChapterOverview(t));const r=document.createElement("p");r.classList.add("h5p-interactive-book-summary-overview-list-empty"),r.classList.add("h5p-interactive-book-summary-top-section"),r.classList.add("h5p-interactive-book-summary-bottom-section"),r.innerHTML=this.l10n.noInteractions,a.appendChild(r),t.appendChild(a),this.wrapper.appendChild(t)}addScoreBar(){const t=document.createElement("div");t.classList.add("h5p-interactive-book-summary-score-bar");const e=H5P.JoubelUI.createScoreBar(this.parent.getMaxScore());e.setScore(this.parent.getScore()),e.appendTo(t),this.wrapper.appendChild(t)}noChapterInteractions(){const t=document.createElement("div");t.classList.add("h5p-interactive-book-summary-no-chapter-interactions");const e=document.createElement("p");e.innerHTML=this.l10n.noChapterInteractionBoldText;const s=document.createElement("p");s.classList.add("h5p-interactive-book-summary-no-initialized-chapters"),s.innerHTML=this.l10n.noChapterInteractionText,t.appendChild(e),t.appendChild(s),this.wrapper.appendChild(t)}addSummaryPage(t){if(this.wrapper=document.createElement("div"),this.wrapper.classList.add("h5p-interactive-book-summary-page"),this.chapters.filter((t=>t.isInitialized)).length>0||this.chapters.some((t=>t.sections.some((t=>t.taskDone))))){if(this.parent.pageContent&&this.parent.chapters[this.parent.getChapterId(this.parent.pageContent.targetPage.chapter)].isSummary||0===this.parent.chapters.length){if(this.parent.chapters.length>0)for(const t in this.chapters)this.parent.pageContent.initializeChapter(t);this.addProgressIndicators(),this.addActionButtons(),this.addSummaryOverview(),this.addScoreBar()}}else this.noChapterInteractions();return Array.from(document.querySelectorAll(".h5p-interactive-book-summary-footer")).forEach((t=>t.remove())),t.append(this.wrapper),t}checkTheAnswerIsUpdated(){const t=this.getChapterStats(),e=JSON.parse(this.tempState);for(const s of t.keys()){let a=e[s].state.instances,r=t[s].state.instances,i=t[s].sections;for(const t of a.keys())null!==a[t]&&void 0!==a[t]&&(Array.isArray(a[t])&&!this.compareStates(a[t],r[t])&&i[t].taskDone&&(this.parent.isAnswerUpdated=!0),"object"==typeof a[t]&&!Array.isArray(a[t])&&JSON.stringify(a[t])!==JSON.stringify(r[t])&&i[t].taskDone&&(this.parent.isAnswerUpdated=!0));if(this.parent.isAnswerUpdated)break}}getChapterStats(){return this.chapters.filter((t=>!t.isSummary)).map((t=>({sections:t.sections.map((t=>({taskDone:t.taskDone}))),state:t.instance.getCurrentState()})))}compareStates(t,e){return Array.isArray(t)&&Array.isArray(e)&&t.length===e.length&&t.every(((t,s)=>t===e[s]||""===e[s]))}}const d=p;class u extends H5P.EventDispatcher{constructor(t,e,s,a,r){if(super(),this.parent=a,this.behaviour=t.behaviour,this.params=r,this.targetPage={},this.targetPage.redirectFromComponent=!1,this.columnNodes=[],this.chapters=[],this.l10n=t.l10n,this.sidebarIsOpen=!1,this.previousState=s.previousState&&Object.keys(s.previousState).length>0?s.previousState:null,a.hasValidChapters()){const a=this.createColumns(t,e,s);this.preloadChapter(a)}this.content=this.createPageContent(),this.container=document.createElement("div"),this.container.classList.add("h5p-interactive-book-main","h5p-interactive-book-navigation-hidden"),this.container.appendChild(this.content)}getChapters(t=!0){return this.chapters.filter((e=>!e.isSummary||e.isSummary&&!!t))}resetChapters(){this.behaviour.progressIndicators&&!this.behaviour.progressAuto&&this.columnNodes.forEach((t=>{Array.from(t.querySelectorAll(".h5p-interactive-book-status-progress-marker > input[type=checkbox]")).forEach((t=>t.checked=!1))}))}createPageContent(){const t=document.createElement("div");return t.classList.add("h5p-interactive-book-content"),this.columnNodes.forEach((e=>{t.appendChild(e)})),this.setChapterOrder(this.parent.getActiveChapter()),t}setChapterOrder(t){t<0||t>this.columnNodes.length-1||this.columnNodes.forEach(((e,s)=>{e.classList.remove("h5p-interactive-book-previous"),e.classList.remove("h5p-interactive-book-current"),e.classList.remove("h5p-interactive-book-next"),s===t-1||s===t&&e.classList.add("h5p-interactive-book-current")}))}createChapterReadCheckbox(t){const e=document.createElement("input");e.setAttribute("type","checkbox"),e.checked=t,e.onclick=t=>{this.parent.setChapterRead(void 0,t.target.checked)};const s=document.createElement("p");s.innerHTML=this.params.l10n.markAsFinished;const a=document.createElement("label");return a.classList.add("h5p-interactive-book-status-progress-marker"),a.appendChild(e),a.appendChild(s),a}injectSectionId(t,e){const s=e.getElementsByClassName("h5p-column-content");for(let e=0;e<t.length;e++)s[e].id=`h5p-interactive-book-section-${t[e].instance.subContentId}`}preloadChapter(t){this.initializeChapter(t),this.initializeChapter(t+1)}initializeChapter(t){if(t<0||t>this.chapters.length-1)return;const e=this.chapters[t];if(e.isSummary){const s=this.columnNodes[t];return e.isInitialized&&(e.instance.setChapters(this.getChapters(!1)),s.innerHTML=""),e.instance.addSummaryPage(H5P.jQuery(s)),void(e.isInitialized=!0)}if(!e.isInitialized){const s=this.columnNodes[t];e.instance.attach(H5P.jQuery(s)),this.injectSectionId(e.sections,s),this.behaviour.progressIndicators&&!this.behaviour.progressAuto&&s.appendChild(this.createChapterReadCheckbox(!!this.previousState?.chapters?.[t].completed)),e.isInitialized=!0}}createColumns(e,s,a){const r=(a=Object.assign({},a)).previousState&&Object.keys(a.previousState).length>0?a.previousState:null;let i=t.extractFragmentsFromURL(this.parent.validateFragments,this.parent.hashWindow);0===Object.keys(i).length&&a&&r&&r.urlFragments&&(i=r.urlFragments);const n=[];this.chapters=n;for(let t=0;t<e.chapters.length;t++){const a=document.createElement("div"),i={parent:self,previousState:r?r.chapters[t].state:{}},o=H5P.newRunnable(e.chapters[t],s,void 0,void 0,i);this.parent.bubbleUp(o,"resize",this.parent);const c=[],h=(t,e)=>{t.getInstances().forEach(((s,a)=>{if("H5P.Row"===s.libraryInfo.machineName){const t=e[a].content.params.columns;s.getInstances().forEach(((e,s)=>{h(e,t[s].content.params.content)}))}else{let r=e[a].content;"H5P.RowColumn"===t.libraryInfo.machineName&&(r=e[a]),c.push({content:r,instance:s,isTask:!1})}}))};h(o,e.chapters[t].params.content);const l={isInitialized:!1,instance:o,title:e.chapters[t].metadata.title,completed:!!r&&r.chapters[t].completed,tasksLeft:r?r.chapters[t].tasksLeft:0,isSummary:!1,sections:c};a.classList.add("h5p-interactive-book-chapter"),a.id=`h5p-interactive-book-chapter-${o.subContentId}`,l.maxTasks=0,l.tasksLeft=0,l.sections.forEach(((e,s)=>{H5P.Column.isTask(e.instance)&&(e.isTask=!0,l.maxTasks++,l.tasksLeft++,this.behaviour.progressIndicators&&(e.taskDone=!!r&&r.chapters[t].sections[s].taskDone,e.taskDone&&l.tasksLeft--))})),n.push(l),this.columnNodes.push(a)}if(this.parent.hasSummary(n)){const t=document.createElement("div"),s=new d({...e},this.parent,this.getChapters(!1));this.parent.bubbleUp(s,"resize",this.parent);const a={isInitialized:!1,instance:s,title:this.l10n.summaryHeader,isSummary:!0,sections:[]};t.classList.add("h5p-interactive-book-chapter"),t.id="h5p-interactive-book-chapter-summary",a.maxTasks=a.tasksLeft,n.push(a),this.columnNodes.push(t)}if(i.chapter&&i.h5pbookid==this.parent.contentId){const t=this.findChapterIndex(i.chapter);if(-1===t)return 0;if(this.parent.setActiveChapter(t),i.section){const t=i.headerNumber;window.requestAnimationFrame((()=>{this.redirectSection(i.section,t),this.parent.hasCover()&&this.parent.cover.removeCover()}))}return t}return 0}redirectSection(t,e=null){if("top"===t)this.parent.trigger("scrollToTop");else{let s=document.getElementById(t);if(s){if(null!==e){const t=s.querySelectorAll("h2, h3");t[e]&&(s=t[e])}const t=document.createElement("div");t.setAttribute("tabindex","-1"),s.parentNode.insertBefore(t,s),t.focus(),t.addEventListener("blur",(()=>{t.parentNode.removeChild(t)})),this.targetPage.redirectFromComponent=!1,setTimeout((()=>{s.scrollIntoView(!0)}),100)}}}findChapterIndex(t){let e=-1;return this.columnNodes.forEach(((s,a)=>{-1===e&&s.id===t&&(e=a)})),e}changeChapter(t,e){if(this.columnNodes[this.parent.getActiveChapter()].classList.contains("h5p-interactive-book-animate"))return;this.targetPage=e;const s=this.parent.getActiveChapter(),a=this.parent.getChapterId(this.targetPage.chapter),r=s!==a;if(t||this.parent.updateChapterProgress(s,r),this.preloadChapter(a),a<this.columnNodes.length){const e=this.columnNodes[s],i=this.columnNodes[a];if(r&&!t){this.parent.setActiveChapter(a);const t=s<a?"next":"previous";i.classList.add(`h5p-interactive-book-${t}`),i.classList.add("h5p-interactive-book-animate"),e.classList.add("h5p-interactive-book-animate"),setTimeout((()=>{"previous"===t?e.classList.add("h5p-interactive-book-next"):(e.classList.remove("h5p-interactive-book-current"),e.classList.add("h5p-interactive-book-previous")),i.classList.remove(`h5p-interactive-book-${t}`)}),1),setTimeout((()=>{e.classList.remove("h5p-interactive-book-next"),e.classList.remove("h5p-interactive-book-previous"),e.classList.remove("h5p-interactive-book-current"),i.classList.add("h5p-interactive-book-current"),i.classList.remove("h5p-interactive-book-animate"),e.classList.remove("h5p-interactive-book-animate"),this.redirectSection(this.targetPage.section,this.targetPage.headerNumber),this.parent.trigger("resize")}),250)}else this.parent.cover&&!this.parent.cover.hidden?this.parent.on("coverRemoved",(()=>{this.redirectSection(this.targetPage.section,this.targetPage.headerNumber)})):this.redirectSection(this.targetPage.section,this.targetPage.headerNumber);this.parent.sideBar.redirectHandler(a)}}updateFooter(){if(0===this.chapters.length)return;const t=this.parent.getActiveChapter(),e=this.columnNodes[t],s=this.parent.shouldFooterBeHidden(e.clientHeight),a=this.parent.statusBarFooter.wrapper.parentNode;s?a!==this.content&&this.content.appendChild(this.parent.statusBarFooter.wrapper):a!==this.parent.$wrapper&&this.parent.$wrapper.append(this.parent.statusBarFooter.wrapper)}toggleNavigationMenu(){const t=this;this.sidebarIsOpen?(H5P.Transition.onTransitionEnd(H5P.jQuery(this.container),(function(){t.container.classList.add("h5p-interactive-book-navigation-hidden")}),500),this.container.classList.remove("h5p-interactive-book-navigation-open")):(this.container.classList.remove("h5p-interactive-book-navigation-hidden"),setTimeout((function(){t.container.classList.add("h5p-interactive-book-navigation-open")}),1)),this.sidebarIsOpen=!this.sidebarIsOpen}}const m=u;class g extends H5P.EventDispatcher{constructor(e,s,r={}){super();const n=this;if(this.contentId=s,this.previousState=r.previousState,e&&e.behaviour&&e.behaviour.baseColor&&!l.isBaseColor(e.behaviour.baseColor)){l.setBase(e.behaviour.baseColor);const t=document.createElement("style");t.styleSheet?t.styleSheet.cssText=l.getCSS():t.appendChild(document.createTextNode(l.getCSS())),document.head.appendChild(t)}this.activeChapter=0,this.newHandler={},this.completed=!1,this.params=g.sanitizeConfig(e),this.l10n=this.params.l10n,this.params.behaviour=this.params.behaviour||{},this.mainWrapper=null,this.currentRatio=null,this.smallSurface="h5p-interactive-book-small",this.mediumSurface="h5p-interactive-book-medium",this.largeSurface="h5p-interactive-book-large",this.chapters=[],this.isSubmitButtonEnabled=!1,this.isAnswerUpdated=!0,void 0!==r.isScoringEnabled||void 0!==r.isReportingEnabled?this.isSubmitButtonEnabled=r.isScoringEnabled||r.isReportingEnabled:void 0!==H5PIntegration.reportingIsEnabled&&(this.isSubmitButtonEnabled=H5PIntegration.reportingIsEnabled),this.params.behaviour.enableSolutionsButton=!1,this.params.behaviour.enableRetry=this.params.behaviour.enableRetry??!0,this.getAnswerGiven=()=>this.chapters.reduce(((t,e)=>"function"==typeof e.instance.getAnswerGiven?t&&e.instance.getAnswerGiven():t),!0),this.getScore=()=>this.chapters.length>0?this.chapters.reduce(((t,e)=>"function"==typeof e.instance.getScore?t+e.instance.getScore():t),0):this.previousState&&this.previousState.score||0,this.getMaxScore=()=>this.chapters.length>0?this.chapters.reduce(((t,e)=>"function"==typeof e.instance.getMaxScore?t+e.instance.getMaxScore():t),0):this.previousState&&this.previousState.maxScore||0,this.showSolutions=()=>{this.chapters.forEach((t=>{"function"==typeof t.instance.toggleReadSpeaker&&t.instance.toggleReadSpeaker(!0),"function"==typeof t.instance.showSolutions&&t.instance.showSolutions(),"function"==typeof t.instance.toggleReadSpeaker&&t.instance.toggleReadSpeaker(!1)}))},this.resetTask=()=>{if(this.hasValidChapters()){this.chapters.forEach(((t,e)=>{"function"==typeof t.instance.resetTask&&t.instance.resetTask(),t.completed=!1,t.tasksLeft=t.maxTasks,t.sections.forEach((t=>t.taskDone=!1)),this.setChapterRead(e,!1)}));for(const t in this.previousState)delete this.previousState[t];this.hashWindow.location.hash="";const t=this.getActiveChapter();this.redirectChapter({h5pbookid:this.contentId,chapter:this.pageContent.columnNodes[0].id,section:"top"}),this.chapters[t].completed=!1,this.hasCover()&&this.displayCover(this.mainWrapper),this.isAnswerUpdated=!1,this.setActivityStarted(!0),this.pageContent.resetChapters(),this.sideBar.resetIndicators()}},this.getXAPIData=()=>{const t=this.createXAPIEventTemplate("answered");return this.addQuestionToXAPI(t),t.setScoredResult(this.getScore(),this.getMaxScore(),this,!0,this.getScore()===this.getMaxScore()),{statement:t.data.statement,children:this.getXAPIDataFromChildren(this.chapters.map((t=>t.instance)))}},this.getXAPIDataFromChildren=t=>t.map((t=>{if("function"==typeof t.getXAPIData)return t.getXAPIData()})).filter((t=>!!t)),this.addQuestionToXAPI=t=>{const e=t.getVerifiedStatementValue(["object","definition"]);Object.assign(e,this.getxAPIDefinition())},this.getxAPIDefinition=()=>({interactionType:"compound",type:"http://adlnet.gov/expapi/activities/cmi.interaction",description:{"en-US":""}}),this.getCurrentState=()=>{const e=this.chapters.filter((t=>!t.isSummary)).map((t=>({completed:t.completed||null,sections:t.sections.map((t=>({taskDone:t.taskDone||null}))),state:t.instance.getCurrentState()||null}))),s={urlFragments:!this.hashWindow.location.hash&&this.previousState?.urlFragments?this.previousState.urlFragments:t.extractFragmentsFromURL(this.validateFragments,this.hashWindow),chapters:e};return this.activeChapter>0&&(s.score=this.getScore(),s.maxScore=this.getMaxScore()),s},this.getContext=()=>this.cover&&!this.cover.hidden?{}:{type:"page",value:this.activeChapter+1},this.hasCover=()=>this.cover&&this.cover.container,this.hasSummary=(t=this.chapters)=>this.hasChaptersTasks(t)&&this.params.behaviour.displaySummary&&!0===this.params.behaviour.displaySummary,this.hasChaptersTasks=t=>t.filter((t=>t.sections.filter((t=>!0===t.isTask)).length>0)).length>0,this.hasValidChapters=()=>this.params.chapters.length>0,this.getActiveChapter=(t=!1)=>t?this.chapters[this.activeChapter]:this.activeChapter,this.setActiveChapter=t=>{t=parseInt(t),isNaN(t)||(this.activeChapter=t)},this.validateFragments=t=>void 0!==t.chapter&&String(t.h5pbookid)===String(n.contentId),this.bubbleUp=(t,e,s)=>{t.on(e,(function(t){s.bubblingUpwards=!0,s.trigger(e,t),s.bubblingUpwards=!1}))},this.isMenuOpen=()=>this.statusBarHeader.isMenuOpen(),this.isSmallSurface=()=>this.mainWrapper&&this.mainWrapper.hasClass(this.smallSurface),this.getRatio=()=>this.mainWrapper.width()/parseFloat(this.mainWrapper.css("font-size")),this.setWrapperClassFromRatio=(t,e=this.getRatio())=>{e!==this.currentRatio&&(this.breakpoints().forEach((t=>{t.shouldAdd(e)?this.mainWrapper.addClass(t.className):this.mainWrapper.removeClass(t.className)})),this.currentRatio=e)},this.resize=()=>{if(this.isBubblingUpToCore||this.isBubblingUpToCoreNo2)return;if(!this.pageContent||!this.hasValidChapters()||!this.mainWrapper)return;window.requestAnimationFrame((()=>{this.setWrapperClassFromRatio(this.mainWrapper)}));const t=this.getActiveChapter(),e=this.pageContent.columnNodes[t];null!==e.offsetParent&&(this.bubblingUpwards||this.pageContent.chapters[t].instance.trigger("resize"),this.pageContent.content.style.height===`${e.offsetHeight}px`||e.classList.contains("h5p-interactive-book-animate")||(this.pageContent.content.style.height=`${e.offsetHeight}px`,this.pageContent.updateFooter(),setTimeout((()=>{this.isBubblingUpToCore=!0,this.trigger("resize"),this.isBubblingUpToCore=!1}),10),window.clearTimeout(this.extraResizeTimeout),this.extraResizeTimeout=window.setTimeout((()=>{this.isBubblingUpToCoreNo2=!0,this.trigger("resize"),this.isBubblingUpToCoreNo2=!1}),200)))},this.on("resize",this.resize,this),this.on("toggleMenu",(t=>{this.sideBar.container.addEventListener("transitionend",(()=>{this.trigger("resize")}));const e=!t.data?.shouldNotFocusNav;this.pageContent.toggleNavigationMenu(),this.statusBarHeader.menuToggleButton.setAttribute("aria-expanded",this.statusBarHeader.menuToggleButton.classList.toggle("h5p-interactive-book-status-menu-active")?"true":"false"),this.pageContent.sidebarIsOpen&&e&&this.sideBar.focus()})),this.on("scrollToTop",(t=>{if(!0===H5P.isFullscreen){const t=this.pageContent.container;t.scrollBy(0,-t.scrollHeight)}else{if(t?.data?.preventScrollToTop)return;!1!==t?.data?.focus&&this.statusBarHeader.wrapper.scrollIntoView({block:"nearest"})}})),this.on("newChapter",(e=>{if(!this.pageContent.columnNodes[this.getActiveChapter()].classList.contains("h5p-interactive-book-animate")){if(this.newHandler=e.data,e.data.newHash=t.createFragmentsString(this.newHandler),this.newHandler.redirectFromComponent=!0,this.getChapterId(e.data.chapter)===this.activeChapter){if(t.areFragmentsEqual(e.data,t.extractFragmentsFromURL(this.validateFragments,this.hashWindow),["h5pbookid","chapter","section","headerNumber"]))return void this.pageContent.changeChapter(!1,e.data)}if(this.params.behaviour.progressAuto){const t=this.getChapterId(this.newHandler.chapter);this.isFinalChapterWithoutTask(t)&&this.setChapterRead(t)}H5P.trigger(this,"changeHash",e.data),H5P.trigger(this,"scrollToTop",e.data)}})),this.isCurrentChapterRead=()=>this.isChapterRead(this.chapters[this.activeChapter],this.params.behaviour.progressAuto),this.isChapterRead=(t,e=this.params.behaviour.progressAuto)=>t.completed||e&&0===t.tasksLeft,this.isFinalChapterWithoutTask=t=>0===this.chapters[t].maxTasks&&this.chapters.slice(0,t).concat(this.chapters.slice(t+1)).every((t=>0===t.tasksLeft)),this.setChapterRead=(t=this.activeChapter,e=!0)=>{this.handleChapterCompletion(t,e),this.sideBar.updateChapterProgressIndicator(t,e?"DONE":this.hasChapterStartedTasks(this.chapters[t])?"STARTED":"BLANK")},this.hasChapterStartedTasks=t=>t.sections.filter((t=>t.taskDone)).length>0,this.getChapterStatus=(t,e=this.params.behaviour.progressAuto)=>{let s="BLANK";return this.isChapterRead(t,e)?s="DONE":this.hasChapterStartedTasks(t)&&(s="STARTED"),s},this.updateChapterProgress=(t,e=!1)=>{if(!this.params.behaviour.progressIndicators)return;const s=this.chapters[t];let a;a=s.maxTasks?this.getChapterStatus(s):this.isChapterRead(s)&&e?"DONE":"BLANK","DONE"===a&&this.handleChapterCompletion(t),this.sideBar.updateChapterProgressIndicator(t,a)},this.getChapterId=t=>{t=t.replace("h5p-interactive-book-chapter-","");const e=this.chapters.map((t=>t.instance.subContentId)).indexOf(t);return-1===e?0:e},this.handleChapterCompletion=(t,e=!0)=>{const s=this.chapters[t];if(!0!==s.isSummary){if(!e)return s.completed=!1,this.completed=!1,void this.trigger("bookCompleted",{completed:this.completed});s.completed||(s.completed=!0,s.instance.triggerXAPIScored(s.instance.getScore(),s.instance.getMaxScore(),"completed")),!this.completed&&this.chapters.filter((t=>!t.isSummary)).every((t=>t.completed))&&(this.completed=!0,this.trigger("bookCompleted",{completed:this.completed}))}},this.shouldFooterBeHidden=()=>this.isFullscreen,this.getContainerWidth=()=>this.pageContent&&this.pageContent.container?this.pageContent.container.offsetWidth:0,this.changeChapter=t=>{this.pageContent.changeChapter(t,this.newHandler),this.statusBarHeader.updateStatusBar(),this.statusBarFooter.updateStatusBar(),this.newHandler.redirectFromComponent=!1},this.breakpoints=()=>[{className:this.smallSurface,shouldAdd:t=>t<43},{className:this.mediumSurface,shouldAdd:t=>t>=43&&t<60},{className:this.largeSurface,shouldAdd:t=>t>=60}],H5P.on(this,"respondChangeHash",(()=>{const e=t.extractFragmentsFromURL(n.validateFragments,this.hashWindow);e.h5pbookid&&String(e.h5pbookid)===String(n.contentId)&&this.redirectChapter(e)})),H5P.on(this,"changeHash",(t=>{String(t.data.h5pbookid)===String(this.contentId)&&(this.hashWindow.location.hash=t.data.newHash)})),H5P.externalDispatcher.on("xAPI",(function(t){const e=["answered","completed","interacted","attempted"].indexOf(t.getVerb())>-1,s=n.chapters.length;if(n!==this&&e&&s){const t=this.subContentId||this.contentData?.subContentId;if(!t)return;n.setSectionStatusByID(t,n.activeChapter)}})),this.redirectChapter=t=>{this.newHandler.redirectFromComponent||(t.h5pbookid&&String(t.h5pbookid)===String(n.contentId)?n.newHandler=t:n.newHandler={chapter:`h5p-interactive-book-chapter-${n.chapters[0].instance.subContentId}`,h5pbookid:n.h5pbookid}),n.changeChapter(!1)},this.setSectionStatusByID=(t,e)=>{this.chapters[e].sections.forEach(((s,a)=>{const r=s.instance;r.subContentId!==t||s.taskDone||(s.taskDone=!r.getAnswerGiven||r.getAnswerGiven(),this.sideBar.setSectionMarker(e,a),s.taskDone&&(this.chapters[e].tasksLeft-=1),this.updateChapterProgress(e))}))},this.addHashListener=t=>{t.addEventListener("hashchange",(t=>{H5P.trigger(this,"respondChangeHash",t)})),this.hashWindow=t};try{this.addHashListener(top)}catch(t){if(!(t instanceof DOMException))throw t;this.addHashListener(window)}this.displayCover=t=>{this.hideAllElements(!0),t.append(this.cover.container),t.addClass("covered"),this.cover.initMedia()},this.attach=t=>{this.mainWrapper=t,t.addClass("h5p-interactive-book h5p-scrollable-fullscreen"),this.isEdge18orEarlier()&&t.addClass("edge-18"),this.setWrapperClassFromRatio(this.mainWrapper),this.cover&&this.shouldShowCover&&this.displayCover(t),t.append(this.statusBarHeader.wrapper);const e=this.pageContent.container.firstChild;e&&this.pageContent.container.insertBefore(this.sideBar.container,e),t.append(this.pageContent.container),t.append(this.statusBarFooter.wrapper),this.$wrapper=t,this.params.behaviour.defaultTableOfContents&&!this.isSmallSurface()&&this.trigger("toggleMenu",{shouldNotFocusNav:!0}),this.pageContent.updateFooter()},this.isEdge18orEarlier=function(){const t=window.navigator.userAgent,e=t.indexOf("Edge/");if(e<0)return!1;const s=t.substring(e+5,t.indexOf(".",e));return parseInt(s)<=18},this.hideAllElements=function(t){const e=[this.statusBarHeader.wrapper,this.statusBarFooter.wrapper,this.pageContent.container];t?e.forEach((t=>{t.classList.add("h5p-content-hidden"),t.classList.add("h5p-interactive-book-cover-present")})):e.forEach((t=>{t.classList.remove("h5p-content-hidden"),t.classList.remove("h5p-interactive-book-cover-present")}))};const c=t.extractFragmentsFromURL(this.validateFragments,this.hashWindow);this.shouldShowCover=this.params.showCoverPage&&!(c.chapter||r.previousState?.urlFragments?.chapter),this.params.showCoverPage&&(this.cover=new o(this.params.bookCover,r.metadata.title,this.l10n.read,s,this));const h={...r,parent:this};this.pageContent=new m(this.params,s,h,this,{l10n:{markAsFinished:this.l10n.markAsFinished},behaviour:this.params.behaviour}),this.chapters=this.pageContent.getChapters(),this.sideBar=new a(this.params,s,r.metadata.title,this,this.chapters),this.chapters.forEach(((t,e)=>{this.setChapterRead(e,t.completed)})),this.statusBarHeader=new i(s,this.chapters.length,this,{l10n:this.l10n,a11y:this.params.a11y,behaviour:this.params.behaviour,displayFullScreenButton:!0,displayMenuToggleButton:!0,preventScrollToTop:!0},"h5p-interactive-book-status-header"),this.statusBarFooter=new i(s,this.chapters.length,this,{l10n:this.l10n,a11y:this.params.a11y,behaviour:this.params.behaviour,displayToTopButton:!0},"h5p-interactive-book-status-footer"),this.hasCover()?(this.hideAllElements(!0),this.on("coverRemoved",(t=>{this.hideAllElements(!1),this.params.chapters[this.activeChapter]?.subContentId&&this.trigger("newChapter",{h5pbookid:this.contentId,chapter:`h5p-interactive-book-chapter-${this.params.chapters[this.activeChapter].subContentId}`,section:0,focus:t.data}),this.trigger("resize"),this.setActivityStarted(),t.data&&this.statusBarHeader.progressBar.progress.focus()}))):this.setActivityStarted(),this.hasValidChapters()&&(this.statusBarHeader.updateStatusBar(),this.statusBarFooter.updateStatusBar())}static sanitizeConfig(t){const{read:e="Read",displayTOC:s="Display &#039;Table of contents&#039;",hideTOC:a="Hide &#039;Table of contents&#039;",nextPage:r="Next page",previousPage:i="Previous page",chapterCompleted:n="Page completed!",partCompleted:o="@pages of @total completed",incompleteChapter:c="Incomplete page",navigateToTop:h="Navigate to the top",markAsFinished:l="I have finished this page",fullscreen:p="Fullscreen",exitFullscreen:d="Exit fullscreen",bookProgressSubtext:u="@count of @total pages",interactionsProgressSubtext:m="@count of @total interactions",submitReport:g="Submit Report",restartLabel:b="Restart",summaryHeader:v="Summary",allInteractions:f="All interactions",unansweredInteractions:k="Unanswered interactions",scoreText:y="@score / @maxscore",leftOutOfTotalCompleted:C="@left of @max interactinos completed",noInteractions:w="No interactions",score:S="Score",summaryAndSubmit:L="Summary & submit",noChapterInteractionBoldText:x="You have not interacted with any pages.",noChapterInteractionText:E="You have to interact with at least one page before you can see the summary.",yourAnswersAreSubmittedForReview:A="Your answers are submitted for review!",bookProgress:T="Book progress",interactionsProgress:M="Interactions progress",totalScoreLabel:I="Total score",...P}=t;return P.chapters=P.chapters.map((t=>(t.params.content=t.params.content?.filter((t=>t.content)),t))).filter((t=>t.params.content&&t.params.content.length>0)),P.behaviour.displaySummary=void 0===P.behaviour.displaySummary||P.behaviour.displaySummary,P.l10n={read:e,displayTOC:s,hideTOC:a,nextPage:r,previousPage:i,chapterCompleted:n,partCompleted:o,incompleteChapter:c,navigateToTop:h,markAsFinished:l,fullscreen:p,exitFullscreen:d,bookProgressSubtext:u,interactionsProgressSubtext:m,submitReport:g,restartLabel:b,summaryHeader:v,allInteractions:f,unansweredInteractions:k,scoreText:y,leftOutOfTotalCompleted:C,noInteractions:w,score:S,summaryAndSubmit:L,noChapterInteractionBoldText:x,noChapterInteractionText:E,yourAnswersAreSubmittedForReview:A,bookProgress:T,interactionsProgress:M,totalScoreLabel:I},P}}H5P=H5P||{},H5P.InteractiveBook=g})()})();;// Will render a Question with multiple choices for answers.

// Options format:
// {
//   title: "Optional title for question box",
//   question: "Question text",
//   answers: [{text: "Answer text", correct: false}, ...],
//   singleAnswer: true, // or false, will change rendered output slightly.
//   singlePoint: true,  // True if question give a single point score only
//                       // if all are correct, false to give 1 point per
//                       // correct answer. (Only for singleAnswer=false)
//   randomAnswers: false  // Whether to randomize the order of answers.
// }
//
// Events provided:
// - h5pQuestionAnswered: Triggered when a question has been answered.

var H5P = H5P || {};

/**
 * @typedef {Object} Options
 *   Options for multiple choice
 *
 * @property {Object} behaviour
 * @property {boolean} behaviour.confirmCheckDialog
 * @property {boolean} behaviour.confirmRetryDialog
 *
 * @property {Object} UI
 * @property {string} UI.tipsLabel
 *
 * @property {Object} [confirmRetry]
 * @property {string} [confirmRetry.header]
 * @property {string} [confirmRetry.body]
 * @property {string} [confirmRetry.cancelLabel]
 * @property {string} [confirmRetry.confirmLabel]
 *
 * @property {Object} [confirmCheck]
 * @property {string} [confirmCheck.header]
 * @property {string} [confirmCheck.body]
 * @property {string} [confirmCheck.cancelLabel]
 * @property {string} [confirmCheck.confirmLabel]
 */

/**
 * Module for creating a multiple choice question
 *
 * @param {Options} options
 * @param {number} contentId
 * @param {Object} contentData
 * @returns {H5P.MultiChoice}
 * @constructor
 */
H5P.MultiChoice = function (options, contentId, contentData) {
  if (!(this instanceof H5P.MultiChoice))
    return new H5P.MultiChoice(options, contentId, contentData);
  var self = this;
  this.contentId = contentId;
  this.contentData = contentData;
  H5P.Question.call(self, 'multichoice');
  var $ = H5P.jQuery;

  var defaults = {
    image: null,
    question: "No question text provided",
    answers: [
      {
        tipsAndFeedback: {
          tip: '',
          chosenFeedback: '',
          notChosenFeedback: ''
        },
        text: "Answer 1",
        correct: true
      }
    ],
    overallFeedback: [],
    weight: 1,
    userAnswers: [],
    UI: {
      checkAnswerButton: 'Check',
      submitAnswerButton: 'Submit',
      showSolutionButton: 'Show solution',
      tryAgainButton: 'Try again',
      scoreBarLabel: 'You got :num out of :total points',
      tipAvailable: "Tip available",
      feedbackAvailable: "Feedback available",
      readFeedback: 'Read feedback',
      shouldCheck: "Should have been checked",
      shouldNotCheck: "Should not have been checked",
      noInput: 'Input is required before viewing the solution',
      a11yCheck: 'Check the answers. The responses will be marked as correct, incorrect, or unanswered.',
      a11yShowSolution: 'Show the solution. The task will be marked with its correct solution.',
      a11yRetry: 'Retry the task. Reset all responses and start the task over again.',
    },
    behaviour: {
      enableRetry: true,
      enableSolutionsButton: true,
      enableCheckButton: true,
      type: 'auto',
      singlePoint: true,
      randomAnswers: false,
      showSolutionsRequiresInput: true,
      autoCheck: false,
      passPercentage: 100,
      showScorePoints: true
    }
  };
  var params = $.extend(true, defaults, options);
  // Keep track of number of correct choices
  var numCorrect = 0;

  // Loop through choices
  for (var i = 0; i < params.answers.length; i++) {
    var answer = params.answers[i];

    // Make sure tips and feedback exists
    answer.tipsAndFeedback = answer.tipsAndFeedback || {};

    if (params.answers[i].correct) {
      // Update number of correct choices
      numCorrect++;
    }
  }

  // Determine if no choices is the correct
  var blankIsCorrect = (numCorrect === 0);

  // Determine task type
  if (params.behaviour.type === 'auto') {
    // Use single choice if only one choice is correct
    params.behaviour.singleAnswer = (numCorrect === 1);
  }
  else {
    params.behaviour.singleAnswer = (params.behaviour.type === 'single');
  }

  var getCheckboxOrRadioIcon = function (radio, selected) {
    var icon;
    if (radio) {
      icon = selected ? '&#xe603;' : '&#xe600;';
    }
    else {
      icon = selected ? '&#xe601;' : '&#xe602;';
    }
    return icon;
  };

  // Initialize buttons and elements.
  var $myDom;
  var $feedbackDialog;

  /**
   * Remove all feedback dialogs
   */
  var removeFeedbackDialog = function () {
    // Remove the open feedback dialogs.
    $myDom.unbind('click', removeFeedbackDialog);
    $myDom.find('.h5p-feedback-button, .h5p-feedback-dialog').remove();
    $myDom.find('.h5p-has-feedback').removeClass('h5p-has-feedback');
    if ($feedbackDialog) {
      $feedbackDialog.remove();
    }
  };

  var score = 0;
  var solutionsVisible = false;

  /**
   * Add feedback to element
   * @param {jQuery} $element Element that feedback will be added to
   * @param {string} feedback Feedback string
   */
  var addFeedback = function ($element, feedback) {
    $feedbackDialog = $('' +
    '<div class="h5p-feedback-dialog">' +
      '<div class="h5p-feedback-inner">' +
        '<div class="h5p-feedback-text">' + feedback + '</div>' +
      '</div>' +
    '</div>');

    //make sure feedback is only added once
    if (!$element.find($('.h5p-feedback-dialog')).length) {
      $feedbackDialog.appendTo($element.addClass('h5p-has-feedback'));
    }
  };

  /**
   * Register the different parts of the task with the H5P.Question structure.
   */
  self.registerDomElements = function () {
    var media = params.media;
    if (media && media.type && media.type.library) {
      media = media.type;
      var type = media.library.split(' ')[0];
      if (type === 'H5P.Image') {
        if (media.params.file) {
          // Register task image
          self.setImage(media.params.file.path, {
            disableImageZooming: params.media.disableImageZooming || false,
            alt: media.params.alt,
            title: media.params.title,
            expandImage: media.params.expandImage,
            minimizeImage: media.params.minimizeImage
          });
        }
      }
      else if (type === 'H5P.Video') {
        if (media.params.sources) {
          // Register task video
          self.setVideo(media);
        }
      }
      else if (type === 'H5P.Audio') {
        if (media.params.files) {
          // Register task audio
          self.setAudio(media);
        }
      }
    }

    // Determine if we're using checkboxes or radio buttons
    for (var i = 0; i < params.answers.length; i++) {
      params.answers[i].checkboxOrRadioIcon = getCheckboxOrRadioIcon(params.behaviour.singleAnswer, params.userAnswers.indexOf(i) > -1);
    }

    // Register Introduction
    self.setIntroduction('<div id="' + params.labelId + '">' + params.question + '</div>');

    // Register task content area
    $myDom = $('<ul>', {
      'class': 'h5p-answers',
      role: params.role,
      'aria-labelledby': params.labelId
    });

    for (let i = 0; i < params.answers.length; i++) {
      const answer = params.answers[i];
      answer.text = answer.text ?? '<div></div>';
      $('<li>', {
        'class': 'h5p-answer',
        role: answer.role,
        tabindex: answer.tabindex,
        'aria-checked': answer.checked,
        'data-id': i,
        html: '<div class="h5p-alternative-container"><span class="h5p-alternative-inner">' + answer.text + '</span></div>',
        appendTo: $myDom
      });
    }

    self.setContent($myDom, {
      'class': params.behaviour.singleAnswer ? 'h5p-radio' : 'h5p-check'
    });

    // Create tips:
    var $answers = $('.h5p-answer', $myDom).each(function (i) {

      var tip = params.answers[i].tipsAndFeedback.tip;
      if (tip === undefined) {
        return; // No tip
      }

      tip = tip.trim();
      var tipContent = tip
        .replace(/&nbsp;/g, '')
        .replace(/<p>/g, '')
        .replace(/<\/p>/g, '')
        .trim();
      if (!tipContent.length) {
        return; // Empty tip
      }
      else {
        $(this).addClass('h5p-has-tip');
      }

      // Add tip
      var $wrap = $('<div/>', {
        'class': 'h5p-multichoice-tipwrap',
        'aria-label': params.UI.tipAvailable + '.'
      });

      var $multichoiceTip = $('<div>', {
        'role': 'button',
        'tabindex': 0,
        'title': params.UI.tipsLabel,
        'aria-label': params.UI.tipsLabel,
        'aria-expanded': false,
        'class': 'multichoice-tip',
        appendTo: $wrap
      });

      var tipIconHtml = '<span class="joubel-icon-tip-normal">' +
                          '<span class="h5p-icon-shadow"></span>' +
                          '<span class="h5p-icon-speech-bubble"></span>' +
                          '<span class="h5p-icon-info"></span>' +
                        '</span>';

      $multichoiceTip.append(tipIconHtml);

      $multichoiceTip.click(function () {
        var $tipContainer = $multichoiceTip.parents('.h5p-answer');
        var openFeedback = !$tipContainer.children('.h5p-feedback-dialog').is($feedbackDialog);
        removeFeedbackDialog();

        // Do not open feedback if it was open
        if (openFeedback) {
          $multichoiceTip.attr('aria-expanded', true);

          // Add tip dialog
          addFeedback($tipContainer, tip);
          $feedbackDialog.addClass('h5p-has-tip');

          // Tip for readspeaker
          self.read(tip);
        }
        else {
          $multichoiceTip.attr('aria-expanded', false);
        }

        self.trigger('resize');

        // Remove tip dialog on dom click
        setTimeout(function () {
          $myDom.click(removeFeedbackDialog);
        }, 100);

        // Do not propagate
        return false;
      }).keydown(function (e) {
        if (e.which === 32) {
          $(this).click();
          return false;
        }
      });

      $('.h5p-alternative-container', this).append($wrap);
    });

    // Set event listeners.
    var toggleCheck = function ($ans) {
      if ($ans.attr('aria-disabled') === 'true') {
        return;
      }
      self.answered = true;
      var num = parseInt($ans.data('id'));
      if (params.behaviour.singleAnswer) {
        // Store answer
        params.userAnswers = [num];

        // Calculate score
        score = (params.answers[num].correct ? 1 : 0);

        // De-select previous answer
        $answers.not($ans).removeClass('h5p-selected').attr('tabindex', '-1').attr('aria-checked', 'false');

        // Select new answer
        $ans.addClass('h5p-selected').attr('tabindex', '0').attr('aria-checked', 'true');
      }
      else {
        if ($ans.attr('aria-checked') === 'true') {
          const pos = params.userAnswers.indexOf(num);
          if (pos !== -1) {
            params.userAnswers.splice(pos, 1);
          }

          // Do not allow un-checking when retry disabled and auto check
          if (params.behaviour.autoCheck && !params.behaviour.enableRetry) {
            return;
          }

          // Remove check
          $ans.removeClass('h5p-selected').attr('aria-checked', 'false');
        }
        else {
          params.userAnswers.push(num);
          $ans.addClass('h5p-selected').attr('aria-checked', 'true');
        }

        // Calculate score
        calcScore();
      }

      self.triggerXAPI('interacted');
      hideSolution($ans);

      if (params.userAnswers.length) {
        self.showButton('check-answer');
        self.hideButton('try-again');
        self.hideButton('show-solution');

        if (params.behaviour.autoCheck) {
          if (params.behaviour.singleAnswer) {
            // Only a single answer allowed
            checkAnswer();
          }
          else {
            // Show feedback for selected alternatives
            self.showCheckSolution(true);

            // Always finish task if it was completed successfully
            if (score === self.getMaxScore()) {
              checkAnswer();
            }
          }
        }
      }
    };

    $answers.click(function () {
      toggleCheck($(this));
    }).keydown(function (e) {
      if (e.keyCode === 32) { // Space bar
        // Select current item
        toggleCheck($(this));
        return false;
      }

      if (params.behaviour.singleAnswer) {
        switch (e.keyCode) {
          case 38:   // Up
          case 37: { // Left
            // Try to select previous item
            var $prev = $(this).prev();
            if ($prev.length) {
              toggleCheck($prev.focus());
            }
            return false;
          }
          case 40:   // Down
          case 39: { // Right
            // Try to select next item
            var $next = $(this).next();
            if ($next.length) {
              toggleCheck($next.focus());
            }
            return false;
          }
        }
      }
    });

    if (params.behaviour.singleAnswer) {
      // Special focus handler for radio buttons
      $answers.focus(function () {
        if ($(this).attr('aria-disabled') !== 'true') {
          $answers.not(this).attr('tabindex', '-1');
        }
      }).blur(function () {
        if (!$answers.filter('.h5p-selected').length) {
          $answers.first().add($answers.last()).attr('tabindex', '0');
        }
      });
    }

    // Adds check and retry button
    addButtons();
    if (!params.behaviour.singleAnswer) {

      calcScore();
    }
    else {
      if (params.userAnswers.length && params.answers[params.userAnswers[0]].correct) {
        score = 1;
      }
      else {
        score = 0;
      }
    }

    // Has answered through auto-check in a previous session
    if (hasCheckedAnswer && params.behaviour.autoCheck) {

      // Check answers if answer has been given or max score reached
      if (params.behaviour.singleAnswer || score === self.getMaxScore()) {
        checkAnswer();
      }
      else {
        // Show feedback for checked checkboxes
        self.showCheckSolution(true);
      }
    }
  };

  this.showAllSolutions = function () {
    if (solutionsVisible) {
      return;
    }
    solutionsVisible = true;

    $myDom.find('.h5p-answer').each(function (i, e) {
      var $e = $(e);
      var a = params.answers[i];
      const className = 'h5p-solution-icon-' + (params.behaviour.singleAnswer ? 'radio' : 'checkbox');

      if (a.correct) {
        $e.addClass('h5p-should').append($('<span/>', {
          'class': className,
          html: params.UI.shouldCheck + '.'
        }));
      }
      else {
        $e.addClass('h5p-should-not').append($('<span/>', {
          'class': className,
          html: params.UI.shouldNotCheck + '.'
        }));
      }
    }).find('.h5p-question-plus-one, .h5p-question-minus-one').remove();

    // Make sure input is disabled in solution mode
    disableInput();

    // Move focus back to the first alternative so that the user becomes
    // aware that the solution is being shown.
    $myDom.find('.h5p-answer:first-child').focus();

    //Hide buttons and retry depending on settings.
    self.hideButton('check-answer');
    self.hideButton('show-solution');
    if (params.behaviour.enableRetry) {
      self.showButton('try-again');
    }
    self.trigger('resize');
  };

  /**
   * Used in contracts.
   * Shows the solution for the task and hides all buttons.
   */
  this.showSolutions = function () {
    removeFeedbackDialog();
    self.showCheckSolution();
    self.showAllSolutions();
    disableInput();
    self.hideButton('try-again');
  };

  /**
   * Hide solution for the given answer(s)
   *
   * @private
   * @param {H5P.jQuery} $answer
   */
  var hideSolution = function ($answer) {
    $answer
      .removeClass('h5p-correct')
      .removeClass('h5p-wrong')
      .removeClass('h5p-should')
      .removeClass('h5p-should-not')
      .removeClass('h5p-has-feedback')
      .find('.h5p-question-plus-one, ' +
        '.h5p-question-minus-one, ' +
        '.h5p-answer-icon, ' +
        '.h5p-solution-icon-radio, ' +
        '.h5p-solution-icon-checkbox, ' +
        '.h5p-feedback-dialog')
        .remove();
  };

  /**
   *
   */
  this.hideSolutions = function () {
    solutionsVisible = false;

    hideSolution($('.h5p-answer', $myDom));

    this.removeFeedback(); // Reset feedback

    self.trigger('resize');
  };

  /**
   * Resets the whole task.
   * Used in contracts with integrated content.
   * @private
   * @param {boolean} moveFocus True to move the focus to first option
   * This prevents loss of focus if reset from within content
   */
  this.resetTask = function (moveFocus = false) {
    for (let i = 0; i < params.answers.length; i++) {
      if (params.answers[i].checked) {
        delete params.answers[i].checked;
      }
    }
    self.answered = false;
    self.hideSolutions();
    params.userAnswers = [];
    removeSelections(moveFocus);
    self.showButton('check-answer');
    self.hideButton('try-again');
    self.hideButton('show-solution');
    enableInput();
    $myDom?.find('.h5p-feedback-available').remove();
  };

  var calculateMaxScore = function () {
    if (blankIsCorrect) {
      return params.weight;
    }
    var maxScore = 0;
    for (var i = 0; i < params.answers.length; i++) {
      var choice = params.answers[i];
      if (choice.correct) {
        maxScore += (choice.weight !== undefined ? choice.weight : 1);
      }
    }
    return maxScore;
  };

  this.getMaxScore = function () {
    return (!params.behaviour.singleAnswer && !params.behaviour.singlePoint ? calculateMaxScore() : params.weight);
  };

  /**
   * Check answer
   */
  var checkAnswer = function () {
    // Unbind removal of feedback dialogs on click
    $myDom.unbind('click', removeFeedbackDialog);

    // Remove all tip dialogs
    removeFeedbackDialog();

    if (params.behaviour.enableSolutionsButton) {
      self.showButton('show-solution');
    }
    if (params.behaviour.enableRetry) {
      self.showButton('try-again');
    }
    self.hideButton('check-answer');

    self.showCheckSolution();
    disableInput();

    var xAPIEvent = self.createXAPIEventTemplate('answered');
    addQuestionToXAPI(xAPIEvent);
    addResponseToXAPI(xAPIEvent);
    self.trigger(xAPIEvent);
  };

  /**
   * Adds the ui buttons.
   * @private
   */
  var addButtons = function () {
    var $content = $('[data-content-id="' + self.contentId + '"].h5p-content');
    var $containerParents = $content.parents('.h5p-container');

    // select find container to attach dialogs to
    var $container;
    if($containerParents.length !== 0) {
      // use parent highest up if any
      $container = $containerParents.last();
    }
    else if($content.length !== 0){
      $container = $content;
    }
    else  {
      $container = $(document.body);
    }

    // Show solution button
    self.addButton('show-solution', params.UI.showSolutionButton, function () {
      if (params.behaviour.showSolutionsRequiresInput && !self.getAnswerGiven(true)) {
        // Require answer before solution can be viewed
        self.updateFeedbackContent(params.UI.noInput);
        self.read(params.UI.noInput);
      }
      else {
        calcScore();
        self.showAllSolutions();
      }

    }, false, {
      'aria-label': params.UI.a11yShowSolution,
    });

    // Check button
    if (params.behaviour.enableCheckButton && (!params.behaviour.autoCheck || !params.behaviour.singleAnswer)) {
      self.addButton('check-answer', params.UI.checkAnswerButton,
        function () {
          self.answered = true;
          checkAnswer();
          $myDom.find('.h5p-answer:first-child').focus();
        },
        true,
        {
          'aria-label': params.UI.a11yCheck,
        },
        {
          confirmationDialog: {
            enable: params.behaviour.confirmCheckDialog,
            l10n: params.confirmCheck,
            instance: self,
            $parentElement: $container
          },
          contentData: self.contentData,
          textIfSubmitting: params.UI.submitAnswerButton,
        }
      );
    }

    // Try Again button
    self.addButton('try-again', params.UI.tryAgainButton, function () {
      self.resetTask(true);

      if (params.behaviour.randomAnswers) {
        // reshuffle answers
       var oldIdMap = idMap;
       idMap = getShuffleMap();
       var answersDisplayed = $myDom.find('.h5p-answer');
       // remember tips
       var tip = [];
       for (i = 0; i < answersDisplayed.length; i++) {
         tip[i] = $(answersDisplayed[i]).find('.h5p-multichoice-tipwrap');
       }
       // Those two loops cannot be merged or you'll screw up your tips
       for (i = 0; i < answersDisplayed.length; i++) {
         // move tips and answers on display
         $(answersDisplayed[i]).find('.h5p-alternative-inner').html(params.answers[i].text);
         $(tip[i]).detach().appendTo($(answersDisplayed[idMap.indexOf(oldIdMap[i])]).find('.h5p-alternative-container'));
       }
     }
    }, false, {
      'aria-label': params.UI.a11yRetry,
    }, {
      confirmationDialog: {
        enable: params.behaviour.confirmRetryDialog,
        l10n: params.confirmRetry,
        instance: self,
        $parentElement: $container
      }
    });
  };

  /**
   * Determine which feedback text to display
   *
   * @param {number} score
   * @param {number} max
   * @return {string}
   */
  var getFeedbackText = function (score, max) {
    var ratio = (score / max);

    var feedback = H5P.Question.determineOverallFeedback(params.overallFeedback, ratio);

    return feedback.replace('@score', score).replace('@total', max);
  };

  /**
   * Shows feedback on the selected fields.
   * @public
   * @param {boolean} [skipFeedback] Skip showing feedback if true
   */
  this.showCheckSolution = function (skipFeedback) {
    var scorePoints;
    if (!(params.behaviour.singleAnswer || params.behaviour.singlePoint || !params.behaviour.showScorePoints)) {
      scorePoints = new H5P.Question.ScorePoints();
    }

    $myDom.find('.h5p-answer').each(function (i, e) {
      var $e = $(e);
      var a = params.answers[i];
      var chosen = ($e.attr('aria-checked') === 'true');
      if (chosen) {
        if (a.correct) {
          // May already have been applied by instant feedback
          if (!$e.hasClass('h5p-correct')) {
            $e.addClass('h5p-correct').append($('<span/>', {
              'class': 'h5p-answer-icon',
              html: params.UI.correctAnswer + '.'
            }));
          }
        }
        else {
          if (!$e.hasClass('h5p-wrong')) {
            $e.addClass('h5p-wrong').append($('<span/>', {
              'class': 'h5p-answer-icon',
              html: params.UI.wrongAnswer + '.'
            }));
          }
        }

        if (scorePoints) {
          var alternativeContainer = $e[0].querySelector('.h5p-alternative-container');

          if (!params.behaviour.autoCheck || alternativeContainer.querySelector('.h5p-question-plus-one, .h5p-question-minus-one') === null) {
            alternativeContainer.appendChild(scorePoints.getElement(a.correct));
          }
        }
      }

      if (!skipFeedback) {
        if (chosen && a.tipsAndFeedback.chosenFeedback !== undefined && a.tipsAndFeedback.chosenFeedback !== '') {
          addFeedback($e, a.tipsAndFeedback.chosenFeedback);
        }
        else if (!chosen && a.tipsAndFeedback.notChosenFeedback !== undefined && a.tipsAndFeedback.notChosenFeedback !== '') {
          addFeedback($e, a.tipsAndFeedback.notChosenFeedback);
        }
      }
    });

    // Determine feedback
    var max = self.getMaxScore();

    // Disable task if maxscore is achieved
    var fullScore = (score === max);

    if (fullScore) {
      self.hideButton('check-answer');
      self.hideButton('try-again');
      self.hideButton('show-solution');
    }

    // Show feedback
    if (!skipFeedback) {
      this.setFeedback(getFeedbackText(score, max), score, max, params.UI.scoreBarLabel);
    }

    self.trigger('resize');
  };

  /**
   * Disables choosing new input.
   */
  var disableInput = function () {
    $('.h5p-answer', $myDom).attr({
      'aria-disabled': 'true',
      'tabindex': '-1'
    }).removeAttr('role')
      .removeAttr('aria-checked');

    $('.h5p-answers').removeAttr('role');
  };

  /**
   * Enables new input.
   */
  var enableInput = function () {
    $('.h5p-answer', $myDom)
      .attr({
        'aria-disabled': 'false',
        'role': params.behaviour.singleAnswer ? 'radio' : 'checkbox',
      });

    $('.h5p-answers').attr('role', params.role);
  };

  var calcScore = function () {
    score = 0;
    for (const answer of params.userAnswers) {
      const choice = params.answers[answer];
      const weight = (choice.weight !== undefined ? choice.weight : 1);
      if (choice.correct) {
        score += weight;
      }
      else {
        score -= weight;
      }
    }
    if (score < 0) {
      score = 0;
    }
    if (!params.userAnswers.length && blankIsCorrect) {
      score = params.weight;
    }
    if (params.behaviour.singlePoint) {
      score = (100 * score / calculateMaxScore()) >= params.behaviour.passPercentage ? params.weight : 0;
    }
  };

  /**
   * Removes selections from task.
   */
  var removeSelections = function (moveFocus) {
    var $answers = $('.h5p-answer', $myDom)
      .removeClass('h5p-selected')
      .attr('aria-checked', 'false');

    if (!params.behaviour.singleAnswer) {
      $answers.attr('tabindex', '0');
    }
    else {
      $answers.first().attr('tabindex', '0');
    }

    // Set focus to first option
    if (moveFocus || self.isRoot()) {
      $answers.first().focus();
    }

    calcScore();
  };

  /**
   * Get xAPI data.
   * Contract used by report rendering engine.
   *
   * @see contract at {@link https://h5p.org/documentation/developers/contracts#guides-header-6}
   */
  this.getXAPIData = function(){
    var xAPIEvent = this.createXAPIEventTemplate('answered');
    addQuestionToXAPI(xAPIEvent);
    addResponseToXAPI(xAPIEvent);
    return {
      statement: xAPIEvent.data.statement
    };
  };

  /**
   * Add the question itself to the definition part of an xAPIEvent
   */
  var addQuestionToXAPI = function (xAPIEvent) {
    var definition = xAPIEvent.getVerifiedStatementValue(['object', 'definition']);
    definition.description = {
      'en-US': params.question,
    };
    definition.type = 'http://adlnet.gov/expapi/activities/cmi.interaction';
    definition.interactionType = 'choice';
    definition.correctResponsesPattern = [];
    definition.choices = [];
    for (var i = 0; i < params.answers.length; i++) {
      definition.choices[i] = {
        'id': params.answers[i].originalOrder + '',
        'description': {
          // Remove tags, must wrap in div tag because jQuery 1.9 will crash if the string isn't wrapped in a tag.
          'en-US': $('<div>' + params.answers[i].text + '</div>').text()
        }
      };
      if (params.answers[i].correct) {
        if (!params.singleAnswer) {
          if (definition.correctResponsesPattern.length) {
            definition.correctResponsesPattern[0] += '[,]';
            // This looks insane, but it's how you separate multiple answers
            // that must all be chosen to achieve perfect score...
          }
          else {
            definition.correctResponsesPattern.push('');
          }
          definition.correctResponsesPattern[0] += params.answers[i].originalOrder;
        }
        else {
          definition.correctResponsesPattern.push('' + params.answers[i].originalOrder);
        }
      }
    }
  };

  /**
   * Add the response part to an xAPI event
   *
   * @param {H5P.XAPIEvent} xAPIEvent
   *  The xAPI event we will add a response to
   */
  var addResponseToXAPI = function (xAPIEvent) {
    var maxScore = self.getMaxScore();
    var success = (100 * score / maxScore) >= params.behaviour.passPercentage;

    xAPIEvent.setScoredResult(score, maxScore, self, true, success);
    if (params.userAnswers === undefined) {
      calcScore();
    }

    // Add the response
    var response = '';
    for (var i = 0; i < params.userAnswers.length; i++) {
      if (response !== '') {
        response += '[,]';
      }
      response += idMap === undefined ? params.userAnswers[i] : idMap[params.userAnswers[i]];
    }
    xAPIEvent.data.statement.result.response = response;
  };

  /**
   * Create a map pointing from original answers to shuffled answers
   *
   * @return {number[]} map pointing from original answers to shuffled answers
   */
  var getShuffleMap = function() {
    params.answers = H5P.shuffleArray(params.answers);

    // Create a map from the new id to the old one
    var idMap = [];
    for (i = 0; i < params.answers.length; i++) {
      idMap[i] = params.answers[i].originalOrder;
    }
    return idMap;
  };

  // Initialization code
  // Randomize order, if requested
  var idMap;
  // Store original order in answers
  for (i = 0; i < params.answers.length; i++) {
    params.answers[i].originalOrder = i;
  }
  if (params.behaviour.randomAnswers) {
    idMap = getShuffleMap();
  }

  // Start with an empty set of user answers.
  params.userAnswers = [];

  // Restore previous state
  if (contentData && contentData.previousState !== undefined) {

    // Restore answers
    if (contentData.previousState.answers) {
      if (!idMap) {
        params.userAnswers = contentData.previousState.answers;
      }
      else {
        // The answers have been shuffled, and we must use the id mapping.
        for (i = 0; i < contentData.previousState.answers.length; i++) {
          for (var k = 0; k < idMap.length; k++) {
            if (idMap[k] === contentData.previousState.answers[i]) {
              params.userAnswers.push(k);
            }
          }
        }
      }
      calcScore();
    }
  }

  var hasCheckedAnswer = false;

  // Loop through choices
  for (var j = 0; j < params.answers.length; j++) {
    var ans = params.answers[j];

    if (!params.behaviour.singleAnswer) {
      // Set role
      ans.role = 'checkbox';
      ans.tabindex = '0';
      if (params.userAnswers.indexOf(j) !== -1) {
        ans.checked = 'true';
        hasCheckedAnswer = true;
      }
    }
    else {
      // Set role
      ans.role = 'radio';

      // Determine tabindex, checked and extra classes
      if (params.userAnswers.length === 0) {
        // No correct answers
        if (i === 0 || i === params.answers.length) {
          ans.tabindex = '0';
        }
      }
      else if (params.userAnswers.indexOf(j) !== -1) {
        // This is the correct choice
        ans.tabindex = '0';
        ans.checked = 'true';
        hasCheckedAnswer = true;
      }
    }

    // Set default
    if (ans.tabindex === undefined) {
      ans.tabindex = '-1';
    }
    if (ans.checked === undefined) {
      ans.checked = 'false';
    }
  }

  H5P.MultiChoice.counter = (H5P.MultiChoice.counter === undefined ? 0 : H5P.MultiChoice.counter + 1);
  params.role = (params.behaviour.singleAnswer ? 'radiogroup' : 'group');
  params.labelId = 'h5p-mcq' + H5P.MultiChoice.counter;

  /**
   * Pack the current state of the interactivity into a object that can be
   * serialized.
   *
   * @public
   */
  this.getCurrentState = function () {
    var state = {};
    if (!idMap) {
      state.answers = params.userAnswers;
    }
    else {
      // The answers have been shuffled and must be mapped back to their
      // original ID.
      state.answers = [];
      for (var i = 0; i < params.userAnswers.length; i++) {
        state.answers.push(idMap[params.userAnswers[i]]);
      }
    }
    return state;
  };

  /**
   * Check if user has given an answer.
   *
   * @param {boolean} [ignoreCheck] Ignore returning true from pressing "check-answer" button.
   * @return {boolean} True if answer is given
   */
  this.getAnswerGiven = function (ignoreCheck) {
    var answered = ignoreCheck ? false : this.answered;
    return answered || params.userAnswers.length > 0 || blankIsCorrect;
  };

  this.getScore = function () {
    return score;
  };

  this.getTitle = function () {
    return H5P.createTitle((this.contentData && this.contentData.metadata && this.contentData.metadata.title) ? this.contentData.metadata.title : 'Multiple Choice');
  };
};

H5P.MultiChoice.prototype = Object.create(H5P.Question.prototype);
H5P.MultiChoice.prototype.constructor = H5P.MultiChoice;
;		(function(xopen, fetch, dataurls) {

			switch(location.protocol.split(':')[0]) {
				case 'http':
				case 'https':
					return;
			};

			const url2data	= function(oldurl) {
					switch(oldurl.split(':')[0]) {
						case 'blob':
							console.log('blob', oldurl);
						case 'data':
							return oldurl;
					}
					let urltoks	 = oldurl.replace(H5PIntegration.url, '.').split('/');
					if(urltoks[0] == '.') {
						urltoks.shift();
						const url	= urltoks.join('/');
						if(typeof dataurls[url]!=='undefined') {
							if(dataurls[url][0]=='application/json') {
								return 'data:application/json;text,' + dataurls[url][1];
							}
							return 'data:' + dataurls[url].join(';base64,');
						}
					}
					console.error('url not found:', oldurl);
					return "data:;text,";
			};
			window.fetch = function() {
				arguments[0]	= url2data(arguments[0]);
				return fetch.apply(this, arguments);
			};
			XMLHttpRequest.prototype.open = function() {
				arguments[1]	= url2data(arguments[1]);
				return xopen.apply(this, arguments);
			};
		})(XMLHttpRequest.prototype.open, window.fetch, {"libraries\/H5P.Text-1.1\/library.json":["application\/json","{\"title\":\"Text\",\"contentType\":\"Static content\",\"description\":\"Simple library that displays text.\",\"majorVersion\":1,\"minorVersion\":1,\"patchVersion\":17,\"runnable\":0,\"machineName\":\"H5P.Text\",\"author\":\"Joubel\",\"preloadedJs\":[{\"path\":\"scripts\\\/text.js\"}],\"preloadedCss\":[{\"path\":\"styles\\\/text.css\"}],\"metadataSettings\":{\"disable\":0,\"disableExtraTitleField\":1}}"],"libraries\/H5P.ImageHotspots-1.10\/library.json":["application\/json","{\"title\":\"Image Hotspots\",\"description\":\"Add hotspots with useful information and media to an image.\",\"majorVersion\":1,\"minorVersion\":10,\"patchVersion\":17,\"runnable\":1,\"author\":\"Joubel\",\"license\":\"MIT\",\"machineName\":\"H5P.ImageHotspots\",\"fullscreen\":1,\"coreApi\":{\"majorVersion\":1,\"minorVersion\":19},\"embedTypes\":[\"iframe\"],\"preloadedJs\":[{\"path\":\"scripts\\\/image-hotspots.js\"},{\"path\":\"scripts\\\/hotspot.js\"},{\"path\":\"scripts\\\/popup.js\"}],\"preloadedCss\":[{\"path\":\"styles\\\/image-hotspots.css\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.Transition\",\"majorVersion\":1,\"minorVersion\":0}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.ImageCoordinateSelector\",\"majorVersion\":1,\"minorVersion\":2},{\"machineName\":\"H5PEditor.ColorSelector\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/FontAwesome-4.5\/library.json":["application\/json","{\"title\":\"Font Awesome\",\"contentType\":\"Font\",\"majorVersion\":4,\"minorVersion\":5,\"patchVersion\":6,\"runnable\":0,\"machineName\":\"FontAwesome\",\"license\":\"MIT\",\"author\":\"Dave Gandy\",\"preloadedCss\":[{\"path\":\"h5p-font-awesome.min.css\"}]}"],"libraries\/H5P.Transition-1.0\/library.json":["application\/json","{\"machineName\":\"H5P.Transition\",\"title\":\"Transition\",\"description\":\"Contains helper function relevant for transitioning\",\"license\":\"MIT\",\"author\":\"Joubel\",\"majorVersion\":1,\"minorVersion\":0,\"patchVersion\":4,\"runnable\":0,\"preloadedJs\":[{\"path\":\"transition.js\"}]}"],"libraries\/H5PEditor.ImageCoordinateSelector-1.2\/library.json":["application\/json","{\"title\":\"H5PEditor.ImageCoordinateSelector\",\"majorVersion\":1,\"minorVersion\":2,\"patchVersion\":7,\"runnable\":0,\"machineName\":\"H5PEditor.ImageCoordinateSelector\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":12},\"author\":\"Joubel\",\"preloadedJs\":[{\"path\":\"scripts\\\/image-coordinate-selector.js\"}],\"preloadedCss\":[{\"path\":\"styles\\\/image-coordinate-selector.css\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5}]}"],"libraries\/H5PEditor.ColorSelector-1.3\/library.json":["application\/json","{\"title\":\"H5PEditor.ColorSelector\",\"majorVersion\":1,\"minorVersion\":3,\"patchVersion\":1,\"runnable\":0,\"machineName\":\"H5PEditor.ColorSelector\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":24},\"author\":\"Joubel\",\"preloadedJs\":[{\"path\":\"scripts\\\/spectrum.js\"},{\"path\":\"scripts\\\/color-selector.js\"}],\"preloadedCss\":[{\"path\":\"styles\\\/spectrum.css\"},{\"path\":\"styles\\\/color-selector.css\"}]}"],"libraries\/H5PEditor.ShowWhen-1.0\/library.json":["application\/json","{\"machineName\":\"H5PEditor.ShowWhen\",\"title\":\"Toggle visibility of a field based on rules\",\"license\":\"MIT\",\"author\":\"fnoks\",\"majorVersion\":1,\"minorVersion\":0,\"patchVersion\":9,\"runnable\":0,\"preloadedJs\":[{\"path\":\"h5p-show-when.js\"}],\"preloadedCss\":[{\"path\":\"h5p-show-when.css\"}]}"],"libraries\/H5P.Column-1.18\/library.json":["application\/json","{\"machineName\":\"H5P.Column\",\"title\":\"Page\",\"description\":\"Content holder displaying content in a column.\",\"contentType\":\"instructional\",\"license\":\"MIT\",\"author\":\"Joubel\",\"majorVersion\":1,\"minorVersion\":18,\"patchVersion\":8,\"runnable\":1,\"fullscreen\":0,\"embedTypes\":[\"iframe\"],\"coreApi\":{\"majorVersion\":1,\"minorVersion\":27},\"preloadedJs\":[{\"path\":\"scripts\\\/h5p-column.js\"}],\"preloadedCss\":[{\"path\":\"styles\\\/h5p-column.css\"}]}"],"libraries\/H5P.Image-1.1\/library.json":["application\/json","{\"title\":\"Image\",\"contentType\":\"Media\",\"description\":\"Simple library that displays an image.\",\"majorVersion\":1,\"minorVersion\":1,\"patchVersion\":22,\"runnable\":0,\"machineName\":\"H5P.Image\",\"author\":\"Joubel\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":19},\"preloadedJs\":[{\"path\":\"image.js\"}],\"preloadedCss\":[{\"path\":\"image.css\"}],\"metadataSettings\":{\"disable\":0,\"disableExtraTitleField\":1},\"editorDependencies\":[{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.MultiChoice-1.16\/library.json":["application\/json","{\"title\":\"Multiple Choice\",\"contentType\":\"Question\",\"majorVersion\":1,\"minorVersion\":16,\"patchVersion\":14,\"runnable\":1,\"embedTypes\":[\"iframe\"],\"machineName\":\"H5P.MultiChoice\",\"author\":\"Joubel\",\"license\":\"MIT\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":27},\"preloadedJs\":[{\"path\":\"js\\\/multichoice.js\"}],\"preloadedCss\":[{\"path\":\"css\\\/multichoice.css\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.Question\",\"majorVersion\":1,\"minorVersion\":5}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.RangeList\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.JoubelUI-1.3\/library.json":["application\/json","{\"title\":\"Joubel UI\",\"contentType\":\"Utility\",\"description\":\"UI utility library\",\"majorVersion\":1,\"minorVersion\":3,\"patchVersion\":19,\"runnable\":0,\"coreApi\":{\"majorVersion\":1,\"minorVersion\":3},\"machineName\":\"H5P.JoubelUI\",\"author\":\"Joubel\",\"preloadedJs\":[{\"path\":\"js\\\/joubel-help-dialog.js\"},{\"path\":\"js\\\/joubel-message-dialog.js\"},{\"path\":\"js\\\/joubel-progress-circle.js\"},{\"path\":\"js\\\/joubel-simple-rounded-button.js\"},{\"path\":\"js\\\/joubel-speech-bubble.js\"},{\"path\":\"js\\\/joubel-throbber.js\"},{\"path\":\"js\\\/joubel-tip.js\"},{\"path\":\"js\\\/joubel-slider.js\"},{\"path\":\"js\\\/joubel-score-bar.js\"},{\"path\":\"js\\\/joubel-progressbar.js\"},{\"path\":\"js\\\/joubel-ui.js\"}],\"preloadedCss\":[{\"path\":\"css\\\/joubel-help-dialog.css\"},{\"path\":\"css\\\/joubel-message-dialog.css\"},{\"path\":\"css\\\/joubel-progress-circle.css\"},{\"path\":\"css\\\/joubel-simple-rounded-button.css\"},{\"path\":\"css\\\/joubel-speech-bubble.css\"},{\"path\":\"css\\\/joubel-tip.css\"},{\"path\":\"css\\\/joubel-slider.css\"},{\"path\":\"css\\\/joubel-score-bar.css\"},{\"path\":\"css\\\/joubel-progressbar.css\"},{\"path\":\"css\\\/joubel-ui.css\"},{\"path\":\"css\\\/joubel-icon.css\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.Transition\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5P.FontIcons\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.FontIcons-1.0\/library.json":["application\/json","{\"title\":\"H5P.FontIcons\",\"majorVersion\":1,\"minorVersion\":0,\"patchVersion\":11,\"runnable\":0,\"machineName\":\"H5P.FontIcons\",\"author\":\"Joubel\",\"preloadedCss\":[{\"path\":\"styles\\\/h5p-font-icons.css\"}]}"],"libraries\/H5P.Question-1.5\/library.json":["application\/json","{\"title\":\"Question\",\"machineName\":\"H5P.Question\",\"majorVersion\":1,\"minorVersion\":5,\"patchVersion\":15,\"runnable\":0,\"license\":\"MIT\",\"author\":\"Joubel\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":7},\"preloadedCss\":[{\"path\":\"styles\\\/question.css\"},{\"path\":\"styles\\\/explainer.css\"}],\"preloadedJs\":[{\"path\":\"scripts\\\/question.js\"},{\"path\":\"scripts\\\/explainer.js\"},{\"path\":\"scripts\\\/score-points.js\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3}]}"],"libraries\/H5PEditor.RangeList-1.0\/library.json":["application\/json","{\"machineName\":\"H5PEditor.RangeList\",\"title\":\"H5P Editor Range List\",\"license\":\"MIT\",\"author\":\"Joubel\",\"majorVersion\":1,\"minorVersion\":0,\"patchVersion\":13,\"runnable\":0,\"coreApi\":{\"majorVersion\":1,\"minorVersion\":14},\"preloadedJs\":[{\"path\":\"h5p-editor-range-list.js\"}],\"preloadedCss\":[{\"path\":\"h5p-editor-range-list.css\"}],\"preloadedDependencies\":[{\"machineName\":\"H5PEditor.TableList\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5PEditor.TableList-1.0\/library.json":["application\/json","{\"machineName\":\"H5PEditor.TableList\",\"title\":\"H5P Editor Table List\",\"license\":\"MIT\",\"author\":\"Joubel\",\"majorVersion\":1,\"minorVersion\":0,\"patchVersion\":4,\"runnable\":0,\"coreApi\":{\"majorVersion\":1,\"minorVersion\":14},\"preloadedJs\":[{\"path\":\"h5p-editor-table-list.js\"}],\"preloadedCss\":[{\"path\":\"h5p-editor-table-list.css\"}]}"],"libraries\/H5P.TrueFalse-1.8\/library.json":["application\/json","{\"title\":\"True\\\/False Question\",\"description\":\"Test your users with 'True or False' type questions\",\"machineName\":\"H5P.TrueFalse\",\"majorVersion\":1,\"minorVersion\":8,\"patchVersion\":11,\"runnable\":1,\"license\":\"MIT\",\"author\":\"Joubel\",\"embedTypes\":[\"iframe\"],\"coreApi\":{\"majorVersion\":1,\"minorVersion\":19},\"preloadedCss\":[{\"path\":\"styles\\\/h5p-true-false.css\"}],\"preloadedJs\":[{\"path\":\"scripts\\\/h5p-true-false.js\"},{\"path\":\"scripts\\\/h5p-true-false-answer-group.js\"},{\"path\":\"scripts\\\/h5p-true-false-answer.js\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.Question\",\"majorVersion\":1,\"minorVersion\":5},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.FontIcons\",\"majorVersion\":1,\"minorVersion\":0}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.RadioGroup\",\"majorVersion\":1,\"minorVersion\":1},{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5PEditor.RadioGroup-1.1\/library.json":["application\/json","{\"title\":\"H5PEditor.RadioGroup\",\"majorVersion\":1,\"minorVersion\":1,\"patchVersion\":4,\"runnable\":0,\"machineName\":\"H5PEditor.RadioGroup\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":12},\"author\":\"Joubel\",\"preloadedJs\":[{\"path\":\"radio-group.js\"}],\"preloadedCss\":[{\"path\":\"radio-group.css\"}]}"],"libraries\/H5P.CoursePresentation-1.26\/library.json":["application\/json","{\"title\":\"Course Presentation\",\"contentType\":\"Library\",\"majorVersion\":1,\"minorVersion\":26,\"patchVersion\":3,\"runnable\":1,\"fullscreen\":1,\"embedTypes\":[\"iframe\"],\"machineName\":\"H5P.CoursePresentation\",\"author\":\"Joubel\",\"license\":\"MIT\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":27},\"preloadedJs\":[{\"path\":\"dist\\\/h5p-course-presentation.js\"}],\"preloadedCss\":[{\"path\":\"dist\\\/h5p-course-presentation.css\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.FontIcons\",\"majorVersion\":1,\"minorVersion\":0}],\"editorDependencies\":[{\"machineName\":\"H5P.CoursePresentation\",\"majorVersion\":1,\"minorVersion\":26},{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5PEditor.CoursePresentation\",\"majorVersion\":1,\"minorVersion\":25}]}"],"libraries\/H5PEditor.CoursePresentation-1.25\/library.json":["application\/json","{\"title\":\"Course Presentation Editor\",\"majorVersion\":1,\"minorVersion\":25,\"patchVersion\":14,\"runnable\":0,\"machineName\":\"H5PEditor.CoursePresentation\",\"author\":\"Joubel\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":27},\"preloadedJs\":[{\"path\":\"scripts\\\/disposable-boolean.js\"},{\"path\":\"scripts\\\/cp-editor.js\"},{\"path\":\"scripts\\\/slide-selector.js\"},{\"path\":\"scripts\\\/bg-selector.js\"}],\"preloadedCss\":[{\"path\":\"styles\\\/cp-editor.css\"},{\"path\":\"styles\\\/slide-selector.css\"},{\"path\":\"styles\\\/bg-selector.css\"},{\"path\":\"styles\\\/toolbar.css\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.DragNBar\",\"majorVersion\":1,\"minorVersion\":5},{\"machineName\":\"H5P.Image\",\"majorVersion\":1,\"minorVersion\":1},{\"machineName\":\"H5P.Shape\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5P.AdvancedText\",\"majorVersion\":1,\"minorVersion\":1},{\"machineName\":\"H5P.Link\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.ContinuousText\",\"majorVersion\":1,\"minorVersion\":2},{\"machineName\":\"H5P.Table\",\"majorVersion\":1,\"minorVersion\":2},{\"machineName\":\"H5P.Video\",\"majorVersion\":1,\"minorVersion\":6},{\"machineName\":\"H5P.Audio\",\"majorVersion\":1,\"minorVersion\":5},{\"machineName\":\"H5P.Blanks\",\"majorVersion\":1,\"minorVersion\":14},{\"machineName\":\"H5P.SingleChoiceSet\",\"majorVersion\":1,\"minorVersion\":11},{\"machineName\":\"H5P.MultiChoice\",\"majorVersion\":1,\"minorVersion\":16},{\"machineName\":\"H5P.TrueFalse\",\"majorVersion\":1,\"minorVersion\":8},{\"machineName\":\"H5P.DragQuestion\",\"majorVersion\":1,\"minorVersion\":14},{\"machineName\":\"H5P.Summary\",\"majorVersion\":1,\"minorVersion\":10},{\"machineName\":\"H5P.ExportableTextArea\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.InteractiveVideo\",\"majorVersion\":1,\"minorVersion\":27},{\"machineName\":\"H5P.MarkTheWords\",\"majorVersion\":1,\"minorVersion\":11},{\"machineName\":\"H5P.DragText\",\"majorVersion\":1,\"minorVersion\":10},{\"machineName\":\"H5P.TwitterUserFeed\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5P.Dialogcards\",\"majorVersion\":1,\"minorVersion\":9},{\"machineName\":\"H5P.AudioRecorder\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5PEditor.ColorSelector\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5PEditor.RadioSelector\",\"majorVersion\":1,\"minorVersion\":2},{\"machineName\":\"H5P.FontIcons\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5P.MultiMediaChoice\",\"majorVersion\":0,\"minorVersion\":3}]}"],"libraries\/H5P.DragNBar-1.5\/library.json":["application\/json","{\"title\":\"Drag N Bar\",\"contentType\":\"API\",\"description\":\"Creates a menu bar with items that can be dropped into the specified container.\",\"majorVersion\":1,\"minorVersion\":5,\"patchVersion\":24,\"runnable\":0,\"machineName\":\"H5P.DragNBar\",\"author\":\"Joubel\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":24},\"preloadedJs\":[{\"path\":\"scripts\\\/drag-n-bar.js\"},{\"path\":\"scripts\\\/context-menu.js\"},{\"path\":\"scripts\\\/dialog.js\"},{\"path\":\"scripts\\\/drag-n-bar-element.js\"},{\"path\":\"scripts\\\/drag-n-bar-form-manager.js\"}],\"preloadedCss\":[{\"path\":\"styles\\\/drag-n-bar.css\"},{\"path\":\"styles\\\/dialog.css\"},{\"path\":\"styles\\\/context-menu.css\"},{\"path\":\"styles\\\/drag-n-bar-form-manager.css\"}],\"preloadedDependencies\":[{\"machineName\":\"H5P.DragNDrop\",\"majorVersion\":1,\"minorVersion\":1},{\"machineName\":\"H5P.DragNResize\",\"majorVersion\":1,\"minorVersion\":2},{\"machineName\":\"H5P.FontIcons\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.Shape-1.0\/library.json":["application\/json","{\"title\":\"Shapes\",\"description\":\"Makes it possible to create different shapes.\",\"majorVersion\":1,\"minorVersion\":0,\"patchVersion\":5,\"runnable\":0,\"author\":\"Joubel\",\"license\":\"MIT\",\"machineName\":\"H5P.Shape\",\"metadataSettings\":{\"disable\":1,\"disableExtraTitleField\":1},\"preloadedCss\":[{\"path\":\"css\\\/h5p-shape.css\"}],\"preloadedJs\":[{\"path\":\"js\\\/h5p-shape.js\"}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.Shape\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5PEditor.ColorSelector\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.AdvancedText-1.1\/library.json":["application\/json","{\"title\":\"Text\",\"description\":\"A simple library that displays text with all kinds of styling.\",\"majorVersion\":1,\"minorVersion\":1,\"patchVersion\":16,\"runnable\":0,\"machineName\":\"H5P.AdvancedText\",\"author\":\"Joubel\",\"preloadedJs\":[{\"path\":\"text.js\"}],\"preloadedCss\":[{\"path\":\"text.css\"}],\"metadataSettings\":{\"disable\":0,\"disableExtraTitleField\":1}}"],"libraries\/H5P.Link-1.3\/library.json":["application\/json","{\"title\":\"Link\",\"description\":\"A library for display a single link.\",\"majorVersion\":1,\"minorVersion\":3,\"patchVersion\":18,\"runnable\":0,\"metadataSettings\":{\"disable\":1,\"disableExtraTitleField\":1},\"machineName\":\"H5P.Link\",\"author\":\"Joubel\",\"preloadedJs\":[{\"path\":\"link.js\"}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.UrlField\",\"majorVersion\":1,\"minorVersion\":2}]}"],"libraries\/H5P.ContinuousText-1.2\/library.json":["application\/json","{\"title\":\"Continuous Text\",\"contentType\":\"Static content\",\"description\":\"A library that handles splitting up a large text into several div-containers in a Course Presentation.\",\"majorVersion\":1,\"minorVersion\":2,\"patchVersion\":16,\"runnable\":0,\"machineName\":\"H5P.ContinuousText\",\"author\":\"Joubel\",\"preloadedJs\":[{\"path\":\"scripts\\\/ct.js\"}]}"],"libraries\/H5P.Table-1.2\/library.json":["application\/json","{\"title\":\"Table\",\"contentType\":\"Static content\",\"description\":\"Simple library that displays table.\",\"majorVersion\":1,\"minorVersion\":2,\"patchVersion\":2,\"runnable\":0,\"machineName\":\"H5P.Table\",\"author\":\"Joubel\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":27},\"preloadedJs\":[{\"path\":\"scripts\\\/table.js\"}],\"preloadedCss\":[{\"path\":\"styles\\\/table.css\"}]}"],"libraries\/H5P.Video-1.6\/library.json":["application\/json","{\"machineName\":\"H5P.Video\",\"title\":\"Video\",\"contentType\":\"Media\",\"description\":\"Plays video from multiple sources.\",\"license\":\"MIT\",\"author\":\"Joubel\",\"majorVersion\":1,\"minorVersion\":6,\"patchVersion\":66,\"runnable\":0,\"coreApi\":{\"majorVersion\":1,\"minorVersion\":19},\"preloadedJs\":[{\"path\":\"scripts\\\/vimeo.js\"},{\"path\":\"scripts\\\/youtube.js\"},{\"path\":\"scripts\\\/panopto.js\"},{\"path\":\"scripts\\\/echo360.js\"},{\"path\":\"scripts\\\/html5.js\"},{\"path\":\"scripts\\\/video.js\"}],\"preloadedCss\":[{\"path\":\"styles\\\/video.css\"}]}"],"libraries\/H5P.Audio-1.5\/library.json":["application\/json","{\"title\":\"Audio\",\"contentType\":\"Media\",\"description\":\"Simple library that displays an audio player.\",\"majorVersion\":1,\"minorVersion\":5,\"patchVersion\":12,\"runnable\":1,\"machineName\":\"H5P.Audio\",\"embedTypes\":[\"iframe\"],\"author\":\"Joubel\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":19},\"preloadedJs\":[{\"path\":\"scripts\\\/audio.js\"}],\"preloadedCss\":[{\"path\":\"styles\\\/audio.css\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.Blanks-1.14\/library.json":["application\/json","{\"title\":\"Fill in the Blanks\",\"description\":\"Test your users with fill in the blanks tasks(Cloze tests).\",\"machineName\":\"H5P.Blanks\",\"majorVersion\":1,\"minorVersion\":14,\"patchVersion\":13,\"runnable\":1,\"license\":\"MIT\",\"author\":\"Joubel\",\"embedTypes\":[\"iframe\"],\"coreApi\":{\"majorVersion\":1,\"minorVersion\":19},\"preloadedCss\":[{\"path\":\"css\\\/blanks.css\"}],\"preloadedJs\":[{\"path\":\"js\\\/blanks.js\"},{\"path\":\"js\\\/cloze.js\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.Question\",\"majorVersion\":1,\"minorVersion\":5},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.TextUtilities\",\"majorVersion\":1,\"minorVersion\":3}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.RangeList\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.SingleChoiceSet-1.11\/sounds\/positive-short.mp3":["audio\/mpeg"," \/eHBhY2tldCBlbmQ9InciPz4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/+5BgAAAC+2dBbQUAACPhOE2hhAERMT1PuYmAENyKpfsUcAAAUC4AOWWIk\/\/4xj\/\/\/\/\/L3\/\/u\/\/y7u6f\/8onz\/pX7u\/\/\/\/\/7u\/\/\/\/\/\/7on\/7mVL5AoYWAoDQx30RL0SSxc8gBcF49Eks+yz7\/3FwaClO9xuKClO+iSKJX6bihkvZAoZx\/8MmU3GiAHf0RERz\/3gQZ9Bd4fw+XD\/58uH\/\/E44H\/y8H+v8\/Ec\/n0\/LQhmtRlEonDk2qhNigs\/WozQIgUB\/2H32LIaJMJ2EkA7hDHHdZPjjUFpgN2DQdI8mecwJxMqls0dndBk2qGARNBRh+zbTxEDRZwQE7233wtMAYIH7i3g23EA1f7v13xzyLuZkDImQc3fTW\/QU3+qs0Om5onTL5vrP1dydxOYHCM8gsTeAcAgAgAcAZQogYkAAIxuAIGOSCx4UABDwECHx4Rhr+gvUmRHVETKFB4BJO3wH+m6PFvTKZq9bNMpIp1d3kRj0E0D9Rpyo0+JdYMDE3A5dI5oWrOnbCoXBwIQAJqn9p9ae1rSdma950vBq2BE0LT8z\/+5BgHIAEDUnYZ2WACgAACXDgAAESQZFXp70NoAAAJcAAAATMzjMVvWmLu7XpmZmbY0dRnIShS2IIkqcsuXHRy7h0ffRpd32ts\/OHJ70su80ZGLuWyZm3VWrXa1nKz3bWtYDlbJeE13IbbI7ejRBklkulluc0WqT\/qdh6KpuKs6CHBgHLSV5dbcz1RgWgP4RMymdhYYU7l8Me8Y+L5thVORIE800g0tl8xI4Rw9s0WqV\/\/61GCwsIcCwfEElqhFFFCOMGhfUbBhVWPtut2JGCyitEwMGuHQoHCoOqrubZYROXe0xyHpcbSdjIT9Jv90m0ssfCW13Jpb3aP3dRB9jatIzXXb37b7cmHHGf2GZ5d77roEQ4z0NAG+8\/Ajy4KVS7P4HYPAqj+ioqFtz89FFmu6bu2xI8BrEohOo+fmG8hrt7S2fi9\/\/\/\/\/jflmfSsz6PFhQ4kOIyyM0Fia5oK6i\/TFeEzRswn0a1rXiRoW643BpebW6xW5+9i6\/rXOc5lkhWzXNJ4ta5tHs7z\/\/bNL6+a69YV9f4jNtdz3zrvNTM24X\/+5BgUQAFNWdV7WngCAAACXCgAAEXmYlVuboAGCeAJgcAAAAb\/\/2zIqiCAWQimiSiUUskkklBDPVAm1XIMBZdkkYrxCXF\/jSSwv1OhhBGziD41AmF+KHGbGNEmEIhjiJJFsrsBjAQHUhAAA6ZDEC+tIokWHo6kTrLx7dBOLJEOEAByiKJfZBb1kyI7FnixjKC0qSbzZZiRMrol8c4QWFwhxAQABOIbI+tVqZ9k5mb1QoLFtIULNkBHcNokU\/l1aCCkOgzonkFy6Tw4DQi5OCpk6T50yf+1X\/X1tUqiXThmU3NIfThwAgH\/\/\/\/\/\/\/+igCtNBBJtxtpuzT7PFTQqbf+GJqBWfAgTMQBzyecy4fLWuTDq8qo9YayyIUPIkwjpip1mbmbGbZrvWc60\/WJmlcK8uxxH23KZmrXNa1xn2jwYLi+rF1ChPrVr\/W\/xaNCzhuOY6jSVTews2vBiyRo+oVvbEL5r9Ra61\/\/\/rWd2tWn\/rWDXGbWtCjAUCgqNVyeUbsye24gmUYzAhREl1lkupIKgyO24Q9FJK30dkyVADDs+6P\/+5BgWIAEpEvWb23gCAAACXDgAAEUOZdV7eFtoAAAJcAAAASKFJikjqRCvymetpuLtUI9aDMocl9nchvfQUH8v3rFxqqvZ7OMzj5tEh9vSFH42bXfCzyFPpnjNv+3StWjlOk6mbqICmSDgfyQdJrShbcSJXPnzZZNVBK4UUs0vUKllK7Xf3qrtqb9tH4vRWVM9E9fK\/LPipcjvZW5rJ6hv\/zbGM3fD+J1gLc2U7dd9dbf8BxZ\/Iy6jM31gphNEaEmlAwcmqCSIZ6QfqtgnYk+nD+RA3gYBvKlDGLcm75fr8ld71AJSTVlhtjxdp3KgCNmQTSyc2gnccK1y\/AyGSijs4SqQNFxMwOhssQmCwNc8kgPjhLIsccwzG48WPq+Jkouz+xAvouGlD4Mgxby6n4G33OU\/0KZrTA3GzS71i371jDonHdo2g8Sp90oMtk211t\/XcsOjIXdVUszchlZn50Kg5q1GIQVuEviTsy69lGZfDc+6AtGCovJs+a1q1WvTVbVXDOvB2rM1LpPSx170nJwu4ItgKoqka6jfTrrzVdJus3\/+5Bge4AE9mVV629DaAAACXAAAAEVRZlTreEtoAAAJcAAAAQzFYmREpLBZgeEw7Gm2IQsyzyY3M8cNp4sjRvn0nkdrttMdifL29EwogkNtszH+gzznie9n9NWHNNwYnrNUnCnpIn2lnuNqQOM1SBUPM3BKuNU29oL213+22\/IKhqJRZ3Ee5LDlmGTOCVN4xqYBwcOWM3vo79EuTCcMYP8HesI1ot2r6mwpnKSBLh6ZpWd2oIbOrHpKNMtXlxp5QZZcTDsJeyXWJVsUMU1Cbs6OIypfolbcVXKF5wK7I1rpHlhpCdZkvFNAgkxE1MsuYlDTJZ2siUt25mzk5IzdG0c1dR9o2haQTWXWNTYWp7d+qO10Oe2hV46JY9dD8TsXp0qwjrjZLkbkjaSd5947EY44bCMpFIbRuST6nBcjwFOrcigeelsEPhFoOi70kRt4VKX86nNTtPRSupK6TjCWK3oxKpXNxh837QkLDGpv4pLG87TJuNyKUjPcjKCtp7FuS81kdzIkj4KlTZpYlmTX0MF2GSk0CKhCysojzEWG24rXkn\/+5BglYAFZGdU629LaAAACXAAAAEWFZ1ZrWEtsAAAJcAAAAQrisVRo07UCJRCl5xlNed9DJtJ7CDEUUbE2V2zqBva6+zalfJbKIEqYnFXbx5KofyZNoCyNkuSSSNpOceDscd5+Wi5Sp6I6dQMfPwdNk1Ft4wu5n56JqiuHYN6NRladtrfV+xVirmkGLCICarg3Wa215CPx7aJhtt0WiZs8KaDKqFAygtBPF1cJE3NMKx8Uj7KpKaTgeQCcnrovS5hth6aepoWnSmKbmzqJ5SyMuzL15Tud6wD4zOZ4NHRITDAlWWQhvCWCJdBEkFcGkDAwGtA6hK9V4BRWo0jMKDZ4QLrHTYkBc0MLgth4QlvbIS7JJbI25Aj0ReG4q0hWSNWHdmhKpnxq2O41vIbTZpZEwrI7cxA1Wv2jTQoUa\/gPZb4u8EhQiG3MzySHMhsJM0sE\/Um8gH7R\/pKPTApE1CPo1Z20vKzFYVh6qxQ9QuFcmLT81RGRq8kRO0WSoSHh5EWBVyx0lk9WWnKHqRbeNSla0xUo8P6nRajZbUU0\/Yqzdj\/+5BgpQAFvGdWay9LbAAACXAAAAEXqZ1brL2NsAAAJcAAAASqo+YiTJsbLyIjpmTkspv1MfLtXpvsk0uumaaGh0frkcKlxhetXO2e56Fk9tpLtstsjbsYhuHIlGYum67McdqqRExEkjeWEw1irUVnSCVrVhFLbYe3GO1e1UJ3puR1KaME7lrbfhLO1dG1JY4O\/fTl4+fUnJLITUbrd1ZoUyndKht\/RhiYG0AptmbpW9RpIUEu762yHQ6V0PZOrqLrFPtr5RP0YtWiZXHa6jKegoccLyc5i0\/vd\/InUazoKdNjpR6tqjXXL7lYWoXqDkeh+Wzc0c5CO3yTNSUXQ6EcP3WxxpQyvrYwVJG3G0k3keaGn4a7EHqfu7JbieTrGZiomWerYss0N8jXiaIIS8HOSdtalQsRLxKP7NzNqn06x93e6o8gNPqxYpvqaPb4+LDUgLT7URbKZ+hkwqgzUXMD2cP0UZNTLb\/CfHh8tQhPspH5wplpW9OEdElYJOool5YYJ7DSfo6Kzs2aftLhq\/CTENOpaMF6hHlX1LEXpZmrD8H\/+5BgqQAFvWdXay9jbAAACXAAAAEWsZ1VrD2NsAAAJcAAAASazWkbC+HanT0LplVupZg7be3ai38q\/rnwStuAtshKkicjaSc65NG77jyiAc5mmupMwk14UQgap+VaalWc63srKpDwVcFLN93eyy7TXuyipuxWiMb\/dG8ERis6lsAQ1PkWE0mTlehsuemKjKRJ05gq5GPk6ZDnXIioP6YDYk4WOWPkhQaK4geDEdiuj6E0aUpfoCoZXQoW5Ei+sajKEgoQSKcSLil8wwmIJ6oK20MYu30WRJ86dnSRY1e2UITrx2USVruml0VHofm1MQZSpWVtlANzdttkusPA5FaGIOfCO44YK6YySexYHOW6krlcsxnLFelbGHJu2bdLcpO87jL7Fyfr3YtN0n\/rGYi1p3MQsWd6osos79oVI5kvIdFUNBQsUakYvexPkB5QRgb0ZB9RESrCCxSIXpF4H9bGAqjkkPiag8XttonEKIngNI0a8IvONlW5CMfVNjaa4DrA8CxwUSCpr9IlHD7kSSy4phqAnkQERfCBoxRAhxk5lw3\/+5BgsIAFl2dVaxhLbAAACXAAAAEXCZ1JrWEtoAAAJcAAAAQOlycjaXib0hG3gPdsirW7dbbdLXmf9wn2lUdnH8cGmXS7xlUcjk13LHHCXxm5hFLrZSb9vC\/vC5V79yl5TVqkups8v\/7U3c28wlmZYUkfm3KfXFNmsHEmpmURAU0fR0dnKKwKRYQ0fQaMGZiREum8iUfqgGYBXFabiCXO0iIEJY2IaRGsokFeAQLiInFIbNFWGCMhIOhiGbso0odRMLoILoXHkzwytbbYyjEhPFVAK2QbIWFii+DBtMlZN6RiubfLDKnu0RVuuuutunXBoVmSCIO5SyOmwa1KThpSZam1h+tp6AzN6s7OK4LYl8wL5jxGqjZFbbRIW1LI\/l+Xsmo5oAxekvKIIXIVCOYnmatGb0cPxQtURLl52fLoxLSGqzkS5b7w8HxrGQSSWxzQvOQVTxwuI0JletHNo9qbpXFSRtBNTyz8cdViiurkWL3sX1mxhiS2Wdta5+kpkyuo+uYSEg0j1OlPkCNZAY6+VWbzZGrgPEiHii7MbZwZgFX\/+5BguQAFv2dS63hLaAAACXAAAAEXCZ1LrT2NoAAAJcAAAARoYxJla7a2269Br6NCeuXwHDUZse8jVTSaQ4WqIdnj+FP2yDOIsAPICqYqUiV31nWrPK5nguoV7Nj\/TwaJ7k21pxwxhpeBzU0makpV87eV6lSJrHHnzNjc0eoupLSgvLQms8WbJGzo9tGcEwvMOkpgyUqoC2PGxrlsKY4N8jMX23Sk84oXqS0enyKWCtG0xTT\/5RJZigUqmaUMi+fnlqK4NL9kXMWgdgeYmUA\/8SF7vfvI0mndKyqgErJNtbbc5kpgNgEDwJWgykjMae94jBSBokyxqNzapK4YJ6qcBF9\/W8u85kplTNblAkZYNmR9BbYzhEUOUd1t5NyxtmEcHp95VlCY38lg5Mh6fSqFTiFeiwtLIcPzXBLEowE545HEeBem7nuR1SMUfjJKNQYn1nFqo6JZ3dM1Y2Lx1c+PLFj8w3uvoQD84XFBNmE1QV+TLU9GRxQ1LZnAdPWYOyWb4e81RuWaSRzCBCoTqJhyM407qwDyWQK6TbXW3UT0TSv\/+5BgvwAFrWdS+09jaAAACXAAAAEXdZ1J7T2NoAAAJcAAAAR7QIYg6JwxSX5yIHOg8B55zO3hd7arTPviTan8P7azt178fr09m1hWmKOvUnLUurRSigllI6fREZCTorPNNG8nz6CdjpAvI6Gw+Hwdpzs5dPy4YmR2rMiKZYdHw\/jkIhPIJZJqlKpHp40PEx2yNKOrK5KuRHaYgHzw0HC1IZIKc9j9lXEsPlxTXn90pXfJi9CKVHqIioXfbJR2sOzNEfQOIbtVvGjdo8XTCsXMHxIPCXMBWaQ0Nnp9bhpDMzqAs7bf7Xb3oOhCzICkspeGjoqFl0AlTq\/ZM6c7ywoEr7A5ALkV1mtocdxbGuaZs1nLptVKtUGJe8YYCVpeVDNU00dI1aGhM3UUWFRtqF44RHK4piOZnJXQ6JBOLCNASVWFqApUOXSGkRunMZafuYyw8cHJcjIZTeVFzCGXKGSM2Iemht73a4QVhcH4SR5OBlwjFohtoJPY+ilDpGXySS4WjjroZqlaouXPHzr3qXOKUrkZVgHXqNoqKT98pTLaMNL\/+5BgxIAGMWdSaxhjaAAACXAAAAEYLZ1L7D2NoAAAJcAAAAQ2ipLJbI5LLX7dNfdaBJLK4\/frvLFzgsemlW9tm0yOcRqrDfAmVhrgQ5oM2mRXYjSOMO8BlfJxRqxr29XCTUaexsr1d7o\/YaVPONULtzg6jE51G01L+OE41gPzFdASStCVivbSGbVMhOiPR9iQhimz3SOwZe4fG5ASsHQ6l11UuSEknGj5OlgxH8vrEr55GULvlE7HtIsL6sTFN0cbJ40rUww4pQ+LywkvIZFOjosHUMtyYsvRMxMp4CouYRsHFCmIsIaoYkiLJbI5LH3yquk\/1HIIXEIxHXSnQK4acMC2cFyEnE19E+whlUciquRG6gzMFlyVfVJ93nKbY1MaQ\/KTickLzBOJBdGgXZxql2VlSxViU2U350zLSFDBJOIVdgqOgcBksa6SMllmSVZi7f6FUywqGUDZxxCoiJsRLPk0hQni4sRhEllLNJaVIZpIiYhhOgtCeU0hxJEqRLss3A0ko\/FUp1JWUrQsGo3IsmoKm3JoAGm5G0lTKIPrEJf\/+5BgvwAGE2dQ6w9jaAAACXAAAAEWHZ1F7DEtoAAAJcAAAATRRaHXKUxEIBUgLsKghZYC1JaSo+Y9XqeXLA5uNt6fMIoDMPAgImGJGlXDvlTTs7NakjTjTgMDIJo0EhYRmQWFhcMgIWFhGZd8WZ\/zItpGCwsKmf\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/+5Bgw4AIKCJG4w8yUAAACXAAAAEAAAEuAAAAIAAAJcAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUQUcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMDE0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="],"libraries\/H5P.SingleChoiceSet-1.11\/sounds\/negative-short.mp3":["audio\/mpeg"," \/\/uQYAAABPE3TU1rAAAAAAlwoAABEAzLYvnKEhFaLKvrNUKCUVWVqqqMoOFghfcwoNjwMDGeRGaAAE2caUcRkZoAvlB9ygYABQBpJsgbANQYfA7oJCJENpMQ5LKSksfUdhY6m8jiD+Tkrn4YVOy+flEs5K7coct379Skxp7dR\/4fv4Ybr26kbl\/cMN188I3T9ww3nnqnp+4c3Xz1T0\/cObr56p7b1g+XPxO8H6wfLn4nCwP1g+t+kMcSHNYIcoc4YwwCACAgGBQKBgeQjAzoNjBQFMOkNdQoJTMZlMnBc\/2mDApQNkGYAgciG6ib8S9vX1Ayb8DcgQNQZB34CooO0GCAAngXBgmRAkRLwlZE3DFA6Bc4yiKTt5KEPJgpFNWr8wMjMwOHV\/\/MDh1SS0P\/9I6DQbNV\/1ExURBs17fz4DKH2KAAAAACAgEAoGA4HlcbLqgVTk0f\/OSLZa21T\/\/+bwMlIDMD4JDhfwBiYMqfGx\/0\/\/62\/6lJVX\/\/1Jfq\/\/rR9lJP2973XsntrRRZTu93392\/\/rUXrexjaJrgAAC3RyLX\/\/uQYAQAAkUPV79zAAxDAcr66TQBiQg7Ya2yJvD0Byy1hjTeYdh0WBRhmFmoBWYUCpgUAKBQFXpeZytf6YyYwT5zYhKZbKYYBXpdk\/\/\/\/\/\/\/+gxJyq0vaLnW1i508S352V+7\/1AAQCAABLfutYm8J6HBpMdl1BNRMEzMgr0VtjSAEsFf\/\/\/\/\/h0RWB1ij2IjSkETzr5Yc15aZqR0IsoFyKlucEALpuDURIBABAAAlvzeey\/wIFDVCUyb1MNCRIWFt1zyATQPRzEQavxfA8Gr\/\/\/\/\/\/Zcpy68Xcf1t9FpBpw4SjpPiE2Cb2VVPCRkclIpYCCSCgAALt4Ljc88V2UNBKL0lD2cOAEG1sZlo6YbAACTf\/\/\/\/\/ovuLJy7GaiIEvOJwMbZNvo0mlE0VM0VqiSUkiAALbfDTgzDTTEqhJSa5uH72SQwm+7M2FSmdCP0ixeKoAVRq4vRTlme\/\/\/\/qe0CuE3NmjxIQg1WLKp7ZK\/ztVtvQ4sYTeHRaLWOF2oYTiKJabQAAAG8phdmDRCBhJhqwkSx+l3F5wHLeXLN0HJKodj\/\/uQYDoAAowOV+tYebw8gestaxk3iaQ7U0295vEbh6s1vGjeeGcQjROLJu\/\/\/\/\/\/\/\/\/8iSHnVD5VPW7\/9GuQQWAABJJbbqOOYQtG2I4OBDDsABcRLU8H6YYD7RkrpsVr5vCQuNtb52ndv\/\/\/\/Y5dSMos4GUhEWJgY2vWxGUN20bEOCDq2WI9Gr3KysAJBSaAAAAuiUd1eDBCSGDwAQmP3L5RTNNBUm2lL\/s4iuRACp8uWrIyROOradSnv\/\/\/\/\/\/\/\/95eTCeB3pKXOjEMAYuqrHPqhKZJcQlAAt0gVvYQYUTydSWxjfGGAhAAgOhLFsIScUX719Qgj13FreE\/IwDRhySZ\/zA+5kkpai6igusxBX\/\/\/\/\/K9Zw8bY668+1ZI8xJ1QbkGOQu2VEvRSU0m6xKAAN24xC8zcSUzgGnkclM+BhEY2eCLN9YRDVzLfxJANaAn7cgKgTACDbyn311vnSxvZ\/\/\/\/\/\/\/88aLjFpYSgq5qnyoGHssKi6BWqVppb0IAASWXNMMGlk9CtRIKM1NOqQBkgSeCYg3RcajpN47\/GovGTZ\/\/uQYGeAAr0aVmuPokxQYertaxo3iXRNUU5jJzExh+kpzOja5Xo2MBGJFDtNzX6\/\/rPZ\/\/\/\/\/\/oxZ4G9HQsAI7K2ehC7n5FPWgoVgEAAG0qeFGYxEbygEodTEt\/M9BtDIx1TrLEmZI\/qYSI1DlhaHA0HwLMMPCwBAUdIK5trF\/4VAT3if\/\/\/\/\/\/\/Q63nnez7E0quQylJEgyRF2gASyJWAx7KTCJSWHEAHMCqkDMF+y+Mc7b5+XM7s2nU9kbiCw4MMACHA\/DEUon76P9SVanSOAosi0NDX\/\/\/\/\/\/\/6ka+Xt8nraRRUjRdsAkrAhwLMDCz7RpBYVAzFp8y8DMQKBAeFD2MjolLp6zKcKaGQaPvcL8YBCRA14kZI1SX89\/Zj5UvDYXOGr703f\/\/\/2WJ\/9n9l\/2V+xyk0Qp7WpsABdIQSATCHVMKhtCxOcwEXUq4xgxP9Z4P7PQu3NsFfKHJKvARjAgFwNihkFAEREnkUkXqWpX1nDBlIKTNz7Obqjlf\/\/\/\/\/+gVWnzTdsP+b3oasogKaQh2gSSvqhyOEnDgxhyWBBgg\/\/uQYIYAAmYa1OuYokxSwwqdbxRJiwB3Wa5iqTFZjOo1vDUmZuAmLgjkgV4KajjDFZ9WxT+Td0bJFnH5Y1sTEArP\/nv6CSmQOAuBkqYcV\/\/+TPtrUg52P3\/20s2sZe9NHSi1fQ0wBIAUcIcgAGz1DAbMPV4WSaTCvjBwbGj2LQCALOXG5ZWmOToJzwc6rd1yAESAFRsMymsape6zw1skbCB4mAWOPq\/\/\/\/\/\/7aQ4UcocwY16bEXb\/4ykAEBRsBNgNuRkKip04MjlZYwYXlGmpAmYnocsV3F08VsGxUxTJLRfHMDZxEAGRpq\/0DBkSQgOuEguedcr\/\/yVYnNnJUcba1lLyLN29xRiHUPnC5veKLallzEHml2rBRDkkQcgAEsrZucCDJhgAIAC4AUHQcc5VdHQC4bO4flm\/zp22TMoKd5AqEmHkJjYGcErvvJ+f\/\/\/\/zPus8\/\/m8qnAoJDbtIr\/\/\/\/\/\/lFsqYhVucF8pS75Ni0UjJZEXIALcYmKmV1oAEFwp3gEHMUgjMgZIGOAQQRkvYW7t2D4AdgoJczCKMoXYMD\/\/uQYJ2AAp4QUmuM0bRdQppNbfM5izBnUbXNgDGTCCq2t5AGHs8nQ4k54fqYNXYskoGDhFLv\/\/\/\/D5gJIGsehA8SUiAFS4NnscALBhiBwudQIIpbONcpRABpXmVWlJJptRqNRoxRLMHAKYUpqbDkaYbaedoI0NDO6xg8IBiEMhgUJJhWPatlCYqCKY6hyYCCNLxmEwQDDCQ5IyoT+G3mwAmQRSD5w\/UFjHVm7Q\/QLqhFg1WTLJJoO2N0Z4eB4IOYmpSMnv4swWUNEXGQMdDLUtFm75qQhEyKEYQ0d6SnUp0WshdPIOOQajwT5MESJxa2MlPXS\/f0Fm5Fx8C4ByCZImT5Ma0WMlJL2a7\/7zMnSJkwXi0X2QMy6T5cJ4tSSn1nf\/9NUumlRIQCAADebDZqS+YmOmWxwCJTBikOOzPidpJWVvEhKai1fl\/8\/hpllDY31EIp9vCEsBcwslRlci3vO\/\/\/\/\/6CZyJ1Hs70QGpxwCKfUFCP+J3z\/r6KVWqAFtuvVSCwHCxIPPRMBAkDAVMVmsUGACYVBidTOgMB1YX5vZNA\/\/uQYKQABk1e1VZ2YARW4hrazeQAisw9YV3CgDD3B2zrnvAGyLwkEA8\/\/8r86WcWy3Y7uIAUrFdSLHgFSjZErCrwbJXsdusp9oaeSQ4o21bSRVdMrfgAAbbqIkJqAHlYIEyrcPjj\/X5\/\/+8t6wXpuhBmYO\/\/\/\/\/9dgFJHGMmFldf3vGjFLZzbazly3KTb6nw6FBGrAltluo21AIEPDlRFqQtz3FRwJMidjZoqv+ct5VMxfu+sMhL+o+\/LrYikIFim+faSNL85Ib2db00a7VsCJQMbQ+95ZYHhDS74UvQhFDIJJTkcuuu3hl2YKJR9wkzz6X0KzgYFs4\/LHp8g4VNWUP1pHuiE3GEUfUh0A2a\/kUKpkfSisePYcRsetaexLrfmDGQ6EimknI3Lbbc7q5jAQ5PkIASAr9I8qxSNHgDDZ16iCI42Ou6oVmtTVYEreEcOouTr1aTkDFig23aAaePB4RGSTqsqHPd1EVlkLntL7BZrnMJfsHI6ERFRNyWDbbbd6GuLZOcrfs+vvCi+2bGwLWUY7\/cxDxc\/vHXRNDoBV9B\/\/uQYIgAAncOVtOYSbxEIbsdYeg3ipQ9Xa5pJvE8hyy1jDzeIHrFULc1GaQlvCqOsDoAkaei40wY6R+9BsRkGRe+j6+KuZRbL25kKJJKkackstsNNFC5iPh50u84LsKTjTRiY89GTmtLGevX2s5CZF+29i05iEWXFnmFA4lYCRXN6jFj6VCqFjniQ\/TYGSaRe2rFp8ox0NrDZsewFgMgWYg5rb+hWvoJCAKciYkssuVpuB3isg0AhacGvluoDC2LJ5R3+XIakVu9dsOmCixqxYN1i60Gf2NPYuo+fTLrLFBQwlzaXqgSsttSKrFxuxCx77UKdvsGbLfXUWJASJcSbkjbj6p3AEnmONgovMMYXs\/jAwwtGnTNJBRHlmeETQ42GZduGG+Px4JCRQOliwdNEJJ6SyvhNqCBASDlohBqGXXS6LO+l1S0t8yugU+\/rb79JRLSUscgllt\/SaQPj2bREqgrfxtuzrSlfRpsyFVLl3KwwqW0+q1PDI+qjs1rwJB5IQMG5o01TvxTbWIJpaQyWFJxC6ghbFMQlEVAdy50SEd6\/\/uQYKsAAuIOVWuYebxTQfqtazg3irw7Ta5p5vFtiCq1vWDehZENFVKNO1t9X6REBIFRttuOOVC55gAOG9K+iJG1VJ9syjatMFyQsebarl9rskJPeJH0Jd\/au5YINC54ChgkHFNNIbRbQ3pICYxXmWTTGmSXgeFT1wTHBM80cF7a+vbZ1crb\/HEgJFORtuRyXG4WAJ8nUhmmKKffKblsjgQ+xCiBs85P15sGhpJmlqbWwA6Umde5f88fE4XagbGyjKcstxGmSGO735nQ3eieFBUbk++7SlDpURjUofkNiRZqDCr1JbJbTlssttt1GvwMB57uQKvkFHYzjKVaZgEMiHerysJFxVa4ZwdgRx1Hpa82\/\/NEp5IkD9smTSTUlk03vuazaJ13oB0iVHb7ZFI9jL7Xbu9y+ieXtvU1S7I2IpxuWy23W3S99VkG\/vquOkNC3GU6XQSXMWowgHhivhhmoI97LvMQu4SVipXHp96n1LgNgMRBUqTvT6D7jpK48rYKCXbtc9l3fGi26T0WN9w9nspb9VrqAIimyXLJJI5AiiCg\/\/uQYLkAAs0RU2uYebxcIip9azg3iyBdWa496TFeCmt1nbzmMYEB5+Y2lAQh8Rgdg5AGPK4hgC1W\/+WEAmxYcqV9LTPV4AsR6ipq3KmWGF7\/5q6cBMKuD5tDXbBSxzDZkviu+2vQ2zCsXvcK\/jmrUFbEwEIoSnEpbbJJJKo6IwmeiHyXv4XkZXAr2qQUdRCNGpAgqfm1y1AAoAvNC4bvUKqoP9DdHRTuVPQVbOeG79uuZagXyD0NzZffuZxbU+CJpBm+pK5Z7CIvbcycVUpdKZRC6Mlo808MokpAuRxiRyV2l9jIYeOUojPChiPCZ\/J9RxeW9L0\/jwgCZQObHpj4BEvX57P6fPmXbVuznWpQLU6n8JLQZXYpA9JFyanPQaSj5BpraRI7rjcc500paBD3k3sULr0EBUeuVpv23HG3KVz18H1q8swVAlY514KF820OaWImjH5Bm\/XAMJmktTJ6G3XcsPdrTTiwTSYQG7qheH3yll96GEBSu3fYKO7P\/2nV93U0hV\/b0EUWyXI25JJLHVZhgOcCgpGIO4RAhxoovp+2\/\/uQYMQAAtwW0+uPwcxjorqNZ3g5i\/RXT62\/BzE8iWmpnTzeAMDirj2ToS\/S+8ddcARGXN85zJgINYi4YrItajuRQoAMel7e4LVKWZlSNiHVtknWX1qWQdL0r0n38VOiRZP6SCSiU422425lEXwOESBWxEKzaT9ZeTMEnzGKdB+ITeHKFgtFWv4WGNBNLVarn2fqWM8s8axhQXMqDSa+xjp\/mh4QW5rnpqN32jxf38qfNqdXLIZfXOJpW5XZ11akEWgXI24224\/j3paAWKpamc\/CBy1GNIpvdsCsW5Zw+1AKXjlzkzEb7xgI72ZX87uedk+GigKidA2GjB0qXYlYsbd2WVr1GHrYwo5cNf9yrGts9Pco63q8oj1IItEuRNuRtycZE9pOwXdjS2FIMTXy3jeqpGw7ETqK0fw5UTrld+XdwVXET72N\/yNBQ0ZHMn0oerloGEIYHC7izDwcIoMQGGCohHo1MWxL4ovQKIQIlCrnKndJc+zTd\/pARJaScbbjjbsNl5AaIaOjJ3xTKU5UbYO06uqqZHIc7GrN+UQ4geO0\/\/uQYMuAAsoSVGtPebxcQppdZ3g5izxJS61jBvF\/iCl1nWDe93nSx069EJhgSDKKhdL6zooIgoqxNlSVLSWpWQaiyjsr1fHNZ\/\/cRPKXQJAzKxdyyCECUknG2w4246TAUOgvNQKAx17Tb0BrNbukYclwOgHOlEvg+oXugWkrzteWi3r97O7Zs1N9piJJrhRZ3+W1fLsOvcYfz1qW7dg7QlRVRKm9rFdSz+r20aYCS\/\/7qH5CEK2GgahFMDGNkYbL2DYZV5uHI3Wm3eBpmuQzG56lggI2\/sts40vblq3Zp62d7CpVvWrf2LgLhQUNvMllumRszDbA+i01i65FJr7eqxMaLGUHmWs6CrAKJbc\/7q0bD+NhQARMQoAVTPa1AaLD+QaCPrVaxAr7R2lRNTohyr3xiR8s8sajr9Zcyyp7l7LdetUxDM9AZESJUL\/cIE6WqWLOSJ12I2uU7kRcz59GWX7534rtT5usRGv+qurlzc2vsFRaYyI2I0wlpIII\/UvEA3vgaLQ\/I3JWwy+WRe3xfAC5Dt\/G9jbq18bWJw2JhsBB\/\/uQYNIAAsYQ02s5YbxXAmpdY1g5i4xnQSxjCTF6i2hxjGDmFEnToGufTJ7T+1oZnRJbl21Wvd7kCe9V6vMUW6KbytRhDlEECE3brLdfv\/FyybQArVMBoAMwrA8a\/i6croBoi32U2IaqtXFSJmzkSjsw94fmKZ2a+\/q4fhzeeX2XAVjhZQktqxemzFWGiysgwdLdVWPeiLNWGnHXtY+KAQvP1sfuUSftavcKIIFJyT\/uvdlT7kjCAMVHVYBbt2lV+8UiJBN9QYR9lcMgysIOh6xDcwreBtZXCpTL6bI40JjhQEVBuXSmruQ1TKhlncUbcv7Foq7ozklwXQDuSWyfdphVv\/\/urcRFdpYQyXzHRicLTKVsaqWMsC8TaSKX559BBKcM7erWFZwdOD5Zcu51MqGjzqZidgUMJLEZljmq1JZ2TbjSFPvN7GPSeIvFnVRa76IaXGoysW\/0VLBAgotyf\/1b7J0SQ0IWkO6CSVaIZqpFQ3ckVmA7GFaVEMpIyuZhymKg5yhvtKZ76+FLfv3rdHTBxDwwFxZ9qakoBUYBWtDB\/\/uQYNsAAuQT0EsYwcxjosn9Yxg5CqxFRYxjJvFoCihlrODmgypiKLaFEHLnO779H99f\/v1tdUgQUm4\/\/qtpQVC7Y11x2SiEBF2vD61HwlIFyr2MPy\/lWLoAobSjnCb06HBL366eZYYckN1WuN+GBgGVHmxAcKnKBoBF2hLUP\/Z5tSP3211k10UJdTilNeylH+xNKKS2+233\/3h4KAy3J21QKNKbmIXoA3QaQw2L1XxlUYij\/YQwAcu5G4DpNyESVXj1iflOWVJdu4WrGh4AcCwhSAL7CLKSZ9QaNsaMICMbxd7GCdgp0GutZNs0+Td93pd\/o7qmSUlJI422m2sGic6RHOn0xEEzkRrquGIQsuIEUk6diqFVMQEADigmVP9uZnexaU2ZLr+2uRumo69fCpL9KMn2JDrWT6xIZUxirr2MzNj0IaY6EiiZkYpZhDUMegAsY4xSwVU79H+saJTMkf\/dXDhjIoIh05YqhprYwNDyM4yhgGyx7tnNtZc++2XG5zETQPK8sILZw1msNmzEgVrndJC4dBskLDxrwnLmU0MI\/\/uQYOGAAssU0OM4ycxbQtocYw85jFxVP61jByGZC6i1l+Eme1GbdS659slc70bkqu8nLV9sd98vT1toGzb\/7b\/fCKraZYcIMI+LeERCn3cigPK2CHAr5wrc9Kp1hi6UsZE8tPAZeQ6UGvYYQfGZNfs0tfdYcTaKtCCgVFT5lKSy2mRXQQ3KoLJNlrWD0PekKOou5o8R1o79lKKBScj\/\/q27r4EJxi5g4p5RA4+FH1Me3C4Kxc6fjMuYgJXacearjMfC7y\/uwuUSBJHkfzZvDyGwfFGUFpKxDVCq1nPrn0ZdCbka0UNcll+W7aFWt09PTs\/WigUm4\/\/6t4EHEqjoqUs3xYCNC4TISg0Ay1ENftyUSfamGUgcRoEupA\/IHRCCumXidUaGRybn0UkHQnGVProjii2lRRbzIeipm27nZT\/dSv3OcO9XalTf\/2O82GUm5LbJJI247KID\/gISNroHEhElb0RCoJVafRkvZilzaOBlRaKxjtphAIR9Bhlu7SYX7l7YqDA0UHsQT2pqPAdiKLHG+itBt166q+930daTVivp\/\/uQYOEAAt0V0ON4ecxfgon9bxk5CxhZQ4zh5zFrDShxrFEm2sXqtoPqQJSckv\/9Wqkpog0esL1hRkYTvaC1UpK4kTQCt+oC+8ONzf5dKlsOzE3mFyTd5XdDK7o5h\/bmVnoIoHigfDrHMUYax4sGpFzWSxh7q7F2CiX1Rt\/W\/ud+r0Na9Nf9sVQTTlt0kkjbmUG0pQqyRjJJaRiy98EJMhqCXEMJ7KgEQoRkgiTlcWRxD7gaYuIVFrFArQUit+eQOu7H3EzZ2KXpoZNPKGKZq+bFkNZ\/bfl7VV6EP0afr1zGxFqmU25bdJJI24+wNEKJGNesSmCScJJmVqODQX8f4hYphAb\/sF5DyFzmRSXWclwGvRAtJO1rt+xn+V\/HDGwSzoZbDj3PU0hLhccyPWsn7kX\/\/3MIcpqsr3p+XVRRzFRhJyW2ySSNuPAjSwBd6TT8EErC1JKHANteLWU3UzYi3CUq2NegFipkNLKrAQoJJCFe9ft7vVMPLYhiMoeDAKBA8spW6SfcQYhRWUCrEJRcyHJmQUj+ow+83j2Uf7bExRCe\/\/uQYOgAAsgUUusYwcxegnocYxk5i2BfS6y+iTFxiul1rGTmtlN2XWySSNuOw1tuZo8Qy3QEyF8WLRY75tEmEu0yxwI5bf0v6IB7uWLr51IaEus1m4rz6XGtjzH\/qFjL3z6BtI5U8fcLqpvaVhyhAtodznZ+6nepGqxbNdy\/5VklN22yNtpJuWc3lQxtg8EPDAygcxCgcdqXbc+rOwRsbNmVkvk5WsQTGJ9F84Z6d\/J\/KpjFblW3Wq02VPYDRs\/vJjnu6yTFtvsL0MCLkmd26zcqQ9vcIWab\/9un+pElJyWxtppJtLR\/UAOo9FiEMJZMUiDCSaUng6fQhizXKvq7YGv57lvRuIjpJzvv0wVgUUk9aki0at2LhdgwOg+QvPK1mnv1UpWTGmF9banp8ys8j8jScGnJ6+e6uzfFu\/F1AIWlbdtZZI2IQjCSvYUIDmr7REKTdxJWIax4KQd6rXfhAaKJFToAFLIJgd5wsAeOTnPNAUBWZ+2+UOf+9c7+Fa7Ysat1bNLpr0Pz8exwtfYq1i2MjEoVtpoSn2Lu\/\/lLkLds\/\/uQYO8AAwwU0ms5ecxawqpdZ1g5i6BZQ6xjJzGHiig1rGTmt1MIqSW2ONtJNRcyBVZgPkpeq1hrP4ZQ7iNVFNeYzWqN+Y3k2ZBGFT09ldvDDsbQSHmgyOFz1ajwrSj8u6\/u+fqnxr0vL+AOm4PX00jFIaZrWPQLL3PJqXQ0fNahZSPsXf9DkPQLq8kcre1ethFtySf\/1awhxw3qcbnrnTIDBMlT9DdHvwEh3\/p43GZasKoI6cVw5iosBuztJIb+NTW8rNTHLLvbvlnsFBr5M0wRNVQWJHDzYrZ60RVm7iqaV+1FmRWV1zwzrT4E3hZKihKiu8R\/tvtgMBTHDUApwkQcNaYYhc2SWjq1FKN2i8ColcMcgmQqAQ8uGNRmTT5YQbERl35yzJataV3aKnzwvgkDwWeCRGcRirqJSyLntxxIFoe4K91D+af7vEPuUsVAZab1utkjaQDK2mPexQwhMbFK0o4koYW1VEDBpvqIKbpZS5\/Iw\/YGNqEneWjAiS7mSbapbjuorGx683uDs0LHWgClIrE7rrpZqqXzFSKLNFbf\/\/uQYO+AAx0b0msYykxq41oNZzlJi+RdQYxnCTF+iqe9rGDk6ECUpJZ\/0rKNI2LaOOG0vAEoBmDQmclEMWYAbfCZr\/tTUcgAgOELYhBRoRng9uDTzudZFcls5Kpf2aocKlSpVw3yxnZzWSIuANxxCKBTroQdUQVXSp8aZYj7qNfR22e+g5bX\/SYoKG0TD\/7bW7OyqggWDSm1CgxIVezdWeDS9BKRGAps8q44AakIkTmBaCjYS3HXJDp1Hbcun893GZqh2rSKkMhK5jJbF4gu9VbzV6mK7LLCH\/lnR+dGle0VZoQ\/OZ91RCRIbPMP9rdbdUJRC0yCE4rigVCROW8akgur5MEhnUrdGUtJX2OmG6QJCv9AUFTbWRd6fpLkSopT\/K83eu2Oc3rlvPn3FVs91FgwnKEt9dzb76u\/18vaWTTJ44xqU2p3ij\/rMDNDJ4lvtt9bmeN\/Apy0mIkSxQB\/eNsaPrj1NaVzSwAztHklOw0AU6B4kQlVp+it1p6elpIUIwhJMKjYEQui0lXDekievQMtKk5My67\/3Udpn6b0\/enx\/\/uQYOcAApAU0WsaecxjYxncZzlJi+BbO+xl5yGKjOc9rOUkqBSScj\/6Vq5hitoGoslXOO3gZ9cqnwoaV0gIJA0ifKKR0t2MgQpZ039Hg9BGyZsZVKstot38cb1Pj2\/es42cViiw2MLgukrHa4CCiVL0evWvz22rbbmJ\/2f6d8h1EJChpDzP+21kEPIqF5jIR0Z1yEDQWLOwXZUDc6iJBKcMnnFdQHAhuQx5EdyWv3XYB9nFalEMZbAUrtQJ2pfvzdW5mwUKwQBJ4oogpsKGq0Mch0URIl5hLWtyW\/7No1uLtuirKiAgM0h5n7bW2VPdrrIjHEaOrCX5Y8\/kBp03JOApQiUS9fbLoiaEY8ghJfRmlwKglUWRS7HOrKI4HSgICNxECHhZBVrO5oCF4q62cdekq9SXh1aXQticwpzRk2EL\/66P\/bUAMhFSJniNtZZJSEKgyFwR40wYjToSjZcAgKrhyIZMBJwB3nSyDEN8J9aIURxOYa+DwKZW9jLZV3+Uk\/lh2zl3mNTQXBNjEzN6jQ\/Yvun3Naa1MoU9HmEFdLtF\/\/uQYOoAArsTzvsYYchcwxncZxhJjHxbN+1jByGEiOb9jGTcL+pS\/jmuq0z99qESWlJbG2kQUIgMWTLHwbztILJP2s9iBSaWUIpOH2DKuiTC1Fgbhx0aUpYFddno2J3mXQuSMip5qM02r2NXdbnd1QmRBJkjHaNHfFhXFHd6CtjX\/\/\/6Vre7FLru7rbZSVtskaaKTQCz40gHIA4jBk906X\/iUoSlvUqZtMkQ2SVvOtcOqnoXzYfRTMWML3alkkduS0\/M8bNBbocbFimtb7rHdbMFlvF3Nml0VXC54ghBqLKMgZaDNAr\/3U0rDgalJl1SECzXqRFEzSZif9tZaGvrxAB8+EUwoZ7QS7Jg77P+LjaDLAsJby+VVnRHgkrg6KdqqsHSaGB0EjkV3IIzP5Uk1fpaftS3Us43BgbGJcViMmoouhbGq3Jrt3p\/qnmpWNV1poWt9aWt1GkUtd9bbbJK6S0EHyd+jZEDSE6I5USGgd0jLgXC6+3Ig5JVIFoBYGOK9VgKC9Vqz1r+P8z7PAmYOEgqlJShVdlqKtFRqfW1PspU\/\/uQYOuAAyYYTXtPwkhcwvndaxhJjQhrPa3jCTGMi2b9rGTkf8rdyOnf8i52mL011VF1kGUEbbtJJIw400BFwKJKXY0OUeHGY1PT5TbQXlbwGOBZhI1\/J6AJUNaYOzqB41HyoCTjvfCJdjy9RfnUzv6EgYEpdDhW8kpET5rl7ozbvij0ttAn\/6P9L72vsRXWl3xSSIUZomJ+22FuMSY8dl7HRc4sPo2ERC5m6BsimMDCIlmMMMRgJn5CScLjqpVwNDO1MwPTL52LcilX6Wl\/H+73ZQCpMAlt1ToRmjZy6rkP\/7GWlXJt3ZBOXcjudU+qmx26OcSE1V4d9rrZICUQZ1EJBTtCiEEhKABwSzv6oCVxGguMnanAmZ135GjicISGInh1NS0SAfypbnN8xPWVujVn1l\/ik4RFBZh9wuhQAM1Hhr2Kn3Ndqve67c\/3KYdfexMlXZydZFR0IERZiJ+2+12RSEkIIDGJhtc4\/ytDSkCAkyISFbHvexLC2+RiQpY0uQU2aH5G5iUM2Yzhq\/nTCMVFAo8OXstZfLE5s0S2Idq3\/\/uQYOOAAtAUzWs5echewpmNaxk5DCBZOeznJyGQi2a9rTzkVGFij37N332S8q9o16loXF9f7\/qczE0aYift99tlUzJjFQjTLcYvsQ0LDT8YCgXMdcZnA7LZfATYV5KBMWgmBrd+XHEM1bVLaispwEGKFrVraVJDDd7nqTW5IvTVThBM+KKQiZUx7JU+5xaL1iu4J2jo0f+3rSrQRC2r9rJJGE2QAkpWg5ZjOPBqS7TSBdAYYPbWJFX3d2nt142AVHMLFYKlEETbIBr7N6sERiezp52rbCR0MFDwkCBxHU6YaHNTlKVFlrZW0QpKDomDX\/9vPU5z1+gBUzRHh3tttjk7BTxjlxvBjEBwjE5DvPUNbMugAylFOUk5LGFN2YHGcmsoU++3cGQzBpi8OyzOpfxx1hZv7B0TBQwmsc83pZrEr0qBZ8XV3XoBaL\/\/uUU0MZdW5xo4dtTnF\/2LQRRNsn8oAzpQYgGPIMsJCRyGqV77RBOOSz8ZsgUEHBoQLYVXORFOeLtVvRkkYcrO20q6\/FPQXoHtXqtJW1XvY6zrVLPr\/\/uQYOMAAuoSzvtYwbhjojnfZxk3C4RNL6zjByGQCmZ9nOTkCpQOF+LgDf77\/3837qEfXGZZCaKetlJpXWyNpEhEARmkNIMmEhHV2YeYOBJiS844CcGWAEE3hQKZ3cHQZkg5h4plCqhbiWnLR8PCQVqfCQOfE5RnMSyvEJVuvlYraCQmCAX2EFMTqHxp9jbPRXS5i+iugf\/\/\/iS0qu3Sl1zqYEmlLb\/0rKUAYZ\/w8NEpHELCFsnVbZ8W2kUqon6gqILWFBADQW8j7RonBReM5AtoNSM1J7l3tfPeP5Ya1f5KnXkTbYzfbW70\/zvR+5ff7k27df96k9\/TAk0pbf+lKATNCUpBKTapGEGpQumA+oWDHJKODh181VZQzFEYxoZUSpJRG6pUKAMQ6NHFu2\/7VEAgEyQi4wfW2TPprt\/69e23yDu\/9X\/+qnb\/pSCluS7bWSNpIDqBG0OFgApNePCzyVLRX\/MxCIzJUbXaXqvpeLEQfDX08Y04bcK44RB7tZ6g8Roo9XoJPzdzeuW2JPiiwghvuP+zrU9sNivyxGLevqZO\/\/uQYOEAAtQZzOM5wkxowunNZ1pJitRfO4znSTFKCSdxnGje6v33UQJyXbaSNogpnAwg\/hxFjQEOoyi\/5nBJSj9asbWjMgL+AwNgyTz+qJhWgziWZQwuWGC4Z9XoYLVgSHbePcqXO3Zzt2Mu6v493hzH7nirn1IKLOl139n\/uXv\/\/\/+iv\/3\/Qw1HdrpJG0SGkhBZpPcXejcu10EihWA8dbZPMs6SgC\/aA1hyj4JGiZxCl3qSDqcCGH6UpNlMD1Z69TY4U1LTVca+X7u95\/e87jcyTC4dcZRY88kdGICAfIPJraKqCr4HYpn\/\/0oNN227\/pWaoQCt8LxmaaggMaYJCWowk4EcVOwz0GuhwKeQrlFBgHquU+pt3KcKGT6jodaK1uVc5+9fhu6B3CAk8ZPj7es4rxj+uvehqWN8w\/rU516iWp9Mit4\/ofahfQxNIEEW3tdI2kCUewiBfghRb1eS9QSEhCCQFEaMSlvAcmJAqukGCEaCybjrLl8vg0lVHAVIkOwxmFUsjwjVmbodV70zkAXtgtRf0LKIsJOlmmxG93\/0\/\/uQYOkAAscV0Gs50cxfw4ntZzlJjIBzPaxrKTGHCmcxnGjmIauAekpRRocjub+nsVU1taAZMr1c1\/9bJKgUsZVE7nhpmsK4dRsRPMYPYxKzCl0vS0LgJZygQmTZTAhrFYalMmZmNqNBoYzbzq1MbV+9bzu5Z49\/m8bYapGrPLOewbYhHilsLryHyd6L2prnRnl1v9PM3vvoRUgsTO0xE7XWySw+Fyu6FqgPCRyirgIoKxCA1WF3SElsyaTyxRgyHU4lk4XDr2Jh5zs3OSxzG\/vPDuNrtxZLFWxM5yYSj6L1IMafIWN9tbbp6UlGuZt0JfmnOZct3vpQxDLfv7ZXEkyqACogUAGklgQExAVURtcbMi20pkJimk2+0Ilb\/s\/TLL0Gmro6EBtg61BBZ4usP4WK1xndYoWOir6Wyo662ZFVVpaWOHXhv5j+\/+5jetmlF7O+ij9yQEEzVVh4jba2SWKoJHEPsIZY+Ood1ChUqF790jSHyjMpdWZwPO2sN0Zfci7okc3+3WqV6vf1jWzB9BU8EDJwV31N3mRcrtv3jXpp\/\/uQYOgAAxkWTmn60cxmQzmvZ1lJC9BTNexnByF1iyX1rDzkfpup1ALpRYvurGZNtNitO6LmJoqpDRFt1kbjlyoQgTysE10pDI0C4BdJSgTIdzAkAanEX0ZxJ0\/27qtaVEn6pW6nMcs7DfN7z5y0fMAsCaA0Ra8H0FjL7ZUJt7hefA1TaFpatir9b0XfrsZa\/3dWjfv0MKCqvMxO1sjDDrigEqADuH1qorpKLWS5ZIPUOPDIBdl6IcCJjs3FRTk0R3iDZ3Jm0GAq6GnmtYWO5TGtYUtv+2SBqUPNu1SiVtpZbEAzq+keFl\/\/6dsx0EFAxRGiGi2xhJMuSpqhicsPo2L9BImPGCa5ghGmbJHBDh2dJNs4SSacMPh7pQpJO1LSEwd41uS171Wd1hqrnvC\/gFx4TE6gfe140ZOnKjv\/r9KH6XO0uuuaz21Jazepz7mNY1SWl9ZpFO7XSNpElPQ7aEw8YZorxtag\/KaTDpIcMAQ84sFgCgLrSU5jBQzITjm1AogKpLh9HRHq17tHt3uBOJirCXctCcvpFkY2pyva6v8Z\/\/uQYOOAAtsUTXsYwchgwmmfazg5CxRZMe1nByGYiuW9vODkfo9H\/bb1t3+pPUpGBo0zE7ayNiFUGGkAcDzoQVFIcCwCazsHMNA6nmh9Ixcosp+J6NBchGRA99XCl95KoBpYI\/cZyu3q32\/wu2Mb1zMJhYFXiVT22KxdUK0uvQL7E6FVPXyb1C9TKH\/\/5jXKRV\/fcwbAg3NbY20iCmthdTh2iZrRopPs+RtARnPYIOQYuDhjJVh3\/R2ODUky33bkNJgI8r36rc11B94liwsQORgwewym0nsLPA9KrLbHs7tVTv\/26NVXx0eXrpETBTNOBiiPUxH21kbC1zGULAJ4DCwKZZgZjTaZkVdmAW8MEN7RKNHlrjS0BBqzCQ7CnIEuhHndLJSPhtljz7CYmMOeKToq0PkbeI4oZr\/MMIYBQ9y3M\/\/9c19QoTFUiaiftrHHCGEJBIBwyNBtoxKdDETTbuPkp4iKeyNvPAjyqOHK6kJB0ezsKrBBYElGUszpb2H9r4FAgHCTWpx5J7ygTHrbSjX6aF+3WxSVj4YRRb92z26d\/\/uQYOSAArMUzutYecxmwtmPbxg5C0hNOaxh5zFdCeZ9nLzkv9tVARIsRLxrbImmBV5wB7YjLuwCAeQyFYW5I0xQ4lRYRp4LVKF3Ic+XsILsGnqsDLYrVpmRj6DLqaxyjxpLf573njupmkeuFA+yqwXFUz5TdBsYwevRcj0ixQ1LpWlt6u\/+rRqax3pkDNViqmftrZJTARCyj+GoQybgrMJSNPUftyyLgB4YNcrAnfSKamCbI0rkgeJzcGj2H+s5Xrk7fmRrHXC0SE4sNQ61CwOxTNdNCqtrNsi7Yoc\/1\/8eqvYlSGPTet2uEqWnJbdG2kSUQOzDAFUTFtgYBGQRh5icauWyGCSueGgrMpqsRuMAXGsEhZk0YprswVR5zyLPl5s2mZjdSpkbDCxoFKGgI8VG0KtWQHopIOQlRlK1uJROtNvcu\/rfvcpGzKsRr9mputZAQ3eJqZ\/+tklnpG0oQro5PolWRiKXjpJsGR9xwYkwZwqsZftxQDGRAC0aVPGyGSoKvfBfantaecRiAaYEA4cNbYxkUoYRvvaJtaqGID2K\/\/uQYOuAAuUUTPs5wchlotl\/azk5C9hJNezjBuGbiWc1rOjeG90Wwuc9ulz+\/drQttKX09DLUkutjbSJKZwODs4Pg0McQTjJjWCI3LRAUZ3KQahsxt\/WVvQCCBooYsEbxulJEUJgq6DZTFZjdjCfu4Xzp2k6KhRUDn5pOq1X+Te\/YqMOboz097F6F0S9j69+1EJPr6iAiU1aGeyRIop\/FqqrGteGLBpUmHokS1KotgKDjeIOdDMCZU0PPcZegDjMoltWjUVbx5sblWtmDJwKCE4NPmA+mZSBwEFv69Cuuj9Snn0qXehKXjxf1jftpsIf1mJCqNEvGtkbabtF5yqCBaZuLL0jnkf+MBvbLtAKE1Hm6u+piuM1qQXwrwNTJVBKY\/af6J\/2vu+BDBNgLuFRRV\/lgvIR6CX+YU1No6mhCL3JZI1d\/Tf7uvDn+sBRE2KFdmgbSJKR+MHBiUOOQAWNLnMkTTGQUDLBAiVM9yhJqJItDo7m5xJ81rWHyGMPdSrbRJf6rapMA8d8sFjKYvFGk6qLD600yyNr1xZrp6XU4Tbn\/\/uQYOYAAv8UTXs5echf4nnNZ1g5i4RFK+1jRuFpiWX9rGDcGv+rf7+6S7xN9cJVX3ukjSJKXw4o4FB7VMlMMAn1MCQEOFANeLN8e5FLFTVY5QqPjE0tuRrG+M4G8pHSkYXRY8knRpXnUCIOJax0AuYZMob17Pc5YvmXSHr3xO1U8jgWj6KN1zGvuoFGAyU3iXi21hpNDiQCo7AOsSSamOTCQT5qfhVKycZoQjVWaFF29UBBOjCWzTPZpuIdvWlM4ChtJMESsVAz2n3VGQE\/9P\/Y7WQhkcc3\/X3Kv6\/\/WsjR1VuKG7RNTX+1skqwSnLkLbReYeFF1xQDWwq6rDQ0AmRHdQ3ioAbuPNF4tPW2YG0jS49Er+GeuVcwoQBNTzN2Uhrs2fSul6a9vTqI3KmKdRJ2ZMJ029TS\/iltQHFUZVeWeyxtJAgAiowhEhSAvMUHmXGBCFpRCJIkrEy1R5IZf2NJTCqZ+yr5pN5bAmBdsK6BNf4rH9t5+aebB8BmWLYu\/3NWLve5ZVr99n6V\/fwGntaxNNX\/\/uKo7O8PFtsibcrB\/\/uQYOkAAvkQynt6ybheYvlNaw1JCsQ\/L+znJuFjCaa9jGDkxmVnEDc2ggkxPdCIKiOE3of0DjWFahQ1pFdSTY\/OU+dO3YO7KpqV4EzQSUeHvCdRINJIHFBhI9b0CjIyYPll1u693dDSXV2JTKOeidW5zkL\/\/v1slNK63\/uCWQxJE8yiHCABuoodp7N1FSphBUenmlxaBXbd+AlbzuFliQI7j\/1FlFMHKlL2my73+3wI0qUaAGi61l2IX9t5QmOjSz6Z9CtLf\/\/\/\/\/QmmzWyUk7ZP\/6qwXIBgs40F7koDWOknnCUbHvMvjZoC77DmQS2iqhx0+xQoTOJQuFQ5qXWV\/1Jh5IhNcG6DbKcZLZY8XJM7lejre39mlDv0f9aP6xFJJTS\/fFzvmEKGECm7yGGBKoGCjixZZiHpqK6EHuKs99Kth7UYCMciTeinJQMgy5MkguhvZCQqADZhj79bHjmED5Jb1PvRVcj\/+\/u76x+57yCbAJS9v7Fufp\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/yUyXa7G2\/\/uQYPEAAs8Xy3tZekheggl\/Yxg3CthPI43rJwFCiuRxrCDg00k8b1luzYyww0DQSGFzBigBteLSqaGgvU2aRyFmkHrZDBFfS211OJijGVTVcfG1F4mEAqHXwqskxDLTC0jTh3C\/7Uv2TjUXr\/3\/f9Ovu1bYviuJNl33jbSJKQmggM2E8SsrBNYUfd8eQwWNNq+hYwshlcmc+FLWEwYflc7TURICEpw1Oz2IsZek8PED27C7SO3ra1FJXFWCRi9KOi9MimVp6n7OizuRtufU\/Wikq277RtoEkREqlElikJGn4HIA8xXu84KTUvmwDuUCyxtYxaJQsOWpKKs\/ZmChcntIC41gSQu+E9fS22pAr\/6I299BVgR0O7uQZvUhvlhRM2Vnh4skbSTYQgFY0Po37SfSXYi0UZQjA7EwBWqhzhmOtHZ4BzL6a9ztOuQDyk8siOHbeljySb6heLqYKNO+icd26rk4lcWssjb2WWfZqppa+qkVF87X5D\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/QDNWZoZ5JEyilOxs7hBk2BImGcZ\/\/uQYP+AA+IQyONY0bBYomkdby84C0RBKa1jJuE3B6U1rODcPWRFtzxASah0asQH3cJO\/jSTgfXzDEqp7qyAwx+45WugVQGBVwblFoDYiNqa1bq\/sF0wqshsbR9bsUPFEoQuz8Z69peX\/1OCEyrEM8sjaSaWgwNaOopSxgxIC1BczLS5T7xRVsZYi4jqyFyy2BFAwLLA0AMgeJfMG1sxykCA0QQhQXn3KOHumoBdRm63bZu7unu\/n2P0uMJZ20vo9EAqQzxDztbI25LlTNlaIgTY8I56rQsQGPORn+eoyydCG5+7Bq8llW5blnx9weF9LFJnfvgyJBKLFQm5KCwsp\/Qw2K7YHcwoK3+9otU0zr3WVxg3zNNC0b6\/1WFKbEAgkmOJyqgqRcsMAWNLfbMuEEEQEPk6qwQmAVzAHCKl6JREtq8EDEQb9P4DmCB28BcLg+GWuhOiwupdrmoyrttS7Vq\/\/\/\/csxZppwN\/HK\/QQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/2W27LL\/fHN6DjYgC\/\/uQYP+AA24Ry3tYwbha4glfYzk3CtBPLezhpyF2CKY9rGDcARKxRS82l8eJoUhYg5jVWtNKr6XOF+ltUogEwyZsRfFnokd+6K5yHlpPg6UIlHztXqWJCChQ2cdXHte5vTR\/\/77LXPQRehT3\/cbpZJZksn\/10KE3yix27xQWlJijynMNP5IqzWwbVmr\/Ut6ROmUGfmrUrcbG+d\/Ddf7nBK4Ngu2NBco1whmgPhJhCVsjKd2ytmatZYnkHGrm+jt\/bKbf2JQJackndVUvKSA4Ua8dCh0EYyMLI2nDKgFelh1YkmdOJO\/NvaVR7ilJhm+jKoVbHCYRT60gAsHlmjrdjEp0pY9u2OSXatRulFL9SFo9rmxZaLXe91\/Ve5e21KwmmSOu\/3dlloqyTpBS5gIDGHFDRjyBoQ5rFERMal3fyxsAlGBaX96pUR6anm0A0IiRB6DKVkV6\/ChkVF6qevXdkn2Cq9Ht7U0n3XgVzrKv\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+AA7IPR2NYebBWwgkcazg2CrBHI41jBsFpB6QxrGDY9nLa3W36guAQMQdSZMYGeUgiF+C\/RUPPeh5Zt2oel8AafokA+LNYi0gNxiRgctni5QWKITtcXuUn6MrtR\/rfu+76l1rED1dLxWx2yha9bLDklk6qqm6BUmFwJ3SYCpBQSDT5MpehbJiwrDJggy4numJA9BIINm57Q8ZH52C3Vbs71uuo3IF0KaJeMeq9UWrtPpV3tqWipF1Nauaq3X7133T1LGOT0176UwoSSV3\/+sFAhAcTED6mTQEJxMYjWzsFoR52hEBJJFhQw\/DphFwL730T8RnMZ5mtPv6zGy4VqcEyQ5oYZLpQ9bpVZGgWpT\/\/+p3JwrS9L0DzykhlqSOOVTTL7qWiEGdaknJBxlP6TpmIkIdVuFChIqBOGZPYfyRkuGlV+bvPEJBna9vcToEow2WTYVKPB1j2Ov9KvSKH11JStxtVugu\/+TbRVuFbey\/V6f\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/4YpLK51RV\/\/uQYP+ABBQPyONYwbBN4dk8ay83C1BNIY1h5wFHCmRxnLzgIrDAcGhgl2NFk5AtBKHjZFwIS5DDotePzL\/QDL1tC0EauVbd5qqeb\/0OInFwkBWvszxK+9429gofo\/\/SSd0etSxpVBAFYBtbWyixunvZTs2qwk1s0scbbbYWAOCdYgVpQljowPEDUyhUFDCX3Bhoh0vzG\/V44AUW1zOxdrsB2icNXy\/czr598MjpYuCTz7XYyHOjZXcW43XTpS3IfQ55GiilCfYNjWLfrHYSW263\/YRRlNZduxESr+HyxKTeFLDFyL5CCJXCkfTRV4g5UFSGNY2KViQGPiQWJogMLOaLPYMMzsNaPpebOEFWf9rDN5RmafVQpvf\/rtf3+mtiG6uOVVVRfZCgYHMn4a7CgC9ggZfRYEO5ZL7IwQR5Cg5lAig03kZ3eTQXDqAPdvONvGr91qH6d5hToVlHXjrX\/ts0RN9NrTCcW3ragslYuqozjcV\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+AA9wQR+NYwbBXgfkMaxg2CxRnJazhaQFFhyTxl+Dc\/\/\/\/\/\/\/\/\/\/\/\/2ItrK5\/91MyV00oB6MZVOBH0iohIGQzseXRFBCRjVi9i1EhAWPd\/V6VvvhjRcE5pqyV7XpWeyaE6Dwjpt\/vkF2qU6z7fsb\/O\/Y7yn+nCK3XSxtttttQMkaAD4DB2CkhlKHS7q3jY9oruijU8YnUt+uwNK\/1Hawzetfdqnyq63h9litqC8PrjqntKVdUe19XXZ8WTS9T+0pGfYhupXuirW1vr1cybe66RtIEhSlAM4JigyvoBLF8oIK4ZgKhSQWqFczdLhcTE9CmE8cMsfAVsrGc+wmB8UBcBHrUW2IWxzXuhl2\/QbO\/\/u3devUyOSyUEzqDGTOzW1SgJYDA0iFwRvQ7LrArMGgIROISGepk5W\/jGHIW2IFeZvGq1ivYQO5ar3N9w8XSLJUjXTcxvmdK51GVvulytC279WPf+VozdI1Lusvf0\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABFoPSGM5ebBMwgkcYzg2CrxLJazjBsE7iGU1rEjc\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/jr9tr420iSpck87Q4NLXIIDLLzggwcQzkXKVthgFCKbyinnNylQOkne74m0cAzu2w4FnnsYX6kFRdIvFlNFutVtFKvatUUFe496rd\/sd9bEdaXR17aU0NV2Vz67ufNgy707lcDAQFsCGAizGBjIRYSIN5bgvSaNgLo707KI4ZA0SU6djwNjHGdrfQ8mV4iV32P70Cyq7bX\/73atDRY\/62o1W\/SiBFqyOVKqshTMihp2CiaVQWmBBZmsvHwXVa8YrUudeLSGH3xMBIjMY35xpYgTTdvtEKyaZwVKqr7L9rfyK9exrtXo\/R9n7vt1HVM+mGva2y\/\/56s8ZU7LogQCsMYuuLDS2gTIPg6IY0k6nE9Fft4PJD9wtYXRkzbOoe43l2PcPQcDZaydvHH5FCbEoq82Zp\/\/4ky+hDhRyUO\/p1RVh4r\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABGkQSWNYwbhWgelNazk3CbRJI4y+BsEvB+PxrODY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/sNSxxSqhRboCAMFG+QkwAuQaO0Y4YgAiRm2jw7pAGBL0rykr7FgMjy7v39DTRbGrdzIokYWFgPiqwUNb3vTcaAv\/\/bfTsu\/f\/\/tR\/p1pZJaiaf+wCVQ6Q4tlLpJxAD2GJwVBaNhwqwBvOmJB0zQhEXONb6YyaRIx0u4hfHbSanLLqNu1IbV9enclfZYY7af\/\/7FoRVel9FBNMjdb4w+zTREIOHIizDTN7TFBclDzm6OV5fTSGxWViSAnkMnpji6AXHVY1hdCEChGW7E3\/+Qc17DgFdoQBVzSl7dTOm7f0p+r+q1mkkmSNpzFMtJt+BOcWLeMgPKVygjtJLuY7SPj2xK19ysHUfZFpfO6fFI+hXmXL\/3pUuRehbUbBz\/9Ll5tq9NTmfnf6U9CkV\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABMUPSWNPebBN4hj8axg2CWw9HW095sEsiCNhrDzY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+iDHG0+9h8RiDBhDVLWQKGmKiiTt5EbYZeGYCiFXSmtQrpJAPc8fX6eCMvSrA21iMbr\/oKoLt1fe+p\/7KO1\/7P\/9JbX8tqraSkbaf\/qdCw8wZU6D6la0ZasJZiYKc5vGruMF09xGdpoDwOhbea1pJnRFsLCJpdiJixhRTTmqldzNzru\/doXjVxd3R\/W\/Sjv911WjbyTLLbUSlVVU\/RIGz0pFFu0EgwCDjx6l2AVSWxwRo5PBfxx4hWkKt9vaxeq1smdBlFymKmuL1u1oQ1bk69jXtjNyr80jv2VsSn81c\/8\/XR00CKFyNp0qqqVaKokROgJQmigQR0nanCoFULfxoxNY\/aprDx8L5ivfF5gi48fG8wtGBI9BncPcizVqe7oRRcjqC51G+K3tave1KbGFK\/OxjbvWiK1U\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABMkQR+M4YbBGodjraw82CbQ9HW1h5sE9B6Oxp+DY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/Gy5G0pVVVVUUAzBxU5gOfWDgCMKmZS9w1N9XhC82V2K0qcFSGKqI8vkuiYntSLmepxLkLMpF0cvU1THVd3FNQoS\/u\/pTu4qquKbEoozdLuTimuJpxppyqqqwo4EBgQNhkodJYKxgdEi0+WcUn0qoaFT4dkPQnij3HvU\/AvNB0JiETC703tvWp4dzPe0lXY61z8VQr02i6VXbsC9V7f1f+5N96mkXI2VMqKKHxsRIi+cmWOFT3saXBxwFD8iDiL\/sVZWsiAkQn\/QNE4wRBEfcsXNAFRFa3WNw6m3r1oLf\/9AFvf\/t7K0iGNRptyqqrzpVJumAekc2xwrkekKoJImzWJO5w9OHHepaSWUleWRsWToHhABCyTLY1oupbBtDG10O7FXo6drNaPac\/L6yiEetSH39Kvr0Fv\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABLERx2NYebBSYkjsbw82Chg7HY1h5sENhyOxnCzY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/dvtvghEQUAFyLXHnU1T35HiEcXxLLOBnZ3VPhqXmYu9txDIZwakcIrbBiH2C5dtbcNmX8Z\/\/rd\/\/\/e7\/u\/VZRDZbXHP\/vJ+aJKVAULKISwLuLa1kXhqNy4oDB\/MO3gluiRdfZViBngCHwwsQB9CgABiKiptzbWiiSiWM9TentYg+QS5D1zoaF\/\/\/+378hylLcscTqqqnSITF3Au+MUamxQGc7mCqGe5h+uOKP5rgUQ7764jXnnaHOue9alalD171Jq2pY1ivimqKdtGWVH\/uis6m2lmqjmiGaSJtzTKsNJCrJMQLNMCVyY\/uY0ShAZw6lS4A7Dmzrf2d7purePFFKnA0ADL8qfSNNWl1OTt7mqKtdU1+\/dJcn\/6uur2Jpts9Dif\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABS4Ox2MvwbA\/4djYaw82Ceg5I4zh5sEfh2Qxl6TY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/8LrjTT\/Z\/AsGQSmiSGBCq7MhaJiEKtg+MMWmqQPjVvLqDQQ\/pWq0Jre\/8Vgi69z07\/etm9SlXLd\/\/Wxc1TWN6f16GZXWkVKiqRBo1MAp6M72A6aJj20jp3asPMuPFcvqlgcJ980V8SwPlCaVOaoVW+quOf\/2WbnNldXHe5lfqtR2vj4vDK400pVVVfSNQ6SHCI6IUtBa8DbGJcAHRSR2Q9o0ssJ+G2qN33q6lzm0MULLW0ojV1XNGlDrbNOG270Nuu3N6uKbfvoY0ijqRRvjlIRRk0BtORppSqqs2\/4GaOhxnMkETiDw8gvKG4mK60aPVS7nAWUuZvQFiKjQKBj1V4ym66+wwgz8l6lXoTeIaKvpKP\/ZkxSthwBUbmfFU75v\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABUsOx+NPebBB4gjraww2CDQ\/HY1gxsE\/CCOxp7zY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+NxuJpfvRAYCMFAwNBFA2qAwG5DiiGF4MPjj+DplmfrG8QfDJJfUWxelMUhmqoVY+o9Qyxc93N46r\/5qz243VXSfl+VRs2v+2huRtppMqquLqIGAl6nIvow+gIOIatKcxdgdI0WBcupDyJ\/r3hFtAmmKiNKghqYvhposf7Ev2qm0ySETbZj9K35o3Z6EPz9KBK3KP2aUV3qklciaUqqrEgwIEACawzI4BAOYFSgqrUYVmEnwy2oha5NS1hSIMll3qmoBq0+pwYFDgvPtHMQ3PKkmIf2VXpdFK3lyGxb1769ScUxi9WjvZynarknHUhqJxpp\/\/DcbSOOzhEEvQAUBKhcs4EszTDqPCfV7uzSRms0qwjHiRYVblurlViyrzj1qStAut79jM9bbfGX\/etw76mx3069XwJRXtFv\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABHoPR2M4YbBIwcjrbw82CeA7HY09hsFWiCOxvDzY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/4o5G0V\/zYxYgicYiCFgSCI1FQrWkELqAI4zIPFnev4TuZ1+4C58a5g18g8DdjG+XNjNc7mcCitiCriPZeY9\/6Kk9UIRQttMv13hMIFHBxg4JELbUKiULU2VYnmVKJyrfS1HAEU2\/nAwaCjHCq1qPnkz601MR\/36bX\/\/u2dHxf0aX7vIMXtbfUjC2yiucoISQhTTmC5ZgAAFkJWE3JGnEKmC1EmvCwdeI1\/zNOBqqRJLGlUDRVoSAFX9\/2ykDxbVZjR9wlWbrTes8oUu\/\/1t27f0hmJtlpe+9dR\/zLiAwSyQpOwegHQlP6nIRz\/PSFhtLZhxFCDS7OzisXf\/9CJPt1I67vW1WxVWyIO2j2zO5NOJNZf\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABVwPx1svebBDYcjraeg2CIA7HW09ZsEnB2Ntp7DY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ZijSaX\/yiC0JoKkBxKf5lji4pMyxlsdxsOvAvhTuTbjNYGx06Q5wCJNSpKdaWCqVE\/rLS5RrBASLVos\/b299NiW9tnamu7yO7N3QyxxuqqqqiIcAPnNix2A21ULUKZHCTeAIIt1pJFsAKr7TtQme\/spWSWm9jVPsXFIQSTG1r84cxph8f7Xv72UESa9S72i+5CLznfTFq5YJGUXMqitaQQiB2aaqy4VElhO10OJThIC\/QyV1+tUlVFJ\/9JMX8ePiGdeNsrIhEUEIUUl6R6ca1UfbxewXQltSqP\/9aHa3rnm2XXWHkS2jKUBuJtpJf\/pIARFOQBgUOGHQ84zcDxHcto6u0gqjfb\/BYSaXgw1YYyJHWpBHfrNJRfa\/Rq6b5jIW7qaGrtvkM2NvfVv0uz5jo\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABKAOR1ssWbBJodjrZe82Caw\/IYy9JsFGiCOxp7zY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/7+mySWs6JSJkZSnCnYYtDn5LC4EhZXMSVpdRJ17ylyerc4D5\/jR1rjAgc+5nztLKFre7tVr\/tr7qCcOpn3u1\/b3f60dVSabpI23VVVUAsLm4dLoNzHMwkagoSjT7sIQqr3g0iRD1b4TBhg5TUx08AWz8wJkDd6ZBqaJpOKOrd7Gahy+Rr1D700Z5aHaVoc3QNuNVNSuNIv\/4+56QBtk6SBd4hwBJJYXhiHezBSMz6bF6Ty+3oOAQ+DN6bKGuoRzl8A102C2wxPJRoq+xPjFBrJaPU5DO6mL\/NTIspRp1tpJ\/\/lBUPCAi7b5GDkFsHzaVy6oPOmsQoLPUpeaCeBezjgHIijW7EeHngupfa3chX+5Xtpy7HWNqN32oGmHvS2d9dHv1f\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABQIOx1sMSbBGgejYaew2CaQ7IY09ZsEkCCOtp6TY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/FK3EkpSVRsYGEt2B2JONuAV7AEAlUgP12zgwzh9pGZoXRUseEQ4oBiYdIMqRR\/JDDo8EBKLFsY+1bvTVpFtP2XAcUTDtHa9UsibSSlVVIgqYRePgFcNxL4i6Ntxeo\/DUwsw8oG5HzOmiE6tEowAgUs11VBxJFpNSX5Dc0ACqEehECNNt6LeRd12Td1PS444yiv\/emEA2q43uiIF8PZisDiT3+mWI0fP4iC9q4rCcGLKlDnuPOpNtHWOZz7GDpRdyL27NSfNIsqRS2puaz71916b76D1TbUiOVppJf6zBEEtEY+rWUTzLTMQFnQ\/C3gMbEuc2qS7OeWsDLJRxUYeuf3uCJt6UtbXMsdorq7Wr2Rd+s\/Wh5TFf\/+rsi6d3o\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABS8PR1tPYbBHwcjsaes2CKg7HYw9psEnByOtjBzY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/23W2kVv+b+1ToEoCl5UMmwEtihF03IcUbVtZaKnb+AaSuMJuQb+aa7cLQtqNdKK0qk\/1a2B3ptQse+fS77WNzUm1v0NSNtNL\/ofhmZEdmdM5LG3CjTouVaru3IEazwwFASU2KAuD0mNRee0OQuqt2q0sxOt33Wqt\/XQW0LuoG9HYpJxFFE31ekLQzvHUdZWhqTMOGb2AAWszyWAEV+Mwky9YUCXoIrJqgM3Yg61sigwH0ROQc4KFmh5i3ZgR29fX7lORuuZWyvrr\/QiJxNJpSqqroiALGDxGo5IBQB2UQYntDiXQ2UgkeIggIgcAp2cSsrQzYXuNkdB16d5tXHG6V1NPss\/Sy\/b6ke2x3j\/TdGlwgj\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABZIOx1svSbBDYdjraeY2B7wvHWxhBMEmByNtlKTY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/akTSRTKqo2R0HbOnGus2SfDC9CDSFMJa2v5TTjdPjAtaV\/fLobgIw9n8NezTFC3QjEvLXJTfS677PG6uhtxNFE\/Q9CiyNxlU3qg4IIEG0pgPr6s8HNfUgsuI+jGRQUakTilCWBU+IH1PcYC63Db\/sqBphh6nEYk6NXd+OK\/T7X26vSlyVxlJf++8EojgmOwRhJiTqYGVKOIyKDdWs\/GMRpt2gIKFrJ61YC0KxxJD22sk7Gv3\/octGzvFiXVRGWUI07m9cUf1ojdJyRNpFSqqtG3IZBB\/riMjQ+Gh6sjKNsvN2rxxUBn2wVIfWJw2sWx9e9fQirZFa33HWU9HSrvo1MmvULtacZIWl2bkJLpTo6P\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABaILR2MMWSA8gpjsYSg4CNA7G2w9BsEWh2Otp6DY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/clbZRTKqrHZYh+YoyX70mhO0tkP0ydbGxGzvwgbfmT64ycfFTQNoPnUTwo1sc1+zvuxZl1wA06H0YDtSlK7WUITXDuhP96BvsYYlnXG0kj\/2L2GMFi7aLzhARwLcpZxXoD82NWkMrPvBVlzF2qNCuwd6FtCM8jXe9+2it7xRz188ubjqNX+jRK6mUkpVRFsaWimJ7IsXpTISGgsOIxd\/dIt9+S2OS34DT6BoDnDj0vpDi99QfbWcljj3mGaNX\/+\/mWf\/\/TqlFPqZiuv\/qZfsgtZ8QO8EYZDxeJKFzapGeATD3+otBpqO5KJvCYfWq6HXgyPg0LmQMtEpftDdt9mgTOn7K9yjYgF6bKHs+xfpM\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABZAOR2MsKbBLQcjsZek2B4wrHW1hJIENh6Oxl6TY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+1I2kkv\/gl3o4MhmKtcC0QMIDsKjpdz3O7e2L9ROFDJTGKYayjhnF3xtpvObXUOW2owr6b7bX9d53i7nmbdH2P8MoupU2420iv\/lDTUJBwVbT4JUVKDDQLsDxkJnoTmpQOOXigkcOWKb7lJp529+L7qyVIrfjTLUqED71kovdbYjq6tX0Wpdq6qWVXGUV\/dWVSwUDjfmXUG6BaGQAYFiFGJ3o8p6mvCuDDbEoTseq6NqteOclV8rfru+g\/\/\/9KaobFfsf1DOmhtxRpFf\/E4IckyuJucHH2AuPE3VWTRtaloLC6b9iiDkQALYsjfY1AhdRXq9ThmT2Luq0TiVq2Rfs7HatoppUz+h20HP\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABbMOxsNPSbBEQdjraYY2CJQ5HW0k5sD3B2OtlSDY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/2nU0kV\/8ccO2YsNWekxOkOyqUOCOQY1vThJk\/ephulPv0vNuF3MXe6nT1XNdiVv301kfxtjtTk9u+67S895oevxZRxNJFSqqMzshLG2kxTADACYPiAAM4ERmxkABqWMGGAOREwKFvXu7BCh7NKdqrD7Mc\/JfTQZnPV\/\/p2Kz1rDVvLNyJNIqVVVn4GZGLakQCuTAxVXURuwqQmi+9MDu9IgATDj4eEiCxJJ\/Qlcf9DPXJ1bUVP67GMq\/3pbQkWc76jy0fFyORppJf\/BCDS2jumFzs4C5BxEy5FTAVtl\/kwcqZ9nkQmJ72zpaPe2eqWRdOmFiNR9xn1H\/zTVH50fu9KLeiSo0IbZmIva7Gr1\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABcIOx1svMbBBgdjraMk2CBw5HY0MpsEIh2OxlhTY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+0omykv+vLDsiK54VCYhFJ5ONVdxzDrv+lEBphoYEQUPEFvotYYDHF90g2dRY8mvc4uihBezHqPpcxDO5K+rRpUrI0iimVVWtcj4LLUIXICoAnyFGVFCGx8hAhSNck+RsjlyJQ8B3pQgvKk6oNXxFS\/UinVo13reXTmXvbqbxiE+2tQfOPxikb6VHEkUTrFa\/DZ3gizYoFQyl4KBAsHgBP32EO1U+i0CzRHdKudfTHp22q2qCwonIXagRafC7rHPp\/\/\/\/\/7O5R1xtlFf\/7yL2PaFtPGQoYSSEAVxgLpVPDYvZewacE6WNz99Q1bX0PvShKtV\/TRyF\/\/XpR063t9LjL51\/vt3q\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABbMOR1tMMbBAgcjrYeg2CQw\/HY2ZBsD2hyNtowzY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+VRRIpd+3RdQMCHPQ6pGVo4H1AXyfOF5jM93LSPaADg0LqWteIWLM\/0HpVMm9dGixCUNFnc8\/7ifdctW2u62vT96OXrddSRSX\/25St0+MIzShkoZOIDAzIYflXACrvUENclbITqUlK2tcPttr9fTqUOf7v2K9CWjy3Uskr6We7r+JHZEkkVKqKx5uKHoMuYiykRqt3ovpcARkPZJ8xcVYS\/dvePFQE5jlE0plSKlPGi9ta9yxtVH\/qdsa6lNFaVE8Z16NaHFe65DKUhx1NFIsqqky8TOBj9h7BSENFr8oo6bK3lV7gZw5MOizDz5wySXS5CH0M+tluvda5DFflkrYzW3\/W6l6lkq\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABZQOR1tJObBDwcjragM2B7g5HWyMZsEiiSOxkyDY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/3W20kV98viBaMAvfSVtQXGATRpPnRqjSREYRH2D1k7wIww2woVQiNctRTXq\/\/U29jL\/9zH7gym51\/dcz7PVU46mkkv7us2koV1TwcacBGGzgJFrjc8lbOdmO8DrLKErXmL3ZNdFT7qlpvMNfaBWeUqiGn\/\/zXFMb62XOVV6HHC2Ul\/76yNbAGpYiQWov\/OCL2wXQ++xASIhmCHcLj564iILTLXpsNf3H2MZp2PLL7qOPbZtu2uI0qVzc8v+6ryBx1tJJSqqMy\/D4kLYnAIhpDOZVEIaw\/O+Y1QxZGPRYEB4CFDaxz3oWmftbOsjNaGGZ+6qyUfR6bMC0jytX\/\/9n4pT\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABfILx2MaETA+ocjrYMc2B9Q7HWwkxsEFhyOthIzY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/upppJL\/q7xobGu\/0y5rz1hduIkf7jbOTLOwQEgxhQ0Iepbw3XuADO7fuyKKqd9Jty+p\/RbQzt6UKOppIp97txkQoSVTJhYoa\/MReNqNw2JwhnUFSJ\/gNQVQQ6W7tBjJWI1rtZ\/6qLukrcRCN7NFwv9t+nq61HEkkV99W4rcWSh6Dxwa1iy6T4qdZBnBm\/14NAVjCwXN0rxRD3dS7jH\/9Vdb9e2ttuhRPdMXObpZkl\/ZzENBxxJIpf\/HHeTAAnJM+AhI0nmyKBtRi0gdAPpOHs+4BtsYZYh5JGldT\/1xQLvNV+lSaSrN0WoqFdFqKPWt\/p2U9P\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABlEMx2MZGTA4QcjrYYY2B4QtHWxkZID4hyOtgxjY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/fTV+748icD7UYjDpgZuHGXTNkD7ECoLB0EWOi4fSs\/DPexjLmLVRFHmbdX\/171mb5L7NhZyl\/1+JRdDepxtJFEyqisoi7rAlESzFpHxpy0CUm+tSIs5RWaaBxW9F7nCXfnnyDGGsXcspLf\/0Pd9u9+lIrn7UL3YtHfdknG00kT98VPj6CDqyEHBb\/hZdp0maARlQ1K7Gqy+eLKF72C\/xj\/\/tbStu96zX0rL9Ny9dSD4pTpvCNyhxxIlFf9QsZngnUYqCBGmJuG7vqmLRcwkWWYU+yLMtSAUqFNYqZ7tL1NtoI0rSy6y+kj5Z1tj6v0f\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABjMJR1nyKSA9IajoMSMmB9grHYwwxIDqA6Os9jBQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+qmmkif\/zuMdOhCzoA5LiwnjEPbbtPAWsQUMWOpA2t8rA\/q2MZvF0Mxls81VVWjcqdQ9lLIh8\/\/WO3nabNbTDkaSSK\/42HFEAiiXl3M9pFsJKB3VNjZudBqNZS+QuGejOvVw8otTJg617sjbptvxiOW+y7JSa9DqjaKS\/+Muyvo99qYDKWXgxgCJNSvPKBDB01BIHhauQw9ZnMmy7r32Oak7+RtRXePr1dT6\/93T3XcL9ChxxpIlf+\/LcMAGwrrlxIe2Qp5oBCpY1zwookDT5vHDVQApOKo\/W2iXi13RehH+\/N3ELNDeyLYsuzX0sqqp\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABlUOR1nlEbA+wSjrZSkkBvA5HWeMZsDvhyOtgwzY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ccSSSX\/wFDmQ5iDpgtyk0OdlsC1qhkUMzkmYg4GJYpGyi0klvpcEHsAl99tVjBLMPHWtV7aNnHWzfYuv2X22976i6mINONpIIr\/4hC4YNoXPpCuMqNdZw03KYVZFxwnF61VoboolUKY6KUW2K63tbrye1qX0VfX3NWzz6qfevbrUcTSRP\/ybIUD429niEjZ8YAkHjKA28ZtMXMQqaTc9cdazm0J1K6PUce5KUqpYPtXHbZBbPZ8j3fvSKVh1tNJFf\/aamh6bbW5iwbvtEV0gkVENKGklhQCBlVFT0XMWrTdc\/6a9cXcMVOt2M3I0cw7T37Daqvs+w5mv\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABggJR1nvMSBFIgjrYQM2B2QrHWwwpIDtguOtLCRI\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/9RMEkk8BuGH9DbzxQligKAUe8EAbCABEIq+XPiBZwfYPcn\/TsfZt\/\/\/\/1\/u+F2dl2X1a3E0kUl+826MUA3ezzPOswfiLnU2NUf4fBvqPEVGYdag5VLikYjb7kH9\/\/\/tu19HbftY70tmf49RtNIlSqqlSgkoahzs3PnbWExSsg3c7k3lYWVHhcED06U6UXgdr+AbqHjuml7EL2IVr9CNGhpRzlOSlJxxFFJf\/UjziC2rc+BlCspJ591ZukeIGFi7gulQ4PPzzvXU1so5krrtzSs7FVEq7G+Bm2aVR996bdKIcqeh9D9qnK\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABsAKx1sMESAywJjbYeASBuA7HWwMxsDshyOxhIjY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/9NQpEk9ReLMCbg+dJKqTy8HlACMHgUPuaEDR+VMtFAu5mBXqd70vYYFL1dqrjkkd23dav39T3df1+j+nU4mkkkf3uOGsCGIouwG9oTECIJibOpMRTHOtqhphAvW3chVzXleq9EkjR\/+1H2XoHlEetKVa7RK+Q30O9TbiSQJZVVI\/DMONimadHkeO7C9yD8SRf\/v1Zp9czBhAPY9ECrcsxr+WsSbBSyxurrfyS5vTahfpFGSHEBxNJIlMqisJkNEC\/V2QN6sDT00uc1m0sWQQ8IqaoQjjdjUcU9Gj0q7if\/3q3u0HHPe3QkOJ9etDNeopur\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABkIMR1sNGTA8IOjbPwYUB5A7HWwEZsDwCmOxhAjg\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/9xxJFFf+0eJP+AnxbIRKSCFXC3QIzYZQvqg0mYQSaypDmqo3s5921bEKrcwX6YytWm2QklJreope\/r9++ej42+2v\/amv\/QNSAwGxKMmvQiiwkAY5aQgEBUSIQXe18mvNnFuY11TO1fWu6yezN6ewc5dH1V1aq6bv37V16FE0kSToUpnnkAzJdgGdGg1jQuITaPnJAS4FlMVEZgy\/XYLLRnN\/qe7r\/\/7NXYhlaWqbATBFdWri2z6CRNJJJf4XYgpcRV+IejxQwQsCEaTYELfikJGxRJzKtagAuualtY90+H6qPpKGfb1J2rs96\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABjYOR2HmEbBBQdjrYKI2B0gfHQSkYoDqBWNth5iQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/7tqq\/9D9BAvLgK2YWLHjEKFhKfAZ8BFAgyxLN15YZsYrWggu21\/ue3ptdW5H0PCyKtVO19yn6W\/Vtr+qlWcKhpK0njq8Z6GMJ0eRjW1mZ2pBoCk20If61bbawuLKyypIXS1iv6OZX1FeyxKor+yv3b9b6lJuJIpH+4cjIKchDMMEl\/gVuQl4R3GBUKh8u2LlCq\/eSYiOBNlrUxG+3IGhZ69PrEtX\/\/Xp\/pdTevZixRJpJIP\/3q6Am8vUER4AmOBL07JLT1oNt+m7MDXkz1qlqB9xK9qvpUtLqb90jqWpdlY7GRR6U2e+pO\/22V0f\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABnYPR1njGbA6QQjoMaMkByQ5GweYRsDrBWOs94yQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+4okiifvqq0AF7FsTgeULFbXKXfvQ7XLQmskKKQ4Zd0+xD2\/\/qUz+ztUoXIVE\/WL1ydzK6N23OhxFUtbKqvYLuKh4Z3wCjHpX573fsYHDBaRNijAzcYYgW\/rc1bnpFcZO1AH3aqIxvTv\/rd+tKO13S29tKibaSJ\/\/sg3QMzfUbFlTHVcNAhiACCZlyoi0k6BRImQ2phdQ6+y7tXrQ7PuILZtC3p10M111Hftov9++6hK7VVfipHkDUrEMRd+CLlU4g4zJDlu4ggwXiN67jJFYbPMGsnjLxNRd9aGf\/9PjdG+SySbJg3\/\/TT\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABmcLR1nmMSA6gWjrPeYkBwAxGweYZMD2BCOs94yQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/3Sqr8GEtlY00lsRMk4KAIE6DoRWFCNqbDrTtd4o+Bwi8XAZK4v+jVLr6Neyz21brO+u5V+m\/TV\/9Evf5ULweTZBQlLCYFE7iCeodqWqCUuVPGkIWlDP9xlFXI9aKHrlJ24Iq\/qcv6Hs7nPoYjV6fUo0mSkfvhTBnCPqmBjkUAizPySh1BEohSC10QJ1rkZzT01f+hvtM00V19Kt9jftv\/uX\/Dz7ZZeqhkKIyLTBjiQI\/Er+PX56aIERxtrmBQIocA0ngGbWtn+UfAT6P4QsEIom9Ja9Nn+6hOdj9Ltak36dgz\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABs8ORsHjEbA3QMjYYSMSBwg7HQeURsDOBaOs9IiQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/u6pnv1mRcEpwAOL6gHHcMAo1BI2SIc8SShcWmf+mdXety5BVmlG3Tqa69fJIoWurZ+p92uPiqL+qpv9xIMDpBqI1C29GFKDANCo8PmjyzqL\/QxilpQ0WM+mfv782KP0XC\/bLq0CzyUUheNvq41lrMglf7l3bKqrKqgbghtFBAXcHY1DLxaRvwONJvNMHzJRASEwqW6XaU1MqXaq1NKdmpC1naHrRS65ikt\/nxZhT8fcj\/qqf\/OA+XnZPVCwdCu1r1bEzJjowHHMIHVl6RPfO5y1jkT9vrSGEPvRRkp6LoP9O9djW+lF7N1I46yv\/X\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABmIMxsHvGTA3ANjoJSIUB5QbHQM8YoD0guOkYxRI\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/kyv\/oDICk64oAwKdzbRBRmxselGXvtZWrVR8L9ZSlmpF7NFql7KkM33ilL17ETNjfv3MK6fuKa\/4TAdL4JG+JjAC8sCQKBhZkMGwUefu1JQ7Sissi0dY3ASE\/5WteLM3NpdFVK2d\/0uJopFL\/2eIaIsEfACIspmVxxMGUdLPJBk9WcLxhRgyaeF7uTbde1dsO2qNoWg\/zEt5v+li6K3en02qsW+n3qapVVUehVYAXwdMZn4KORcHw0gGzTDADPPCS+ZyIttoat29rnb36npxva7pSpG\/8Y\/uqvZ9+a2SK\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABrsLx0GLGTA1oQjoJUIkBlwTHQYkQkD0hKOs8wyQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/3G0kki\/6JT6cGC5sIXr2YLwxA5yoJEwyKkxbwy2eHrii332vcLpbbXr95+8o9WOiNKFZt\/W\/3Ns66+p1VWx2v7KqZVVVsOeMM7cQKt\/pTTbcrmRPXFhusqcFT8uKjU7JSnteO3bkJeYrv92pmXqi1MahCLHfoc1yBXZ38LocTSKJX\/Ll4rwkzsDoExnHPmjQVa40ARUP3rShUyk8pstWhZU8AYxNLHYzu17dCB+arLnVNmuYaZCWvGC2pVd4jqxDx0UWAigFhgeCgOGAsDgwkDhqOHknhDVonhOfioOh0XCVK3uxVR9Z5RZ73VLc7Z\/\/7Fff1\/r\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABiIHR0mIGKA\/QQjrPYIkB7gxHSekZMDtguOs9AhI\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+qZVPQG4MgwiaGBf6gaHQAcA7gk7ni4uZjTUBWIvCJ9H8vKiqWSH\/\/6H\/\/\/o7aylfp+pWToDBNYeR07bhEbmpkmXbVABCL15VKRcMzhKKkCffvD0LCV9F9H9v9voXT9+v0oT3ezPbzK6pZV\/BUaeDQQKBi4kNghIeUAAOGkBJ41zG3ABC2C7xaEqK8mo2gaGhZ93u6NHRP33\/Pf1fs6N2m6qWpVVFPvASxgQWMLHQIfAZ0wwBER8YChogPkNwYehIp8ZL6F3jr1UKLGUyLNaNy11Ctv\/\/MBxOr2S6f\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABuoFxsHjEJAxANjYJSMUBuArGwekZIDfA6NgkYxQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/qlVT9HCFtEYCAqxhIYFBPPGjdtARkRPA06sqKuSOijJqgSD5gxl7BR927a19jBMhogWdHgEC2f6NCuVo1\/dJN\/5ITHAVbiCoWephOOdGBSYhPg497WMUNfF05R4o9DrKuLqVu9u65Sr+jUM\/ZUjdkqWOUvx3p\/yqaVVVbGB0KmjoBEXOrijzXZvZozNkDwQUsk+9f2WMjbMIGh417lX9jM0+\/kupjD9yu7K6dwp2+5kYLD+amf\/RDYUDY9GUmsDNAoDYqgFgVQnOrlEQslkZMGHVpdi+vdldCaaUpse36uKutNbNwkR3\/v3M5b\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABlYHR0mDGKA84JjYJMESBxwvHQSgRMDwiKOkkQzY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/mpZVVRaO56DrhUBYaIuvA4pQWETpNCEHxQm219rmtEdSE9LZKN8LErVMVvt3IUUpy3v9CitfXVM\/\/ADCqcsYaT+XpThK+5YPoZaEUkJu92LG3TxbaiNtU7bQ2hDwOqpHQr1EEOJ7aumK1XdXZo8b90tP\/wFSMAaGFgiKSxLxE4LHz5JqUz21Quk\/RsSMTP+pSFoMtouM6sltotVyzHq17UK9f9286lT6qmv\/QwJm6oTFpowSBMSKeVKBUGgNDLELTfteXZxGtd+0Xt1Fk2MXTStht5JSW73GDZKR0put+GFIsRaNcqhNX\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABqgGR0EmEJA2oTjpMWMkByg1HQQkZMDgAmOgxIhI\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/3dNTKqqcu4dUoFzT63rOfK2rOwvak4FT4sVEhhFb1l3MVC8uldjGpcljqVSf7\/3o2VT9VBLoK1T0SyqqwAZ3GBmdAhLBQIFGy4bPvvIqB4oNAwZNxRt28c5w9jZ1F+RjO+zgVn6WTGXiN69N\/\/K10Eu5SaiSRSlVVe2PSuj5GChabhERSy+5uZJIUOrqEHoatq1cKKc3FLx1Kq76lK+8jt6BLUB219Y2F9bP\/VtX9KmaVbq0ImTN6BUcYKFoYFTZIVeKB8WOoCtmpZGsTLfk3kbhY1+1CLBStoHp3\/\/qma+ec0KN\/7Eqp\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABm8Gx0GDGKA2wZjpJYMmB3AfHSGMQoDzCWOw8YzY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/tpVXRIbK\/GquoMhJeAAaIwO0YZWcsCgheT+dvWt1Slo\/ZtvZ7NFtCrww9TUGX\/9eKdop9fXFO6lq\/+oULMCkTsYQxw3ERpwiCITBw6oMKWPPpUlna55QXcmyLD3O1noCN59Vrfo6+zsVtd6br2nnpofsGXVVSyqqGOqG654Rr3KJxg1cWMgXBFz27wkPFhc1Q7WferZPFnOXT3VaFcH8v3oVQh6vUtXhvrqpZVVURiiM21SQTsG0hnMUQ7YfSKLDQgGOSTqpTo\/b0Rrq6BvP1zOVV9FJ1v6W9eILeLdWxt6\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABqQHRsGGGKA2QLjYPQYSB5QXHQYYQkDWhWOkswyQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+mmVMwiXIxqMoNHMSCgMQmVFTh9T4WPOKuHVW9e5AnirHrfCrR2pt+3FPT7bV\/+y7q\/6Oi7qVf\/VmVEjImgsYyDwyke+t5pDWG7ekWDCL6QCQutZa\/mLLUuoLXOA+zZTRej+paNxG7TprVd0fdUr+w2YFYrnZCJDFgmAgACppbkFmIpEZ9nJscYe\/MKbTDqIdII02\/\/VsJcgjZM0UaGSD6mSvvgHoaHbIznrZMBeSeokUJUOR1S9sSuMi5I5scIUUKIN\/+uV7eT0I7\/I667nXd4+jTajqT\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABvAKR0kmGSAzwOjYJQMUBvwdHQSYQoDNAyOglIxI\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/dTUv\/xTJxBHQZUHcQCWKtcYNoXUoJaV4+WKw8aWznym+8JVLk4stH7hTY+rZTapVdSrhyKV9qvfqr+1mr\/0ABxRApMLZULOGB8QgE8JjAnSbApjVDPbGtaLqsYx9brN5erreM8KbqlnK0jGja21ymy7u\/o2L+qpb\/RgfkANTCwQOzgyUPEnsJDzTg47qUzrc19TIjlGrO274tjs2jl0Wiy20e\/\/+70dKWxamqVYqODmNa5Eo0aocKLURJa8oBzRwXZ7bauKcVPLc35hvNsbcXeBXAXsR9ek3bambuWaIM6bf6v\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABpcOR0GDEbA54XjoJGMmB2gRHQSZIEDUAuOgkYhI\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+pmmVVFLCw+BiUq0x2Zk7dBEjOxE4IXLsHbT6j4psahGpFyJLFdZk9fc0qx\/\/+swl38y53VbTZXfo\/mVnfxGhQBxpgPOBdY0cFEHiFCVilA5P6D+LBDc5deVtJkra623Xf2jM0eZ1aml+ebrdiJikij6Wqvqpb\/3QSAYMM6csdMgYKniBwqSLHDxSrAWI+hDqVt0MlJSPtk3JumNqItp04t4E+9NgtUEfVZi9lb6qZv\/ZJRsNXAWYtzepNdBG6Ax5Vm5bEuyS2PQq7E9Jr2WYvwt0ii2pu7+mjZ9r6NSKNP3Gv\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABoAHxsEmGKA5wgjpJCI2BzgNHQSZIADlg+OgYwxQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/6qmv\/udpAq5f0ahQu5k8Ut69LjnARkUekqZd6EqP+\/OWpjv5dn73RdGcscZRfYlB7uC+xzp+pPvnqrqqZ\/6gMUAC0xnGEGxsYqOF0CQ+ZdLUVG5Li56zalaGCjl6XP7O6xXSe1p2ulnflvDt0qKyAH4ioK0QEQ72jW0XCSQO5rixhlltC9yWTJH+z+rbuu\/\/K\/\/8XT\/pWn\/Raf\/FhQKmJTCjpVDiI8DPDTTrzNL42Nva522bTt1vpkYsizxtHNWMoS9UvW5G+V9x6\/11gOj\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABywKx0EjGSA6QfjoMGM2BjQjHQMMZICug6NgkwxQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/7qUf\/QC7gtDCAeTScKR1rnY5OPw3S8Fmn2tYumc9fNt8jQ7J2GP33wCk7fSreQ3OfTpkD73+K1fMyz\/7IWJHoN+UTeiypbslHYJUkUiF6eE0qQ7SyqjXSSjWt6FLzGP009+6VQ2+MjW\/5PWgk25p+r+Zmv\/C5RocFaOE1BakURA5Zp8NFWij3MMynH22vTbdSMa7Uoss9R+UYSpnPRWi5vadpldHzdqUuc+JT6lWv\/XBKnUOOYkQCaE7o0WeDIatzDlLsWrVgBCFiy86n0Q0zDejHOP3Cun+hOURcb96Ud\/9X\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABooEx0DGAJA34OjoJMMUBxQ3HQSMRsDsBOOgkQiQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/czTX\/ibcBmW\/EmZbXoTLrmmrYsigs2TbPx5UlUG3PSpnG5VAqtFA5yaqGdmgZbJyWxyEvsxXbrQ\/U5HDsx3NSvfPSin2\/cxI+6GS1BO4WbTASD4rnbGV\/+JBd5p\/03OBbU+gh7w4oUXzyU9C\/RUqqv0RJlR2C1O5ooI2iOSBkADUoGIU3G9Kh6iquaUUM9HeqXDZk+uaF6d9af90s\/6\/7U+5D66prvEQrZBDKPSMBBO9IQDBKLRcJhM9MO6fK1tdbcglZ\/z1FNViPmHxfT61d6sWiZ+3a0Nvr\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABtMFx0GDEJA9gfjoGGM2BgAlHQeMZIDUA+NgkYxQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/qqalVVWgNEYng2yoNUMU4gIRdMZz4gCgdNhuy2gK01rHuFFN4sWKPrKsU1vyKfTyd7EWf\/Y0CVC0qxuh6WVU\/9NN\/5iDOA\/HDkByDpIqFhOA7mCQJGi0WFB1CZZOinUL1uE62enotY+TVVjVjIqyX1WdSZbJLron9H001f+SKCVoZBQd+HDic4NAAINDgMAuomNFErIsJtOYCeaknrdL3LvTahv2pxVtdX1V919SJsU\/cjXrvVLi+ipZVVWOikBFSMOo+P9aHERVEupECA6q9xWhIE0SNinU51bUa7RVWFON2exW1tLFX1adtrDVnpEWn\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABi4HR0EmMKA\/oYjpJGMmB0ATHQWYIkD1A2OgkYhQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+qqp\/8GNq8JqpMOKgjd2SB9xFBtRRxxA6tzs2AABW9r9lLkx+hOrOsO19C8nX1JdTTj23a7bvbbp+6lX\/1BKQAHSiMrxXYdQbde6fCFhZTkKaUsbUPTjTPoVbF1eOXRj+iqrZ9+N69Jlercz32VJrqqZlFEYTYc0fEYtGgQHwCeMOgyFQ6dFEjiBV+1T9Ap\/qYPPJpIbjbuRr\/\/pS20vHwf0D+mmf\/YyqopnB+Bs0dpJsatlo4dtTGsTWujws9hqpo11Depc8+sdeu9LHPDyOkyTVXQlUZtxQw5jlWK7dlmr\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABtYIR0kmGSA4wZjoGGMmBsAbHQSkYoDMg6OkYwxQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/6qmZVVVerGRagYRWC0FwUB6cDIIB98Ti4GQWW5a3s+i1K73J9Fa+nfga7s\/nXiFrPtVZpYpjAqR1U\/1Ur\/5CAVoUkAql4p3EUChoTTaHhIs7egehIga5vXtW98yxOhW9zlRaRVs3CvL6LKEN9Bz1IU+jo3hPtqav\/IQWV0JyayGNrQq1BASC4DWJ3gSl\/N2pk2Vk+zVcR6b76W9Me3d8V795bqUzb6VUvZZci6qpf\/cgKFGQKHVmuahoBw1XNzSGjRXc6X9ydj1dZh+v+9A700i8\/NpgJbU+5mj9FJ8cl91C1\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABooMR0HmGTA6ILjpMGMSB1wdHQSYYoDbA+OglAxQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ySsr+Bwlm+BcPm8rNFB4x51yFCE9CLxt5WbHnWoEzng5KBRdlaGuUuoc7W6zV+m3lP5z9fo\/0f00r\/6AB2CciaMQwqpGgk0NQSLUPIPdIWxcwvcZ6eU8wPfvX9icU+tqFU53Pdc3c\/RqUaDs3SiqpZH\/RjEgg6BAwN2szyHolUc+tDK2WXmsm3xgpoZau9tJ2hyNDqvGoofUS\/Svce\/UtFyL6CplVXswWPFpmhKLhmKSlZGcQNOcyTNuI1GhJNak3knHgI\/pqpDa9CHjDiiJtttWOLWKFdr\/+\/\/S+v\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABs8Ix0EDGSA2wajYGMMmBuQlHQSEZIDUBSOgMYyQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/Wlr\/0QQGipwA72BObeTHjhEIQYaBzzs4s0yzdQ6xUqmUXsGb8i7uu15HTuLCsU6GGLXy6qz7+Z1sv1\/01LKoq0DRAEjyISwZMlavArvRVyTBkkCFDCLxZnpc4Uclq2B5jf\/WhFNmw3cbu6F6FMqm7Nn784inMopoVX1EQoSZuwpxcMBcyER5eHA84IBZwQcMVOmITF0pbFWeKLlDT3f\/09bFDCBsXrR\/+t81I3+leuJJJEoqyqqLFdf5QwlHIwQtCRArMhUnetbnMHtuFKxUXWHAQY16aKFlm3Pc2haBaxDrvVurRWPYpc7\/QpS\/T5D\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABmgHRsGDGKA7YMjoJMISB3wtHSSMZIDjAqNgYYxI\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/6lVU9gVrjiIKNHEsOmAOAQ4kmrFz7QbMnnLZCwqkmwADOY+mKljCKa03CGymz9X7M7\/yNX711VStIUaJsXSwDk4YxFBFwfEI55+IDTQKNePPrrfjmhXxW332flULvvFQ5rbe4Y4yYQwhWsapLRVfZr\/2DKmqq\/8atyMZvaNiOskV6humHZhZEiU1kpq7pZW+pyRYxu02nemIk+qP0d\/fffbTbr\/agdZjj6pqaFVU6C8T1trCXId27Bb6S1BNBGHqMIFAywH2\/WKiuhd2\/avI+jq1o9Vn2Wy3X2ZtHOvKKrR\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABqYHR2HjGKAz4JjYJGISB9wjHySEZIDVByOgYYzY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/1VUv\/iq1kSsHsimOAQaWMCpR0y9wXi1R5geZH7\/3CvfXsLrv99VeijrOoZY6nTXrVxVMWfXGa\/qmlr\/RwcFjngwZQZLkJjGDDZ88p6VEf2UM+hRRKLOroWxrNpbQhNjN1y\/elm2r+n70V8dPVK3\/uH65BQlMIhSNBOw4fWCzjjyoEWy2XQllrMjNvN86gstXoYhCZ3Syi7opTVsdR+Y5LSa6mmEjpRUeYIgA5gZiUGKH0uJtFWVEDI9TiIlDgUEjVNXobWjV4sRFUsQmwIR9tbN75lv9+hKPF+\/2V\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABsENR0mDGTA3INjoMGMUBoQpHQYMZIDlBKOgYYiQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/910tKioqBl6yAeSVyx6aXd3v7O+bspAhoOOam8P3rrZV\/qlQGMIb6710km\/duct6\/\/\/3CznxXvsSO+apmlVVbBQolqVubBmZ8ILEqRzeHN+dhSKYWhQCOIPepCh633fFN6RV6d9nkfbtuJ3M7FoqrRfX6Vex06L1dyTT\/TQMZFESBXs+MFnikiDAyFGa2DmvrCRVteQGoi4kRNV0NIT1AAVrXSn\/+lid5OMtO0DqpZv\/FjqzngnNVEJueGCrIDDQxtr8QIKWNtRMjSFSEdDNCBJqnf63s2PY1Ha5CdFK9teq7xf\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABoEDxsFpCBA5ogjpJMM2B8xRHSYMZwDSBeOgkYiY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/6WlV+IseBCqiGJZQAwzSJYuDQna0qYuF1wceh7LYs1S3lxDWnq30\/\/Fen7oSWPOEH6t3d61d+nqVVSSZCgKGDCgRT2vNmBOkVGuH0C+2vjf9Wp8fUwLoqT\/V\/\/1x46WSS7vRd\/V1SqvADIVRwWaLCIXt32JO2H4posoHgjxAtROx\/lqVIb\/ShH+zH3HNFnT\/1ps\/0\/5qpVUeYscKAFAxsOioUaTKtgC8+SAx9ilnKGs9X7rinoUiqpY8Zjv\/97f2bf7PvdR\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABzwJx0DDESA3AOjYGGMUBbwRGwYIwEDChqNgkwyY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/NTL1YDGCkx2lwmPGHJYDrPDQGg0grvUmxv\/2M\/7qr8zI\/\/\/RWum6KdxdX1vXUSSAAAMTRsxIAAAAhBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/uQYP+ACgsDxsDDCBAuQGjoIMYAAOgBGoAAACgYACMQAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVEFHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjAxNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="],"libraries\/H5P.SingleChoiceSet-1.11\/sounds\/negative-short.ogg":["audio\/ogg","T2dnUwACAAAAAAAAAADDrUxAAAAAAGQEC8kBHgF2b3JiaXMAAAAAAkSsAAAAAAAAgLUBAAAAAAC4AU9nZ1MAAAAAAAAAAAAAw61MQAEAAACVezb7EUT\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/8HA3ZvcmJpczQAAABBTzsgYW9UdVYgWzIwMTEwNDI0XSAoYmFzZWQgb24gWGlwaC5PcmcncyBsaWJWb3JiaXMpAAAAAAEFdm9yYmlzJUJDVgEAQAAAJHMYKkalcxaEEBpCUBnjHELOa+wZQkwRghwyTFvLJXOQIaSgQohbKIHQkFUAAEAAAIdBeBSEikEIIYQlPViSgyc9CCGEiDl4FIRpQQghhBBCCCGEEEIIIYRFOWiSgydBCB2E4zA4DIPlOPgchEU5WBCDJ0HoIIQPQriag6w5CCGEJDVIUIMGOegchMIsKIqCxDC4FoQENSiMguQwyNSDC0KImoNJNfgahGdBeBaEaUEIIYQkQUiQgwZByBiERkFYkoMGObgUhMtBqBqEKjkIH4QgNGQVAJAAAKCiKIqiKAoQGrIKAMgAABBAURTHcRzJkRzJsRwLCA1ZBQAAAQAIAACgSIqkSI7kSJIkWZIlWZIlWZLmiaosy7Isy7IsyzIQGrIKAEgAAFBRDEVxFAcIDVkFAGQAAAigOIqlWIqlaIrniI4IhIasAgCAAAAEAAAQNENTPEeURM9UVde2bdu2bdu2bdu2bdu2bVuWZRkIDVkFAEAAABDSaWapBogwAxkGQkNWAQAIAACAEYowxIDQkFUAAEAAAIAYSg6iCa0535zjoFkOmkqxOR2cSLV5kpuKuTnnnHPOyeacMc4555yinFkMmgmtOeecxKBZCpoJrTnnnCexedCaKq0555xxzulgnBHGOeecJq15kJqNtTnnnAWtaY6aS7E555xIuXlSm0u1Oeecc84555xzzjnnnOrF6RycE84555yovbmWm9DFOeecT8bp3pwQzjnnnHPOOeecc84555wgNGQVAAAEAEAQho1h3CkI0udoIEYRYhoy6UH36DAJGoOcQurR6GiklDoIJZVxUkonCA1ZBQAAAgBACCGFFFJIIYUUUkghhRRiiCGGGHLKKaeggkoqqaiijDLLLLPMMssss8w67KyzDjsMMcQQQyutxFJTbTXWWGvuOeeag7RWWmuttVJKKaWUUgpCQ1YBACAAAARCBhlkkFFIIYUUYogpp5xyCiqogNCQVQAAIACAAAAAAE\/yHNERHdERHdERHdERHdHxHM8RJVESJVESLdMyNdNTRVV1ZdeWdVm3fVvYhV33fd33fd34dWFYlmVZlmVZlmVZlmVZlmVZliA0ZBUAAAIAACCEEEJIIYUUUkgpxhhzzDnoJJQQCA1ZBQAAAgAIAAAAcBRHcRzJkRxJsiRL0iTN0ixP8zRPEz1RFEXTNFXRFV1RN21RNmXTNV1TNl1VVm1Xlm1btnXbl2Xb933f933f933f933f931dB0JDVgEAEgAAOpIjKZIiKZLjOI4kSUBoyCoAQAYAQAAAiuIojuM4kiRJkiVpkmd5lqiZmumZniqqQGjIKgAAEABAAAAAAAAAiqZ4iql4iqh4juiIkmiZlqipmivKpuy6ruu6ruu6ruu6ruu6ruu6ruu6ruu6ruu6ruu6ruu6ruu6rguEhqwCACQAAHQkR3IkR1IkRVIkR3KA0JBVAIAMAIAAABzDMSRFcizL0jRP8zRPEz3REz3TU0VXdIHQkFUAACAAgAAAAAAAAAzJsBTL0RxNEiXVUi1VUy3VUkXVU1VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU3TNE0TCA1ZCQCQAQCQEFMtLcaaCYskYtJqq6BjDFLspbFIKme1t8oxhRi1XhqHlFEQe6kkY4pBzC2k0CkmrdZUQoUUpJhjKhVSDlIgNGSFABCaAeBwHECyLECyLAAAAAAAAACQNA3QPA+wNA8AAAAAAAAAJE0DLE8DNM8DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDSNEDzPEDzPAAAAAAAAADQPA\/wPBHwRBEAAAAAAAAALM8DNNEDPFEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDSNEDzPEDzPAAAAAAAAACwPA\/wRBHQPBEAAAAAAAAALM8DPFEEPNEDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQ4AAAEGAhFBqyIgCIEwBwSBIkCZIEzQNIlgVNg6bBNAGSZUHToGkwTQAAAAAAAAAAAAAkTYOmQdMgigBJ06Bp0DSIIgAAAAAAAAAAAACSpkHToGkQRYCkadA0aBpEEQAAAAAAAAAAAADPNCGKEEWYJsAzTYgiRBGmCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAYcAAACDChDBQasiIAiBMAcDiKZQEAgOM4lgUAAI7jWBYAAFiWJYoAAGBZmigCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAABhwAAAIMKEMFBqyEgCIAgBwKIplAcexLOA4lgUkybIAlgXQPICmAUQRAAgAAChwAAAIsEFTYnGAQkNWAgBRAAAGxbEsTRNFkqRpmieKJEnTPE8UaZrneZ5pwvM8zzQhiqJomhBFUTRNmKZpqiowTVUVAABQ4AAAEGCDpsTiAIWGrAQAQgIAHIpiWZrmeZ4niqapmiRJ0zxPFEXRNE1TVUmSpnmeKIqiaZqmqrIsTfM8URRF01RVVYWmeZ4oiqJpqqrqwvM8TxRF0TRV1XXheZ4niqJomqrquhBFUTRN01RNVXVdIIqmaZqqqqquC0RPFE1TVV3XdYHniaJpqqqrui4QTdNUVVV1XVkGmKZpqqrryjJAVVXVdV1XlgGqqqqu67qyDFBV13VdWZZlAK7rurIsywIAAA4cAAACjKCTjCqLsNGECw9AoSErAoAoAADAGKYUU8owJiGkEBrGJIQUQiYlpdJSqiCkUlIpFYRUSiolo5RSailVEFIpqZQKQiollVIAANiBAwDYgYVQaMhKACAPAIAwRinGGHNOIqQUY845JxFSijHnnJNKMeacc85JKRlzzDnnpJTOOeecc1JK5pxzzjkppXPOOeeclFJK55xzTkopJYTOQSellNI555wTAABU4AAAEGCjyOYEI0GFhqwEAFIBAAyOY1ma5nmiaJqWJGma53meKJqmJkma5nmeJ4qqyfM8TxRF0TRVled5niiKommqKtcVRdM0TVVVXbIsiqZpmqrqujBN01RV13VdmKZpqqrrui5sW1VV1XVlGbatqqrqurIMXNd1ZdmWgSy7ruzasgAA8AQHAKACG1ZHOCkaCyw0ZCUAkAEAQBiDkEIIIWUQQgohhJRSCAkAABhwAAAIMKEMFBqyEgBIBQAAjLHWWmuttdZAZ6211lprrYDMWmuttdZaa6211lprrbXWUmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaay2llFJKKaWUUkoppZRSSimllFJKBQD6VTgA+D\/YsDrCSdFYYKEhKwGAcAAAwBilGHMMQimlVAgx5px0VFqLsUKIMeckpNRabMVzzkEoIZXWYiyecw5CKSnFVmNRKYRSUkottliLSqGjklJKrdVYjDGppNZai63GYoxJKbTUWosxFiNsTam12GqrsRhjayottBhjjMUIX2RsLabaag3GCCNbLC3VWmswxhjdW4ultpqLMT742lIsMdZcAAB3gwMARIKNM6wknRWOBhcashIACAkAIBBSijHGGHPOOeekUow55pxzDkIIoVSKMcaccw5CCCGUjDHmnHMQQgghhFJKxpxzEEIIIYSQUuqccxBCCCGEEEopnXMOQgghhBBCKaWDEEIIIYQQSiilpBRCCCGEEEIIqaSUQgghhFJCKCGVlFIIIYQQQiklpJRSCiGEUkIIoYSUUkophRBCCKWUklJKKaUSSgklhBJSKSmlFEoIIZRSSkoppVRKCaGEEkopJaWUUkohhBBKKQUAABw4AAAEGEEnGVUWYaMJFx6AQkNWAgBkAACQopRSKS1FgiKlGKQYS0YVc1BaiqhyDFLNqVLOIOYklogxhJSTVDLmFEIMQuocdUwpBi2VGELGGKTYckuhcw4AAABBAICAkAAAAwQFMwDA4ADhcxB0AgRHGwCAIERmiETDQnB4UAkQEVMBQGKCQi4AVFhcpF1cQJcBLujirgMhBCEIQSwOoIAEHJxwwxNveMINTtApKnUgAAAAAAANAPAAAJBcABER0cxhZGhscHR4fICEiIyQCAAAAAAAGQB8AAAkJUBERDRzGBkaGxwdHh8gISIjJAEAgAACAAAAACCAAAQEBAAAAAAAAgAAAAQET2dnUwAAQDkAAAAAAADDrUxAAgAAAKJ1IqciWEBEOC8uMUNeZkQ60K+\/x73\/B5hjR\/8K3u7\/C\/8k\/zv\/TnRj5iWqdGWARKG7Xif6sZu6qXsysGxfdGoWT403Y5Hczlb3w3RVoHIqZuRg7NnO5JXBB4+NP9bf5vPD2lHs06E\/7Pr50Vtv+YXv4srypKqvj6NdoxfW0V+8Qsg6iNspVkps7WUyK3CSbCYmSlKsWTmWvWe5aJf33qd170PzfJrHepqLJ20\/vXn17KH\/6VVpj8tV\/ehprk4nnM7B5UEUEZzOcbmCkN9UNBEWCIDuDJa2+W37kP7r+8P98WMx919jzv+erO+Z+fX9ZH8Y79r8\/eP4Wt0w+dF0\/hSjRqucTA9l8emdTA9vBWNtD2wIAysA1Ud87593dz8M0gSivDaRkLbqPepFVGTcjuQLB3uJbkQ8VGonGZxK7VTQNKdSNxW0z5GqJGBHBWD383JuSuDEU27\/dLfCa9qrFFwVbfuLzbqJKhEAnMqUrvp3KlOmgqJdmyAqFYCQTyLDtIsJPIIISuCBWkpLvFcbOqPyrguaBbtnBpzMcl1+cCczRysoejdMEeACGQiAaV81SGqGXkbiNAmykl40AyGSCoXh3Zpc3W1w0AOczMipIMKdTA03thnaRIcQgDhLiw0PhVib\/mu\/xx7WnUuPWhsWEA6aiKVVOKwudaUs1k5ZSSVXlepENHLxgqFBjA0AvMrE0E2qtCttdo9bLP3pLwDky7RMNZo+p4UDA3HVDks80cQH44Lq1S47yXrQIlXEGAmFoVaqkLZM5El7efvxdqmf\/3vwzducx5srj2826SVIU5AWE5fYuLiYHtoGAFTbujPsVd26J+mtr1NTyLLMfr\/f7\/en3wFAGVH3yo2L7S0sNERGfDREkUgQF1cpUkVMTExMXIK4SnFxkQqRCkGkQqVKyzRRkZ9Jmn+sJt9ZHLv3ntjdPz9aucrYqhOtMkgPiXHUAZzvk\/SIP98nqZ+w00sNSWYwAbDacHRAJSYVGw5Wikbaptu0TduEQSgvsfRSoRK5mlcHarWq0na+Xa78VD8\/bfqlroYKhO\/vQCf895637wx+PdMzwfwtKSsQgKQ1iMm6YDU2rxYbbuhFhhWXS3dkvhmq3j+CxLv0Fu2rhWWFBvqsrv63gByKGkL3Gbx\/Yj\/6ZWh3Jd7ys7rFzSIgh6Kk1P0KPr+xH\/XS662EM7+wvd4BFgDgvAJ4OQm89HQrAQAAVAAAAAAAAFGpIgAAQC3JDWnzc8\/Kft12MOwsR1mGM20CNGtUtP0QfZAgwU0tEHwg+OCDD+m7vX2kooWHJrzYF\/++PnqNNhKtEFshNqbqKuLjKkZi42IDi1oev9\/8eDiyeknPHSZtWQB09+O4qwDAB0EZoN9X0ObFxeV9AAAA9359HZcA4wQ\/QHIJ3AmhSQD+jF7YH4H7Ulnuy\/f5P7Lfv3mv2M9hsnnCfwUOWpSW9+L7\/IvM\/hW7sR+DF4AWAMBZg1NYOQAAAAAAAAAAAFCpsFIAAADCpPV5XAjUmkaJkRDzBAAyOjWW5bYrnX+IAQAu8rx5srTtdcVv25AIQmi5FNdcWtP45q+\/tXfnDxVvbg0GKRngAADfGngauiQAEQBAAqcTLEhUYif+1SawHoYFnkIX5198cB+UMgonAJkNflyezGYLvMD0OZ\/e3\/8x96ZvLvX4UDye2eYy2pc+T\/H++Yu5Xx5cxn4U\/gEAAADW4XDKw7wC7Pi+GbByAABYDAAAsBgAAACAFZWqAAAAAJmrAMxfHQDw7c7d3XtjfX9qf9cEAPHbvFaTcP+yAwCAbOgIliaVOb096l0kJATVIy65YYMAWKY\/sz+7v\/icyQIAAIAnOsK1cmMIAAAAGoALAApMwAGeWUJIEIxr6xzAiKSj+sNEJSzZoAMOZ2J5iALeKtbcP\/q8X7ryP8\/vP31sSrocC3b4H3vaG9b+6\/3zV9cvlylx6R8AAADgdjj1oQp4BXDzh9HAywAAIABgAIsBAAAAGMCKSoVEAAAAY0w9BYB9qwPlbvN+ZODn4afvd9rvyRcAmV\/WeSzP6lUAAACIGnTf36E70q5SggCEnlfaZl0hiqKzfzyTC\/sHU2EGAAAA4I0bdn68CQDABgAqgAMA+AzADwAADNhwp6gAn+EAP+80DvVHlYGj4IyIkQZiBa5vDAmBGAAK3uut7D+veJPl9vx763OTl2e\/nv7TK57QXbf3z48+hxKa\/gAAAH\/+lxdzXM0vr2brcB5W6gIn7wIAWAwALIbFsBgAAGAAqFSqIgAAYO\/XVwEArLz1vHjO6AKBMK7mTpp3M1q+YxUAAAAAZ++XMe+4s8HoEP5x56bLrfWvjy5+\/OFci\/0fAINNEgAAWA4LAAAWAGgnAOAD4H0BAJBXIWDjRBTU99qJACGgPsrKqCRJyJ8LkfRBq5ghKBAyASADlhvW8R8T7wUJyd\/fHfIQV\/xyw7Pc3DMPYTg\/bzmI3z8AAADAcuMur7J8GQAAQKVSQ1gsFQawgsVSVREEAOjNb5sEAMuWbwsLiM9d\/31qvv5\/tvB09nR2vggAsLOtxz+udNbtP\/H4jf7+XH8uN\/Fu+dHV+gtWg3PDRV4fz75VXuhFfh\/feHvaH2829pUD3d3ddD89n\/anaZqm3nvv4XTpFZdLBxVFcSmKSwhhlxqlRgMAsEAFAFBQgVWpC2VWCMgqUDGNiCtJkSRJEsC49c8CgGEEGHYBYAHAQlMrAODAApcLAAqggdBYHtBSjkHnv\/+zro8A4\/AxHB9nSI+Qd\/VfFWD\/+wDQAGTl86hru40vsHa3K+3fvvrLu8dVqY9hpUWlEqq1tQCrLWvrVsuMSk2lUpyczbi18iet1uee3XPWn97f5eRkOaa1YusDgA4yxtSHpnyLO\/UqmH6iRnEzFUVRhFEIbrc95k\/ytT3Onuw3\/19GF4vabEl\/j2Ff3vhB9xe5HrJMNzTZHTFQMM7yuZvw+PfBTzGqof+Awx6VFAwYpOvzc9Of7XPxoFttzqjuaqGM9M3HuZi2vywA3EOosHWIbmt721Szc73Taro9evbQ7dGzR1e6nbYJicQuT3f1XYGJpOvQVhgcJjp0fP1Tl\/I4HLj+0s+Xl1f6loOoqg9rymoBnO+LSwOufFvyB22lTVSmx+lsCWAIOUYAqn4NzUl4+bMxaMNw2bglFlkvJicZKn3Lon6b2APBm4Ov2WPavqmfbydnqU5aNQCarN6k9tB5IcX19vYvEg8uYT8xPqs3bvnSb9vZblH\/UWSvj409GPwBIBKRWPvp+2b0gavpgVcdANiv3\/7vL89Pzw977bXXXpuCjKgAAAAAAFQqLQQBAACEhqdHiY0VZohl2vCvmJoZiw993rOYhoqKYt+SMwAer6ISt3OlvVHXdc9WAeHUKocCjVanX6tMyqW1TCrZF1X8+TdbH3I9aM9+m8d6pl4v60vn3\/\/+\/fH9x\/6xz+vZZ7sz+\/Pn\/5t7efEAx54Z6Afogvx\/5hQAJBh33PcTL051uG3rW+6O8qG47xkVAVCDDWwA+Gje4wZ+gMrP+C3p9FMED3z\/w2CSbeo66SxgJ2CAbDIAnnx+Ti9dG0mP8u3ByMeXwNgdgmX0q931jJwe4aeTRz6+SIvdQfgFAMCb+JKHyQ7g+ffeBwBmayUgMyMEAwAAAABWVIUgAAAAZusA6IIOHHPbD1lKCdK8tRYAiP26BE8oIAiwOrczoeDRHIKyhbBN2kSOJrHSzlsVFFqb+pdfvHzfeKawqgXss9aPjga0JmFXJrmYmaGldSKqij4kBXOS3glf\/yIhlyjm7KkBqGZvoKMh4QA082d2IQblDQCQsBLQRgAFAGwwLCAqnUAC33uyUguASQpzK2yDCb\/gAxQAPkze1P7QtaF0zZ8ejHwcS6aeD5LL7\/YUiCOl1\/7x9D\/yIVamks1\/AACA8e0hwQsSBgBg9upjfwQAJSMYUGExAAAAAFGpkBAAAAD303UAeLVW2jOwCz9ZPr7RBABuX70bAMC4rQDBAzIBIAIp49lUF377Z5nvVQcAAIAMDerP9x\/PtVm5gQd4HaozW3kfom7q\/cpd1FmBzHx82DPyfe77Zf2x3zJauS7OAnflRmiuU\/24mgnPfzMzTF55VcL6UaeDBd03C7SBH3sNAMAHFQBwmQjH+PiJJDIieNWs93Y6ZnGiIzsywRpstREF0LbBAX4LfsT3M\/xmeT6d8RfpPUgo8dJu+Nnfz\/YPHz9P3\/EX2XpWKPHzHwAA0N\/95RL4wdq9AfB3AICXAPvnmwSvHv9sAEDJpEawmAqLAQAAVlSqQgAAANy8IACYZU2fEiqTux70RwJA6R8vAQCA7H0d3Xb+ULb9lvMuDz7IzEAkEVE0NV+xocxorox3twIAAByvANhsatBSBjbk5hTp3bfP2Xvbj\/vc6qHZGeNpTE9+5ZzcACS7K19qT64DQM8537qlog7JeBjqE0OOSxRORZb5+FlKrR00vBwQHPYYBV0B60PA5gIAVA0AAH0AcHDBaUlA3gQNhyInhmPx4VSd63r4CpIPGsqkKtoAKAABHtu9xY99\/Nzy73bPE9k1Hdf8edZ7d+8n\/9Pys839jEQPkcmXfwEAoGMUvXAEBQCANfgU62ckkHQyIiqViqhUKpVKFYIAAAC49SzAEygDeyc3f7sXXtbasnLf7noKAPO\/f+IFAACA7V39WZ+SvYRFX0ug1eAzZeIBnDAMbTnTq+5B3zr+ffwNAIADjKsB\/iJEdwJfZXQOQ+KppWHTMI6Lh+yuXP2P2X\/62Hq1pvkzB9wQJCSHPCSze813Kumc8xngL3CnI7pv479z7GHeuN9nyDTlw+UEsTG092UOSSicXC4Cuave++H4AGDPAo\/kvoHLBoDQAADDhQUAABcAQGGRAGAB+ODHWPofGKoD8HARSMAiAA8f6BGr\/S\/OaTQsLQJkhwICXppd5O9z\/M3y\/Zpm+A21OGsKzS7yZ13e5rqfnoYeUJOXfgEAcD2IHzQ59hzQ\/AMAYLbeBZCZEZVKpVKpVJpKpQohAAAAyqegQO4IQ1MLtf+xKNAncsgA+ZurewBg6mjaHWdfUIA2ABESpW3unKIj0tuY\/2vLAQAAwNT6zMvXuXa629lCG4C6e5jrMKj\/+FRenCooUexn\/sChXBGJT\/fWLurkFecotTa\/s+OhI0Edc56uKiFg5nEBYjo7wQDQ\/PZA9+f7Q+Rk0eGfCxYC+PDaxWVDFasa59Uv3AyqxskeqA5+SHClcQbHx3L6O\/U4PkR\/FChPHWgcTp+IDAkcksCShrDNagHrsY8LfDG\/VoFDAcPwFAAUZ\/3q4OkBf2xY70Q4RzKeL7Q+AxnyA77oY+AoHoEK49uCRn7Shwy+Se3+R\/06NOu\/f55KqBkKzpvUEf8qN6\/rztMRwr+JZGnW9AWwPzv7oasOa9uXf7YIJv7Pv7\/tALCG44X1MwDZ6YhKJ5VKpdI0lVYBAKCr7YCk6K6c12\/r7IN7lQvf5nPEhkARoADKJBPufl1Hi5l94G7dWTPeewKU0vtM\/mvF3+QlSustu\/Y5hQX4mzWVPlM9ux5ow+eLzVqdj+mzWZWbSnJqxmJMe155qH3Kw3TUv09Mu6cucrXvMWc4AdzZLAh3W5oRTxUwpU1HXr5PAdf+VIj2QeFgBCDB2gtkMs35\/AA47pJ\/SZIbIJOTBggPNJN2WsWG\/XD68bFs\/nF8jd3v\/\/8MfIYfXfUGjmsNCIcF9iyUrCSn1x\/D5e9UCBzN\/L\/BCDPtNMnCiVYrAc6PBjYM4NQDjh4BACqs9Z2sJPmCDQCcXTPSHICjEBTIRABPZ2dTAABAbQAAAAAAAMOtTEADAAAAQELvsBr\/Uf9G\/07\/WP9a\/1v\/R\/9M\/0r\/Of9P\/1j\/Sr7odNx3\/AvmdHBbsFDo1Pyv0t\/A7UYLC1+MbrNbv\/7lNwDy28MDmPiH1QCANTjWvPr1FgAaMiMqTaXSdESlUiMqpALAwnw1lbKTj5t8m3PXlz+meSYzpLGx\/AqeUJlQnq5flkq1srB5XW0De5sjAFC8ynPW5vlfti4uoVD2l2kDwLtO0WrgmaFupiHOk5QyTXFyyP7rNx03Znq03Tmq1kpl5LXc\/fRKn\/jfJDRDfa11fe3\/\/NcMxY6P1W7+OPVVabwk080dv+MfZKdkzH013w40gJf6Qts6HQs7fVV5uOLnmJP43al2avmPcX\/9pPD\/c8yNBvwk5rDvaYdwofNfBcA+QJKPukDJoWq+6gDDRf9ULxbin7WGKqHzie9\/MMqr43P49n0iSLiaERfRl7kGtkrFZr\/FSDD4+Z8PAMS\/Ll0DDrLP4aMcgCMQCIDQBAMGAH4o9dZ3075gF0dwk2WcD52Rf5f+FW1qaEHwZY5maMarvxWAuav\/8ybAlfPg+csNAHCB7\/Dq6esAYJ4l6SiiqVFEpalUKqQIAOrUCb\/JW8toDv2ErFtXnokKIXR5st\/06AuCUPK1s1FWoAofVgWvdIQux1\/oTlZDYPUSNHgtqFNbgAn2f0WTJN3vnmE\/eyh+fNiZ01HOIRk6yeSfNFmHPTnuuDm8naG2T\/1ftQ9AD3vPn\/9c07WnvvbOczdzEkw2tGJU0GfI8XV2J7H41PGBEeUzjV8uWLj\/2zDJ6Q+E\/gHyWMVXZ0\/A9ADy13eSf3zUD\/FhcSjvVf0EvkODCzicDszvh9OSDAOMQEMwwP1\/1fMAuA7AMzKNZbOYPmB\/EgCaTACcQEDT\/6Qqf+4oSSzwAZdfqSw5BCgnJwcwmJWtAtCqTRAygAC+OK3cd+oxxnRrMgPuQqdTvlJvMG9vxFkY\/gAAmGN\/W+kB5t8C1nGchrXugB5lRAFNZ0SlUqlUqpAQAABYxcBzOGEvJJ1M0fyZhOA9IJQcBB9CYPwd2quxsGVt45ttBh8gl9xB5ORcOaVooONSS28Z1upJL\/\/u63pqv+QGfEUVAADA74Bzk10tdDjjcpt+3V7r9fIwzl1Jw11Fk8UH9axw7pzl8Lj9S8eTGBunyVx+s3d2n7zzTD6M6TwHoOvU+J5JZQsOZ\/1\/5cDz3BCBAPf4xVZrhGldDAVo5hWGD+ElkbQDlJw93w8NNIz319nZ\/QIc2nxNz4Chu9zC8J8iW\/75FSNDDg2Sn4jg19GFY05f+fO+YOiUkzhQ2GYCnPxZi2D+8Y+Duy+6mxxH4Su\/WQ46iRIYZ6+5HqzjZ7ifABYcdHT8OL7tQxUfyIAPDgC+KI3gV9pnesURXNUV50GnVn7S\/0RxcHUMfwAAQH\/5+8\/AlQ\/gm6VhDmD26purAQAyM4qiZEQ0NaJSqUJCAADgXCFD9jP84Ofxs2bJ2r+yt9AGMu0p6t\/b5xOYAR+uJZUznpxn9sFDYWoonRfTF3V6f+qvgjaTz1p\/Gqlw5ZHwrE\/916oAtn2TYLpz3DyZdx\/iHx4VCZvOjKoSmHZWVdUn+wy83Ke\/Hc8XAAxQA+9kXTfPfFGcU5\/a8XMGoPvZ2VV5AGa+Fr99hx7N01uFNlV4KUnnkeLzY8HmTPG1YW8Gx\/35+VWzgcMRCfkKzAYgmT9n6\/Sn2\/2v6P19F3XfxxE2DVDml\/omjn\/y\/qGorxP\/xabnZy1gwwa4gbg5l0d\/CMlPkt\/dP4AKyNl8NVj9Y\/S\/wN7xAAAI\/+5UpKNDI8eJTR\/m14B4mwHWCRB6WR9giHsACFsIAVwA3iid0Gehu6G5haBMhEPi1JO\/2\/s3WvFUnASHPwAAQOubtxvc1AVYXo038wYAMjOKaCrdoFKpUURVEQAAmPxsQfAdmeu+JWampzX+Gna+x7LchqJhz937FUqoyuUBh1y2sEhk+59Nt\/XnVfHtv6zP8u2eG63kswxTy1mpw5cfaqHprSrpZACAdx+SOjeTRb8kOenePsVhTeicenfUqs1NsTy1dp5dDNSxTZG7m73k9LAngc5fvbtQ7lOf4vp8QdW5s8tsNuwNz3X5lCtgwGTOqafAyeGnzn30FN\/RgrkaKrd\/iOqUPsOn0j8H\/OQKvzp554LPRB09\/y+GYNj\/wwak\/Jc7277Z4x6r\/gP48x+UXmFnsaQASDEfAY8UEf+gszOnjx9HZ7GcpuClhY6wSbRTP8jEPoHMkr0pAJKWe+PA5sR\/NXnAwQ\/Q0QGcYEeR2Z4YhkdobGnAdgYAXug04EdNpyA1B5dqQ+V0ZR+136ZPxT1S+IVw\/QMAAPb1nTTfi9vbgNnaC0i6ZBRl0lQqNalUVQAAiPHuLITS8n46\/ux9KO\/7NzivGCfaFsBPDgeSyR7ofG6l6whxXFFdTM78eUrP8qc7d78\/stif6YtGa52OXOa+6NeWSJv6zOGbBujv6Sr\/t8NP5VVPT06RSYfN4dMbp7LbPLfmcMPm296fPb+Omao5ZPfZB\/pc6n0yF25v+3XW\/XZ3y88zmn2SOae+sz\/VX82m+nz7sPPMPmI253bBvRv\/q5fD2C+q0Yb9lTSnEv7sO4oM0KuBs32EDIBzP7KV59sBpkdVLgROPrCPMkHqOSnLzzQWgHMzeP\/+fHyQLfpO4DTNPrjjz4e0YKSEhbVcYrSIq+1rnO4HDaqTw4b0C9O9t6m+ygixB4CdFFaTvJMYGPgAnACwiMIesBxgSgiQwQAoAF7odORnuX+B4J6804RD6IiejT+JYQguQeADTWj26P\/xH81D4u+Cx5vgMMCyo8xMakYRlUqlUqkqAgD0tVTfvQbiiy8v5ezune26z\/WXFCWIa29c\/400FzJh5g+Alpa2bX1pSxfN\/V0Di\/Fv6s4TAAkAwDPk\/590U+yjntVyY87c707NO+PXzajLM9lXJln8EdGPah5nKjfpU0+yspncL9XOaT4j6s46O+arC3IY+Pc9PVdThnsGnq5h11F7ejbPPjDtJ\/NQvUswj4CGB3cJnUEgrhffPhxLDBxEjmTDn043z0OWDnPORuY3G+AgmvPbdG6Qt+gOw1GdjYF9X8AGnBwfLWeUE4ufnPpq\/kPhcR4p72f78\/MBiyQBag6AAJ2QCwF4RwaGjg5QjjlABJIE6I+fFns+jiUvnKoYc2Qg4KCZDWiGjKMBHuis3KtYXyIbuEKBP6cn3ioDk1EMXKGFPwAAge3nx3cHuGngOHvlrywARJkRHaNSkxpRqVSqSAQAAF4th0oqz+PY9kTJi215lbDBbOYpFJ7e8yd5pMAHHzyRQyT6l8iG7VPOle\/slNddtPq8xdT7zJSB1nJf\/P5nX3mk5JugtAVIr5POQ15kkUXvp\/P\/ryYvVddx5DlG4fmnZg\/ztdZhp5KvvmZqesT2eWqKieD8+rc85lews1S9SstMnp4fQG+sdJpVftZwv3s4OX7MXy3nx2TRJJQYyPlOtR+oYn6KJugzrW1m9Yr6J2XfVvzhj7vqH9jUkR+HM7GT\/\/bx5z92DoDFd5TA2fA3YkKGWT+3OvHzg8UBTpAAcPhiA5Y6NXz\/w4ILOHBcAPj4AX6KmoV1WOCebdLAcg4U4DxguZof+GmfBsUN6wA3wQAECz7oLMRH2d9E8ZRdckOf0\/Mf6V8gObiaGn4BAPBXRSZ+swGANTgWWS9rILNHmTQdSaUjKlVFAABwriLIVemVnfWTm5ffeoSi04d8tg\/sLFASCMWX3dO1xxG\/VOgPpfY2+0ABfFaIbHugtqEmZbfzGdyaZ97U\/bevvivPFJjqOAFQew97zg7rX109NUCDnMvZ3ndzm+nksHX37sMh619JJ8A+L1NK51QJt33G49e4xX2ei+7ec9dVNXn1PlwJQPZUdhwvx7JrO888giZH6U7OAIdz2F+5ffKT0AIdNpuD\/mWAAhDmkEZXxnkA5ntB78k8gphrfjUo+VKW9+YcfJM1GHEYw3\/OiqezMmwv1UzODfrmdsDhAHD8T+WHhf1ew2YD\/OlsAxvjgQOYhwtVGID6IRLOeWZr4Iz5aAEAHghqdCt9wABbZ5pjOwAF3ufsym2mb7I3yIhDonNkz+F\/IhmEfwUaviwdXJdftB8A\/WeXwOMjRzg+BqzDByyZmVQ6yiiiKpUqhBAEkNRvDV3mMdFXm6YH1VpHNIv84HloqN\/n4EIG7h2tY+nn3AuhR\/AZJXuhv\/vnmAvLAc7UgQQA\/q\/+XZtEq3eYChSy+XOA4m7GOWKmCkj40F3d8yZUIuie+spP7bRPnxY4P+qz\/ycr\/6pRTW32eoBmkzVTPe9weoDFBZt2VuK+eor+vAbG1g\/7v+XI6Y8T4hfJUfhu5tgx3N4Duw5775IEeID9vTVL\/Phfcl0wgGAOoD\/b+w+2XpoDn9ObJAF9px\/8WvqpC16AgW42vUF\/sBzMhgaWUzgtMIubLBlMToO5Tj8asICB4yjp5153E8YJUHhnAIQIR80GMsrQgZAB\/udMxEcRr1vLcHCTZOhzJu5V55OIduOKAl9oyOXtzS\/7Cuj+8LcH4PEC3wHWoYD10wMyM6NMmqZSqVQqVRUAvK5\/1g7x7cfYK3s\/k4y+eWCilAbnhVM\/9nh8GKw2lgu0K\/6U7H2mhJYyNqKFQATk79F+CT7Qgs9tcFcSEgCAmcxx4\/MDaDgcPpOIpeEZuM6h1ahYmbvZNDW7soHsXZWp97yHPtn91bs+GnRamdSnOExWf9R12vrG1Gl2g17NO4cC0p1NFRy59j0m+ceRWLBzGDjnixxIH26KAus6SecmGQYak9IX7PONk5Sxho+blWqYin3o4gc9k2A2H+PiAEDQNB82m4n5+PmnMulwejnxoSvcD4X6uPoXyfASU636AA+6k+1FjnB0BToxKH54WB2yBOBU\/nK\/5+K4g9eJi\/UZzkJJHWM2VB3gAxQxEIBqA97nLMSzjDcxPJEaAp2FeJ\/nCUvLTuMSRcwfAEAD\/O37qw79dmzAbH0AmRnlQqUmHVGpEVUhBAAAHvfh51nLh2\/dPoPwCyu\/ny\/R9X0o+Hbw+4VJIeMBhaAQ1hjKT\/9G3BnwmXPa7F\/+07Xpztmm5WZmAFpv9d98p\/wlWSCfBQCpnuPd\/SV6d+XJaJhm1+B212x+vZnN4v1LdnauPcTDrhHTpz7dTjg0FyeBpqs5SzF8dWdvGoCTdK90bwoOu5nv+CF+VKdmcMm7HrLbcD7jOrDzMkCfmJ6z5w4F0AfG9OGcBP7r+P9n+cnBbf35cfCf6mydPvhNB5ITSn5xfIYNP\/gfaVMH\/rMh+VdR2+mnr7Kes72GNDkb6CtB0FAHSnea7z\/+85ofdpQc\/LT++wwJeDioJfBvwaceVjNFMgDjmyRgUfqULzfhgOe\/UUf6fRXoCJARYMMMTRUe6EzoQ7XDQHPjqtTQ50zoXduXmL6iJPiCnqI39y9++CYgjU8\/GWDifywsAGbrDwIyM6OIpkZUalKpVBEkAFAzaNHHtuu8zj88nfLyFef0mOPDS4FPJucQknrfWoAMGe0HM98e7rGUoRUoZ0z4Vi319usqaz7jrBs0QASmdzfUbggylVXKz30mmdE1WWeoFF3U19d+vk6\/qe57uO\/T1zHVWjRkd1GfrIHTU677zK7+ag7AZlj76Zmh2JxhSp3zMkxRkPxPzr+BM+dspyOs\/356DuDDZjjiO0yUnPPmw7Z4LUAyJ43mS9AAzgAd5a8\/SsXeSmedDn\/EQYiPDXrik5ciuzh98uFkZuBERQk+MN\/xcXc\/8NFS+wsaIAGAmdYHNgdIqoCV+IojjxBRTn5\/eoy+d26GhZZN5R8U1ErHdL+AcqSBNpNFADIIAE9nZ1MAAEChAAAAAAAAw61MQAQAAAApVZeXGv9C\/1P\/Tv9M\/0v\/V\/9K\/0r\/S\/9P\/1T\/Rv9W\/udM8F3WF2jeuFqCR+dsPrZ63WJ6EolLMvwBADBvzI0\/RoKHR8J9OIDZ+pmAzEJTqVHSUVKpVJEiAACwLw\/L75+P3ut7pShfws78SL2kLRIo8yP72ZeQA\/S7FiTfvNvzvkCmw2tLKERkV6utjffe1\/RqbYWSJ02PPngfYjPROQzAjHyhDUfK0mR+au6p\/73X3gBzujD0cM6jY84P6B7V5qBv7qnrvOD6Bj8gGU0mmXX7dDvnr7PdcddTX9QH3N6VppR\/VQKOj89SRyVgZvGv3zux+M4B3ZMGQ4xENp9dkEekQ1G3Px3X58CGzT6bWxY7vwkfJTUHh1N14H\/tKhMkG6D3jw+7DnCafUooA9q5b\/6VETK94ewHA+wChgGWkH+gjvSXCIBoDQGVuDiqdMKzAJ3QCUAAQbGJOQT8DEDfAUADHuhs6F3vL8CNK6rw56zwVeNPNE9cbcMvAADuE+KxJSgBy9oBQGYmNaKTEVGpVCpVSAEAwP5Ma7KjpGG3+TdhnJeLZD+p5s9jkxrdGCAsbC7vxGAZL0ogO+H8uvjgCQZFS+kBTsciUW3QI7IiOP1V594QzDu+XcXDWp6nPhQAAMD136zsbXiNwk\/a69X7GJ7ynl3+xGb3nJn+5L6UN\/uF2uxmesym66zto\/r+3pfiU6N9\/sBJ+jM1UNVnuKDOLw9Tz+6c+boptPeh\/qxO8qtxQM5\/YuL4LME59dmb\/dl1FBFXfZRdlUqucJI\/R1nbB\/9QGRdyIzKfDT+GFAAbLvhYxJfODmLi75w9D+6AdT4Gv1CABZy+118vKoHC6l+BC85+OPO+Fpxi4eC\/9TP\/21J\/3mnBBZYDx9QL4F4esYAfh9Pt4vRjGc56SgBcwwB8AIEAEACe6JzFY4s39CV5EvpKGxadq74\/9YY+JTeRuNUO\/AMAAADMK8Aapiyy\/gGQdEZRRtSIjqgRlaoQAgCAsT8AcAkYnNN2udcvAYrPQCYE5N\/J1ddd7giNIy4FKBS8FAGxftPgFNeQe01ak1hN2KFDrjrwvMeenB1l7VyeKuz+doeB7JYL7Wxu0UDtZFfWJDSqp5LNP66Us8CQCclP83kyd5Wf\/\/C9svO91VlbdJXcFAMzbD30Zqrq5IHzjRpgs+fQHxfVCbxaY0b3kNxnUYP2p7YV+F\/EdwKQOa09\/eGQ7ENS3Cr2KbER9WNkVBbQ4YPFUk6s\/9Sd8VP8cFJ\/GKoAOM03jvnuG46ivpp\/HxoRADDwN5SAZJdch8bsH9SfhxNrgeLcO\/nPXt4\/M7T\/vQ2wAfiQAMxwaJ2XGFwV8GMBQNBroZcXgGPDViQQBByGzQF+6BzFa+tv6BpvIryshT\/njG9b3wPFxrW84Q8AAPBNREp8LN65bABWA1jDMbFkJjWjpFKpVCqVpqoIAACMX+C91\/IysTHHzNIT5IwvUwCE2vuAtChK8IWuw4MPS\/NO5N07hQx2NSxqZeOjx5f7vnEnB1MZlXX\/6E3nngUU9lsz4N\/pfpmTnXPYVXLm3fV68uTXnH1AJzfni7mbdx\/Ov\/Ic7t29n8y+xsB5O6ELgA09HGof9q78Jx8WB88+Tj+f93+nmGROpp0fHiZ3iTTd+1ElAvZmA\/TgF7scw0hE3zNTp\/f5nxHkATTV+9S++Djj7UHCD6Tfn8gffizm430o6VMPPRKOPHwmnCmU5gN+KCVX507w8xV1Oo1x1N9bCA+o1tnjfHxI6A1IAviRF7ilX4pv4jSnAJjj9EEVck5QARg2OJpuzBbAEjBpADQAfugc6WtbT+glT8Je2aoj0XmF16cvR3KIMGsMfwAAYO7y314fOLPZLBuZNJ0RlUqlUlUhAADo5yOoCP7MMfQ1KTLQtiliIKoOjSr7dpa+8JfPvbwshp7p86+slJx9My9admeiCHov\/cfqR\/983pQ1+i4L+Kd\/6XNpExTUKMWsxmvb6rCZ6XRYPM2bZD6fk+31cL7\/OX0Z4DHZrv11zuye\/cXU1OTAt0+37zeGPfhinA8Ht1l7Tpmbe0N9qgHIA3mGf3ZX713nYpvyPmCzv7pt7eKYbnYdcFS8QbpzH5Av85Yn5346OjXTBgm+A0rtX53N3uyCAV+5x1I9nwTt2jDMF4j6WR9\/vZfB+nA8MuvA8b0mH3GYXxk+gaMjC+pyFB04xlA\/DD5+wOATtwXQgk58OIVZFS5OWjspICIZKhbbGZ+NAnhgmkLDVWELvug89OOau+tlmwjv2BUWnTexffsd+pJsIhFnIfgHAAAAeKgUOZaAdThiycweZZTUiEqlUqmqAADg8hIAXwMI8pv8dZe+Xh6Xgv8yKx\/avJehSPEevPeZba+p0Yz5kgF+YzsRQ0fP7CIo3aEd4YStK++QcbftgG2mAACAzy95O2Dc5twKGeWa0xi281c0J+\/f1GTNKJNTXbtu+OeeM3NNZe7PvSFrT07m6NfALk5x6P31fde1q+ZQnRzU5Ly1eSmM8bi\/jj8x9t5f9eeXLfCnt79O9fTQsHci5+LNdyGno4Kwqd6fbW3+HNF09aVzSEhmb77Bqe9sgI2deJYDzj4U+Q2AMXAaDuIb+xz7wYmrh\/xlyvcte2QX\/m2yeU03YEe5Cqd6zLvY4biWkUnN1doJ8LBYiuE3ADg+LCQAdR4AYQkk0gCA62QFUAUC+NRoFoA7AhSBZgABnug82GWfbyA5hJ99gEbn7m5PfKGO7RDpl\/xl\/gAAAHH6zWo0zM8HLOsnBGRGmRGdSVOpVCpVkQAA4KPDg18+fCv26TvY\/uR0Mm7TQGih8DtQWgIBOloPAK25Nlus76rf+8axYWY8nfy\/uZNnyP0fGabez7\/+8\/9rqalhBkgAgLNCzaGiAjPXnV2H\/fava9PFKTLzyQYe+LC7qzjur49ys2\/35Fe2+VV2Vu09dPNvvvJfiudRUzbb4vA\/X8DQldSu7BxxOFR+iW\/7mEQ3+7Qav4ISw3Zlcej6TmESwLmPn8PIIhV+bvwxoN9hs9lKGL7kbokBaUPBQT\/mNtCwk+Kc+YJNPqi1DQyIMUgkQCYAm7wBUfWY7pCSsxda\/6BxXAY\/0CZl+v44+IzBIXGhP\/AVNPA\/CMDWa0A7aywAlsQ1IqpuCyW44oZmgAze6Lz42xknLIonEUdJWHRu9e2KE3JrvkmkosnwQQO2f1RuOkyJD\/Y3KwGyAqzDASy5RJ0aUTOiSlOpFKgQAODbMfNUbvPNW0obYIc\/p6wXbiG0uj9uexoAMtXrrbb4dtKOKR3BA2T1\/thDbd6RAppuKAogw\/dvemlkAIB5T5MATJ7hzyeH09bbXz37k72L+dQ0uYuecZn1FKaSIVXq\/vP71+fTeXbXOXmYGZpnyOK12892sxP+83gf52beB\/Tm7Gvvcw6nYNjv\/qtrfNHFTP\/wpTj6z\/ypBk6TIxtdWBsvZmwd2DG+\/qOg2JmA4YB\/eaABHvThFPZBOk0D3yD\/kxshA5ycm\/4qCX1ZaMLV5dfIPvbbeTLuN0tNvHbKbRKY7vO12Z9+VAd\/htNyAFVqbiIJB\/852C7v0N9fABDcNmz6VRgaCBUAjABkAJ7o3LrrFXvqW\/AkwqwJFp2nu\/7iDovmmUSiS\/bCBxoM46tTAt4SNzVYgxfrPyB7ZkTNjCJqRKVSIRECAII+9my\/RL6dpwTJef3lc+ECxuGHEB7u\/AMhQIZrMoTirtU7d6n0Im+zVb4l4Du80s9P\/K9FHuf6frZoDRosADXAnGKAPV8pvm3o50NS81J1Np5zJwdOzcs2\/945pu2+pxh6n\/nalWLvTXaBeedfALCLt\/M4+crdS5FzsQE40Js5md+qNjuHrw+fw4Fuwc8uPPRfN\/MLx49hcp1mV7tqtM2kpmF\/NcAHOMlR\/djkjRim9hlG6LP5AwUb2OY3qTRsOHD9JC7UcBQjMIDmQU7oU+F\/e3+mxqlTRZuu+TCjRW7AA\/T0h8Y3ECsB6vu05cNL12ErBsQihMYhjZqzXwAtBw5Wp+MnoEGwjyUg5AQIAP7ovNT7p56wKJ5EtqtJsOjc+tvP77Ao3kR8VQh8QEOfH17cewPOLPHYAjwrwBoslsyMkko3aGpSaSoVQUgAgB9+UPf0NncBna9S53Z2O9tmAm23tz8\/L6UEBRi23UX0Qgitb32hACGXrM7ni\/f7GgosAN7VaLcB5txmcqEMb1K5q5usop3jGdMj4OvJ3\/7Wv8m65uRveGpnq2quhFInEcwhafpfdE59Y1MPgD7DrnefzBqa7nP9szl839XX2Z3sz9rzw1cdEubQH4APOv4SJDTwi\/neSbk3+CRf8EfeTg5S+Vl09t+4NUDDF2TvSiX3msbtzh5fhtVGfOow6ry+WsfPf3s22ByOPjPFamps4sOx+GqO0xv42pMAStALcAAAwEko9Z30GOPhBzr9QB1FOes3Z2YASBc8mMilCcJhSYXT+AAYR8EAbaiGttUBpgGe6Nzj\/e5P6Mb0JcKrs7DovLrtV++wtORJqJkJ\/gEAAAAeNzieCVjD88KSvUSZEZWOqFQqlYpECAAAxCMArgA5TM\/ff6SaoQBPtwfVOPuukHMbChkgK5ez4ycrePEQusnOjE+z3TPX6RnMO3YYIqYH6n+FsaAdhsYAMF311pgC0Cill0yfD1mJzqYge5\/TlO7+z65w9kNm\/U\/irCt9+B6mu\/HJqWv6+072zKESwByg6POrnfy99+0+1vN222D3UKfg7WbbQNvqzzoZVfWn6vSFG2YDuPh8aNr7nP39lCwQ0\/9i1D55awA+bupgUmnkx3Kv\/107or86oxxH2jjxXThtHCJ1dtp9fMDesw+foTobj3\/Ahr62VXsHzlk0NYtawl3gcl39x+n\/j4AB\/y6wSQL5OSs5nJzwoA5YAQQ98cEwgBR8FIyXCvD8WCgdG8gEZiiIWQHe6LzE2\/3sIZfkSWRenQ+Nzmu63nUPTE8icTU1fGE16KbuTaBrPv4PYH4eYFk\/CIgyotI0HUU0lUqlqiIAYCbbgieS\/mWmp+wPP598UtVbNLrtOJScFoIPaOJGDl0hFCD7Tvq09c\/aK+eltNZo+WdKaaW1\/Zhvv6bWMm0KAACAiB52f7mpbvZUVavOS97few8b2tk\/Ndk+c76YzZ6TcFNfhn8Oqfn7vmv\/+vRkyxR3P39FOR0+ol96TjdYDgfjuw9+AMd3zr1JzRsgEWVsFHx3rONndfQ7GjZnqlqcx862HGrYrU048LaM9yQAQFGY7xvXQPu7iXtrVPWjgQ3EZ8fV2lTrhEmC3gZIXwBuGqfPOJErXes04BM1Y\/07YaD9mZ+W00cJ7M8CEMBwKurF3Qr\/AYAAiua2kGEjJLtvotBmAANAowYAHul81e2\/plsNk8juIrRSFp2XernHHUg2EV\/phi\/6arB3zWcMoP\/PgwE+8DcdoFeANXgklqhnZiMziqhUKpWqSABA\/+nJr2twt+fKBxH5115N9gqTJG9YnaXlIfzGBS1ei\/et95opOYcud373b7hV3+Ui7DXA8zfHN1OfKQ3I80z21At64CRfNTvZXT1kDf8tn\/rHrtfrlsd933OeM86c+9\/u3t377NoYvn2mhycLyFFfys8uMukGTnFNMtTZcxpgH\/Jiswd25z7At\/E5GhVNnvMTMnU2IL7P2191m\/fbnHZ19if59VFo8iTUseb7gQ9T3sAX\/bWHXbA5m\/1FAXzIITdMCkn7Ox\/2yaY4cA\/7kjleYfwC0LCLrXG6OycuGCdlNBpYSsEdiIU1yy4FbMA4APxHzrlP9NeEn5ymcAFA8OP4J7XYg7faIZmBAJDZu1oyA2yawQFPZ2dTAABA1QAAAAAAAMOtTEAFAAAAGm8IaRr\/Tf9O\/0n\/RP8+\/0\/\/R\/9G\/0j\/WP9E\/0v\/Td7o\/O0mCbVCJ0KkZ41h0Xmr22\/tKScOEd6WDV80S9fti4cNNI0vvnsD3NxgWTKTjjKi0lQqlRpRkRACAPx38\/cLt62Y+JnQuv3vnnVYIYyj\/+qEifZD8IWyqrvntqZ3yjTNFCBDid51\/d+bcp7WnaQHAIbO5zVt6h1aXrepmFz5bvZ8smTm9EJr12aoU+J80X98eudmJnnPlbRIPnWQ9OmNd1MPczY8VP876ZOH8czJ03v+CaXhp3HY\/c\/Pn3+dzW99muZ9sh+q58hHvXlN1Onne2edPvwAHHhHwhi\/fG1IgNxbhvNtbJ6Cc2rYmvHxfXISxtl2R77CURgOkejVmWOweUxnsXtMWnJ31kH1DuIIH07XMUNZfvOZRcCPEwaUWn47hARrHTjhFE6EhXcGZeAzCQYSmqofknotDPKyV3GgcapIbGyzAtjwAZAVvuh8m\/03W6KziTA1LDov9XJvdzKCJxFfoQ9fYNtr\/8hnN+aAw9+yAQ\/fgQowWzIzM6JSI2pEU6lUhRAAkH\/y0ZpkrOvUJqM+r+3EF7yUtNlYG9pQ3++VAAwZk6mOrLtQNAMFcra+u\/X6L7roBQZvqN\/9oLnAOZ2Sc878DofqanKOYbJ+OecXf87wFPPck83pM79kd7oTFafnU7k7+zf12+ecU2I4WWRe3uyThmdXf2ru4t8zHEr+aqrI3l1NAcV+3FzdTW6APIcPAOyhEeztn6UN\/nESSMY6Pv\/8+3FyWjj9xbmPf3GrF6L+GN39W\/0\/R18QKeFk5N54U2a+YGOnj6ttseM1OC7sMbydcSBhg6T+AtAI+\/HvKxwlVij7P\/VjAH45B6qS\/\/xNfGu1Pj6s4deLDjSZMYejQOFD4qHk4QcAGNBsIgEEmuA7H3AA3uj8iPuvmmOYRHpmDpHOV9tK6rtbdrGJuAMOfJBzUnj5\/efAJ5i3AGtQopGZmVFGVGpSqbCiqgIAtJ399CFGjXmTg+Zoc379brzNRdwbPzR3MC6+BEoGSgi+zaO+egyFCRzdM\/3N9nluZQLyS+qLnWIsen53cBzjbB3ETFWWfZuvLCY5nOw9X8Xwr+Hkn6fOPtMPRR4qv6oed26m0OSZ7DlblZsmws3ZUM\/H5L\/Z7P2NYrS\/6myy95kq7Uqg7ybv3rXZtWegewMU9csD2JD5mfccBoqNx3EUJ4eT9LX\/Vs6RD4CkRl+dnD0fABAHzPlRwls6OLcZzvadnIT\/+fihawAcd8KVP3Sq57CtAgA2CfAezR8AoAU7Z6CHV05gG1XidP5IBsJWcuYAHkiG6j+ydLSDlQpyuFABAM5PEsoNrNQChIzSyEAOAN7ovPft31eoikMkru8W8ei8lpuE5w4Eh8i8\/lb4AwAAjbd\/7U9gfgLAbP0CRJkZZVIjKpVKpVIVCQAA5gMVqPo113gDsL1f2lny6nalo4McO7\/zQCGDz1kAd84dxmrDsrsnZDrZcNdfjt0id6AXgDK1XI2fg6kxHj9YAGwzUPvQv01zrmFPs2dDzrS1GRxxTLrr9zvslzu7hW6uLopKeH77mtMUVH82xc6Z3PC5z8lsPjubnqvqQ3P49X6y2ex9ce\/DHmAXXfA1HOWEcvxUSyLgegEoOW8SLBhvalOcm5cDRxrzTyD5qgK6E+p+QPf8zcGmgWEOzJ8EOIlifaD5+cg4gv+1BBCRZfXzp6K81M7CB6rB7CKKwBWSa0qZ9Dj9qD4gHP8+QGvFspokdMZvKv+VALD4kAZoFhoEspPPbHJQIGMAXun8aFvJ64ROdqLIdrkFk85Hu0pZd+gUh8juij98Meaw8u9\/vEyg8Xve7xJuxxOC2foLyKj0iEqNkqZGVKoiBQBoe4lXnbPXxkPQnv6w4vMKFI4OGvo7AAH5vvz8JAMAdMH7vf96XqNxSV\/QG0AG+PP3\/PFiyg00ADDpzJmBmXsaDEPSOezxD86Guqgcqsnpd\/+Lyrn\/DZWIvfrPr5xNX703h0NNnengNh4\/hjMnt1P+nXf4vD+VVx7OydI0+9SPnEPRLzaW2UdHaNDxaC0nDsB33+fknX98keiFXp2Mzfys6H04\/PfBQGCdKCULACZ3JXwNF1BQbfEhRyL5+QE2RQMlmC++t5YPx1I49AILoLtIQNqUGRoe342RZKJ11IG2VBfBI62EFKZjFYnj4ABcj6ML2+buAOzcYDuUDwD+6HyUrbTnDp1gE4krtEJEOj\/qLmmtsMjeRLYrFnyBPd8ebz5dAvhvpxa4eQRYhwLWTweIMqPMiEpTk0oBlaoKAPhTmk\/F7oytBV+BOnmanmbALzpfHC8kTApd8OMlXzJIPmtagEnuwnuTD9AVoKOlvfdhy7O2MZqBBlRDAgD3OQ1f9fRXJSdr11sHquvrqqthfN\/x52f6Ld+m4fN1yH9n7up76E0iPFXsOqPIH873\/MOP481XSVkA75f2\/ZvqniK30+PjA6Dn2qeXoX7lEvLkvyDPZmcjT2u+PzecDYbN3qfzRxUA\/3NT35t0fjjX6T9uDeGqiMFBhxT5eTi0cGrLnbxHP5xKAxs+tQFk\/lewuv+u7yBQ0AlF0vuGvfvjgg0AUMcbwIL9ACerIyWwwFHYAiD52BlwzF24LwIADQgATG6iDgUI4A7B0eZAH3AAPun8aauU1kJ\/M4nsoiOodP6eF8lRoZ9ZI\/Iha4IvFnMyT77TAf2LN8cF5g8B1qHEkpl0Jk2lUqlUKpUKKQQAhBPD0ZxvMxgbdoaX79xcGyIw+nTp+67XB19Ki6cU8JPwwsqUtODPPB7VN6nWU73nKW83mTQAFKzj+te9TVDoDZh3wkXRGx\/4U\/pfZ8bze\/qfew4NuwYOOl81VMPASfM75yv\/+ekE+LfoDcxL5wHucz7ZSdIMswecHB95Z7eqd9G7hq\/86sPsM71n33+Y\/IIv5cA5HPa0SXLbnN+2yUkDAxSSf6TDYH4s7IaGL5LftoD+z0\/xn+MKGmS97NcqjTIhfj7+M5jvBaXh5Dk++s5+4lN1\/KA\/PMy+luUPw9+PIkctIIDqwHzcD2mDX9Hg4QOovl5wFUgWYKoHKmIBg2yQRgBuCMChAR5e6fycTim1QlemQWR3y9QQ6fyYDqnRQuc2i8i8DIEvFg1b9ZsrAB9rBzDvDFiDGkvSGTWomTSVpkAqFSkEAHD0veWvJ3faQUIgrB63+0MGP7eAX\/Z479tM8JQcioT+JB6NL\/uBUqZUkP6PHecGgKi6BoCzU9QXuRQy0Ns855\/KrmtuyPkic\/bMaGpP\/zc5B\/aVDExD6+endfxOTcG\/9IGTa88vZ\/qaA7XkvJMv+cF1JedsOABzoHufKn\/46Fh3H46Pdft8\/+8B9ynlTH5K2fjDUjvnvlNejixsi53VAwN4pnz0PXvvfSWgffg60JvDzJnKJ5s5jNnW1COwsjpxBPVDDoA2iLmHC6S\/h+9dInHeKQeE4R51urXhME2Subf51IEfis2NaeoxVah7b7n8dGJHgmrCtghQ5ZyPKpEmYEBLaEWgALAGPul8rFcZfQ9XG55E+ptSMOn8Wg5p1UPfii+RmQngA4ylx+v9fYBt4+b0cGzMenaapmlqRKVSqVSqECQAwPR1OWvudzmv6ZhQopXXQ4536bLvfJdJ7x00lAIZ\/73bF0rJUCCX3vLk5PXSPP\/3eM7O+LKDCum82pKBDG0qPedj7cHmTibf5\/3uNupxfnocqb9\/2df\/sGcyofd0f\/LKKe\/Kw8sn8cxAZ\/Vu+PlJbhzjdvuoAM4MeQZGw\/Fv\/O6s98nNF3RW0RuMcF7cKK7DPuzvNACDn+sM939gfkmSOSgzyY8knH7\/APmNhmJgqr7KRx+GinUKhG1IAKoYkv5BQyELOicdfNTNLN2PTn8v9xbKUmRF6OQ6ALmWrtXA\/VN\/\/j\/5VAdDgYEyG7eMYDgnZniOayecKoADPvEg7jfh+VA4wAdQH6EIZOoAXun8uJ1SxJ16zSSyXUQrzKTzZ1mkzRkWQSOytTL8AgDwdzhwcxqY7czes9BRoVKpVCoFIiEAABD36GvBfXs7+UjdZW3BUx3eNky6lgBwC1TDWDSZO2zil3jNK7q2dHA0t9IBci\/MFFBfP\/29h3l\/n5ZAAzXmmgAAYH\/ifr\/bc8\/Nj\/nvDdCnC3L3nV9dWcUcfpz6Yu+d08euR2e+sdnVGCWgB7Pgdh9nTOP++ss5dU7nXb0kzM46r2Pev546w9u+OYeszT+\/ftO0yf90ieRHV25gDyDmvzmcz8fM4ez\/mTyu+Z8cn+vuz7vveTj4+cwHgqsPgNiHwUPRVO9OXi8nJ3sHKzcDh5oDn2Iy8otxjul2nOA4388S4nPbgXE6en8d5ujv\/sfuY917eziBAnhh+Dc4\/frgg6SPOWkNCAn8WdJAyTg+46B+tFYL2hGaA4UswLYluBQgAD7p\/DUvMleFTraJzMwElc6f8ZAxm6uaRmS7iCpcYa7vgHl8\/O6RhZsXzHp2OjOiUiMqlRpRqaoAAN3JTq4\/vWut2nD98hm\/u+W3Sq0oOX9ELywFyWQK7+kvHnJOL8A6g+md3rS58z\/js14oEieluOvb\/\/47ODGmMfY3snIqTzN9904PdL+9T\/\/+Z\/Z5+50NTFbRd+Z9Y\/88JnyHuTrzZG6oJ9hrOvbr2wZ29bh438o\/xebbTLHPDFk332724VQnxe40\/W1TVO\/DFNTJH0BC8tkcAPgrfds6gXcCR8Th+PP2zhSPkAaOKGj76\/xPB6mqmiSepKk6bqXhB0h0NDFa3q\/8cagKH3\/AfLyBr0kulaT4sCyoe+C79gDYGAag8nwBWuofAO++OnslOjlyICANJEREgPro5ES\/wTAAGMhAtjZsgMAGPun8XHZp+woEh8i84oVJ5+Z9kuqEbjeIbHFEDH7AHMv+260BAMC8BCwLnVEsoqOkUqlUKpUqpAAA88hch5BbUgW4BBzb7ezsdBPx7aQNhSDskIiqrlejKYRRjlzaV\/c\/Woe1Pk303FopQiUP\/PrOpgPTAEkl1cm99xd5dmmF0vLkufD1ADRd3zMPx2r7z4d4AqebU12Te24AfjScPfVLGl56Kjub0zvHm0MVL0lv32GQmlSYrJ3Zw6FX9U3J0zTl6b17muAd9uzEAHLdJUQe4M93thPLaw4DUh+uPwyAB2BLXP8+LH9SmTnT1vztpqH2Zu+QzZcGNCOSxjxecfwrX2FtsXqM+t9Xpz\/LyckppQG26I3T0TQavvKBl7Au8HOB6knhTn8VpvcxBLqJB4EDpAZy22DxMzE\/WuGVRHoDJrBTW6EBAcwxCwYAXun82g\/p9wxVsYlsxxUqnb+WXdrsrp8MItvtuMIPAPrfJjsAAKexZGZSo4wiKpVKpVJVBAAQcwyPlLEhA4gHQJSLyMKn1+49YU4MOGUxXV0KD\/uCPp\/T9l9vO0UvME85T3Tc9u0Yf734tF8X3+fAWIDGn7\/eAmidedwaPfPdk1l5mK9dz\/fjZu+qHubQRe9zsDVOvu+8r703Z3cCG3bt50xr4PRm8Ol\/rQPk3nt29Vef32yu2bvonXP\/vvqX5+xiF\/86+xwA9vz5\/79O5uOz6o8f40T98Q2niq0mq85yMhr+Q2wOQDVzfy\/b2nU+uyABkg3DDtkp5X84fVTrIAES\/Q\/jvnii5fdO1rGoX3\/4KODQLD60fFMVWBxjwK1ipZY89xc4kA7+7Q65v5CU2Dm4HjQAkBc41XshsfDATAMfHnA6BmSUewbcngYHFAFPZ2dTAABACQEAAAAAAMOtTEAGAAAAQ98Y6xr\/Tf88\/0L\/Rv9C\/0b\/QP9H\/1T\/Qf9A\/0T\/QV7p\/FkX2WcGIXoS6XFSoNL5vR+yewv9GCaRfpPJMlf43NUhgK\/\/79g0nGW9CMhORxEdUalUKjWKqEghAIDc6x3Wf3fvn7n8Lx4feLGddIR6PgybvhSCpxBoYZw3H9ab21ubgwk6j\/6n22FpvU9lDZQ5d0rP4\/Zx5BKF3MqfKYABAHYfjlpwmvN2Mod9BlfXc7urO0dVnHq69m0w6\/wMn88Ptk59ePbdB4D8a+eM\/3FyTHG+pruBs\/M9Q\/6\/N\/R1cgp9b1mpnRYzVU9i2oXS\/hirgq\/JGIfDCQZfbg7ffzQwpY\/rTErA4Odh+Gn1PudfB2ccztgPJ4cDT0MNXZ0+cdRjX7XDGsI5R0XjoVo7a0n402cEG8vHoOrOLVPqkFj8ZAudYQDYu5LNyfOR4P2GhADAT80AguA\/gKyY9A8Ani0\/gzbIjGCcktxAFyAAXun8XncZ1UPXjk1k3lICk86\/5yytCLVEiMwSfID50PjbtwP8H3DKrCQ1SiqdVJpKpVKpQgoAsL\/djSYSkhKkBFa0JouW7IOP3PYPtr6Z6znPM5lv3f+DG7Q25TYzLoV9sln\/UbiKKfb9Nibucxz889PbBWCGKXc4u06K16NvsumEGcPzMm\/\/Htz22Gq78z7n4aXobwPNgfNvCebP4fXaHyBiymM597KfB5uieBuglZWvxvd\/nGDjndrD2T+9MDAlfgfYw+3g9FmZT2Ye8SOWocKP45aNxJ6vTtg7NwD4\/IAp4ACAPhzA02X2+MQPCwgDTD4oeCw\/XdSU+tA43Q8uVY25hI+vw+Fv547bD9SH\/1dw1vGdsxKyHIAMf2h97+Ym4QLIBJ2cV1T1A22gDQnZOgfAmUCmn4GjAcgAPun8O8+ynVDHgEiPIwCYdH5eD6m9hygZRLbjD180oPGvoycg9l8WmjluKjBbrwFRJp3UiEGNqFQqlaoiBIBHX5Wb3NMRKhR5hr5TezvgcwiPjW1ue6HzHd75hctZgBJyAALd\/\/nIbVopdPe5mT73Rp\/XqY++OZMzFMFymYRCQ50Ph\/qkMndl7g3yd99POlT1A3BO5Qb4KhWQkJV9QWbCATKpPRtd5OdDWU7wHHg8avMvzD6QX8AGAMic+roPQJ7MIwDu\/mIneJw7SJAmJUr1UH8A4LAPnUr91H\/9xT8jP8iD43ajnvftZO9i59fcEUI5\/bvwMxgG7zN9+B+2dqreeSfnnAZf9fVSOyVOhFj3Q8JRxsc\/lqPENZz4zyAQtQ9OzjpZAP7J1fk0JAjqus4ScYDiI9BgALZmdgOAEFgDYiAAPun8da6yqoWqKXKkX4bFudL567bK9BY6TSKyu8waPsBmr19\/\/wE4A2fWaTqjpNJJU6l0RKUqQgAAeB+NkfznDAFfgtvTi9EGdu+WvWdajB\/57QeTCzD7p5Xr+50Jz+QCDTWgXU5Lf1ryBrL5+XCAdXwsH9n2cb+VqJn\/np2f0X7mHFpGHcfxA72Hnnky4WzHBx84jOJvzs9umiyOv4b7W9eceMSw8wsSZoOzzjm7Mua72l2f4mDXoP730frKzaZPX39sGPiKPse62P\/94\/yvfKiTiH1zdOpFfpyRX7WT6XQ0Dd+qxkWd3kBvNpL4AGMNBfuH\/Ae84OuMwrFiU0XVFnMuCz7s+gfMftOx9OnX5zEcF4re9jwJqnW+zoBOigaAV5w6CQeAhNfk\/wPUkjCo0AIABgAzeOuj4gdgVwPADPSqAzLaAD7p\/OelS1dCnREiMxoCk85\/nk2aEroWIDJT4AME8m+tK6BsuA04Lms\/IKmZjCijBpVKpUZUCEECACyNPxdb39hKup5kww8uL68phdJOGSPbyixM0FCkqT\/caiDvjLuWrvjy7Qe9MD1wJ7cCABMcMCzpuTDNlUBW7Wsz4\/qpu2nn9X+nqWtg+DpcZ6qKOc6v8aki2R\/fOSZ\/W23Vaa8+MHpbN7sAph6dzZz+9TWcpo6Gq4D6LQAUnAYymSp49w7e\/6uwe4D8dzu3fZxxY7Rk9oF+e1NW9yub\/2CfKXad3MCVhh597VQ65yiR+DJiADYeXXwsghHYr6c+x18ydVwnh8Ote6f\/XhowHLNFWTEOp+G0w5Gpu62Gn5YJyMAAVOcGWABaOGmjBIvtbD3Q1AE8ADgAwwIDEYmQyMYMDQaycxhRAD7p3Pw6yRa4fjaIVGYMlc5ft1lWzNDZGpFq3fAFum5\/97TNgfFNCnD6kpk9Izqp1IhKpVJVAQAm0Yb+VmtjnQA+Z+9qdULxN3p8\/z8G3zCfl9LJH\/5x3srk3HJh7hPl063sy\/nx\/brbD\/c7J\/kCKAao1H\/RyTk3mMtU8icpqqohu5lquGEz5zBsmrvZAGSePkndyWR+UZxTX2eAaXon51BAvuQ5WXlubej6cADI7TbvbMxz5hcz9VUD56urC2AXCXt3949Nwhd+OMChks8mu04eF8PAGznv+PPh\/yv96kjCgmZ+AvYGAXX2V8u4KAAYSPr8kt0VfO2ozK\/15wMqCvafYMZsofffdvUSMLAboPdHzyuU+fhhD1K3vPpK0SlRP5r8KuHnAwDE03DMzGFsrRdgoHLBDwCEos5lgKNh580GwOUAcAQ+6dx8O8kITwyI9NYNk86f7SqrVehG04j0W0INHwBW5d0E\/yc4jSXKTDrpiEqNqFQqVRUAgNDTs3KNg7N8Ca0Pvfbz1PG0H0qAjb\/9YPBtcpnH5L41LFrP7M8qUwcx3e\/bma+PV0+XszdN5bAv9uvwHXMGmE2fy9zZnZPV9Kn8SvYfssncFwUOJ6yx\/Z1g+vymSvTdmcxOphOa4rq2c3Lczvw2ZwM9nTOczT5\/NnPD9IZqgO9jfvRmN3Ha6li7n6O1kyNozO9gyAN8A9+mTsPBEvyL7WPtM0\/j6x0GyD2HLOkZWtsedvHFoeKI7NtCEE4OQgsvhxbeC0g57\/a\/spxEBOe+pF1HAH7h4AQC\/nu80r8NYH3qOQzI5WEATiiHE3Rc8FE0VpPC5He\/EvkhAT9AiLKHDSDAEKA1QgA2GwwAPuj8aV1KENZRQHQAJp0\/11V2tdCV4CZS0Q78AJrE\/Q9uAABOX6JMakYZ0VQqlUqlioQAAGD9WKS6YgDgChCF4FD385eJ0wnDiJzKW8HAxQ3r7bw08C\/vLrfL1MdlbsW0ztt+W+ftm9zG2WfUHIY\/e7rhXVJflZnc21TKZj1NBTbMFH3E8FUASXFnDfT9Ul\/fvms61WHDyexPJcmVbE5nF9xZNw1str++RDL7k1Nw8hyAo9VsLdXi8SGVE0cc53zPfTaigDnbtE9\/DkXBKRp35X+TEnT6IVJ2+WCGswFKf3\/VTus\/3bsBspLyF4f91hgS55zcYHPs4b1oHZH6u0PeJG6ZfTR8U+6aJciW3dyy9MUeDymUwo8G1lIJUPwBzFLq178\/DgDnAC6lFm\/GxQHc01eMYzjAOGUAKCeATd6CgQjN0YDsYgA+6dz8HGW0SMtMEJlxQIJJ5+\/rImtF6Ft0kkglwRf0aMzjUN0ATfuvHTizWZsZZSZNU6lUKpWqQgAAmX+a38M7+y\/K+\/L96XDA11qMv\/rN5eb2JN+e+7S4duef49JY7LMmk2lTFzlr2j7BzFSwZvdhTR2PPp1bp+xTKOznvOm4+9M6vtrzPjPnuA+pjK+Pi5mZ\/ec8J+eyONif2FN1+uTJD8xn1++4vqg83dC95Hsgh9MnJ+F0fuCwdyvV+\/f0V2lgYF4Tusw2\/0NvDp77HKGGKklCMsrvnNxc+2Dm8T5Ub9j1+Ps+AKA+9HEKQofAphNg8wU45+Fg2RzgA7sOewh54eSPtjjMcClhzM7RS3yUnZnubAXA30mA1o5cYO648Ie\/QiCt4A5nyWavh3Xg4MPpGDiJZBy6riSd\/jnBlYCDCgwnAIShiPPAYSDWAkAm4AVtbAA+6fxzmWW6hm4wifQBVDr\/3mfZUwM0IrXALwAANnBTgqhnJp0RlY5omkqlqgoAAKxAoEQhfvVpGG8J6pW2d+62oeBDL3gFbKaQZ8rU+nm3Gh7+ZWoFMlNZzFOn1NDkTHBl5lB8dK76475WxzBuY2wVyduuzKJ3MZe6PxzBrz5T5xxqrt\/8hg1fuzOrnl2n997z8czU4Vycb2ya2vSvuWd3ApD5VefF\/VzFULk3X1nPie5kKt31rTb8KRWwDww5nOfutDZQv12M9d+icu\/Tk8XZfLbMnDCbmhn14kerGU7\/OTkBDp\/gn2PO4WzOTvgqfE7uRH2Af5Fd\/WNiWuq+nA\/E904G2QPIAz86CmBzlTQcoJByfzvEoNG6QnWUtCp\/AD9ocCJQVp6S5wqPAw8LoLkgEvQQU010AxHdeAjOAWYDAj7p\/Hc7yeq4WiJEqgSVzj+3Wb5eQaIQ4QIfMO96uvXbC9w1TrREmZlUKpUaRVQqlSpSAADq9K17BdF8IPfIkWkM\/rV4KLncuP+n\/6ZQ+jztl9Mv3XNhKvubiVbK99PAPs9dw2HSm+8\/tmvv59YpZaZQmFsTH\/6GAyc3N9u99z57f8j9z8dYhk6dpkz1Ob0b76\/umSKp\/gG7kj1qpqeqMveZv9ibW4Auqtn7Q28nFzlw+Hb2Szb5Bw67zmenAdFQpHsnwPk6wNcfx7HkdNh9mH+fnXBYKL6d7vfmA4wvOpGTzsmaGacW\/zlWh4+vdyr+c\/CTTno9YEEOKJtz+l+9NaSe0zE4Lw3NBuztxL8aAfiwOHA4x58feT3X4z8OsouzOL0dWCcWeH91wyfxBgTMQAkFDpA4yMAZ9o0AwjZgMgY+6fz3OsrTSBKIOAQmnf88uzydoFWIOBFOV\/B3ogE3X8wDnKVnRjQdRRlRqdSkUhVCAABCGTJOTvMz4VvIX3Kd9ZwTPIRclIp55Kuz9aascwa+\/jONiVLOxpNpuWVyIau8KHYD0Y9mM5vaXL\/3P8oY04P77XHe1P5sZeafHqj7O9AMxZBwnjyfrDw9w9m\/+U\/uXRvIgn12wuGza+5N56kfeTabOsUMSj9R3FBDOX5+\/nv8+TTwRR0ANmPi0L5whYsaahrr8Mm\/wcVOwd46JMEHFAfQhdHv2LQZggB+Dj1fXey8RZ\/c5XPrB+zzDQAKYBdjv5RgGKfU+7DHnz\/O\/Vqrc4LwZ77\/GAA7GpYlPFy84X79oTqBo\/GPQ1EHuqn+xsmmPB8AQBvl6GQ+NJ9S\/gKQRIISGq5WODmDiRkg4MChVQcABl7p\/O86yttI\/QARg0rn\/1y7HBtJAxEHwxUFVw2wZscCJxtUOsrMjKIoolKpVCEIAQDkkH4t\/7hL59seyPL4nu9tT9rz16al7vmw3x5SxmdTL8kXDx62uc2dhSgtlzfnz0bL95qi+0lPH+qza84pfv1534Zjms4c\/1XWT3P378H\/H197idq5GqnNo7fCC9Rh5zlJJb9zKvveZ+p82DNVzZyfzi06NlpU3r2\/YCprk5UA7wzHdAO5OQeKr3PoRv5DqbA2LWt4piWmoY2G3BTMlzAAZ\/xjQ24kfptOmKGrgaEO1ObBaRV3Sw7wbw5DcebQm3H6+HByzPTHYb4uDpVKgC4UZw5g7MbcqgPk4ENckzfeU8UZ5chG6cPnfkrHnJPKgb\/gqqUAJ\/7\/49DUBq6B+ykZgNM\/A+BgY5HPAQEnYCAGT2dnUwAAQD0BAAAAAADDrUxABwAAAGHt5yAa\/0H\/Iv82\/z7\/R\/9L\/0n\/Qf9M\/zb\/N\/9H\/0M+6fzfzypXmFCBSAzBoPP7Osp24TQawAMmYLrjRNnGkhpRaSqVSlOpNFWFAABKMdrfs7u70e1L8eyDsNae3\/z1k5bsOxpf3\/XD0bqsL1speXHjX3KeJybBeHGe90tuhn32vsgZl067rztaTs+c69lUNUV+n3fGuZk5FCc3bu47j5\/+\/X73afS3\/ZZbn89KaWJeHKCaiw3uH41prj0l03KZ5kWpt6H2QPt0TWfC2Tok7D\/f6NhAc7\/\/uXX359CFXRvyMzDPb5uQu\/4zHHP6\/PGz1vFval0nJwPbWjwtB7ymhAXcWwC+CCiAkwM0mLv+w1H\/GeRnnNP4HObnv5UC6mnhP8MdR2Z\/McI0QO5OY5wk\/\/+AxRpZa1OeJSG4\/CyysHMfcI1nA5BfwAGjr\/gGfzlq6KASFzJpkOka9gc4HBBwAP7n\/Dqa9CAsADDp\/O\/VZCtBSxAJ8AFzLE9\/HOCtcNOAKDOTpjKoSVOpVKoqggAACPtFv\/Ll+KVEGsJ26dy4lam267eywjax2V3yXcjKZPzjizJ1Sl7npzRy6ZaY9q8XbpqC+x9OP3rzfuqrzuka4JzZOcwRNOea1jNJwiR7YOfMF7DZDMZF0ecpoPOcHs65YE6yEezZh\/b8qM2cncCQCJjipn60qGC9GZLqz0xTSfNYevb4\/YH5Jf3KYuFccbp67D3t25l3t18lSDDBiaiq\/AD2adghcwDIDd8oik0j8DNoLqCYG4Cshg8HAmavj\/pF46ytg\/QjPIADHJ+\/3Mq4\/5NKWac\/oOpa5WYCK6jFn89OulEWgToZCAYwgMvAlgYgjgBe6fz3MckzNfWFRsRg0vnvc5SrhHxAJMAHWCwfv93g\/Q4nMzMjmo6SSo1oqlQkJACAL12ywkm6k1e89kL\/8\/pwCWXrSj54Ovrbj3ktyH3enEe\/mTblPDfo5HZQHzg86Tlnn\/MqC4ZPbaY3H38jT04yffb3ZpNMb9gU5z3dUMMfhv1nzkOlbQZc+2vvr3lzmiR798O8bKAOAANn03\/+FJskPzM0s+eFmil6epIfh0x+R333M47Wxc6AbX6qBopbfB9cHIr8MQ4nRwYcXwb9ZUZMYZgUJ6u\/utrh9A9tIae4SQEJMCoBw\/hPgzT\/nBsO6yAnIv\/Bgn9WO90kP7T4eEqfGWoAaFrZ5\/IM0kkCn12AAviNOZyj\/AA\/\/yEIGkAM6LrtJRJfDVdbEAUnGrFAAMDpUCFnkwFe6fz3Pck9HqAQiRkmnf98dblB6AaIGHxAQyO+eDvAnTiZSWcURdQoolKpEVWRCAAAeVvfs+U6tSa+tGWgbZx+2eaiQaZbR09YVqZSV8\/b52flnlZL1voZF+tGo\/HZO71FcFO5d5N7eHKg6zDzYwru\/VRSs\/Fd6TNfRWfxP1nTlfzvNIcz53DYT\/qt\/Zv97djh\/cNHhw5vHza\/raoGOCcTcnK\/X8XsgSLvLnrwwD57Ts8LdGf9UF\/8zMrfSZ8fm3MacPcr3JIFkuTHl14+B4Rzn9ehKD8c9v58oj7Pii6gfk3GnCOoOZ+eGXyCc4TTbLDRme\/oHenHh5PjiKjO9gadlx7UD+H4gcSf3\/IofPDR\/cSp92MWYHVJlxAwyI9Pb4AN1FggKgFJ9us4HQ0AGOwDTHUg4MhADEEypjWABv7n\/LUt0kOmzgVApfO\/V5eze1AyRCqaAl8A9i+39gCM75\/nBC6eXOg9M0smTVOpSaVSqSIhAACCCUbKbO9OwlkVQrvi9uGHqlz4uH252p0ueOFkkv\/dc\/Rv4+\/dP34Mxpk+2+Ptrze3ie\/s7j7FvOd9qp7OcNxtW+57ss\/GVDa9iXKAJ8HxYTLp\/YM57HpG1Sdj6hGHm8m7+hnO3smh2cyZByCrgX8\/9b++qj\/5xQZgrq7yUFSqc7vduB3c7fHzUHNy9tn\/09TZBQfo7ZutjTu\/sQGm5JRv4BzqQALq69I\/8MG5+pz\/gW5qcsGPzjardkNu2B+osh4IkSSWIx86OcGVfD6ulwUNiOGQA6f3iz1wGxI1NMxgie\/RUD\/DK2\/vh+aH8YXK\/5x+1RcnAcJhWepnKAM3cCTAgO00ACL5JtPiP2gAbusGHuj8te0yBa4fEAXCIdD5vXe5hTOAYLiCjg3A1X\/vwLwAyJ6ZNE1HEZWm0lQqVRECAKC4U7PtZtPqcXsR\/mcN2XdnzaL52biUuxw6NLR3OVAOerk8m78636\/NL+aZ1LkP0\/DZ03WSUdN3DU3Vb\/rh\/29V+26zb3eH4fTT6e7ff+rDfydDf9jKzc5DMfthu\/O0m\/7qr4LpOU9DsampYdOHb5uTWQD7fOtBOTPM5CGHHwe+5+u\/odi1oeCaZLPtFygY8d\/mdAM6fPX5l2Bd6+z4gYF6dCR\/\/o03BXtgz\/fW3M+n8r8\/2P85uWH3HNrw0XA4hS0doZ9+9I\/5zI\/6UD\/7jw8UIve1DQcaPWz2\/Ge+ar4y12uc1o+hKB1qTIqceQtg84BgYyhlwyTjKz9fcbbxI\/gQABIh\/\/14kMkAgPmhoRhklL3jFcgAEQEAPun856vLDoIBIgECnZ\/nLGuqg4AFvkDQXf78BGzN+OYKOEtmZlKjiErNiKZSqaoAAJ75xYTaSSf5xLzzq3dlavm59kD\/euvjQel5tKlMv9D+0za5TznnMvep09f783l\/aUpjPBVNz655ff78WU94porNM0zSR9vz5n\/qIg\/Pw5lKaHYmXz++JhGcSQZ2594vJ3tDe+pfw5msXXTV9+ypc2XSmUDzCiA\/OQXn0NdseLo3TNXU7OrhMD47P1pbiGH8\/HzgXwDk+dqfJHM+Nk4dUWZ9x9Z87UP5wPHv6ft4nPL6\/NXpOyjJH5z4z0F1Xn+VHzh80j+gbAEk8PMpGNhFQVvoY8CmMAD9bzHTPx\/IBU6eWP2aNNDcvXfvsfM\/jHD9cTg54Zx3hhpWzv1UpDTEThRQdMIpNeE6kPCJx5ENXXAAKHjUARowBB7o\/L41GUowAHDo\/HVvcgZBAcLCFQp\/qWE3mvGNvbH3klQ6opOOqEmlqVQqVUUAAPSslf8b93aeVk+7Hvz+\/7stujtu9nm9f301uYy7jg7XB+eL0981t9e\/\/j73\/fnhvJ17L2XjvOh6Dso89TnnW56mr7137pnucvf5n9rNhjlnqNrT9e+zsbYzf1tOPx+PR9OJzg\/0bkybx\/T\/poazh9PAmbOHvpLuc4Cf5kfzz4859sEPoz\/nR8JmNgWUn5NZv5Rb9+YH8B8AcM6BP9epcHAw\/YE9zeGrgEkE58eW2ByhV+cO6fdTZAZ+cICTUrCSl5oD+8CG0xu+Vc0kB3BKtOWH0z+kex2BBwzaCYuBPeQ20L8U\/uCOIx9cDD24Pw6E1BrB3w9cB5hM\/mIAQPHhVGGBBZJsGXBRwAEKYACh9QANHuj8vEyywoNBAQh0fl+77MABgC8w7MbzyzUaG1t\/Mxi206PMzE7TETWi0lQaBqoAAITJNC+5P8WG2Wft5Qxtnij+nAU8fufWouan8zzvl8Nlv\/E83j9vObv5snefbvt+Hvs\/\/6gf49O+9+0ppjn1h\/YFA992nySvrjYdWq3PH62pejnPzqybP\/\/NPvudMzS5zzkcYE\/VL\/\/wdOXTmTMC4DTOrJlTPb85deBwtjur5k\/v6QGG9v4nyiHuizu\/1wGw\/9vFa26HneqzC\/TFARDpk8\/L4MSxZ\/MDH3ZBWoLlnOnAGfC+RXtgtLledrGpA2DaDrfTn\/QXTEs5WLVYHtQO6TP4MdsIKsPVVL\/ho315xE7XxfxcZUeSOF3wB3bWTpqemQ+aUVZs+LYQ5ERORo4B8aeTZB+acwFOxgCZ6LCRQKtiNltAMC1sMqijBF7p\/O97lKcIPRAhGHT+unZZjQAA3gB99z88WU72iKZmUqOkk0qlSlUkAAB+BRtMuOc\/obT9nnPkpIRHPuN5bts\/+sNX74uH7azc\/NDz\/uVxT4VbznlcX7dF\/V66cfMEZ1d58qp8v9jw79O73r4E+\/UBtjvJ+Sdd0ENt\/5nJZvhzMj+K8JYjMyensNP3X3S4c3\/Nnh7t3JWH\/ehof7bWUaqO8qs6vhzNk9NMd\/J1eiCp\/nSz\/1aahM\/eU18HgCa\/DoDgAMVfvgOG9H00HwBVoynaXzoSyvvDT2UAEPp2OBtg+w9Yezed26UcuJ1sjtvNlG84W1soBZS4UB6YXycA22z7E+CoGidGBeCmLIXhYwYORAW+\/oP0wcfPPxA+wkpCFPuBFPwkvMIZGe8gxAAQcDSTAQUHAH7o\/HXvchsBAAQ6v66jLCcAgAdHp9VQSNwUQYloahTRVJqOqFRqRIXFIhEAAMT4fxy8X1h+SlU6N4f8dSEDXU+KaLscfYzQTt3mDt8fnz+93Nfci59LVrvV+9BP\/t6zfp1+ut7XH18zbjfjbe8\/HEN\/9Yh0Qc7nFr+WZrX1l\/EJ6q1mv+z9bzN8Bs6ePaz\/rcb73YZjHTlSX1O1a+AAnR+86cD6ywHgex\/oOT37+PPjVA+OfMQeux8fcFz7y9\/aAuCH\/6uVn\/zA66NaAKfjb6dOP\/w3iZLDJNmpA\/tj0DGHApBGl9HgQ3kQczP54Tr9GOMJNp\/i+I8Cjj\/kIw4n1I+ApepPkvysFpjq4YfhFPkNfwoqBa0G5ov94Bje+R+gbZ3TTwMkjpFLGGCzyXUwrQNNbXYTGgAe6Px9K7KVYABg0Pn7XuUGAQDMFfyf4KYEGaMzo6QziqKkUiOqQhAA0\/pn3LXbDdur73TFa1hZ2vYXVn019VBWO819IPdw\/67+MRU9MSy1nWs56UuP+0uy8Py+mc5zpvePie51LhpNAjn5+brfs7s\/LJ+Lvd\/+Yc5lnpkbpObM\/LfGyYxd7jqPpB\/n\/Pjs3OVjvrp+88\/2v09veg5dDaeLuTthH74fpqGUdWBtRMbb6e9nU9kJ7KH0s4VD0tKbzckGSv+hTid8Noj\/lJOTTeBpxl9lAB2bfqiTsDecY0BsNvaPUe0C2Mzvao6KiA9Mpd4cADhGu4x6OH12fLkHyqd18i6YA1WxuTDMAdV89TSQkBu4yANfgqrYLLjIBcPa3C8eYDgBFCl4gAMIUKbgfxxY8QFYJ4SYfjg0s5wZdUMfMDgH0AwZAD7o\/Ll22U4wgCAIdH5\/NhmIBAngAX8FfyiUt8IT9MxMOsqko4gaUamwUiEAgCDrqy\/ZW9m5j9VCyP6t88brA71tF9Yfwu5qY\/l5uyVwmv1OWfnO+9s8Lvtz5nxuX+A8DNP4a98ixizN\/Ph6jvgXnTSbZ07tnWya7NkwnQP++uRvoMhr5xfZb53u5F9Zw87zBdRpBr421OaXMGTSMOf0v0nyqyl6V7GzOd9OsSGHO5oGflZxvud+dvU4iz1nTiH+5mBt+OA\/UrVm8wo+KmAo6eXQ9NBs5mw4KX2AGYpiz2mq8882x\/jzNzv6Uzmb28WGac55LJBk8IFV\/+MnGljcthHZ+s7ejlWBnz3w4ZRRvhnHcJQa3ECbApkD2QcYpy987yRYgEPDLXJy9i81oY5dBg4sDQD7lEIrANhkAxngqIAYhgBPZ2dTAABAcQEAAAAAAMOtTEAIAAAAY4wRkhr\/Nv87\/0T\/Qv9F\/z\/\/P\/8+\/0D\/Rv9L\/03\/QD7o\/Lk3WUpQgEAQ6Pz9qDKxwQDAFfxn0DCi949gNDeFX4Gkl6TpiEpTqVRqRKVSERIBAJD9UNWZ7fLeQl6mpd7Sd144PiTa8kvc34Gp4RP3u62XNf9e89MzzbTNZWcu3Qf8Hfd1ZbfGcS\/vF\/\/M0i8rG5E9vz6P7Mgs8s9Q552m9anl3sntaYZpAqLeMLnrMk0Xv8PAoe6vgdl1snbtht9+64Um9yX5tgc2SSZnw70ffAfZ2UPNteld7CL1+tzAARTmF36QvvX4DvlX4yQFoIR04DyilGwAeFTA+c\/5Wj8iBRmpjro+eOFUN4qfVWLfEKyVI9kfhgGnlDmdT4MfB9drJ8Zdh77+Uxs4UCTD9wBTRdUC0iew6oFrQGM7bh068gNEcAL4cAIEQvcHKtwYA4pD2CZsAB7o\/P7oMiAAgEDn96vLDAIAeDD+R8IFp0eZdNIRNaLSNJVKpSpCAAB0afs7Mms+5nEzZfxqcClqPmh4Oav9QYh+3WrrHf7yyXlauS0vgtLPb955kcrrcWubB3kzj92\/\/Fdz7z3sh8k7\/zBM1daeD\/uwi11nN8x6NdqdWhwVp+Gi2aK6T\/YGIPfALzfmU2zYACcv6J7prKKovf3+w2m1AHZlPWlmF3VgA\/Tp6XnIIt8nTwk4ezBF8zyFrcq9u7+xqQa+AU8BM2yD\/OC7rx989+X0PA8n536o3zn9JADm8CM3B0j3R3qURMH3zFCM\/1fJyc467FpN2wmDDUA18K2ygnJyrB8A6T4ApOZTvvvwwv75sLsPlPnBK4B\/zmTUCgA\/1EwYgxMAih+nryPAIiEMhhYzGwPACkJeaI4CHuj8enRZ6sEhgIhC5+93lxOSBoC5o5PQZiadSZeITiqVSqWqCsBd12sMSx8vPNn2VvzSRwvArYs\/JX30vzv3v\/5xfvr39vHQ+4\/ftsc\/6\/s+0p\/Tbk1fcauN23jSQdQ9++qss7\/PyhmmnJ0bv2RxoIb7T2XVTur0tykemKn2V0IdHiqh7qa\/ff1mn1NTXTnT2DnGxMk6s933v84cVORA9T4JDPVg0z4kT8LKf1IUdX7s0zXMADC1Abq4wo6\/6oef8bY1dQByzznFPvzrZ5IW5XbuuRX\/1uROf+rAyS34p9VlC\/+A\/33gUFH58KtEBhWdAxYwX7CBTPGtSG+fqcvpBxdkyH+r9uI0vn6\/NpujJIAP+OG\/5KzASf58ucd1yuuPQSeFU31rPH0LHwAFyU7wQyUoZHD4u9Ixmx8yKOAQbCBRAAU+6Pz1aLIEyQRAoPP9nGRpBY2EBR7gY7gexNmZmVRqRtSISqWpVIVEAACUqpdXIsv3wGb9lP7pJArd0868b9O92blu7l9+aG3cX2kl++bmLbgoE\/ttlPOD83Nu8ZT9dW4b2qZNHe5\/l\/sNx8Pr2baeTUJrd+\/TDWx6Tu68h02Va\/Jf+8DO+Vd6rt00uV3nJKf2VV21Kznne8Le7GSGR31VXv3WPofm9NlZ9PinqR9DY9bx86qOZLjlX2e7z\/XnY3z3Mz9ueJnZvcCMvwHI7D1MHTiUzvyBvck9Pzj\/m9\/WL13x2\/w4Wsn+y43QT24Z+3NxnnM2cGCSF\/Lfp2haDYpJHr+QTZKS\/sP8HPvyAZ8n31\/4\/HNLvitAszGALrFd7cNW+WqkAv\/hJYmWYgcXC77rOMCpPgVFMcAms40DdsvSBAB+6Pz97HIWAQAMOn+eXZYgmAC4gs+zQfdTX40112ZmRhFNR9SISqVSqVRVAACy1e5XJu8OS\/3td8wayerr3x+75\/zHw5+\/rd\/vz\/++PtwfO\/uVeTOkvphIPtzkxWJT+PU8h99sOGfvOW8+v07ncH60ctPzqwvge9fAoci4OTl1sf8vNH994+Rm51efHOjsorNd9\/n1C1SdpMm9z\/6aQ7r5szm7GDHXh\/5\/sP67l+87k2ZP7b67SfVB71huhv2uNJz4LNmc3gDluQYf7KUD\/kLtQ3KA\/W0fAJSvb82hvzmHF0N9v2aKjyS0qCpKuMEnonKzKwFO36fnj5BlN32SdJozbliC0SIpOlo+NBoiV4jvPv2wAYGKPysNGwe\/glAUvbO+dGz2gTj0P7GAZBnAOe8XnWaABYe+ADVsZsCCTcOs2QDQCAA+6Px5d1kQAMCg8+fZZUGSAPCAq3bkPSFOZmZmFGVSk0qlUmlVAAAk7aca3drn6lU1+e733aDvCwnj5aVqu3d0dPsrH\/44179R5+BoXM\/rMfT1V2Vqt87g1\/5+f+W0aveXmw\/nPzPX7nufd7Lq0FQ+ZxqUe8isnXVmODdn6Moh34E8D705QImeM5weBpgP8+TkJvvs5ioKisZPkgBN0RQ0518FQHey0anO1jxc8D\/neuoAtYGHvYdjhBhV\/vcBcxfR54c95IxP\/d+pAg40Zn8l9SvEIa0N7eIM9QjN4WarAZIewAB82OUiS\/ZzHtKv75c55oD6OIHeMCR8ow4AsEsUHVy+++9zQil+nKOarxRyP9VJJ7hjxADYNBd8YL2zMX+o6Ba3eklNlyH0LgGmqy4KDBgQDlCFBpsqFMAHgwI+6Px5ddmCAAACnb8+mwxLAgAP+Ct466PjyUxKmqYmTdNRRFOpVJECAIDPQ3kgcu5Fmteq7zCx+oSP+Mvv61n\/P8WdrfOHyRfyh61a3rTfnO333M72FyW3rclJS7h7sqdrn+\/f2AdeNxoSnvqqnfWZoiuB381MF3X2\/dDzO+ckdwG16UnBwC0SMj9wcGuHY1Mpz7mX3kqbZwzHaHz+ceq0q+r51jTJYfP5409k7Wols\/jnJ7s5gOk7VX5+jhU\/LBiurQMk6a+sdmrMt+kNB2hmzv8axyTw7NJOKvWF04+FmcOBkRg55wfVDroSp4\/o961v2z6boSCLqil0w8DuT+z6zgII6uz6qjoA8KEbmf7BGOWm9fGvGgCYk8AFPgOfKwDJCdKGkgaEgCtvGtUhJDAAWUN8yQwdOgoSYEgCwAYe6Pz+6LIgAIBA5+fnJAORAGaZOaZUOZlRZpTUKKJGVCqVShVSAMpALdbfOdxJCvnisDc5BSgET\/djvvXvd87NV+v5v1kE8K2Ds2k8Hjx4wRZyP++LNk1N9bLPzrf3t92Z9ON5lAXXx4DUxLnbcA6nmq5Pcs7nQ6PM2syZf0HV5qN\/+D3Qf06e7jbRnIv\/15kzxdXpvgaqNs+wme7e8PWbzxx6n8NUzWS+6cMwXZmL\/nU9ymsYYJ8\/ydZBzTA21MMXQEIHO96Drz9OHKUFFlANfONs+OHvaP3kAGDzRSND\/foJCxskLSWf0On0Q9FDPK4BgNxsoP5lyfDBf8q8bM6hWt4sfP34\/E8sxydCfkXV2u8Y5uN7kL\/yvSkDgKo\/rxJ88FMPrlcenLF2KDrXSHaG1AQ\/AwYDBHSDAygEAB7o\/PnqMiAAgETn7+8u2wkA4A0yDOkb5nvJKKIzIzqpVCqVKlUhCAAA3l\/NvDb+fA5\/ua4vIp9G7+6RgQc9fdmxhz+dbeZkPqve9us\/jKrT\/PnH9\/3q+8ennPO2bs+osJ6m\/d7Gt6Y+OOtpjru\/TpW+5RRdQzF3Hn\/bNSgPfeZb0f\/PbKhkT88e9IAZQFZ\/P0xrfl395bs\/\/44sOn44jenLDHPy09lz5fwGmr2ZHnpvDncmU1Mclv8GOOyFzx++BHSD\/ICgOGzYzG8D2w2H871T6BMvPsk0Th8LpzC5SU4Sfqr+PtRh2OM\/mwNkstE+PwB2c+9uBv4XRPg7LX1qfzj9R8f\/vgJ94XSsVdQgcTIG+EkDyhKczRYsj\/vRknxa4OfGOIo\/XE3OGXIVPAD\/Jw5d\/eHdmAKQFXG0CGAdlQY+6Pz11WUqAQAEOn9+unQIAOABxcbzBByK4+mZ1CgqVGpSIypNpVJVAQCgrPZOl4ejUb45cH6deHgVrMu\/D0uvLk9sXxXKI\/9Mfev9WHtQzoN5fSe16WXr6zJeX6ZGH7SefHtb38d8uP84v+7fP2fSlf89xENRu7I5TPV\/atjXzvk27NlZJ2d\/dUHnZvg2ZO0ZfvQDmTNVMPvuO+gEH3zfuBqG7P70hlIXevMt\/OHE9tRmmqNTXBQH\/qiO\/HsX3bRp997zx6z56e99g\/sdJNp+fPzwQcIerLffuwi7Qyh+vqzkhOKw\/z+aQ9fQei6UbANJADqBF\/VrLgrVPZAPBfBR\/Dec3t7ZskU7QCkHCQRJ6w8LP78028KaFFTCOecBi4P9Z+8yFD90ACDQQoLaTB0V+O8YyYmT3KShNJcVGmcgNxyEjAQAPuj8\/W6yISgVJMGg8+e7y8QDFIBzQcFL9szMQieVjiIqlQKqkAiAyB00M9+9gRX2VoQA0M\/Xfjzo3\/rld2Ep3a98a7z31GOLP89\/frj8ylzPn3P9dZHp8cd4kP2\/wjz7c\/+\/2LT2FDWZfzU+nvd7GX\/+mnPe3W6Drk3VfMU5AwD91VP9UFW5e5IE5Ien3j\/QG6qrFtic8\/07\/b1pzsFFffZBudP1sLtOHk3y66Ry4L3hUF1QiXoYIPfNaajmWs\/RC6ejA4O\/VCq5H+euI8l1+rHfw4ZvffL2r9zAPnZ9aQMboEVL2pBfp5z+OVW\/VcrxsbOE03JY2\/GY0yeyZmD7C9EH9gHo2jcAGy9v\/KG\/\/gAU+HB6eCv+\/kv3Uv+YVc\/V\/hQc0OkxfhKZcu4EtSgBrwAnNGioK7dqCkaznJzwVsj2MxmaADCEKAEAPuj89dNlIgIACHR+fzaZEADAvFR4m4a78ORwkBnRmRklNSMqNaJSVQH4\/r1r\/29fJa1dbwwt71XWptr05m3VH2\/s3+V2t5gA\/Wz5uHa0\/3VncR5dfJjHb5vazct+9t\/cucj\/TH7q21XsPzX98\/51FeWtPOTpOXll71bDvT\/dyUn632d6v51Th2m6+fTMfhw\/\/QfT7\/nxZyd\/tH9T0HDe2pN19m8ukuqerj4AnCmYX+7hvHTD7gRODvvO\/s+m5wCYPxTsAR+m5oXt7+oNALDHfLWpG\/YP0ePLk9ibpNzfNwD\/Qzcb0ekDTi+\/wLl\/fN2I6vgBcAFyng9Akxsw6lF+Te0NDd9ooBz5ZJRh+K8dQPHlgvq19OXrDztwWsnhqPVhOqI\/MiDqDAIqQ0j4kHyiu\/w4HGIdlJIeJwcD4ALAdgghAGFTbWxI6GORyQIe6Pz+7jIhAYBA59fXKAMCALiByulJTZpOms6IGsGKplJVBAAACVPGqn9Ymr\/t6e3nz52n9o\/f+vTTE08\/qfvr+fc4MQ2e3zzfHPBfZ+Og9k\/2y2Kdx6Pj+tlBf64\/76a7PUp9\/+vWM\/B1\/lTX7zS5qa5Tc6p5ukjOPvRUfc0++8M2huPw\/3dP46SeliYb+u6dNOd0Fuxizj6b6fPnDuA72Pyr0nMGYH\/w4fiqC\/A2e1eyBza5pzIHd76uSbSrf4eCPm2QgTqGWIsNwAbYH8BhP5x+nMKTAHzcgFL7S3b1hi+jHMPe1SPzATb7tPxuQR+N+PlfaPHHn9o69wudTmH5\/9VODjndDUhfGH7HKW0SUjAE+LeWK1dd+I6jCgDYmGLOy+78AwlkKZAVo2BJ+cUjfiQAwJnNbAJsyCA0MFsBT2dnUwAEkZkBAAAAAADDrUxACQAAAD5N4mIV\/0P\/RP9Q\/zv\/P\/9B\/1T\/RP9D\/00BPuj8+egyIAERGHT++mwyIQCAG47SSZoaJU2lqRnRVCqVGimCAABg9uW39yfm89\/9j\/ofn5+Ht+orXlTSwFufa\/Vf3Fy29+mnae+bPB7nR+e+6Te+fUkmmfJBXyz28\/SzefvrVH+d75sqOveb+buzsv7z3+jUbDyq9s69oZ7sapo\/kw7148ioX3lN+PaFys8eavPNzMF00N99a\/0csjl1VcLhnM23OsOp2fnFr+DHOv5ndNztzZ7vnJ68OK+1lziFaf38asMD3XN8n1WHsH+S5iT7k5tO9v34+HD6vwO\/Huj4A7ZpDoc9SMwFAADDiz7aZwyfP2ycXPw2NsmZ8rYFDvsJbOqXQENCAeWL5aMxYKArAsDBdz8QOa3vHIOhDIIZNYEHsAtAR5LOXwDYbvwHEr5xO25SE3ZQoLtpQtO2DGQaAD7o\/PXdZUIAAIPOX19dFgQAMPfUe5hjnoWmkxpRM6IjKpVKpVIVIQBOH1c\/4o9JJ9MXS6W9fx0HyO1RTcu08qL68+LBxU\/T2YNPbrf+frDY3EqffshnPXkRbFsHPZ+fnc8zmykvnpZmJsqZz1dC5x7ld\/4TVQ7\/vk5f5ujfXfvB24fafu2uZZ1+NHTmDfqpu\/dfdRAAbJL30Hse8HTNeX5Mrc+zUb93Tn++x2nXdYZT9S+Ia89+mbTZ1\/+c+P+D8G\/HruEQ47NzoqFy\/w6+ED4ciovi0KLZqE+eX+492s6PD8jdHxtx7v\/qHbmxi4H0ZYvt\/higwV\/FJkOnj7jknLhOgHY29eEDx3ACxU\/VipiPf1\/D2a8sAK\/HR8JYJx7r7ODE1zHxOsloksAf+F4cPE7ArXIMwC+SgKFOnQubjAIYkKQBHuj8\/tWl5x4gYYJB56\/PLhMCALhR9LMzo6RmRpk0lUqlqVSFBADAW0Yux3tTJ7axc3TOSt9qz\/+s+vzue9+\/Op+ew+\/e+HHdFrWlzdLBzW3vv\/f9yKfTf2D88WveZ6qO\/Y39ZrZ9+rq+7nNYyF\/2oStJ0ZPdn4r3e3re366m6L2nJ1dyNuew99x17NhfZ+7\/Z9fp97I59Ob0F1P\/0wh2cY4\/rXVT1V9\/\/h558Yn1zPlNDxwodsacfmsSH8A+Sc4w\/3N29aZfmDIH6smGvZlzHzeHvS02wFD459GcY53hyJO\/bGWSe9hmhGwLbPzbZfMbNntvkNj91DwosC4a2FDOpubNZx8ffl3FCH45qN81sdSiHwxP\/GvaWSNX\/eDjSvNx6z\/vwDv3\/07tGwAYG4fUHx\/mBxCdGAIzmzkaMvPOXgIGEgNtq+5AGH5oAzIBMgB+6Pz102VDAACHzl+\/u2wIAODcJSgadJRUmhpFVJpKJagUUBUhAI6+reOnIDu9gXRpeHzyBlDIOXK0\/+pWKdG\/Lnv63\/+6ug25z+XvUh\/+9OvLp\/uL8\/U\/y5WDthlPPmjfP\/s6x+K+h9v9fr9N+3538\/f8Ye69S\/t+59Hv78TL\/9B1uskiEyAn\/adzT5RqOdhRQNX5J+TX06OT+\/T\/TDNvsR9Os8F34ysOPiboj8+N+40ffvh22J8aPqTm7NzXRycv+PcdJ\/iD3ZtG\/zB3CczH91ze3yQA\/LMP8713Ohz+2Nr6w89wcM\/65fhwsHNGkHAURfyDtq3SFHwOfcxHlf\/MD0kaMA67jBDrC2iWOIpNMwBD\/swWIBLhjeOjJs\/HSCcqXPhIzoIP+GTA\/Y0TTsDeQCYI7A8ys8C+AT7o\/PlsslAHBSDR+ftXl40GKCDJnLIsNuzMzChKKjWi0lSqVFpIBMDugBTHYE\/fL2rne121CtAHtw7WD89XKqk3Rg+n30x\/\/vgg+UZL3jnbWv8aZ5rj\/Xncaux9Pqd4+vc9Pt0w53N35+dA8WczkzX02f3wNTM9SX8+e38HmW437DTMlVTV2x+qYH33zp7N5uOXZooBIL\/YXTi7gfP0eW+GrzxA47a1MkL\/ioQ6nKke+P1h\/zve3BwrftrTlNnUpH6wbzY6j2wc\/+++d9RO\/ymc8LucjOkYJCfxDxyrKH0Oeg4k73edTS7oqHEoR02ajx8VyMheCMdQkFZRZnNhijkAc+DzD0j6OAQfR2Z\/wVc\/PqSzP8vxxyZ2zLp0YG1S7oePzk444VSp4PiRGCSYAQC4SGSDw2C2S4RdlmzJKD7o\/P1VZVqCBoBE5+9fXTYEADB3LHq+x+JeStIZRTSVmlSaSpUqQgiAvN7+fjhXOnW1M1L+Lp0B2o6Kt+Zvpw2pvbiyrnz7od\/ztL4z\/r3TZw+T4d+zPs+Pe14\/39UZlxeFsXxUaOOl\/dYPZobJ8bsnqbt1oCCHec4\/99zzk\/vrNse413\/zLQB+vSebfRaG5PdWVne+8532diq\/+7Yb8ny9BcA5+wAUL9B0VZ3HNPDnVCd\/kq+nE6vrU19Np\/J2ugf23A8bDtDqfaIidus4ydmHEz946dvZY\/b5n6L4+eP091I1Tj9eVAdGcfnviC1+JPXodb2ShLqPj9gkZOJbezYA2ocMhfC\/iKxWUeEOIz1\/APLtQ9KtPB9OCgeQPhKQpu9\/H2CJnAQar+RHLGoTg4rxEgDAUZRLMManCbMWCEAAHuj8\/uky0AAJYND589NlogESRjDHKhbcHB2dqGfvmUmNokKlUqlUqkICMLC3dLcZPz1M34frR\/arn0Npq+3R9nT8GPpJRyd1AFouK9rFH7c\/PT3MtVfP+Gbv1rhv9HCa518Pl9u9\/vzh04\/z6dM+dKTvk6dqzyngrZnZybzJ5zRkb1ypbajX2Lczc\/j89\/5jPtBdk7ttkffX+XdO8+xxn3fc7+fseshDJRvYeWZyV06ezh\/Pzj69u+ciZ+e5poq9cU91DjNdWTPwBfvs2rWh93B0z\/XzsDfauHXYOL7vWImInzD5X497OUnu4oM+CPOr4+M\/A183yaG\/AIAaoD7nputGZn4+2T048zf7sKu2gSPdetJObAg7eThgwAmp09ixMDiGk9EcfVUvJBSIfESichCnjw+NT9wFOKvFVvkeCChTFUAlCgiFzSM7N6CQoUEEwbA3Puj8+RxlChwACHR+f3YZTgAAD1j8Lhq3I9AziiJqJh1FNJVKpVJVAQDwlm3M3Vl6fkjj3vvVjclQ1WRpd1euVuhNqrxQu4+aT3ZWS9pNIrzVx1+VcGD\/x\/E\/jfZY7N3+\/X2fhwev3x\/CDfWlYtp54OzpgtO\/YvdzvnpXdmM419z77NkUDBvOf\/5pHvXwA0WdAxs494\/vv\/7\/3380P\/O6KQAY4ItjtRzWOgGP5v8fv76dMO\/7DNFc8zIUvhngdI8K+IINHDifDSSdqQ\/J6NgFUzjh+NhozTgFs+eg85Z20Rv7zKH+piPWaeNwfN2oPQMM+hp9OH7EUX5IbRkcWUW3gAMUh\/8ufjL+48NZ47SWMEpBTg4nlC3Bfz\/8qH8ILK+QX8pmJaRAAQCZEzuHs\/4HS4R5J1AGIFgABrNRyL4AjQCbTAA+6Pz+NcqAAAAGnb8+uywIAGB++td1ODhLZiYd0VFEU6lUKpWKkAiAL4fEpIPz6uj98X8vtGQA1\/9fzNlia+me8UE\/sSP4018\/rbe\/ef7j6cGtP7XCXNv79WBxMrjMrV1+lduWWp8XBzmf3VrnqirtYv\/r9+lprryz"],"libraries\/H5P.SingleChoiceSet-1.11\/sounds\/positive-short.ogg":["audio\/ogg","T2dnUwACAAAAAAAAAACTqtpjAAAAADy2SHoBHgF2b3JiaXMAAAAAAkSsAAAAAAAAgLUBAAAAAAC4AU9nZ1MAAAAAAAAAAAAAk6raYwEAAADeV1h+EUT\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/8HA3ZvcmJpczQAAABBTzsgYW9UdVYgWzIwMTEwNDI0XSAoYmFzZWQgb24gWGlwaC5PcmcncyBsaWJWb3JiaXMpAAAAAAEFdm9yYmlzJUJDVgEAQAAAJHMYKkalcxaEEBpCUBnjHELOa+wZQkwRghwyTFvLJXOQIaSgQohbKIHQkFUAAEAAAIdBeBSEikEIIYQlPViSgyc9CCGEiDl4FIRpQQghhBBCCCGEEEIIIYRFOWiSgydBCB2E4zA4DIPlOPgchEU5WBCDJ0HoIIQPQriag6w5CCGEJDVIUIMGOegchMIsKIqCxDC4FoQENSiMguQwyNSDC0KImoNJNfgahGdBeBaEaUEIIYQkQUiQgwZByBiERkFYkoMGObgUhMtBqBqEKjkIH4QgNGQVAJAAAKCiKIqiKAoQGrIKAMgAABBAURTHcRzJkRzJsRwLCA1ZBQAAAQAIAACgSIqkSI7kSJIkWZIlWZIlWZLmiaosy7Isy7IsyzIQGrIKAEgAAFBRDEVxFAcIDVkFAGQAAAigOIqlWIqlaIrniI4IhIasAgCAAAAEAAAQNENTPEeURM9UVde2bdu2bdu2bdu2bdu2bVuWZRkIDVkFAEAAABDSaWapBogwAxkGQkNWAQAIAACAEYowxIDQkFUAAEAAAIAYSg6iCa0535zjoFkOmkqxOR2cSLV5kpuKuTnnnHPOyeacMc4555yinFkMmgmtOeecxKBZCpoJrTnnnCexedCaKq0555xxzulgnBHGOeecJq15kJqNtTnnnAWtaY6aS7E555xIuXlSm0u1Oeecc84555xzzjnnnOrF6RycE84555yovbmWm9DFOeecT8bp3pwQzjnnnHPOOeecc84555wgNGQVAAAEAEAQho1h3CkI0udoIEYRYhoy6UH36DAJGoOcQurR6GiklDoIJZVxUkonCA1ZBQAAAgBACCGFFFJIIYUUUkghhRRiiCGGGHLKKaeggkoqqaiijDLLLLPMMssss8w67KyzDjsMMcQQQyutxFJTbTXWWGvuOeeag7RWWmuttVJKKaWUUgpCQ1YBACAAAARCBhlkkFFIIYUUYogpp5xyCiqogNCQVQAAIACAAAAAAE\/yHNERHdERHdERHdERHdHxHM8RJVESJVESLdMyNdNTRVV1ZdeWdVm3fVvYhV33fd33fd34dWFYlmVZlmVZlmVZlmVZlmVZliA0ZBUAAAIAACCEEEJIIYUUUkgpxhhzzDnoJJQQCA1ZBQAAAgAIAAAAcBRHcRzJkRxJsiRL0iTN0ixP8zRPEz1RFEXTNFXRFV1RN21RNmXTNV1TNl1VVm1Xlm1btnXbl2Xb933f933f933f933f931dB0JDVgEAEgAAOpIjKZIiKZLjOI4kSUBoyCoAQAYAQAAAiuIojuM4kiRJkiVpkmd5lqiZmumZniqqQGjIKgAAEABAAAAAAAAAiqZ4iql4iqh4juiIkmiZlqipmivKpuy6ruu6ruu6ruu6ruu6ruu6ruu6ruu6ruu6ruu6ruu6ruu6rguEhqwCACQAAHQkR3IkR1IkRVIkR3KA0JBVAIAMAIAAABzDMSRFcizL0jRP8zRPEz3REz3TU0VXdIHQkFUAACAAgAAAAAAAAAzJsBTL0RxNEiXVUi1VUy3VUkXVU1VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU3TNE0TCA1ZCQCQAQCQEFMtLcaaCYskYtJqq6BjDFLspbFIKme1t8oxhRi1XhqHlFEQe6kkY4pBzC2k0CkmrdZUQoUUpJhjKhVSDlIgNGSFABCaAeBwHECyLECyLAAAAAAAAACQNA3QPA+wNA8AAAAAAAAAJE0DLE8DNM8DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDSNEDzPEDzPAAAAAAAAADQPA\/wPBHwRBEAAAAAAAAALM8DNNEDPFEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDSNEDzPEDzPAAAAAAAAACwPA\/wRBHQPBEAAAAAAAAALM8DPFEEPNEDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQ4AAAEGAhFBqyIgCIEwBwSBIkCZIEzQNIlgVNg6bBNAGSZUHToGkwTQAAAAAAAAAAAAAkTYOmQdMgigBJ06Bp0DSIIgAAAAAAAAAAAACSpkHToGkQRYCkadA0aBpEEQAAAAAAAAAAAADPNCGKEEWYJsAzTYgiRBGmCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAYcAAACDChDBQasiIAiBMAcDiKZQEAgOM4lgUAAI7jWBYAAFiWJYoAAGBZmigCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAABhwAAAIMKEMFBqyEgCIAgBwKIplAcexLOA4lgUkybIAlgXQPICmAUQRAAgAAChwAAAIsEFTYnGAQkNWAgBRAAAGxbEsTRNFkqRpmieKJEnTPE8UaZrneZ5pwvM8zzQhiqJomhBFUTRNmKZpqiowTVUVAABQ4AAAEGCDpsTiAIWGrAQAQgIAHIpiWZrmeZ4niqapmiRJ0zxPFEXRNE1TVUmSpnmeKIqiaZqmqrIsTfM8URRF01RVVYWmeZ4oiqJpqqrqwvM8TxRF0TRV1XXheZ4niqJomqrquhBFUTRN01RNVXVdIIqmaZqqqqquC0RPFE1TVV3XdYHniaJpqqqrui4QTdNUVVV1XVkGmKZpqqrryjJAVVXVdV1XlgGqqqqu67qyDFBV13VdWZZlAK7rurIsywIAAA4cAAACjKCTjCqLsNGECw9AoSErAoAoAADAGKYUU8owJiGkEBrGJIQUQiYlpdJSqiCkUlIpFYRUSiolo5RSailVEFIpqZQKQiollVIAANiBAwDYgYVQaMhKACAPAIAwRinGGHNOIqQUY845JxFSijHnnJNKMeacc85JKRlzzDnnpJTOOeecc1JK5pxzzjkppXPOOeeclFJK55xzTkopJYTOQSellNI555wTAABU4AAAEGCjyOYEI0GFhqwEAFIBAAyOY1ma5nmiaJqWJGma53meKJqmJkma5nmeJ4qqyfM8TxRF0TRVled5niiKommqKtcVRdM0TVVVXbIsiqZpmqrqujBN01RV13VdmKZpqqrrui5sW1VV1XVlGbatqqrqurIMXNd1ZdmWgSy7ruzasgAA8AQHAKACG1ZHOCkaCyw0ZCUAkAEAQBiDkEIIIWUQQgohhJRSCAkAABhwAAAIMKEMFBqyEgBIBQAAjLHWWmuttdZAZ6211lprrYDMWmuttdZaa6211lprrbXWUmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaay2llFJKKaWUUkoppZRSSimllFJKBQD6VTgA+D\/YsDrCSdFYYKEhKwGAcAAAwBilGHMMQimlVAgx5px0VFqLsUKIMeckpNRabMVzzkEoIZXWYiyecw5CKSnFVmNRKYRSUkottliLSqGjklJKrdVYjDGppNZai63GYoxJKbTUWosxFiNsTam12GqrsRhjayottBhjjMUIX2RsLabaag3GCCNbLC3VWmswxhjdW4ultpqLMT742lIsMdZcAAB3gwMARIKNM6wknRWOBhcashIACAkAIBBSijHGGHPOOeekUow55pxzDkIIoVSKMcaccw5CCCGUjDHmnHMQQgghhFJKxpxzEEIIIYSQUuqccxBCCCGEEEopnXMOQgghhBBCKaWDEEIIIYQQSiilpBRCCCGEEEIIqaSUQgghhFJCKCGVlFIIIYQQQiklpJRSCiGEUkIIoYSUUkophRBCCKWUklJKKaUSSgklhBJSKSmlFEoIIZRSSkoppVRKCaGEEkopJaWUUkohhBBKKQUAABw4AAAEGEEnGVUWYaMJFx6AQkNWAgBkAACQopRSKS1FgiKlGKQYS0YVc1BaiqhyDFLNqVLOIOYklogxhJSTVDLmFEIMQuocdUwpBi2VGELGGKTYckuhcw4AAABBAICAkAAAAwQFMwDA4ADhcxB0AgRHGwCAIERmiETDQnB4UAkQEVMBQGKCQi4AVFhcpF1cQJcBLujirgMhBCEIQSwOoIAEHJxwwxNveMINTtApKnUgAAAAAAANAPAAAJBcABER0cxhZGhscHR4fICEiIyQCAAAAAAAGQB8AAAkJUBERDRzGBkaGxwdHh8gISIjJAEAgAACAAAAACCAAAQEBAAAAAAAAgAAAAQET2dnUwAAQDYAAAAAAACTqtpjAgAAAPAdYZ8gVUH\/IT05ZG1LR\/8qNjQzPDg2YV1S\/wze4OHc5Ofq8uREY\/DlwVRl7k3srpc9u8i66fdkoHOyTtfvu5pjtY2eiZ3E62GyAvHRmJ+2zs85WEyjuqvi7Zi3IZ8OfD+\/Uv9k6+GjB2\/5to+4Eg+qvj52ukQtrMNrvELIKojbKVZKbO1lMitwMl93cJCkWLNyLHvPctEu771P696H5vk0j\/U0F0\/afnrz6tlD\/9Or0h6Xq\/rR01ydTgCS6Pyz+SQbAqTwAY4SnX82n2UjHDSf4BCHQuF4dBcoOJJ0ZkTTEZWOqFgIiYQQAicvyZx8+ftuad\/PL+V5v8TS0nybM19tm5cAANjfOPt8m6Zp\/9fzNOX8ZWZi+t77B59vH77B7n2+H\/oksNmcg\/n\/Y\/x\/9AcagMP3w+Fwvp9MOJnQnZxMkgYOfMjcnJOnOeS3wwEgM0kOv9y94ZzmNN\/PwTg5wMnpf4D\/f7Zqk7Dz29nfmDqsTlU7fv79JNT307A5G4oDlXyHOkDZa\/+oGlHg3K\/O2XtURfxvZRQ\/g5+OP3SCc5JzkuvPFABsgA\/scxyf+e4YTJQT8P0lZTLDKdIA\/nZ3d1\/v\/z\/8+TA+Pj4+bgFUa4H\/fx9gOM7\/P4CDDAKcRipZwVnqNFKhCu6qQ\/\/XbT5WrEQAHgpAIbWPsd9OssdnnsY3n\/bzO+ZDsb82BQMa5IFqOqWtWm3gNtwCnERaD4w9FJxGSgjGDm66VtaADYxnAH5XtGs0arFFWgI1QxeznnJRJADceBbjwBLxQRxJLaVWlksAnEjKsnBwIknKwsX6WmVZZort55mZWa1WMzai38YBkGUw6orpgB9ZTkyK2zj7RBMTiJumkdaisVETH+tIJK6CYjwkmo7jFcbGRCrExQVNj7an6tGGMYnHxFQbRsNESTQ2iPenAARPuooXCp50FS+0cqvVarVa+qtNWVuWKau1Vclqs1q3thSVmpqiKIqIrdVq6a9CAGA1bGq3W1E11Gp3tHmsEVExYtVatVisVaNGjFgRY7dbTXW02cRUuy3JtHSiKumRSILExDh0NBqNRokLpQIsXzrTw4RrCdOZHiY8VqvIqFNPqKqpjSon1brVIqzSa5sSADFiRC1gMEZF1aiKipgiYrdagiAuGgpe51RXzx5KqqlQPZTSbbp4bAEMZYq1B4anQ5li7YHh+R4BAC6VeuupJdMBAIAMkWUmJRDUWGNUNZXSwtLEQlha6jAxp2dTnRaVJl3xPsS6jdBPu2zTiM5KAHKaLddFFCD61OWv5+jj97QeqkKJKHCaLddFFCD61OWv5+jj97QeqkKKgR8os4wiaisRlWoCAPwCAGS73W4nI8ZO9iC2lRWrqmIBADVGrVhFVI1EFjWRCAohRIagyMjA5mCzWtQQw9HBsBsqpgZMTDUB0VsoGn2SzqDVqYpiamaiMTOz1JpamklXV6XbUCrVQzU9NdWpREoSAstM4GAMAIY4BPxyRZnwSz3M6GEQbyumK4jGhAGhQgEQpIJlRR8WVhxgUiaJheUEWQBUquk21Uq3iY2EFkRiA8eFCiXVoalGSoSwOWBMR76rRkLy47UrzweIOE+Qaloplszr\/l7Zc8uhdaEMAuw52vM0qlueGSxvSyYBYqBtWEOmzvj0Wq0wWG1kJn3uBAHYAOzYsWjFUZsdOxatOGryAvCiDABUM1iYqka9wVw4kiBW2IwoFUQwnBVR91rTSZU8Emg5V0wcAczc4ZryRpu5w3XlDfoB1gghFQCoyaRCY1ZRtGZojIpMj+6isK4GwEsIhDJK3S0w11txkiXsXKut1WG6nWu1tTpMd4rMemvCIgQWAGLVGEEIwjAewI5LPKHCbg8Cp1pohPu1\/6miBx\/cWs9tCm56az23KbjpC7DZBCaAxkIsAFBUIVIHNcQ0E5iamalaIgkTRFGPdIDrFgCRIDbx0BLxaLvpJgHUWN\/N1SRcjfXdXE3CPkAVLAYggywwsVQNGDSaqm6qSNvpNj2a+gNNeiYfBOBl0\/RM56pgpr\/yANxY7yWFJjfWe0mhyQdYQWCZAhCZ1EEsYsEwTM1MhKmlpaWePZuWGtZQ6mtfqoGsP3Ascrk1ABzf0fKjcXxHy4\/GelFEUZN2+84iRFbLXG1EURSVmjo1NTU1RYT+0gIgRkWtWKvF0UHBYhVVCxgxRq0xxjUYa2oO4+NdIQYHcRBBisQEcXGON7G20XZ7tj3TSY\/00FEkNAAcYygVwdF7lKFUREfPlabIyGrUAdgxQ0zKjKhk5C7QzwAIqqoIslogqqY4ggE1WDEMm9XBBPQaLI1aXTwikYgTRoPAQSxxDqIBcsIEjhGRMAgVKprATjXaTrUvVQAEZa\/djyN7UPbYdRyc7hEAIHaAuB5dhgAQIiugCCrHjIpYsBcnk1Wt5gZzxdygWFhoTdIv6itJQXi46gnjuv0UaujggAF4Xut57eoq0K\/EXH0AOksuX1tRDYoWu3fwjLNb680cZ8nl6xTVoFqxewfvcXZrfZnjF0hRjZqyUldUq3XUrWZZU2+dalEb\/wAAAACByaiHrQ5VFVIFAABVUSMqeEHAGCuINWqNpkSqJinVAADMdBbC3KDTmJpKjZmJBarWQq9RFSm0Gq1Gq9G+mjmQSD2bVFBSqcRBGIlGwkgUE4g5RB4JAAjBoawCnxCIS6pHtxtUimoMBLFCmQBkW7YIwIEhM1BDa9FH2+03ywoAOR2rMgY\/YaCZ9K2a2A5XTBVNp7RVJE26KkKaSqwrrThqpotbg9ED7Tt1cKAJrY7F7lWAFg3T5LLXYsVAIBAWBQiFIyiXAHhAA2LcGqcA\/iueXzfRGbS6XXT\/d8jrff668iueX1fRGbS6Nbr\/J+X1Pn9dOQ+2xfQAeBpWllnc5CpWVQFAEbBYbA4IYDWxIACAAgBBbKKBEiYg0VAoNogYxSaIj0kYBxruxhEVRJDQQgRRCAIQioZFJjCWQ1Bgg7TqVI82lQpBNP7lu0YpaDoh6At4h8IGAZIcKIVtyFar11hz7EpQ5gr1aVG1qkC1q1WhkArFS4MAzzX21XaSYM4XWSE5H74N2eN7337uMXIad\/B3kSJus9EdoOPlS2zDkYbLNEDZ3ayZoQWhjToAnvtdPi6iN3hFu+B+hrzqs+sm97t8XERv8Ip2wf0MedVn180NI30BRdQFUTcTAPBJPg2qh5jFclmuqgAAqNVuEyq1YIoCqqKIUQAjBkAAAIJ6TAwkEiujwBFkMHJ4rHTExVhQkGUJAR82BVzVuBr\/hmhcBAAEIi1cRqt6RAoC2hY6TdvACCUUjIWEAABjxQbQO9243R95OMDCT4I0fF80DvlOVzyPi4BoJLrP1qPwLwIRQthwqLPJuL3TV1BE3FxEBchQjWrDcnnYbc2YcdxmDOBWPEOYg2wB24FGg1aOUQVe2z0+DtE4pEW76L5DnuvWy2e3XA5RDWnRPrrvsLr1ciMJXyDVVkDWFgkA8CSe1cI55lhVuQoAgIirpkHcDjYFEGNVVEAxagAAAAjiHRcJY8L4SCS2Uhj4uNEvAkM4IcUS4AAM8HUG6XbJZcBgnDBiMMgCiBMpHrpRiKhEkksEhBCCCVhcoSwtmlqTAklfEguwR0miceEGfu1cToscfFLvuKiQhaMptyAKIFGUH2mhftjRtu4tIbH\/zWzvQhR+8Kyhz47h9KwmdjgoDkEHog+0edLKap+TbvlhYuGQLPhhYRC+mt1fs+gNWdkuuE2ed4HJbDxmUQxZ2T64zXaBGwIfILKeEpQtAJ4MVAoxc85yVeViOQBAFtQ7ZUkwHAQFUDAiACJiCgAACqqIEhONBoTyCA5EV9eMCt2guCioGADJDt4A7ouepu1SAKnQqW6bfguKeVzsA5a4ip+EpvEhBFiSgnIogyyPIrRTey4OKGkj0lWsJbq\/Fi7TBP2JtN2WCZRWnXlFc\/HVaVYrkMl4DlPF\/iEwPXp6\/VaMGaRfDdSBEVVHpnWNElPX3n0eBiPvrQjAV8CGwsPjMyFQaEMEXmqN71M0B05VmP6nPq9qrZdSa3yfojlwqjFM\/1OfV1vr5XwBUQURlQwAgGsyuQfkylWssgqAqCBYrAGwatQqCIAAChAlLsYx8UH1mCGJRGICKYoTKs5BJMp56op3ORqQnm3TVCsliPT0fpQISyEOJSQrxLKRoFA6LwBwOQdA0u1ZVZUAgAIAK7JABQNQXapNkDbGhRVNOy5DPQgYG6boZPd9SL8dIq18sZN6q4MAJHY1WtnajvGJ76Rt18Aitj1sqTGjgVGAXauODvCA0sB6ANw4zoOC6B8MhG2GEeEk1mKiaVUA3qqdPg9RDdyhnv++RGZfBFq10+chqoE71PPfl8jsi4ZzhWBqqwAAXx8AMzEpZrFizrEqFgBTRVTE6giCiAUUQAAAcXBFQAEBAMBOpJYwcWLjE1oxJCQIYoYkrIWOscI2Xt9YvQAC4RgkAIJ7ucgwQEaB7IAgJwArlkQQYhBxkcDNGDsDhBDyExoMV2IUm8a89F5rObpBACDQxJM8j8BwhDqmcj+1+x6nte15YDBqg95gILoFnXYfIC+C7VzFro6xSEegYy7p588KFrRdj86zCdFGt1qtDvP88A165MwfWFplKYbG\/R4PvppdPnZRga+Q73+eROr8FbOaXT52UYGvkO9\/nkTm+SvmARIgJwAAwE4Gs4ucy7mqsixmAQAw1GaaVky7XQ01wNEuFlFTDQzKAABUSkqbIj3L1KiCBAQgYDrq6gl1dhoijMaFAAJsAH6ZSYMU2QCWCOmWiP+TUMTAHxVEx8Y7kCUAgAkEgAAMf3Wo8z7HGZEShAj6tZ2NYsKquq5bcjMvSChkegpjvlr+TAjSIofY79drSXs\/S7mPET\/r0VtN3PUzjxGCEKudYUMxVoRvS14Qh9ahxBUu\/uCjpYkOCP4Gdi3cLUnix3Qb4Y8GfnqdX7PIQZ+w\/Pvzo0ZmP8SFU+r8mkQO+rjl358vkdkPeRndkHJXAAC4PoCE1ZQI5rKqqpxlAQBQwxEHS7AadnUoAgAw1SYAABQkjEYULRETxkeDQYXRuqRQ0RjZIpI4pgAAAILWaoh5AKwQSgIAqQeWBgBCLwptCYxQX3sm6uOU5imQig+iCAEAWf7DrEa7IAUGaAREFhgQBvsOS+BEa7lWqu+ovnhvvwOj8YTSdPf5IRLtuEi9Jcj\/mb3XYTbSze6+1FaqeiGvWy5WOkCOtKGvFKpRQpCQHpnx6wciqCmQBs00wBeiEnJ0LEyps0EscQD+Oe2XURRA97b8\/LN1kfk7LPbwOe2XURRA99X\/\/LP1kfk7LPZ4JpZ1AwC4kgUws4RsZbmqqpIAINaCACCCiGkooAAAQEgQGxvEOvHEKiRaIRKtHGPbSlQ4EpuASAgQBeEEFsfj2ExAhTcxQx5BggAwYAXOVtT\/VpGo7cfKVqMr76nA6RAAWZR1pCtJ+Pk+BeQ2kSJ\/U6Q6TRJS6vWDJ98XNFYDBGFcX1JIjN1NpyCZoatimZBJhIEwPAcrwx6eXVw\/OoWjdeRowAUYdsz9bWkE4M5nULbulmaiNJ1\/iu03lYrEsgBPZ2c="],"libraries\/H5P.SingleChoiceSet-1.11\/library.json":["application\/json","{\"machineName\":\"H5P.SingleChoiceSet\",\"title\":\"Single Choice Set\",\"description\":\"Create sets of single choice tasks\",\"license\":\"MIT\",\"author\":\"Joubel\",\"majorVersion\":1,\"minorVersion\":11,\"patchVersion\":44,\"runnable\":1,\"fullscreen\":0,\"embedTypes\":[\"iframe\"],\"coreApi\":{\"majorVersion\":1,\"minorVersion\":19},\"preloadedCss\":[{\"path\":\"styles\\\/single-choice-set.css\"}],\"preloadedJs\":[{\"path\":\"scripts\\\/stop-watch.js\"},{\"path\":\"scripts\\\/sound-effects.js\"},{\"path\":\"scripts\\\/xapi-event-builder.js\"},{\"path\":\"scripts\\\/result-slide.js\"},{\"path\":\"scripts\\\/solution-view.js\"},{\"path\":\"scripts\\\/single-choice-alternative.js\"},{\"path\":\"scripts\\\/single-choice.js\"},{\"path\":\"scripts\\\/single-choice-set.js\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.Transition\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5P.Question\",\"majorVersion\":1,\"minorVersion\":5}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.VerticalTabs\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5PEditor.RangeList\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5PEditor.SingleChoiceSetTextualEditor\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.DragQuestion-1.14\/library.json":["application\/json","{\"title\":\"Drag and Drop\",\"description\":\"Drag and drop the elements into the correct drop zones.\",\"contentType\":\"Question\",\"majorVersion\":1,\"minorVersion\":14,\"patchVersion\":22,\"embedTypes\":[\"iframe\"],\"runnable\":1,\"fullscreen\":0,\"author\":\"Joubel\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":23},\"license\":\"MIT\",\"machineName\":\"H5P.DragQuestion\",\"preloadedJs\":[{\"path\":\"h5p-drag-question.js\"}],\"preloadedCss\":[{\"path\":\"css\\\/dragquestion.css\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"jQuery.ui\",\"majorVersion\":1,\"minorVersion\":10},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.Question\",\"majorVersion\":1,\"minorVersion\":5}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.DragQuestion\",\"majorVersion\":1,\"minorVersion\":10},{\"machineName\":\"H5PEditor.RangeList\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.Summary-1.10\/library.json":["application\/json","{\"title\":\"Summary\",\"description\":\"Test your users with fill in the summary tasks.\",\"majorVersion\":1,\"minorVersion\":10,\"patchVersion\":22,\"runnable\":1,\"embedTypes\":[\"iframe\"],\"machineName\":\"H5P.Summary\",\"license\":\"MIT\",\"author\":\"Joubel\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":19},\"preloadedCss\":[{\"path\":\"css\\\/summary.css\"}],\"preloadedJs\":[{\"path\":\"js\\\/stop-watch.js\"},{\"path\":\"js\\\/xapi-event-builder.js\"},{\"path\":\"js\\\/summary.js\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.Question\",\"majorVersion\":1,\"minorVersion\":5}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.SummaryTextualEditor\",\"majorVersion\":1,\"minorVersion\":1},{\"machineName\":\"H5PEditor.RangeList\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.ExportableTextArea-1.3\/library.json":["application\/json","{\"title\":\"Exportable Text Area\",\"contentType\":\"Static content\",\"description\":\"Library that displays an area where the user may input text, which is exportable as a doc-file\",\"majorVersion\":1,\"minorVersion\":3,\"patchVersion\":18,\"coreApi\":{\"majorVersion\":1,\"minorVersion\":19},\"runnable\":0,\"machineName\":\"H5P.ExportableTextArea\",\"author\":\"H5P Group\",\"metadataSettings\":{\"disable\":0,\"disableExtraTitleField\":1},\"preloadedJs\":[{\"path\":\"dist\\\/h5p-exportable-text-area.js\"}]}"],"libraries\/H5P.InteractiveVideo-1.27\/library.json":["application\/json","{\"title\":\"Interactive Video\",\"description\":\"Put texts, tasks and other medias on top of your video.\",\"license\":\"MIT\",\"contentType\":\"Media\",\"majorVersion\":1,\"minorVersion\":27,\"patchVersion\":9,\"machineName\":\"H5P.InteractiveVideo\",\"author\":\"Joubel\",\"embedTypes\":[\"iframe\"],\"runnable\":1,\"fullscreen\":1,\"coreApi\":{\"majorVersion\":1,\"minorVersion\":27},\"preloadedJs\":[{\"path\":\"dist\\\/h5p-interactive-video.js\"}],\"preloadedCss\":[{\"path\":\"dist\\\/h5p-interactive-video.css\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"jQuery.ui\",\"majorVersion\":1,\"minorVersion\":10},{\"machineName\":\"H5P.Video\",\"majorVersion\":1,\"minorVersion\":6},{\"machineName\":\"H5P.DragNBar\",\"majorVersion\":1,\"minorVersion\":5}],\"editorDependencies\":[{\"machineName\":\"H5P.InteractiveVideo\",\"majorVersion\":1,\"minorVersion\":27},{\"machineName\":\"H5PEditor.Wizard\",\"majorVersion\":1,\"minorVersion\":2},{\"machineName\":\"H5PEditor.InteractiveVideo\",\"majorVersion\":1,\"minorVersion\":25}]}"],"libraries\/H5P.MarkTheWords-1.11\/library.json":["application\/json","{\"title\":\"Mark the Words\",\"description\":\"Test your users by making them select the correct words from a text.\",\"majorVersion\":1,\"minorVersion\":11,\"patchVersion\":9,\"coreApi\":{\"majorVersion\":1,\"minorVersion\":27},\"runnable\":1,\"embedTypes\":[\"iframe\"],\"author\":\"Joubel\",\"license\":\"MIT\",\"machineName\":\"H5P.MarkTheWords\",\"preloadedCss\":[{\"path\":\"styles\\\/mark-the-words.css\"}],\"preloadedJs\":[{\"path\":\"scripts\\\/keyboard-nav.js\"},{\"path\":\"scripts\\\/xAPI-generator.js\"},{\"path\":\"scripts\\\/word.js\"},{\"path\":\"scripts\\\/mark-the-words.js\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.Question\",\"majorVersion\":1,\"minorVersion\":5}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.RangeList\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.DragText-1.10\/library.json":["application\/json","{\"title\":\"Drag the Words\",\"description\":\"Drag and drop pieces of text to create complete sentences.\",\"majorVersion\":1,\"minorVersion\":10,\"patchVersion\":17,\"coreApi\":{\"majorVersion\":1,\"minorVersion\":19},\"runnable\":1,\"embedTypes\":[\"iframe\"],\"author\":\"Joubel\",\"license\":\"MIT\",\"machineName\":\"H5P.DragText\",\"preloadedCss\":[{\"path\":\"dist\\\/h5p-drag-text.css\"}],\"preloadedJs\":[{\"path\":\"dist\\\/h5p-drag-text.js\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"jQuery.ui\",\"majorVersion\":1,\"minorVersion\":10},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.Question\",\"majorVersion\":1,\"minorVersion\":5}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.RangeList\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.TwitterUserFeed-1.0\/library.json":["application\/json","{\"title\":\"Twitter User Feed\",\"description\":\"Displays a Twitter User Feed\",\"majorVersion\":1,\"minorVersion\":0,\"patchVersion\":21,\"runnable\":1,\"author\":\"Joubel\",\"license\":\"MIT\",\"machineName\":\"H5P.TwitterUserFeed\",\"preloadedJs\":[{\"path\":\"twitter-user-feed.js\"}],\"preloadedCss\":[{\"path\":\"twitter-user-feed.css\"}],\"metadataSettings\":{\"disable\":1,\"disableExtraTitleField\":1}}"],"libraries\/H5P.Dialogcards-1.9\/library.json":["application\/json","{\"title\":\"Dialog Cards\",\"description\":\"Makes it possible to create learning tasks for your site visitors.\",\"majorVersion\":1,\"minorVersion\":9,\"patchVersion\":18,\"runnable\":1,\"author\":\"Joubel\",\"license\":\"MIT\",\"machineName\":\"H5P.Dialogcards\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":26},\"embedTypes\":[\"iframe\"],\"preloadedCss\":[{\"path\":\"dist\\\/h5p-dialogcards.css\"}],\"preloadedJs\":[{\"path\":\"dist\\\/h5p-dialogcards.js\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.Audio\",\"majorVersion\":1,\"minorVersion\":5}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.VerticalTabs\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.AudioRecorder-1.0\/library.json":["application\/json","{\"title\":\"Audio Recorder\",\"description\":\"Record audio and download it\",\"machineName\":\"H5P.AudioRecorder\",\"majorVersion\":1,\"minorVersion\":0,\"patchVersion\":33,\"runnable\":1,\"author\":\"Joubel\",\"license\":\"MIT\",\"embedTypes\":[\"iframe\"],\"preloadedCss\":[{\"path\":\"fonts\\\/h5p-audio-recorder-font-open-sans.css\"}],\"preloadedJs\":[{\"path\":\"dist\\\/h5p-audio-recorder.js\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.FontIcons\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5PEditor.RadioSelector-1.2\/library.json":["application\/json","{\"title\":\"H5PEditor.RadioSelector\",\"majorVersion\":1,\"minorVersion\":2,\"patchVersion\":2,\"runnable\":0,\"machineName\":\"H5PEditor.RadioSelector\",\"author\":\"Joubel\",\"preloadedJs\":[{\"path\":\"radio-selector.js\"}],\"preloadedCss\":[{\"path\":\"radio-selector.css\"}]}"],"libraries\/H5P.MultiMediaChoice-0.3\/library.json":["application\/json","{\"title\":\"Multimedia Choice\",\"description\":\"Create a Multimedia Choice\",\"majorVersion\":0,\"minorVersion\":3,\"patchVersion\":44,\"runnable\":1,\"author\":\"H5P Group AS\",\"license\":\"MIT\",\"machineName\":\"H5P.MultiMediaChoice\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":27},\"embedTypes\":[\"iframe\"],\"preloadedJs\":[{\"path\":\"dist\\\/h5p-multi-media-choice.js\"}],\"preloadedCss\":[{\"path\":\"dist\\\/h5p-multi-media-choice.css\"}],\"preloadedDependencies\":[{\"machineName\":\"H5P.Question\",\"majorVersion\":1,\"minorVersion\":5},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.Image\",\"majorVersion\":1,\"minorVersion\":1},{\"machineName\":\"H5P.MaterialDesignIcons\",\"majorVersion\":1,\"minorVersion\":0}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.RangeList\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.InteractiveBook-1.11\/library.json":["application\/json","{\"title\":\"Interactive Book\",\"description\":\"An interactive book which displays content in pages and sections\",\"majorVersion\":1,\"minorVersion\":11,\"patchVersion\":11,\"runnable\":1,\"fullscreen\":1,\"coreApi\":{\"majorVersion\":1,\"minorVersion\":27},\"author\":\"Joubel\",\"license\":\"MIT\",\"machineName\":\"H5P.InteractiveBook\",\"embedTypes\":[\"iframe\"],\"preloadedJs\":[{\"path\":\"dist\\\/h5p-interactive-book.js\"}],\"preloadedCss\":[{\"path\":\"dist\\\/h5p-interactive-book.css\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.VerticalTabs\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5PEditor.ColorSelector\",\"majorVersion\":1,\"minorVersion\":3}]}"],"libraries\/H5PEditor.VerticalTabs-1.3\/library.json":["application\/json","{\"machineName\":\"H5PEditor.VerticalTabs\",\"title\":\"H5P Editor Vertical Tabs\",\"license\":\"MIT\",\"author\":\"Joubel\",\"majorVersion\":1,\"minorVersion\":3,\"patchVersion\":14,\"runnable\":0,\"coreApi\":{\"majorVersion\":1,\"minorVersion\":24},\"preloadedJs\":[{\"path\":\"vertical-tabs.js\"}],\"preloadedCss\":[{\"path\":\"styles\\\/css\\\/vertical-tabs.css\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5}]}"]});		H5PIntegration	= (function(x){
			let url	= window.location.href.split('/');
			url.pop();
			x.url	= url.join('/');
			return x;
		})({"baseUrl":"","url":"","siteUrl":"","l10n":{"H5P":{"fullscreen":"Vollbild","disableFullscreen":"Kein Vollbild","download":"Download","copyrights":"Nutzungsrechte","embed":"Einbetten","size":"Size","showAdvanced":"Show advanced","hideAdvanced":"Hide advanced","advancedHelp":"Include this script on your website if you want dynamic sizing of the embedded content:","copyrightInformation":"Nutzungsrechte","close":"Schlie\u00dfen","title":"Titel","author":"Autor","year":"Jahr","source":"Quelle","license":"Lizenz","thumbnail":"Thumbnail","noCopyrights":"Keine Copyright-Informationen vorhanden","reuse":"Wiederverwenden","reuseContent":"Verwende Inhalt","reuseDescription":"Verwende Inhalt.","downloadDescription":"Lade den Inhalt als H5P-Datei herunter.","copyrightsDescription":"Zeige Urheberinformationen an.","embedDescription":"Zeige den Code f\u00fcr die Einbettung an.","h5pDescription":"Visit H5P.org to check out more cool content.","contentChanged":"Dieser Inhalt hat sich seit Ihrer letzten Nutzung ver\u00e4ndert.","startingOver":"Sie beginnen von vorne.","by":"von","showMore":"Zeige mehr","showLess":"Zeige weniger","subLevel":"Sublevel","confirmDialogHeader":"Best\u00e4tige Aktion","confirmDialogBody":"Please confirm that you wish to proceed. This action is not reversible.","cancelLabel":"Abbrechen","confirmLabel":"Best\u00e4tigen","licenseU":"Undisclosed","licenseCCBY":"Attribution","licenseCCBYSA":"Attribution-ShareAlike","licenseCCBYND":"Attribution-NoDerivs","licenseCCBYNC":"Attribution-NonCommercial","licenseCCBYNCSA":"Attribution-NonCommercial-ShareAlike","licenseCCBYNCND":"Attribution-NonCommercial-NoDerivs","licenseCC40":"4.0 International","licenseCC30":"3.0 Unported","licenseCC25":"2.5 Generic","licenseCC20":"2.0 Generic","licenseCC10":"1.0 Generic","licenseGPL":"General Public License","licenseV3":"Version 3","licenseV2":"Version 2","licenseV1":"Version 1","licensePD":"Public Domain","licenseCC010":"CC0 1.0 Universal (CC0 1.0) Public Domain Dedication","licensePDM":"Public Domain Mark","licenseC":"Copyright","contentType":"Inhaltstyp","licenseExtras":"License Extras","changes":"Changelog","contentCopied":"Inhalt wurde ins Clipboard kopiert","connectionLost":"Connection lost. Results will be stored and sent when you regain connection.","connectionReestablished":"Connection reestablished.","resubmitScores":"Attempting to submit stored results.","offlineDialogHeader":"Your connection to the server was lost","offlineDialogBody":"We were unable to send information about your completion of this task. Please check your internet connection.","offlineDialogRetryMessage":"Versuche es wieder in :num....","offlineDialogRetryButtonLabel":"Jetzt nochmal probieren","offlineSuccessfulSubmit":"Erfolgreich Ergebnisse gesendet."}},"hubIsEnabled":false,"reportingIsEnabled":false,"libraryConfig":null,"crossorigin":null,"crossoriginCacheBuster":null,"pluginCacheBuster":"","libraryUrl":".\/libraries\/h5pcore\/js","contents":{"cid-assets":{"displayOptions":{"copy":false,"copyright":false,"embed":false,"export":false,"frame":false,"icon":false},"embedCode":"","exportUrl":false,"fullScreen":false,"contentUserData":[],"metadata":{"title":"38299_\u03a0\u039f\u0399\u039f\u03a3_\u0393\u0399\u039f\u03a1\u03a4\u0391\u0396\u0395\u0399_\u0394\u0399\u0391\u03a6\u039f\u03a1\u0395\u03a4\u0399\u039a\u0391","license":null},"library":"H5P.InteractiveBook 1.11","jsonContent":"{\"showCoverPage\":false,\"bookCover\":{\"coverDescription\":\"<p style=\\\"text-align: center;\\\"><\\\/p>\"},\"chapters\":[{\"params\":{\"content\":[{\"content\":{\"params\":{\"iconType\":\"icon\",\"icon\":\"info\",\"color\":\"#f7580d\",\"hotspots\":[{\"position\":{\"x\":76.7199951171875,\"y\":50.52430846548908},\"alwaysFullscreen\":false,\"content\":[{\"params\":{\"text\":\"<p style=\\\"text-align: center;\\\"><strong>\\u03a3\\u03c4\\u03b7\\u03bd \\u039a\\u03bf\\u03c1\\u03ad\\u03b1, \\u03c4\\u03bf \\u03c0\\u03c1\\u03ce\\u03c4\\u03bf \\u03b3\\u03b5\\u03bd\\u03ad\\u03b8\\u03bb\\u03b9\\u03bf \\u03b5\\u03bd\\u03cc\\u03c2 \\u03c0\\u03b1\\u03b9\\u03b4\\u03b9\\u03bf\\u03cd \\u03b5\\u03af\\u03bd\\u03b1\\u03b9 \\u03c0\\u03bf\\u03bb\\u03cd \\u03c3\\u03b7\\u03bc\\u03b1\\u03bd\\u03c4\\u03b9\\u03ba\\u03cc. \\u03a3\\u03c4\\u03b7 \\u03b3\\u03b9\\u03bf\\u03c1\\u03c4\\u03ae \\u03c0\\u03bf\\u03c5 \\u03bb\\u03ad\\u03b3\\u03b5\\u03c4\\u03b1\\u03b9 Doljanchi, \\u03c4\\u03bf \\u03bc\\u03c9\\u03c1\\u03cc \\u03b4\\u03b9\\u03b1\\u03bb\\u03ad\\u03b3\\u03b5\\u03b9 \\u03ad\\u03bd\\u03b1 \\u03b1\\u03bd\\u03c4\\u03b9\\u03ba\\u03b5\\u03af\\u03bc\\u03b5\\u03bd\\u03bf \\u03b1\\u03c0\\u03cc \\u03c4\\u03bf \\u03c4\\u03c1\\u03b1\\u03c0\\u03ad\\u03b6\\u03b9. \\u0391\\u03bd \\u03c0\\u03b9\\u03ac\\u03c3\\u03b5\\u03b9 \\u03b2\\u03b9\\u03b2\\u03bb\\u03af\\u03bf, \\u03bb\\u03ad\\u03bd\\u03b5 \\u03cc\\u03c4\\u03b9 \\u03b8\\u03b1 \\u03b3\\u03af\\u03bd\\u03b5\\u03b9 \\u03c3\\u03bf\\u03c6\\u03cc\\u2219 \\u03b1\\u03bd \\u03c0\\u03b9\\u03ac\\u03c3\\u03b5\\u03b9 \\u03c7\\u03c1\\u03ae\\u03bc\\u03b1\\u03c4\\u03b1, \\u03b8\\u03b1 \\u03ad\\u03c7\\u03b5\\u03b9 \\u03c0\\u03bb\\u03bf\\u03cd\\u03c4\\u03bf.<\\\/strong><\\\/p>\\n\"},\"library\":\"H5P.Text 1.1\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Untitled Text\"},\"subContentId\":\"072a62e1-acf4-477a-9172-28ef59e34887\"}]},{\"position\":{\"x\":31.9199951171875,\"y\":57.98081727050025},\"alwaysFullscreen\":false,\"content\":[{\"params\":{\"text\":\"<p style=\\\"text-align: center;\\\"><strong>\\u03a3\\u03c4\\u03bf \\u039c\\u03b5\\u03be\\u03b9\\u03ba\\u03cc, \\u03c4\\u03b1 \\u03c0\\u03b1\\u03b9\\u03b4\\u03b9\\u03ac \\u03c3\\u03c0\\u03ac\\u03bd\\u03b5 \\u03c4\\u03b7\\u03bd \\u03c0\\u03bf\\u03bb\\u03cd\\u03c7\\u03c1\\u03c9\\u03bc\\u03b7 \\u03c0\\u03b9\\u03bd\\u03b9\\u03ac\\u03c4\\u03b1. \\u039c\\u03ad\\u03c3\\u03b1 \\u03ad\\u03c7\\u03b5\\u03b9 \\u03b3\\u03bb\\u03c5\\u03ba\\u03ac \\u03ba\\u03b1\\u03b9 \\u03c0\\u03b1\\u03b9\\u03c7\\u03bd\\u03af\\u03b4\\u03b9\\u03b1, \\u03ba\\u03b1\\u03b9 \\u03cc\\u03bb\\u03bf\\u03b9 \\u03c4\\u03c1\\u03ad\\u03c7\\u03bf\\u03c5\\u03bd \\u03bd\\u03b1 \\u03c4\\u03b1 \\u03bc\\u03b1\\u03b6\\u03ad\\u03c8\\u03bf\\u03c5\\u03bd \\u03b3\\u03b5\\u03bb\\u03ce\\u03bd\\u03c4\\u03b1\\u03c2.<\\\/strong><\\\/p>\\n\"},\"library\":\"H5P.Text 1.1\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Untitled Text\"},\"subContentId\":\"3ab6371d-2ef2-4a90-895b-614070c856b1\"}]},{\"position\":{\"x\":65.5199951171875,\"y\":56.91074517577789},\"alwaysFullscreen\":false,\"content\":[{\"params\":{\"text\":\"<p style=\\\"text-align: center;\\\"><strong>\\u03a3\\u03c4\\u03b7\\u03bd \\u0399\\u03bd\\u03b4\\u03af\\u03b1, \\u03c4\\u03b1 \\u03c0\\u03b1\\u03b9\\u03b4\\u03b9\\u03ac \\u03be\\u03b5\\u03ba\\u03b9\\u03bd\\u03bf\\u03cd\\u03bd \\u03c4\\u03b7 \\u03bc\\u03ad\\u03c1\\u03b1 \\u03bc\\u03b5 \\u03bc\\u03b9\\u03b1 \\u03bc\\u03b9\\u03ba\\u03c1\\u03ae \\u03b8\\u03c1\\u03b7\\u03c3\\u03ba\\u03b5\\u03c5\\u03c4\\u03b9\\u03ba\\u03ae \\u03c4\\u03b5\\u03bb\\u03b5\\u03c4\\u03ae \\u03c3\\u03c4\\u03bf \\u03c3\\u03c0\\u03af\\u03c4\\u03b9. \\u039c\\u03b5\\u03c4\\u03ac \\u03c0\\u03ac\\u03bd\\u03b5 \\u03c3\\u03c4\\u03bf \\u03c3\\u03c7\\u03bf\\u03bb\\u03b5\\u03af\\u03bf \\u03bc\\u03b5 \\u03ba\\u03b1\\u03b9\\u03bd\\u03bf\\u03cd\\u03c1\\u03b9\\u03b1 \\u03c1\\u03bf\\u03cd\\u03c7\\u03b1 \\u03ba\\u03b1\\u03b9 \\u03b3\\u03bb\\u03c5\\u03ba\\u03ac \\u03b3\\u03b9\\u03b1 \\u03bd\\u03b1 \\u03ba\\u03b5\\u03c1\\u03ac\\u03c3\\u03bf\\u03c5\\u03bd \\u03c4\\u03bf\\u03c5\\u03c2 \\u03c3\\u03c5\\u03bc\\u03bc\\u03b1\\u03b8\\u03b7\\u03c4\\u03ad\\u03c2 \\u03c4\\u03bf\\u03c5\\u03c2.<\\\/strong><\\\/p>\\n\"},\"library\":\"H5P.Text 1.1\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Untitled Text\"},\"subContentId\":\"4dae54fa-40ed-485d-8eca-9f941b93a834\"}]},{\"position\":{\"x\":54.3199951171875,\"y\":43.76819827660305},\"alwaysFullscreen\":false,\"content\":[{\"params\":{\"text\":\"<p style=\\\"text-align: center;\\\"><strong>\\u03a3\\u03c4\\u03b7 \\u0393\\u03b5\\u03c1\\u03bc\\u03b1\\u03bd\\u03af\\u03b1, \\u03bf\\u03b9 \\u03b3\\u03bf\\u03bd\\u03b5\\u03af\\u03c2 \\u03b2\\u03ac\\u03b6\\u03bf\\u03c5\\u03bd \\u03ad\\u03bd\\u03b1 \\u03bc\\u03b5\\u03b3\\u03ac\\u03bb\\u03bf \\u03ba\\u03b5\\u03c1\\u03af \\u03c0\\u03ac\\u03bd\\u03c9 \\u03c3\\u03c4\\u03bf \\u03c4\\u03c1\\u03b1\\u03c0\\u03ad\\u03b6\\u03b9. \\u03a4\\u03bf \\u03c0\\u03b1\\u03b9\\u03b4\\u03af \\u03c4\\u03bf \\u03c3\\u03b2\\u03ae\\u03bd\\u03b5\\u03b9 \\u03ba\\u03b1\\u03b9 \\u03ba\\u03ac\\u03bd\\u03b5\\u03b9 \\u03bc\\u03b9\\u03b1 \\u03b5\\u03c5\\u03c7\\u03ae.<\\\/strong><\\\/p>\\n\"},\"library\":\"H5P.Text 1.1\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Untitled Text\"},\"subContentId\":\"04b5da85-ab8d-4d8e-972a-b9333a677b4f\"}]},{\"position\":{\"x\":53.1199951171875,\"y\":40.63520715145263},\"alwaysFullscreen\":false,\"content\":[{\"params\":{\"text\":\"<p style=\\\"text-align: center;\\\"><strong>\\u03a3\\u03c4\\u03b7 \\u0394\\u03b1\\u03bd\\u03af\\u03b1, \\u03b7 \\u03c4\\u03bf\\u03cd\\u03c1\\u03c4\\u03b1 \\u03b3\\u03b5\\u03bd\\u03b5\\u03b8\\u03bb\\u03af\\u03c9\\u03bd \\u03b5\\u03af\\u03bd\\u03b1\\u03b9 \\u03c0\\u03bf\\u03bb\\u03cd \\u03be\\u03b5\\u03c7\\u03c9\\u03c1\\u03b9\\u03c3\\u03c4\\u03ae. \\u03a6\\u03c4\\u03b9\\u03ac\\u03c7\\u03bd\\u03bf\\u03c5\\u03bd \\u03bc\\u03b9\\u03b1 \\u03bc\\u03b5\\u03b3\\u03ac\\u03bb\\u03b7 \\u03c4\\u03bf\\u03cd\\u03c1\\u03c4\\u03b1 \\u03c3\\u03b5 \\u03c3\\u03c7\\u03ae\\u03bc\\u03b1 \\u03c0\\u03b1\\u03b9\\u03b4\\u03b9\\u03bf\\u03cd, \\u03b1\\u03b3\\u03bf\\u03c1\\u03b9\\u03bf\\u03cd \\u03ae \\u03ba\\u03bf\\u03c1\\u03b9\\u03c4\\u03c3\\u03b9\\u03bf\\u03cd, \\u03c0\\u03bf\\u03c5 \\u03c4\\u03b7 \\u03c3\\u03c4\\u03bf\\u03bb\\u03af\\u03b6\\u03bf\\u03c5\\u03bd \\u03bc\\u03b5 \\u03ba\\u03b1\\u03c1\\u03b1\\u03bc\\u03ad\\u03bb\\u03b5\\u03c2 \\u03ba\\u03b1\\u03b9 \\u03c3\\u03b7\\u03bc\\u03b1\\u03af\\u03b5\\u03c2.<\\\/strong><\\\/p>\\n\"},\"library\":\"H5P.Text 1.1\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Untitled Text\"},\"subContentId\":\"1ab86c7b-4bd9-4373-abeb-8ec088b915d5\"}]},{\"position\":{\"x\":49.9199951171875,\"y\":40.94041441034897},\"alwaysFullscreen\":false,\"content\":[{\"params\":{\"text\":\"<p style=\\\"text-align: center;\\\"><strong>\\u03a3\\u03c4\\u03b7\\u03bd \\u0391\\u03b3\\u03b3\\u03bb\\u03af\\u03b1, \\u03bf\\u03b9 \\u03bf\\u03b9\\u03ba\\u03bf\\u03b3\\u03ad\\u03bd\\u03b5\\u03b9\\u03b5\\u03c2 \\u03c3\\u03c5\\u03c7\\u03bd\\u03ac \\u03ba\\u03c1\\u03cd\\u03b2\\u03bf\\u03c5\\u03bd \\u03ad\\u03bd\\u03b1 \\u03bc\\u03b9\\u03ba\\u03c1\\u03cc \\u03ba\\u03ad\\u03c1\\u03bc\\u03b1 \\u03bc\\u03ad\\u03c3\\u03b1 \\u03c3\\u03c4\\u03b7\\u03bd \\u03c4\\u03bf\\u03cd\\u03c1\\u03c4\\u03b1. \\u038c\\u03c0\\u03bf\\u03b9\\u03bf\\u03c2 \\u03c4\\u03bf \\u03b2\\u03c1\\u03b5\\u03b9, \\u03bb\\u03ad\\u03bd\\u03b5 \\u03cc\\u03c4\\u03b9 \\u03b8\\u03b1 \\u03ad\\u03c7\\u03b5\\u03b9 \\u03ba\\u03b1\\u03bb\\u03ae \\u03c4\\u03cd\\u03c7\\u03b7.<\\\/strong><\\\/p>\\n\"},\"library\":\"H5P.Text 1.1\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Untitled Text\"},\"subContentId\":\"0ad0d6f8-8220-471f-9a04-1a9ddee1b5aa\"}]}],\"hotspotNumberLabel\":\"\\u03a0\\u03bb\\u03b7\\u03c1\\u03bf\\u03c6\\u03bf\\u03c1\\u03af\\u03b1 #num\",\"closeButtonLabel\":\"\\u039a\\u03bb\\u03b5\\u03af\\u03c3\\u03b9\\u03bc\\u03bf\",\"containsAudioVideoLabel\":\"Contains Audio\\\/Video\",\"image\":{\"path\":\"images\\\/image-68d40db7dbb5c.jpg\",\"mime\":\"image\\\/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720}},\"library\":\"H5P.ImageHotspots 1.10\",\"metadata\":{\"contentType\":\"Image Hotspots\",\"license\":\"U\",\"title\":\"\\u0393\\u0395\\u039d\\u0395\\u0398\\u039b\\u0399\\u0391 \\u03a3\\u03a4\\u039f\\u039d \\u039a\\u039f\\u03a3\\u039c\\u039f\"},\"subContentId\":\"38b3984e-0fae-4c29-ba18-554910a1932e\"},\"useSeparator\":\"auto\"}]},\"library\":\"H5P.Column 1.18\",\"subContentId\":\"ed949c98-b6d8-44f9-b998-88cda51069ea\",\"metadata\":{\"contentType\":\"Page\",\"license\":\"U\",\"title\":\"\\u0393\\u0395\\u039d\\u0395\\u0398\\u039b\\u0399\\u0391 \\u03a3\\u03a4\\u039f\\u039d \\u039a\\u039f\\u03a3\\u039c\\u039f\"}},{\"params\":{\"content\":[{\"content\":{\"params\":{\"decorative\":false,\"contentName\":\"\\u0395\\u03b9\\u03ba\\u03cc\\u03bd\\u03b1\",\"expandImage\":\"Expand Image\",\"minimizeImage\":\"Minimize Image\",\"file\":{\"path\":\"images\\\/file-68d424d1a2c1d.jpg\",\"mime\":\"image\\\/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720}},\"library\":\"H5P.Image 1.1\",\"metadata\":{\"contentType\":\"Image\",\"license\":\"U\",\"title\":\"Untitled Image\"},\"subContentId\":\"dcc67ce4-bc24-47e8-8706-3355b2c2d27e\"},\"useSeparator\":\"auto\"}]},\"library\":\"H5P.Column 1.18\",\"subContentId\":\"67eee6d3-cdab-4163-966a-7f713c2f4565\",\"metadata\":{\"contentType\":\"Page\",\"license\":\"U\",\"title\":\"\\u0391\\u03a3 \\u03a3\\u03a5\\u0396\\u0397\\u03a4\\u0397\\u03a3\\u039f\\u03a5\\u039c\\u0395!\"}},{\"params\":{\"content\":[{\"content\":{\"params\":{\"presentation\":{\"slides\":[{\"elements\":[{\"x\":0,\"y\":0,\"width\":99.9984591679507,\"height\":99.99695633867834,\"action\":{\"library\":\"H5P.Image 1.1\",\"params\":{\"decorative\":false,\"contentName\":\"\\u0395\\u03b9\\u03ba\\u03cc\\u03bd\\u03b1\",\"expandImage\":\"Expand Image\",\"minimizeImage\":\"Minimize Image\",\"file\":{\"path\":\"images\\\/file-68d41f89dfa0a.jpg\",\"mime\":\"image\\\/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720}},\"subContentId\":\"1a966a53-ce49-4061-a8af-c05b463be24d\",\"metadata\":{\"contentType\":\"Image\",\"license\":\"U\",\"title\":\"Untitled Image\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"},{\"x\":51.36106831022086,\"y\":25.36384434716001,\"width\":40.93323061119672,\"height\":74.63311199151833,\"action\":{\"library\":\"H5P.MultiChoice 1.16\",\"params\":{\"media\":{\"disableImageZooming\":false},\"answers\":[{\"correct\":true,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div><strong>\\u0394\\u03b1\\u03bd\\u03af\\u03b1;<\\\/strong><\\\/div>\\n\"},{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div><strong>\\u0399\\u03bd\\u03b4\\u03af\\u03b1;<\\\/strong><\\\/div>\\n\"},{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div><strong>\\u039c\\u03b5\\u03be\\u03b9\\u03ba\\u03cc;<\\\/strong><\\\/div>\\n\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"type\":\"auto\",\"singlePoint\":false,\"randomAnswers\":true,\"showSolutionsRequiresInput\":true,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"autoCheck\":false,\"passPercentage\":100,\"showScorePoints\":true},\"UI\":{\"checkAnswerButton\":\"\\u0388\\u03bb\\u03b5\\u03b3\\u03c7\\u03bf\\u03c2\",\"submitAnswerButton\":\"\\u03a5\\u03c0\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae\",\"showSolutionButton\":\"\\u039b\\u03cd\\u03c3\\u03b7\",\"tryAgainButton\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7\",\"tipsLabel\":\"\\u0395\\u03bc\\u03c6\\u03ac\\u03bd\\u03b9\\u03c3\\u03b7 \\u03b5\\u03c0\\u03b5\\u03be\\u03ae\\u03b3\\u03b7\\u03c3\\u03b7\\u03c2\",\"scoreBarLabel\":\"\\u0388\\u03c7\\u03b5\\u03b9\\u03c2 :num \\u03b1\\u03c0\\u03cc :total \\u03c0\\u03cc\\u03bd\\u03c4\\u03bf\\u03c5\\u03c2\",\"tipAvailable\":\"\\u0395\\u03c0\\u03b5\\u03be\\u03ae\\u03b3\\u03b7\\u03c3\\u03b7 \\u03b4\\u03b9\\u03b1\\u03b8\\u03ad\\u03c3\\u03b9\\u03bc\\u03b7\",\"feedbackAvailable\":\"\\u0391\\u03bd\\u03b1\\u03c4\\u03c1\\u03bf\\u03c6\\u03bf\\u03b4\\u03cc\\u03c4\\u03b7\\u03c3\\u03b7 \\u03b4\\u03b9\\u03b1\\u03b8\\u03ad\\u03c3\\u03b9\\u03bc\\u03b7\",\"readFeedback\":\"\\u0391\\u03bd\\u03ac\\u03b3\\u03bd\\u03c9\\u03c3\\u03b7 \\u03b1\\u03bd\\u03b1\\u03c4\\u03c1\\u03bf\\u03c6\\u03bf\\u03b4\\u03cc\\u03c4\\u03b7\\u03c3\\u03b7\\u03c2\",\"wrongAnswer\":\"\\u039b\\u03ac\\u03b8\\u03bf\\u03c2 \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b7\",\"correctAnswer\":\"\\u03a3\\u03c9\\u03c3\\u03c4\\u03ae \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b7\",\"shouldCheck\":\"\\u0398\\u03b1 \\u03c0\\u03c1\\u03ad\\u03c0\\u03b5\\u03b9 \\u03bd\\u03b1 \\u03ad\\u03c7\\u03b5\\u03b9 \\u03b5\\u03c0\\u03b9\\u03bb\\u03b5\\u03b3\\u03b5\\u03af\",\"shouldNotCheck\":\"\\u0394\\u03b5\\u03bd \\u03b8\\u03b1 \\u03c0\\u03c1\\u03ad\\u03c0\\u03b5\\u03b9 \\u03bd\\u03b1 \\u03ad\\u03c7\\u03b5\\u03b9 \\u03b5\\u03c0\\u03b9\\u03bb\\u03b5\\u03b3\\u03b5\\u03af\",\"noInput\":\"\\u03a0\\u03b1\\u03c1\\u03b1\\u03ba\\u03b1\\u03bb\\u03ce \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b5 \\u03c0\\u03c1\\u03bf\\u03c4\\u03bf\\u03cd \\u03b4\\u03b5\\u03b9\\u03c2 \\u03c4\\u03b7 \\u03bb\\u03cd\\u03c3\\u03b7\",\"a11yCheck\":\"\\u0388\\u03bb\\u03b5\\u03b3\\u03c7\\u03bf\\u03c2 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03c9\\u03bd. \\u039f\\u03b9 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2 \\u03b8\\u03b1 \\u03bc\\u03b1\\u03c1\\u03ba\\u03b1\\u03c1\\u03b9\\u03c3\\u03c4\\u03bf\\u03cd\\u03bd \\u03c9\\u03c2 \\u03c3\\u03c9\\u03c3\\u03c4\\u03ad\\u03c2, \\u03bb\\u03ac\\u03b8\\u03bf\\u03c2 \\u03ba\\u03b1\\u03b9 \\u03bc\\u03b7 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03b7\\u03bc\\u03ad\\u03bd\\u03b5\\u03c2.\",\"a11yShowSolution\":\"\\u03a0\\u03c1\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae \\u03c4\\u03b7\\u03c2 \\u03bb\\u03cd\\u03c3\\u03b7\\u03c2. \\u0397 \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7 \\u03b8\\u03b1 \\u03b5\\u03c0\\u03b9\\u03c3\\u03b7\\u03bc\\u03b1\\u03bd\\u03b8\\u03b5\\u03af \\u03bc\\u03b5 \\u03c4\\u03b7\\u03bd \\u03c3\\u03c9\\u03c3\\u03c4\\u03ae \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03c3\\u03b7.\",\"a11yRetry\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7 \\u03c4\\u03b7\\u03c2 \\u03b5\\u03c1\\u03b3\\u03b1\\u03c3\\u03af\\u03b1\\u03c2. \\u0395\\u03c0\\u03b1\\u03bd\\u03b1\\u03c6\\u03bf\\u03c1\\u03ac \\u03cc\\u03bb\\u03c9\\u03bd \\u03c4\\u03c9\\u03bd \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03c9\\u03bd \\u03ba\\u03b1\\u03b9 \\u03ad\\u03bd\\u03b1\\u03c1\\u03be\\u03b7 \\u03b1\\u03c0\\u03cc \\u03c4\\u03b7\\u03bd \\u03b1\\u03c1\\u03c7\\u03ae.\"},\"confirmCheck\":{\"header\":\"\\u039f\\u03bb\\u03bf\\u03ba\\u03bb\\u03ae\\u03c1\\u03c9\\u03c3\\u03b7 \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7\\u03c2\",\"body\":\"\\u0395\\u03af\\u03c3\\u03b1\\u03b9 \\u03c3\\u03af\\u03b3\\u03bf\\u03c5\\u03c1\\u03bf\\u03c2 \\u03cc\\u03c4\\u03b9 \\u03b8\\u03ad\\u03bb\\u03b5\\u03b9\\u03c2 \\u03bd\\u03b1 \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03ce\\u03c3\\u03b5\\u03b9\\u03c2 \\u03c4\\u03b7\\u03bd \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7;\",\"cancelLabel\":\"\\u038c\\u03c7\\u03b9\",\"confirmLabel\":\"\\u039d\\u03b1\\u03b9\"},\"confirmRetry\":{\"header\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7\",\"body\":\"\\u0395\\u03af\\u03c3\\u03b1\\u03b9 \\u03c3\\u03af\\u03b3\\u03bf\\u03c5\\u03c1\\u03bf\\u03c2 \\u03cc\\u03c4\\u03b9 \\u03b8\\u03ad\\u03bb\\u03b5\\u03b9\\u03c2 \\u03bd\\u03b1 \\u03c0\\u03c1\\u03bf\\u03c3\\u03c0\\u03b1\\u03b8\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2 \\u03be\\u03b1\\u03bd\\u03ac;\",\"cancelLabel\":\"\\u038c\\u03c7\\u03b9\",\"confirmLabel\":\"\\u039d\\u03b1\\u03b9\"},\"question\":\"<p style=\\\"text-align: center;\\\"><strong>\\u0392\\u03c1\\u03ae\\u03ba\\u03b1\\u03bc\\u03b5 \\u03c4\\u03bf \\u03b4\\u03b9\\u03c0\\u03bb\\u03b1\\u03bd\\u03cc \\u03b1\\u03c0\\u03cc\\u03c3\\u03c0\\u03b1\\u03c3\\u03bc\\u03b1 \\u03c3\\u03c4\\u03b9\\u03c2 \\u03c3\\u03b5\\u03bb\\u03af\\u03b4\\u03b5\\u03c2 \\u03c4\\u03bf\\u03c5 \\u03b7\\u03bc\\u03b5\\u03c1\\u03bf\\u03bb\\u03bf\\u03b3\\u03af\\u03bf\\u03c5 \\u03b5\\u03bd\\u03cc\\u03c2 \\u03c0\\u03b1\\u03b9\\u03b4\\u03b9\\u03bf\\u03cd. \\u03a3\\u03b5 \\u03c0\\u03bf\\u03b9\\u03b1 \\u03c7\\u03ce\\u03c1\\u03b1 \\u03c0\\u03b9\\u03c3\\u03c4\\u03b5\\u03cd\\u03b5\\u03b9\\u03c2 \\u03cc\\u03c4\\u03b9 \\u03bc\\u03ad\\u03bd\\u03b5\\u03b9;<\\\/strong><\\\/p>\\n\"},\"subContentId\":\"a1c8579e-c302-4023-9e1a-e887a1afb83a\",\"metadata\":{\"contentType\":\"Multiple Choice\",\"license\":\"U\",\"title\":\"\\u03a0\\u03bf\\u03cd \\u03bc\\u03ad\\u03bd\\u03b5\\u03b9;\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"}],\"slideBackgroundSelector\":{}},{\"elements\":[{\"x\":0,\"y\":0,\"width\":99.9984591679507,\"height\":99.99695633867834,\"action\":{\"library\":\"H5P.Image 1.1\",\"params\":{\"decorative\":false,\"contentName\":\"\\u0395\\u03b9\\u03ba\\u03cc\\u03bd\\u03b1\",\"expandImage\":\"Expand Image\",\"minimizeImage\":\"Minimize Image\",\"file\":{\"path\":\"images\\\/file-68d420b9e6987.jpg\",\"mime\":\"image\\\/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720}},\"subContentId\":\"9611f193-d1f7-4372-ac35-c08d7bc7b956\",\"metadata\":{\"contentType\":\"Image\",\"license\":\"U\",\"title\":\"Untitled Image\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"},{\"x\":48.79301489470981,\"y\":30.436613216592015,\"width\":39.99743194658449,\"height\":65.94599530261603,\"action\":{\"library\":\"H5P.MultiChoice 1.16\",\"params\":{\"media\":{\"disableImageZooming\":false},\"answers\":[{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div><strong>\\u039c\\u03b5\\u03be\\u03b9\\u03ba\\u03cc;<\\\/strong><\\\/div>\\n\"},{\"correct\":true,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div><strong>\\u039a\\u03bf\\u03c1\\u03ad\\u03b1;<\\\/strong><\\\/div>\\n\"},{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div><strong>\\u0391\\u03b3\\u03b3\\u03bb\\u03af\\u03b1;<\\\/strong><\\\/div>\\n\"}],\"overallFeedback\":[{\"from\":0,\"to\":99,\"feedback\":\"\\u039c\\u03bc\\u03bc\\u03bc...\"},{\"from\":100,\"to\":100,\"feedback\":\"\\u03a4\\u03ad\\u03bb\\u03b5\\u03b9\\u03b1!\"}],\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"type\":\"auto\",\"singlePoint\":false,\"randomAnswers\":true,\"showSolutionsRequiresInput\":true,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"autoCheck\":false,\"passPercentage\":100,\"showScorePoints\":true},\"UI\":{\"checkAnswerButton\":\"\\u0388\\u03bb\\u03b5\\u03b3\\u03c7\\u03bf\\u03c2\",\"submitAnswerButton\":\"\\u03a5\\u03c0\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae\",\"showSolutionButton\":\"\\u039b\\u03cd\\u03c3\\u03b7\",\"tryAgainButton\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7\",\"tipsLabel\":\"\\u0395\\u03bc\\u03c6\\u03ac\\u03bd\\u03b9\\u03c3\\u03b7 \\u03b5\\u03c0\\u03b5\\u03be\\u03ae\\u03b3\\u03b7\\u03c3\\u03b7\\u03c2\",\"scoreBarLabel\":\"\\u0388\\u03c7\\u03b5\\u03b9\\u03c2 :num \\u03b1\\u03c0\\u03cc :total \\u03c0\\u03cc\\u03bd\\u03c4\\u03bf\\u03c5\\u03c2\",\"tipAvailable\":\"\\u0395\\u03c0\\u03b5\\u03be\\u03ae\\u03b3\\u03b7\\u03c3\\u03b7 \\u03b4\\u03b9\\u03b1\\u03b8\\u03ad\\u03c3\\u03b9\\u03bc\\u03b7\",\"feedbackAvailable\":\"\\u0391\\u03bd\\u03b1\\u03c4\\u03c1\\u03bf\\u03c6\\u03bf\\u03b4\\u03cc\\u03c4\\u03b7\\u03c3\\u03b7 \\u03b4\\u03b9\\u03b1\\u03b8\\u03ad\\u03c3\\u03b9\\u03bc\\u03b7\",\"readFeedback\":\"\\u0391\\u03bd\\u03ac\\u03b3\\u03bd\\u03c9\\u03c3\\u03b7 \\u03b1\\u03bd\\u03b1\\u03c4\\u03c1\\u03bf\\u03c6\\u03bf\\u03b4\\u03cc\\u03c4\\u03b7\\u03c3\\u03b7\\u03c2\",\"wrongAnswer\":\"\\u039b\\u03ac\\u03b8\\u03bf\\u03c2 \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b7\",\"correctAnswer\":\"\\u03a3\\u03c9\\u03c3\\u03c4\\u03ae \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b7\",\"shouldCheck\":\"\\u0398\\u03b1 \\u03c0\\u03c1\\u03ad\\u03c0\\u03b5\\u03b9 \\u03bd\\u03b1 \\u03ad\\u03c7\\u03b5\\u03b9 \\u03b5\\u03c0\\u03b9\\u03bb\\u03b5\\u03b3\\u03b5\\u03af\",\"shouldNotCheck\":\"\\u0394\\u03b5\\u03bd \\u03b8\\u03b1 \\u03c0\\u03c1\\u03ad\\u03c0\\u03b5\\u03b9 \\u03bd\\u03b1 \\u03ad\\u03c7\\u03b5\\u03b9 \\u03b5\\u03c0\\u03b9\\u03bb\\u03b5\\u03b3\\u03b5\\u03af\",\"noInput\":\"\\u03a0\\u03b1\\u03c1\\u03b1\\u03ba\\u03b1\\u03bb\\u03ce \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b5 \\u03c0\\u03c1\\u03bf\\u03c4\\u03bf\\u03cd \\u03b4\\u03b5\\u03b9\\u03c2 \\u03c4\\u03b7 \\u03bb\\u03cd\\u03c3\\u03b7\",\"a11yCheck\":\"\\u0388\\u03bb\\u03b5\\u03b3\\u03c7\\u03bf\\u03c2 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03c9\\u03bd. \\u039f\\u03b9 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2 \\u03b8\\u03b1 \\u03bc\\u03b1\\u03c1\\u03ba\\u03b1\\u03c1\\u03b9\\u03c3\\u03c4\\u03bf\\u03cd\\u03bd \\u03c9\\u03c2 \\u03c3\\u03c9\\u03c3\\u03c4\\u03ad\\u03c2, \\u03bb\\u03ac\\u03b8\\u03bf\\u03c2 \\u03ba\\u03b1\\u03b9 \\u03bc\\u03b7 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03b7\\u03bc\\u03ad\\u03bd\\u03b5\\u03c2.\",\"a11yShowSolution\":\"\\u03a0\\u03c1\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae \\u03c4\\u03b7\\u03c2 \\u03bb\\u03cd\\u03c3\\u03b7\\u03c2. \\u0397 \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7 \\u03b8\\u03b1 \\u03b5\\u03c0\\u03b9\\u03c3\\u03b7\\u03bc\\u03b1\\u03bd\\u03b8\\u03b5\\u03af \\u03bc\\u03b5 \\u03c4\\u03b7\\u03bd \\u03c3\\u03c9\\u03c3\\u03c4\\u03ae \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03c3\\u03b7.\",\"a11yRetry\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7 \\u03c4\\u03b7\\u03c2 \\u03b5\\u03c1\\u03b3\\u03b1\\u03c3\\u03af\\u03b1\\u03c2. \\u0395\\u03c0\\u03b1\\u03bd\\u03b1\\u03c6\\u03bf\\u03c1\\u03ac \\u03cc\\u03bb\\u03c9\\u03bd \\u03c4\\u03c9\\u03bd \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03c9\\u03bd \\u03ba\\u03b1\\u03b9 \\u03ad\\u03bd\\u03b1\\u03c1\\u03be\\u03b7 \\u03b1\\u03c0\\u03cc \\u03c4\\u03b7\\u03bd \\u03b1\\u03c1\\u03c7\\u03ae.\"},\"confirmCheck\":{\"header\":\"\\u039f\\u03bb\\u03bf\\u03ba\\u03bb\\u03ae\\u03c1\\u03c9\\u03c3\\u03b7 \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7\\u03c2\",\"body\":\"\\u0395\\u03af\\u03c3\\u03b1\\u03b9 \\u03c3\\u03af\\u03b3\\u03bf\\u03c5\\u03c1\\u03bf\\u03c2 \\u03cc\\u03c4\\u03b9 \\u03b8\\u03ad\\u03bb\\u03b5\\u03b9\\u03c2 \\u03bd\\u03b1 \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03ce\\u03c3\\u03b5\\u03b9\\u03c2 \\u03c4\\u03b7\\u03bd \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7;\",\"cancelLabel\":\"\\u038c\\u03c7\\u03b9\",\"confirmLabel\":\"\\u039d\\u03b1\\u03b9\"},\"confirmRetry\":{\"header\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7\",\"body\":\"\\u0395\\u03af\\u03c3\\u03b1\\u03b9 \\u03c3\\u03af\\u03b3\\u03bf\\u03c5\\u03c1\\u03bf\\u03c2 \\u03cc\\u03c4\\u03b9 \\u03b8\\u03ad\\u03bb\\u03b5\\u03b9\\u03c2 \\u03bd\\u03b1 \\u03c0\\u03c1\\u03bf\\u03c3\\u03c0\\u03b1\\u03b8\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2 \\u03be\\u03b1\\u03bd\\u03ac;\",\"cancelLabel\":\"\\u038c\\u03c7\\u03b9\",\"confirmLabel\":\"\\u039d\\u03b1\\u03b9\"},\"question\":\"<p><strong>\\u03a0\\u03bf\\u03cd \\u03bd\\u03bf\\u03bc\\u03af\\u03b6\\u03b5\\u03b9\\u03c2 \\u03cc\\u03c4\\u03b9 \\u03b2\\u03c1\\u03af\\u03c3\\u03ba\\u03b5\\u03c4\\u03b1\\u03b9 \\u03c4\\u03bf \\u03c0\\u03b1\\u03b9\\u03b4\\u03af \\u03c0\\u03bf\\u03c5 \\u03b2\\u03bb\\u03ad\\u03c0\\u03b5\\u03b9\\u03c2 \\u03c3\\u03c4\\u03b7\\u03bd \\u03b5\\u03b9\\u03ba\\u03cc\\u03bd\\u03b1;<\\\/strong><\\\/p>\\n\"},\"subContentId\":\"a07358e3-b916-4ef6-aec1-338ae79ae933\",\"metadata\":{\"contentType\":\"Multiple Choice\",\"license\":\"U\",\"title\":\"\\u039c\\u03ac\\u03bd\\u03c4\\u03b5\\u03c8\\u03b5 \\u03c0\\u03bf\\u03cd;\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"}],\"slideBackgroundSelector\":{}},{\"elements\":[{\"x\":0,\"y\":0,\"width\":99.9984591679507,\"height\":99.98731807782642,\"action\":{\"library\":\"H5P.Image 1.1\",\"params\":{\"decorative\":false,\"contentName\":\"\\u0395\\u03b9\\u03ba\\u03cc\\u03bd\\u03b1\",\"expandImage\":\"Expand Image\",\"minimizeImage\":\"Minimize Image\",\"file\":{\"path\":\"images\\\/file-68d42180d3199.jpg\",\"mime\":\"image\\\/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720}},\"subContentId\":\"0af497f1-778b-462d-825e-d0d7623f00e0\",\"metadata\":{\"contentType\":\"Image\",\"license\":\"U\",\"title\":\"Untitled Image\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"},{\"x\":51.36106831022086,\"y\":30.436613216592015,\"width\":39.99743194658449,\"height\":65.94599530261603,\"action\":{\"library\":\"H5P.MultiChoice 1.16\",\"params\":{\"media\":{\"disableImageZooming\":false},\"answers\":[{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div><strong>\\u0391\\u03b3\\u03b3\\u03bb\\u03af\\u03b1;<\\\/strong><\\\/div>\\n\"},{\"correct\":true,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div><strong>\\u0393\\u03b5\\u03c1\\u03bc\\u03b1\\u03bd\\u03af\\u03b1;<\\\/strong><\\\/div>\\n\"}],\"overallFeedback\":[{\"from\":0,\"to\":99,\"feedback\":\"\\u039c\\u03bc\\u03bc\\u03bc..\"},{\"from\":100,\"to\":100,\"feedback\":\"\\u03a4\\u03ad\\u03bb\\u03b5\\u03b9\\u03b1! \\u03a0\\u03c1\\u03bf\\u03c7\\u03c9\\u03c1\\u03ac\\u03bc\\u03b5!\"}],\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"type\":\"auto\",\"singlePoint\":false,\"randomAnswers\":true,\"showSolutionsRequiresInput\":true,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"autoCheck\":false,\"passPercentage\":100,\"showScorePoints\":true},\"UI\":{\"checkAnswerButton\":\"\\u0388\\u03bb\\u03b5\\u03b3\\u03c7\\u03bf\\u03c2\",\"submitAnswerButton\":\"\\u03a5\\u03c0\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae\",\"showSolutionButton\":\"\\u039b\\u03cd\\u03c3\\u03b7\",\"tryAgainButton\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7\",\"tipsLabel\":\"\\u0395\\u03bc\\u03c6\\u03ac\\u03bd\\u03b9\\u03c3\\u03b7 \\u03b5\\u03c0\\u03b5\\u03be\\u03ae\\u03b3\\u03b7\\u03c3\\u03b7\\u03c2\",\"scoreBarLabel\":\"\\u0388\\u03c7\\u03b5\\u03b9\\u03c2 :num \\u03b1\\u03c0\\u03cc :total \\u03c0\\u03cc\\u03bd\\u03c4\\u03bf\\u03c5\\u03c2\",\"tipAvailable\":\"\\u0395\\u03c0\\u03b5\\u03be\\u03ae\\u03b3\\u03b7\\u03c3\\u03b7 \\u03b4\\u03b9\\u03b1\\u03b8\\u03ad\\u03c3\\u03b9\\u03bc\\u03b7\",\"feedbackAvailable\":\"\\u0391\\u03bd\\u03b1\\u03c4\\u03c1\\u03bf\\u03c6\\u03bf\\u03b4\\u03cc\\u03c4\\u03b7\\u03c3\\u03b7 \\u03b4\\u03b9\\u03b1\\u03b8\\u03ad\\u03c3\\u03b9\\u03bc\\u03b7\",\"readFeedback\":\"\\u0391\\u03bd\\u03ac\\u03b3\\u03bd\\u03c9\\u03c3\\u03b7 \\u03b1\\u03bd\\u03b1\\u03c4\\u03c1\\u03bf\\u03c6\\u03bf\\u03b4\\u03cc\\u03c4\\u03b7\\u03c3\\u03b7\\u03c2\",\"wrongAnswer\":\"\\u039b\\u03ac\\u03b8\\u03bf\\u03c2 \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b7\",\"correctAnswer\":\"\\u03a3\\u03c9\\u03c3\\u03c4\\u03ae \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b7\",\"shouldCheck\":\"\\u0398\\u03b1 \\u03c0\\u03c1\\u03ad\\u03c0\\u03b5\\u03b9 \\u03bd\\u03b1 \\u03ad\\u03c7\\u03b5\\u03b9 \\u03b5\\u03c0\\u03b9\\u03bb\\u03b5\\u03b3\\u03b5\\u03af\",\"shouldNotCheck\":\"\\u0394\\u03b5\\u03bd \\u03b8\\u03b1 \\u03c0\\u03c1\\u03ad\\u03c0\\u03b5\\u03b9 \\u03bd\\u03b1 \\u03ad\\u03c7\\u03b5\\u03b9 \\u03b5\\u03c0\\u03b9\\u03bb\\u03b5\\u03b3\\u03b5\\u03af\",\"noInput\":\"\\u03a0\\u03b1\\u03c1\\u03b1\\u03ba\\u03b1\\u03bb\\u03ce \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b5 \\u03c0\\u03c1\\u03bf\\u03c4\\u03bf\\u03cd \\u03b4\\u03b5\\u03b9\\u03c2 \\u03c4\\u03b7 \\u03bb\\u03cd\\u03c3\\u03b7\",\"a11yCheck\":\"\\u0388\\u03bb\\u03b5\\u03b3\\u03c7\\u03bf\\u03c2 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03c9\\u03bd. \\u039f\\u03b9 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2 \\u03b8\\u03b1 \\u03bc\\u03b1\\u03c1\\u03ba\\u03b1\\u03c1\\u03b9\\u03c3\\u03c4\\u03bf\\u03cd\\u03bd \\u03c9\\u03c2 \\u03c3\\u03c9\\u03c3\\u03c4\\u03ad\\u03c2, \\u03bb\\u03ac\\u03b8\\u03bf\\u03c2 \\u03ba\\u03b1\\u03b9 \\u03bc\\u03b7 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03b7\\u03bc\\u03ad\\u03bd\\u03b5\\u03c2.\",\"a11yShowSolution\":\"\\u03a0\\u03c1\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae \\u03c4\\u03b7\\u03c2 \\u03bb\\u03cd\\u03c3\\u03b7\\u03c2. \\u0397 \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7 \\u03b8\\u03b1 \\u03b5\\u03c0\\u03b9\\u03c3\\u03b7\\u03bc\\u03b1\\u03bd\\u03b8\\u03b5\\u03af \\u03bc\\u03b5 \\u03c4\\u03b7\\u03bd \\u03c3\\u03c9\\u03c3\\u03c4\\u03ae \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03c3\\u03b7.\",\"a11yRetry\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7 \\u03c4\\u03b7\\u03c2 \\u03b5\\u03c1\\u03b3\\u03b1\\u03c3\\u03af\\u03b1\\u03c2. \\u0395\\u03c0\\u03b1\\u03bd\\u03b1\\u03c6\\u03bf\\u03c1\\u03ac \\u03cc\\u03bb\\u03c9\\u03bd \\u03c4\\u03c9\\u03bd \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03c9\\u03bd \\u03ba\\u03b1\\u03b9 \\u03ad\\u03bd\\u03b1\\u03c1\\u03be\\u03b7 \\u03b1\\u03c0\\u03cc \\u03c4\\u03b7\\u03bd \\u03b1\\u03c1\\u03c7\\u03ae.\"},\"confirmCheck\":{\"header\":\"\\u039f\\u03bb\\u03bf\\u03ba\\u03bb\\u03ae\\u03c1\\u03c9\\u03c3\\u03b7 \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7\\u03c2\",\"body\":\"\\u0395\\u03af\\u03c3\\u03b1\\u03b9 \\u03c3\\u03af\\u03b3\\u03bf\\u03c5\\u03c1\\u03bf\\u03c2 \\u03cc\\u03c4\\u03b9 \\u03b8\\u03ad\\u03bb\\u03b5\\u03b9\\u03c2 \\u03bd\\u03b1 \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03ce\\u03c3\\u03b5\\u03b9\\u03c2 \\u03c4\\u03b7\\u03bd \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7;\",\"cancelLabel\":\"\\u038c\\u03c7\\u03b9\",\"confirmLabel\":\"\\u039d\\u03b1\\u03b9\"},\"confirmRetry\":{\"header\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7\",\"body\":\"\\u0395\\u03af\\u03c3\\u03b1\\u03b9 \\u03c3\\u03af\\u03b3\\u03bf\\u03c5\\u03c1\\u03bf\\u03c2 \\u03cc\\u03c4\\u03b9 \\u03b8\\u03ad\\u03bb\\u03b5\\u03b9\\u03c2 \\u03bd\\u03b1 \\u03c0\\u03c1\\u03bf\\u03c3\\u03c0\\u03b1\\u03b8\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2 \\u03be\\u03b1\\u03bd\\u03ac;\",\"cancelLabel\":\"\\u038c\\u03c7\\u03b9\",\"confirmLabel\":\"\\u039d\\u03b1\\u03b9\"},\"question\":\"<p><strong>\\u03a0\\u03bf\\u03cd \\u03c0\\u03b9\\u03c3\\u03c4\\u03b5\\u03cd\\u03b5\\u03b9\\u03c2 \\u03cc\\u03c4\\u03b9 \\u03bc\\u03ad\\u03bd\\u03b5\\u03b9 \\u03c4\\u03bf \\u03c0\\u03b1\\u03b9\\u03b4\\u03af \\u03c0\\u03bf\\u03c5 \\u03c4\\u03bf \\u03ad\\u03b3\\u03c1\\u03b1\\u03c8\\u03b5;<\\\/strong><\\\/p>\\n\"},\"subContentId\":\"ad421fef-f58c-4839-81a8-a9b6c6bc4dfb\",\"metadata\":{\"contentType\":\"Multiple Choice\",\"license\":\"U\",\"title\":\"\\u03a0\\u03bf\\u03cd \\u03bc\\u03ad\\u03bd\\u03b5\\u03b9;\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"}],\"slideBackgroundSelector\":{}},{\"elements\":[{\"x\":0,\"y\":0,\"width\":99.9984591679507,\"height\":99.99391267735669,\"action\":{\"library\":\"H5P.Image 1.1\",\"params\":{\"decorative\":false,\"contentName\":\"\\u0395\\u03b9\\u03ba\\u03cc\\u03bd\\u03b1\",\"expandImage\":\"Expand Image\",\"minimizeImage\":\"Minimize Image\",\"file\":{\"path\":\"images\\\/file-68d422a10e7ad.jpg\",\"mime\":\"image\\\/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720}},\"subContentId\":\"36ec1f4b-f48d-4716-b85c-e95d58520d27\",\"metadata\":{\"contentType\":\"Image\",\"license\":\"U\",\"title\":\"Untitled Image\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"},{\"x\":43.65690806368773,\"y\":30.43661321659201,\"width\":39.99743194658449,\"height\":65.94599530261603,\"action\":{\"library\":\"H5P.MultiChoice 1.16\",\"params\":{\"media\":{\"disableImageZooming\":false},\"answers\":[{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div><strong>\\u0393\\u03b5\\u03c1\\u03bc\\u03b1\\u03bd\\u03af\\u03b1;<\\\/strong><\\\/div>\\n\"},{\"correct\":true,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div><strong>\\u0394\\u03b1\\u03bd\\u03af\\u03b1;<\\\/strong><\\\/div>\\n\"},{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div><strong>\\u0399\\u03bd\\u03b4\\u03af\\u03b1;<\\\/strong><\\\/div>\\n\"}],\"overallFeedback\":[{\"from\":0,\"to\":99,\"feedback\":\"\\u039c\\u03bc\\u03bc\\u03bc...\"},{\"from\":100,\"to\":100,\"feedback\":\"\\u03a4\\u03ad\\u03bb\\u03b5\\u03b9\\u03b1!\"}],\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"type\":\"auto\",\"singlePoint\":false,\"randomAnswers\":true,\"showSolutionsRequiresInput\":true,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"autoCheck\":false,\"passPercentage\":100,\"showScorePoints\":true},\"UI\":{\"checkAnswerButton\":\"\\u0388\\u03bb\\u03b5\\u03b3\\u03c7\\u03bf\\u03c2\",\"submitAnswerButton\":\"\\u03a5\\u03c0\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae\",\"showSolutionButton\":\"\\u039b\\u03cd\\u03c3\\u03b7\",\"tryAgainButton\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7\",\"tipsLabel\":\"\\u0395\\u03bc\\u03c6\\u03ac\\u03bd\\u03b9\\u03c3\\u03b7 \\u03b5\\u03c0\\u03b5\\u03be\\u03ae\\u03b3\\u03b7\\u03c3\\u03b7\\u03c2\",\"scoreBarLabel\":\"\\u0388\\u03c7\\u03b5\\u03b9\\u03c2 :num \\u03b1\\u03c0\\u03cc :total \\u03c0\\u03cc\\u03bd\\u03c4\\u03bf\\u03c5\\u03c2\",\"tipAvailable\":\"\\u0395\\u03c0\\u03b5\\u03be\\u03ae\\u03b3\\u03b7\\u03c3\\u03b7 \\u03b4\\u03b9\\u03b1\\u03b8\\u03ad\\u03c3\\u03b9\\u03bc\\u03b7\",\"feedbackAvailable\":\"\\u0391\\u03bd\\u03b1\\u03c4\\u03c1\\u03bf\\u03c6\\u03bf\\u03b4\\u03cc\\u03c4\\u03b7\\u03c3\\u03b7 \\u03b4\\u03b9\\u03b1\\u03b8\\u03ad\\u03c3\\u03b9\\u03bc\\u03b7\",\"readFeedback\":\"\\u0391\\u03bd\\u03ac\\u03b3\\u03bd\\u03c9\\u03c3\\u03b7 \\u03b1\\u03bd\\u03b1\\u03c4\\u03c1\\u03bf\\u03c6\\u03bf\\u03b4\\u03cc\\u03c4\\u03b7\\u03c3\\u03b7\\u03c2\",\"wrongAnswer\":\"\\u039b\\u03ac\\u03b8\\u03bf\\u03c2 \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b7\",\"correctAnswer\":\"\\u03a3\\u03c9\\u03c3\\u03c4\\u03ae \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b7\",\"shouldCheck\":\"\\u0398\\u03b1 \\u03c0\\u03c1\\u03ad\\u03c0\\u03b5\\u03b9 \\u03bd\\u03b1 \\u03ad\\u03c7\\u03b5\\u03b9 \\u03b5\\u03c0\\u03b9\\u03bb\\u03b5\\u03b3\\u03b5\\u03af\",\"shouldNotCheck\":\"\\u0394\\u03b5\\u03bd \\u03b8\\u03b1 \\u03c0\\u03c1\\u03ad\\u03c0\\u03b5\\u03b9 \\u03bd\\u03b1 \\u03ad\\u03c7\\u03b5\\u03b9 \\u03b5\\u03c0\\u03b9\\u03bb\\u03b5\\u03b3\\u03b5\\u03af\",\"noInput\":\"\\u03a0\\u03b1\\u03c1\\u03b1\\u03ba\\u03b1\\u03bb\\u03ce \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b5 \\u03c0\\u03c1\\u03bf\\u03c4\\u03bf\\u03cd \\u03b4\\u03b5\\u03b9\\u03c2 \\u03c4\\u03b7 \\u03bb\\u03cd\\u03c3\\u03b7\",\"a11yCheck\":\"\\u0388\\u03bb\\u03b5\\u03b3\\u03c7\\u03bf\\u03c2 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03c9\\u03bd. \\u039f\\u03b9 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2 \\u03b8\\u03b1 \\u03bc\\u03b1\\u03c1\\u03ba\\u03b1\\u03c1\\u03b9\\u03c3\\u03c4\\u03bf\\u03cd\\u03bd \\u03c9\\u03c2 \\u03c3\\u03c9\\u03c3\\u03c4\\u03ad\\u03c2, \\u03bb\\u03ac\\u03b8\\u03bf\\u03c2 \\u03ba\\u03b1\\u03b9 \\u03bc\\u03b7 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03b7\\u03bc\\u03ad\\u03bd\\u03b5\\u03c2.\",\"a11yShowSolution\":\"\\u03a0\\u03c1\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae \\u03c4\\u03b7\\u03c2 \\u03bb\\u03cd\\u03c3\\u03b7\\u03c2. \\u0397 \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7 \\u03b8\\u03b1 \\u03b5\\u03c0\\u03b9\\u03c3\\u03b7\\u03bc\\u03b1\\u03bd\\u03b8\\u03b5\\u03af \\u03bc\\u03b5 \\u03c4\\u03b7\\u03bd \\u03c3\\u03c9\\u03c3\\u03c4\\u03ae \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03c3\\u03b7.\",\"a11yRetry\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7 \\u03c4\\u03b7\\u03c2 \\u03b5\\u03c1\\u03b3\\u03b1\\u03c3\\u03af\\u03b1\\u03c2. \\u0395\\u03c0\\u03b1\\u03bd\\u03b1\\u03c6\\u03bf\\u03c1\\u03ac \\u03cc\\u03bb\\u03c9\\u03bd \\u03c4\\u03c9\\u03bd \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03c9\\u03bd \\u03ba\\u03b1\\u03b9 \\u03ad\\u03bd\\u03b1\\u03c1\\u03be\\u03b7 \\u03b1\\u03c0\\u03cc \\u03c4\\u03b7\\u03bd \\u03b1\\u03c1\\u03c7\\u03ae.\"},\"confirmCheck\":{\"header\":\"\\u039f\\u03bb\\u03bf\\u03ba\\u03bb\\u03ae\\u03c1\\u03c9\\u03c3\\u03b7 \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7\\u03c2\",\"body\":\"\\u0395\\u03af\\u03c3\\u03b1\\u03b9 \\u03c3\\u03af\\u03b3\\u03bf\\u03c5\\u03c1\\u03bf\\u03c2 \\u03cc\\u03c4\\u03b9 \\u03b8\\u03ad\\u03bb\\u03b5\\u03b9\\u03c2 \\u03bd\\u03b1 \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03ce\\u03c3\\u03b5\\u03b9\\u03c2 \\u03c4\\u03b7\\u03bd \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7;\",\"cancelLabel\":\"\\u038c\\u03c7\\u03b9\",\"confirmLabel\":\"\\u039d\\u03b1\\u03b9\"},\"confirmRetry\":{\"header\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7\",\"body\":\"\\u0395\\u03af\\u03c3\\u03b1\\u03b9 \\u03c3\\u03af\\u03b3\\u03bf\\u03c5\\u03c1\\u03bf\\u03c2 \\u03cc\\u03c4\\u03b9 \\u03b8\\u03ad\\u03bb\\u03b5\\u03b9\\u03c2 \\u03bd\\u03b1 \\u03c0\\u03c1\\u03bf\\u03c3\\u03c0\\u03b1\\u03b8\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2 \\u03be\\u03b1\\u03bd\\u03ac;\",\"cancelLabel\":\"\\u038c\\u03c7\\u03b9\",\"confirmLabel\":\"\\u039d\\u03b1\\u03b9\"},\"question\":\"<p><strong>\\u03a3\\u03b5 \\u03c0\\u03bf\\u03b9\\u03b1 \\u03c7\\u03ce\\u03c1\\u03b1 \\u03b8\\u03b1 \\u03bc\\u03c0\\u03bf\\u03c1\\u03bf\\u03cd\\u03c3\\u03b5\\u03c2 \\u03bd\\u03b1 \\u03c6\\u03b1\\u03c2 \\u03c4\\u03b7 \\u03b4\\u03b9\\u03c0\\u03bb\\u03b1\\u03bd\\u03ae \\u03c4\\u03bf\\u03cd\\u03c1\\u03c4\\u03b1;<\\\/strong><\\\/p>\\n\"},\"subContentId\":\"f28dbabd-e195-4947-9a0e-b43174130514\",\"metadata\":{\"contentType\":\"Multiple Choice\",\"license\":\"U\",\"title\":\"\\u03a3\\u03b5 \\u03c0\\u03bf\\u03b9\\u03b1 \\u03c7\\u03ce\\u03c1\\u03b1;\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"}],\"slideBackgroundSelector\":{}},{\"elements\":[{\"x\":0,\"y\":0,\"width\":99.9984591679507,\"height\":99.98731807782642,\"action\":{\"library\":\"H5P.Image 1.1\",\"params\":{\"decorative\":false,\"contentName\":\"\\u0395\\u03b9\\u03ba\\u03cc\\u03bd\\u03b1\",\"expandImage\":\"Expand Image\",\"minimizeImage\":\"Minimize Image\",\"file\":{\"path\":\"images\\\/file-68d423db5182f.jpg\",\"mime\":\"image\\\/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720}},\"subContentId\":\"a193fec4-3b92-44bb-966d-4fbcaed3d515\",\"metadata\":{\"contentType\":\"Image\",\"license\":\"U\",\"title\":\"Untitled Image\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"},{\"x\":41.088854648176685,\"y\":30.436613216592015,\"width\":39.99743194658449,\"height\":60.87322643318403,\"action\":{\"library\":\"H5P.TrueFalse 1.8\",\"params\":{\"media\":{\"disableImageZooming\":false},\"correct\":\"false\",\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"autoCheck\":false},\"l10n\":{\"trueText\":\"\\u03a3\\u03c9\\u03c3\\u03c4\\u03cc\",\"falseText\":\"\\u039b\\u03ac\\u03b8\\u03bf\\u03c2\",\"score\":\"\\u03a3\\u03c5\\u03b3\\u03ba\\u03ad\\u03bd\\u03c4\\u03c1\\u03c9\\u03c3\\u03b5\\u03c2 @score \\u03b1\\u03c0\\u03cc @total \\u03b2\\u03b1\\u03b8\\u03bc\\u03bf\\u03cd\\u03c2\",\"checkAnswer\":\"\\u0388\\u03bb\\u03b5\\u03b3\\u03c7\\u03bf\\u03c2\",\"submitAnswer\":\"\\u03a5\\u03c0\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae\",\"showSolutionButton\":\"\\u039b\\u03cd\\u03c3\\u03b7\",\"tryAgain\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7\",\"wrongAnswerMessage\":\"\\u039b\\u03ac\\u03b8\\u03bf\\u03c2 \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b7\",\"correctAnswerMessage\":\"\\u03a3\\u03c9\\u03c3\\u03c4\\u03ae \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b7\",\"scoreBarLabel\":\"\\u03a3\\u03c5\\u03b3\\u03ba\\u03b5\\u03bd\\u03c4\\u03c1\\u03ce\\u03c3\\u03b1\\u03c4\\u03b5 :num \\u03b1\\u03c0\\u03cc :total \\u03b2\\u03b1\\u03b8\\u03bc\\u03bf\\u03cd\\u03c2\",\"a11yCheck\":\"\\u0388\\u03bb\\u03b5\\u03b3\\u03c7\\u03bf\\u03c2 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03c9\\u03bd. \\u039f\\u03b9 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2 \\u03b8\\u03b1 \\u03bc\\u03b1\\u03c1\\u03ba\\u03b1\\u03c1\\u03b9\\u03c3\\u03c4\\u03bf\\u03cd\\u03bd \\u03c9\\u03c2 \\u03c3\\u03c9\\u03c3\\u03c4\\u03ad\\u03c2, \\u03bb\\u03ac\\u03b8\\u03bf\\u03c2 \\u03ba\\u03b1\\u03b9 \\u03bc\\u03b7 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03b7\\u03bc\\u03ad\\u03bd\\u03b5\\u03c2.\",\"a11yShowSolution\":\"\\u03a0\\u03c1\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae \\u03c4\\u03b7\\u03c2 \\u03bb\\u03cd\\u03c3\\u03b7\\u03c2. \\u0397 \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7 \\u03b8\\u03b1 \\u03b5\\u03c0\\u03b9\\u03c3\\u03b7\\u03bc\\u03b1\\u03bd\\u03b8\\u03b5\\u03af \\u03bc\\u03b5 \\u03c4\\u03b7\\u03bd \\u03c3\\u03c9\\u03c3\\u03c4\\u03ae \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03c3\\u03b7.\",\"a11yRetry\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7 \\u03c4\\u03b7\\u03c2 \\u03b5\\u03c1\\u03b3\\u03b1\\u03c3\\u03af\\u03b1\\u03c2. \\u0395\\u03c0\\u03b1\\u03bd\\u03b1\\u03c6\\u03bf\\u03c1\\u03ac \\u03cc\\u03bb\\u03c9\\u03bd \\u03c4\\u03c9\\u03bd \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03c9\\u03bd \\u03ba\\u03b1\\u03b9 \\u03ad\\u03bd\\u03b1\\u03c1\\u03be\\u03b7 \\u03b1\\u03c0\\u03cc \\u03c4\\u03b7\\u03bd \\u03b1\\u03c1\\u03c7\\u03ae.\"},\"confirmCheck\":{\"header\":\"\\u039f\\u03bb\\u03bf\\u03ba\\u03bb\\u03ae\\u03c1\\u03c9\\u03c3\\u03b7 \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7\\u03c2\",\"body\":\"\\u0395\\u03af\\u03c3\\u03b1\\u03b9 \\u03c3\\u03af\\u03b3\\u03bf\\u03c5\\u03c1\\u03bf\\u03c2 \\u03cc\\u03c4\\u03b9 \\u03b8\\u03ad\\u03bb\\u03b5\\u03b9\\u03c2 \\u03bd\\u03b1 \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03ce\\u03c3\\u03b5\\u03b9\\u03c2 \\u03c4\\u03b7\\u03bd \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7;\",\"cancelLabel\":\"\\u038c\\u03c7\\u03b9\",\"confirmLabel\":\"\\u039d\\u03b1\\u03b9\"},\"confirmRetry\":{\"header\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7\",\"body\":\"\\u0395\\u03af\\u03c3\\u03b1\\u03b9 \\u03c3\\u03af\\u03b3\\u03bf\\u03c5\\u03c1\\u03bf\\u03c2\\\/\\u03b7 \\u03cc\\u03c4\\u03b9 \\u03b8\\u03ad\\u03bb\\u03b5\\u03b9\\u03c2 \\u03bd\\u03b1 \\u03c0\\u03c1\\u03bf\\u03c3\\u03c0\\u03b1\\u03b8\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2 \\u03be\\u03b1\\u03bd\\u03ac;\",\"cancelLabel\":\"\\u038c\\u03c7\\u03b9\",\"confirmLabel\":\"\\u039d\\u03b1\\u03b9\"},\"question\":\"<p><strong>\\u03a3\\u03c4\\u03b7\\u03bd \\u03b5\\u03b9\\u03ba\\u03cc\\u03bd\\u03b1 \\u03b2\\u03bb\\u03ad\\u03c0\\u03bf\\u03c5\\u03bc\\u03b5 \\u03ad\\u03bd\\u03b1 \\u03c0\\u03b1\\u03b9\\u03b4\\u03af \\u03c0\\u03bf\\u03c5 \\u03c0\\u03c1\\u03bf\\u03c3\\u03c0\\u03b1\\u03b8\\u03b5\\u03af \\u03bd\\u03b1 \\u03c3\\u03c0\\u03ac\\u03c3\\u03b5\\u03b9 \\u03bc\\u03af\\u03b1...\\u03b1\\u03b3\\u03b3\\u03bb\\u03b9\\u03ba\\u03ae \\u03c0\\u03b9\\u03bd\\u03b9\\u03ac\\u03c4\\u03b1!<\\\/strong><\\\/p>\\n\"},\"subContentId\":\"478ff899-d325-4c83-8205-1402a4642450\",\"metadata\":{\"contentType\":\"True\\\/False Question\",\"license\":\"U\",\"title\":\"\\u03a4\\u03b9 \\u03b2\\u03bb\\u03ad\\u03c0\\u03bf\\u03c5\\u03bc\\u03b5;\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"}],\"slideBackgroundSelector\":{}}],\"keywordListEnabled\":true,\"globalBackgroundSelector\":{},\"keywordListAlwaysShow\":false,\"keywordListAutoHide\":false,\"keywordListOpacity\":90},\"override\":{\"activeSurface\":false,\"hideSummarySlide\":false,\"summarySlideSolutionButton\":true,\"summarySlideRetryButton\":true,\"enablePrintButton\":false,\"social\":{\"showFacebookShare\":false,\"facebookShare\":{\"url\":\"@currentpageurl\",\"quote\":\"\\u03a0\\u03ad\\u03c4\\u03c5\\u03c7\\u03b1 @score \\u03c3\\u03c4\\u03b1 @maxScore \\u03c3\\u03b5 \\u03b1\\u03c5\\u03c4\\u03ae \\u03c4\\u03b7\\u03bd \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7: @currentpageurl.\"},\"showTwitterShare\":false,\"twitterShare\":{\"statement\":\"\\u03a0\\u03ad\\u03c4\\u03c5\\u03c7\\u03b1 @score \\u03c3\\u03c4\\u03b1 @maxScore \\u03c3\\u03b5 \\u03b1\\u03c5\\u03c4\\u03ae \\u03c4\\u03b7\\u03bd \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7: @currentpageurl.\",\"url\":\"@currentpageurl\",\"hashtags\":\"h5p, course\"},\"showGoogleShare\":false,\"googleShareUrl\":\"@currentpageurl\"}},\"l10n\":{\"slide\":\"\\u0394\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1\",\"score\":\"\\u0392\\u03b1\\u03b8\\u03bc\\u03bf\\u03bb\\u03bf\\u03b3\\u03af\\u03b1\",\"yourScore\":\"\\u0397 \\u03b2\\u03b1\\u03b8\\u03bc\\u03bf\\u03bb\\u03bf\\u03b3\\u03af\\u03b1 \\u03c3\\u03bf\\u03c5\",\"maxScore\":\"\\u039c\\u03ad\\u03b3\\u03b9\\u03c3\\u03c4\\u03b7 \\u03b2\\u03b1\\u03b8\\u03bc\\u03bf\\u03bb\\u03bf\\u03b3\\u03af\\u03b1\",\"total\":\"\\u03a3\\u03cd\\u03bd\\u03bf\\u03bb\\u03bf\",\"totalScore\":\"\\u03a3\\u03c5\\u03bd\\u03bf\\u03bb\\u03b9\\u03ba\\u03ae \\u03b2\\u03b1\\u03b8\\u03bc\\u03bf\\u03bb\\u03bf\\u03b3\\u03af\\u03b1\",\"showSolutions\":\"\\u039b\\u03cd\\u03c3\\u03b7\",\"retry\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7\",\"exportAnswers\":\"\\u0395\\u03be\\u03b1\\u03b3\\u03c9\\u03b3\\u03ae \\u03ba\\u03b5\\u03b9\\u03bc\\u03ad\\u03bd\\u03bf\\u03c5\",\"hideKeywords\":\"\\u0391\\u03c0\\u03cc\\u03ba\\u03c1\\u03c5\\u03c8\\u03b7 \\u03bb\\u03af\\u03c3\\u03c4\\u03b1\\u03c2 \\u03bb\\u03ad\\u03be\\u03b5\\u03c9\\u03bd - \\u03ba\\u03bb\\u03b5\\u03b9\\u03b4\\u03b9\\u03ac\",\"showKeywords\":\"\\u0395\\u03bc\\u03c6\\u03ac\\u03bd\\u03b9\\u03c3\\u03b7 \\u03bb\\u03af\\u03c3\\u03c4\\u03b1\\u03c2 \\u03bb\\u03ad\\u03be\\u03b5\\u03c9\\u03bd - \\u03ba\\u03bb\\u03b5\\u03b9\\u03b4\\u03b9\\u03ac \",\"fullscreen\":\"\\u03a0\\u03bb\\u03ae\\u03c1\\u03b7\\u03c2 \\u03bf\\u03b8\\u03cc\\u03bd\\u03b7\",\"exitFullscreen\":\"\\u039a\\u03bb\\u03b5\\u03af\\u03c3\\u03b9\\u03bc\\u03bf \\u03c0\\u03c1\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae\\u03c2 \\u03c0\\u03bb\\u03ae\\u03c1\\u03bf\\u03c5\\u03c2 \\u03bf\\u03b8\\u03cc\\u03bd\\u03b7\\u03c2\",\"prevSlide\":\"\\u03a0\\u03c1\\u03bf\\u03b7\\u03b3\\u03bf\\u03cd\\u03bc\\u03b5\\u03bd\\u03b7 \\u03b4\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1\",\"nextSlide\":\"\\u0395\\u03c0\\u03cc\\u03bc\\u03b5\\u03bd\\u03b7 \\u03b4\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1\",\"currentSlide\":\"\\u03a4\\u03c1\\u03ad\\u03c7\\u03bf\\u03c5\\u03c3\\u03b1 \\u03b4\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1\",\"lastSlide\":\"\\u03a4\\u03b5\\u03bb\\u03b5\\u03c5\\u03c4\\u03b1\\u03af\\u03b1 \\u03b4\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1\",\"solutionModeTitle\":\"\\u0388\\u03be\\u03bf\\u03b4\\u03bf\\u03c2 \\u03b1\\u03c0\\u03cc \\u03bb\\u03b5\\u03b9\\u03c4\\u03bf\\u03c5\\u03c1\\u03b3\\u03af\\u03b1 \\u03bb\\u03cd\\u03c3\\u03b7\\u03c2\",\"solutionModeText\":\"\\u039b\\u03b5\\u03b9\\u03c4\\u03bf\\u03c5\\u03c1\\u03b3\\u03af\\u03b1 \\u03bb\\u03cd\\u03c3\\u03b7\\u03c2\",\"summaryMultipleTaskText\":\"\\u03a0\\u03bf\\u03bb\\u03bb\\u03b1\\u03c0\\u03bb\\u03ad\\u03c2 \\u03b1\\u03c3\\u03ba\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2\",\"scoreMessage\":\"\\u0388\\u03c7\\u03b5\\u03b9\\u03c2 \\u03c0\\u03b5\\u03c4\\u03cd\\u03c7\\u03b5\\u03b9:\",\"shareFacebook\":\"\\u039a\\u03bf\\u03b9\\u03bd\\u03bf\\u03c0\\u03bf\\u03af\\u03b7\\u03c3\\u03b7 \\u03c3\\u03c4\\u03bf Facebook\",\"shareTwitter\":\"\\u039a\\u03bf\\u03b9\\u03bd\\u03bf\\u03c0\\u03bf\\u03af\\u03b7\\u03c3\\u03b7 \\u03c3\\u03c4\\u03bf Twitter\",\"shareGoogle\":\"\\u039a\\u03bf\\u03b9\\u03bd\\u03bf\\u03c0\\u03bf\\u03af\\u03b7\\u03c3\\u03b7 \\u03c3\\u03c4\\u03bf Google+\",\"summary\":\"\\u03a3\\u03cd\\u03bd\\u03bf\\u03c8\\u03b7\",\"solutionsButtonTitle\":\"\\u0395\\u03bc\\u03c6\\u03ac\\u03bd\\u03b9\\u03c3\\u03b7 \\u03c3\\u03c7\\u03bf\\u03bb\\u03af\\u03c9\\u03bd\",\"printTitle\":\"\\u0395\\u03ba\\u03c4\\u03cd\\u03c0\\u03c9\\u03c3\\u03b7\",\"printIngress\":\"\\u03a0\\u03ce\\u03c2 \\u03b8\\u03ad\\u03bb\\u03b5\\u03c4\\u03b5 \\u03bd\\u03b1 \\u03b5\\u03ba\\u03c4\\u03c5\\u03c0\\u03ce\\u03c3\\u03b5\\u03c4\\u03b5 \\u03c4\\u03b7\\u03bd \\u03c0\\u03b1\\u03c1\\u03bf\\u03c5\\u03c3\\u03af\\u03b1\\u03c3\\u03b7;\",\"printAllSlides\":\"\\u0395\\u03ba\\u03c4\\u03cd\\u03c0\\u03c9\\u03c3\\u03b7 \\u03cc\\u03bb\\u03c9\\u03bd \\u03c4\\u03c9\\u03bd \\u03b4\\u03b9\\u03b1\\u03c6\\u03b1\\u03bd\\u03b5\\u03b9\\u03ce\\u03bd\",\"printCurrentSlide\":\"\\u0395\\u03ba\\u03c4\\u03cd\\u03c0\\u03c9\\u03c3\\u03b7 \\u03c4\\u03c1\\u03ad\\u03c7\\u03bf\\u03c5\\u03c3\\u03b1\\u03c2 \\u03b4\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1\\u03c2\",\"noTitle\":\"\\u03a7\\u03c9\\u03c1\\u03af\\u03c2 \\u03c4\\u03af\\u03c4\\u03bb\\u03bf\",\"accessibilitySlideNavigationExplanation\":\"\\u03a7\\u03c1\\u03b7\\u03c3\\u03b9\\u03bc\\u03bf\\u03c0\\u03bf\\u03af\\u03b7\\u03c3\\u03b5 \\u03c4\\u03bf \\u03b4\\u03b5\\u03be\\u03af \\u03ba\\u03b1\\u03b9 \\u03c4\\u03bf \\u03b1\\u03c1\\u03b9\\u03c3\\u03c4\\u03b5\\u03c1\\u03cc \\u03b2\\u03ad\\u03bb\\u03bf\\u03c2 \\u03b3\\u03b9\\u03b1 \\u03b5\\u03bd\\u03b1\\u03bb\\u03bb\\u03b1\\u03b3\\u03ae \\u03b4\\u03b9\\u03b1\\u03c6\\u03b1\\u03bd\\u03b5\\u03b9\\u03ce\\u03bd \\u03c0\\u03c1\\u03bf\\u03c2 \\u03c4\\u03b7\\u03bd \\u03b1\\u03bd\\u03c4\\u03af\\u03c3\\u03c4\\u03bf\\u03b9\\u03c7\\u03b7 \\u03ba\\u03b1\\u03c4\\u03b5\\u03cd\\u03b8\\u03c5\\u03bd\\u03c3\\u03b7\",\"accessibilityCanvasLabel\":\"\\u0395\\u03c0\\u03b9\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1\\u03c2 \\u03c0\\u03c1\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae\\u03c2 \\u03b4\\u03b9\\u03b1\\u03c6\\u03b1\\u03bd\\u03b5\\u03b9\\u03ce\\u03bd. \\u03a7\\u03c1\\u03b7\\u03c3\\u03b9\\u03bc\\u03bf\\u03c0\\u03bf\\u03af\\u03b7\\u03c3\\u03b5 \\u03c4\\u03bf \\u03b1\\u03c1\\u03b9\\u03c3\\u03c4\\u03b5\\u03c1\\u03cc \\u03ba\\u03b1\\u03b9 \\u03c4\\u03bf \\u03b4\\u03b5\\u03be\\u03af \\u03b2\\u03ad\\u03bb\\u03bf\\u03c2 \\u03b3\\u03b9\\u03b1 \\u03c4\\u03b7\\u03bd \\u03c0\\u03bb\\u03bf\\u03ae\\u03b3\\u03b7\\u03c3\\u03b7 \\u03c3\\u03c4\\u03b9\\u03c2 \\u03b4\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b5\\u03c2.\",\"accessibilityProgressBarLabel\":\"\\u0395\\u03c0\\u03b9\\u03bb\\u03ad\\u03be\\u03c4\\u03b5 \\u03b4\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1 \\u03b3\\u03b9\\u03b1 \\u03c0\\u03c1\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae\",\"containsNotCompleted\":\"H \\u03b4\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1 @slideName \\u03ad\\u03c7\\u03b5\\u03b9 \\u03bc\\u03b7 \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03c9\\u03bc\\u03ad\\u03bd\\u03bf \\u03b4\\u03b9\\u03b1\\u03b4\\u03c1\\u03b1\\u03c3\\u03c4\\u03b9\\u03ba\\u03cc \\u03c3\\u03c4\\u03bf\\u03b9\\u03c7\\u03b5\\u03af\\u03bf\",\"containsCompleted\":\"H \\u03b4\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1 @slideName \\u03ad\\u03c7\\u03b5\\u03b9 \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03c9\\u03bc\\u03ad\\u03bd\\u03bf \\u03b4\\u03b9\\u03b1\\u03b4\\u03c1\\u03b1\\u03c3\\u03c4\\u03b9\\u03ba\\u03cc \\u03c3\\u03c4\\u03bf\\u03b9\\u03c7\\u03b5\\u03af\\u03bf\",\"slideCount\":\"\\u0394\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1 @index \\u03b1\\u03c0\\u03cc @total\",\"containsOnlyCorrect\":\"\\u0397 \\u03b4\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1 @slideName \\u03ad\\u03c7\\u03b5\\u03b9 \\u03bc\\u03cc\\u03bd\\u03bf \\u03c3\\u03c9\\u03c3\\u03c4\\u03ad\\u03c2 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2\",\"containsIncorrectAnswers\":\"\\u0397 \\u03b4\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1 @slideName \\u03ad\\u03c7\\u03b5\\u03b9 \\u03bb\\u03ac\\u03b8\\u03bf\\u03c2 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2\",\"shareResult\":\"\\u039a\\u03bf\\u03b9\\u03bd\\u03bf\\u03c0\\u03bf\\u03af\\u03b7\\u03c3\\u03b7 \\u03b1\\u03c0\\u03bf\\u03c4\\u03b5\\u03bb\\u03ad\\u03c3\\u03bc\\u03b1\\u03c4\\u03bf\\u03c2\",\"accessibilityTotalScore\":\"\\u0397 \\u03b2\\u03b1\\u03b8\\u03bc\\u03bf\\u03bb\\u03bf\\u03b3\\u03af\\u03b1 \\u03c3\\u03bf\\u03c5 \\u03b5\\u03af\\u03bd\\u03b1\\u03b9 @score \\u03b1\\u03c0\\u03cc @maxScore\",\"accessibilityEnteredFullscreen\":\"\\u0395\\u03af\\u03c3\\u03bf\\u03b4\\u03bf\\u03c2 \\u03c3\\u03b5 \\u03c0\\u03bb\\u03ae\\u03c1\\u03b7 \\u03bf\\u03b8\\u03cc\\u03bd\\u03b7\",\"accessibilityExitedFullscreen\":\"\\u0388\\u03be\\u03bf\\u03b4\\u03bf\\u03c2 \\u03b1\\u03c0\\u03cc \\u03c0\\u03bb\\u03ae\\u03c1\\u03b7 \\u03bf\\u03b8\\u03cc\\u03bd\\u03b7\",\"confirmDialogHeader\":\"\\u03a5\\u03c0\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae \\u03c4\\u03c9\\u03bd \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03ce\\u03bd \\u03c3\\u03b1\\u03c2\",\"confirmDialogText\":\"\\u0391\\u03c5\\u03c4\\u03ae \\u03b7 \\u03b5\\u03bd\\u03ad\\u03c1\\u03b3\\u03b5\\u03b9\\u03b1 \\u03b8\\u03b1 \\u03c5\\u03c0\\u03bf\\u03b2\\u03ac\\u03bb\\u03b5\\u03b9 \\u03c4\\u03b9\\u03c2 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2 \\u03c3\\u03b1\\u03c2, \\u03b8\\u03ad\\u03bb\\u03b5\\u03c4\\u03b5 \\u03bd\\u03b1 \\u03c3\\u03c5\\u03bd\\u03b5\\u03c7\\u03af\\u03c3\\u03b5\\u03c4\\u03b5;\",\"confirmDialogConfirmText\":\"\\u03a5\\u03c0\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03c9\\u03bd \\u03ba\\u03b1\\u03b9 \\u03c0\\u03c1\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae \\u03b1\\u03c0\\u03bf\\u03c4\\u03b5\\u03bb\\u03b5\\u03c3\\u03bc\\u03ac\\u03c4\\u03c9\\u03bd\",\"slideshowNavigationLabel\":\"\\u03a0\\u03bb\\u03bf\\u03ae\\u03b3\\u03b7\\u03c3\\u03b7 \\u03c3\\u03b5 \\u03b4\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b5\\u03c2\",\"confirmDialogConfirmLabel\":\"Confirm\",\"confirmDialogCancelLabel\":\"Cancel\"}},\"library\":\"H5P.CoursePresentation 1.26\",\"metadata\":{\"contentType\":\"Course Presentation\",\"license\":\"U\",\"title\":\"\\u03a9\\u03a1\\u0391 \\u0393\\u0399\\u0391 \\u039a\\u039f\\u03a5\\u0399\\u0396!\"},\"subContentId\":\"169c8abb-959c-4401-8387-96c616853c76\"},\"useSeparator\":\"auto\"},{\"useSeparator\":\"auto\"}]},\"library\":\"H5P.Column 1.18\",\"subContentId\":\"5d02e4c1-797f-4ff8-87b5-241c136fcdf5\",\"metadata\":{\"contentType\":\"Page\",\"license\":\"U\",\"title\":\"\\u03a9\\u03a1\\u0391 \\u0393\\u0399\\u0391 \\u039a\\u039f\\u03a5\\u0399\\u0396!\"}}],\"behaviour\":{\"baseColor\":\"#1768c4\",\"defaultTableOfContents\":true,\"progressIndicators\":true,\"progressAuto\":true,\"displaySummary\":true,\"enableRetry\":true},\"read\":\"\\u0391\\u03bd\\u03ac\\u03b3\\u03bd\\u03c9\\u03c3\\u03b7\",\"displayTOC\":\"\\u03a0\\u03c1\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae &#039;\\u03a0\\u03af\\u03bd\\u03b1\\u03ba\\u03b1 \\u03a0\\u03b5\\u03c1\\u03b9\\u03b5\\u03c7\\u03bf\\u03bc\\u03ad\\u03bd\\u03c9\\u03bd&#039;\",\"hideTOC\":\"\\u0391\\u03c0\\u03cc\\u03ba\\u03c1\\u03c5\\u03c8\\u03b7 &#039;\\u03a0\\u03af\\u03bd\\u03b1\\u03ba\\u03b1 \\u03a0\\u03b5\\u03c1\\u03b9\\u03b5\\u03c7\\u03bf\\u03bc\\u03ad\\u03bd\\u03c9\\u03bd&#039;\",\"nextPage\":\"\\u0395\\u03c0\\u03cc\\u03bc\\u03b5\\u03bd\\u03b7 \\u03c3\\u03b5\\u03bb\\u03af\\u03b4\\u03b1\",\"previousPage\":\"\\u03a0\\u03c1\\u03bf\\u03b7\\u03b3\\u03bf\\u03cd\\u03bc\\u03b5\\u03bd\\u03b7 \\u03c3\\u03b5\\u03bb\\u03af\\u03b4\\u03b1\",\"chapterCompleted\":\"\\u039f\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03c9\\u03bc\\u03ad\\u03bd\\u03b7 \\u03c3\\u03b5\\u03bb\\u03af\\u03b4\\u03b1!\",\"partCompleted\":\"@pages \\u03b1\\u03c0\\u03cc @total \\u03ad\\u03c7\\u03bf\\u03c5\\u03bd \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03c9\\u03b8\\u03b5\\u03af\",\"incompleteChapter\":\"\\u039c\\u03b7 \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03c9\\u03bc\\u03ad\\u03bd\\u03b7 \\u03c3\\u03b5\\u03bb\\u03af\\u03b4\\u03b1\",\"navigateToTop\":\"\\u039c\\u03b5\\u03c4\\u03ac\\u03b2\\u03b1\\u03c3\\u03b7 \\u03c3\\u03c4\\u03b7\\u03bd \\u03ba\\u03bf\\u03c1\\u03c5\\u03c6\\u03ae\",\"markAsFinished\":\"\\u0388\\u03c7\\u03c9 \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03ce\\u03c3\\u03b5\\u03b9 \\u03b1\\u03c5\\u03c4\\u03ae\\u03bd \\u03c4\\u03b7 \\u03c3\\u03b5\\u03bb\\u03af\\u03b4\\u03b1\",\"fullscreen\":\"\\u03a0\\u03bb\\u03ae\\u03c1\\u03b7\\u03c2 \\u03bf\\u03b8\\u03cc\\u03bd\\u03b7\",\"exitFullscreen\":\"\\u0388\\u03be\\u03bf\\u03b4\\u03bf\\u03c2 \\u03b1\\u03c0\\u03cc \\u03c0\\u03c1\\u03cc\\u03b2\\u03bf\\u03bb\\u03ae \\u03c0\\u03bb\\u03ae\\u03c1\\u03bf\\u03c5\\u03c2 \\u03bf\\u03b8\\u03cc\\u03bd\\u03b7\\u03c2\",\"bookProgressSubtext\":\"@count \\u03b1\\u03c0\\u03cc @total \\u03c3\\u03b5\\u03bb\\u03af\\u03b4\\u03b5\\u03c2\",\"interactionsProgressSubtext\":\"@count \\u03b1\\u03c0\\u03cc @total \\u03b4\\u03c1\\u03b1\\u03c3\\u03c4\\u03b7\\u03c1\\u03b9\\u03bf\\u03c4\\u03ae\\u03c4\\u03c9\\u03bd\",\"submitReport\":\"\\u03a5\\u03c0\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae \\u0391\\u03bd\\u03b1\\u03c6\\u03bf\\u03c1\\u03ac\\u03c2\",\"restartLabel\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03b5\\u03ba\\u03ba\\u03af\\u03bd\\u03b7\\u03c3\\u03b7\",\"summaryHeader\":\"\\u03a0\\u03b5\\u03c1\\u03af\\u03bb\\u03b7\\u03c8\\u03b7\",\"allInteractions\":\"\\u038c\\u03bb\\u03b5\\u03c2 \\u03bf\\u03b9 \\u03b4\\u03b9\\u03b1\\u03b4\\u03c1\\u03ac\\u03c3\\u03b5\\u03b9\\u03c2\",\"unansweredInteractions\":\"\\u0394\\u03b9\\u03b1\\u03b4\\u03c1\\u03ac\\u03c3\\u03b5\\u03b9\\u03c2 \\u03c0\\u03bf\\u03c5 \\u03b4\\u03b5\\u03bd \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03b8\\u03b7\\u03ba\\u03b1\\u03bd\",\"scoreText\":\"@score \\\/ @maxscore\",\"leftOutOfTotalCompleted\":\"@left \\u03b1\\u03c0\\u03cc @max \\u03b4\\u03b9\\u03b1\\u03b4\\u03c1\\u03ac\\u03c3\\u03b5\\u03b9\\u03c2 \\u03ad\\u03c7\\u03bf\\u03c5\\u03bd \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03c9\\u03b8\\u03b5\\u03af\",\"noInteractions\":\"\\u0394\\u03b5\\u03bd \\u03c5\\u03c0\\u03ac\\u03c1\\u03c7\\u03bf\\u03c5\\u03bd \\u03b4\\u03b9\\u03b1\\u03b4\\u03c1\\u03ac\\u03c3\\u03b5\\u03b9\\u03c2\",\"score\":\"\\u0392\\u03b1\\u03b8\\u03bc\\u03bf\\u03bb\\u03bf\\u03b3\\u03af\\u03b1\",\"summaryAndSubmit\":\"\\u03a0\\u03b5\\u03c1\\u03af\\u03bb\\u03b7\\u03c8\\u03b7 &amp; \\u03c5\\u03c0\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae\",\"noChapterInteractionBoldText\":\"\\u0394\\u03b5\\u03bd \\u03ad\\u03c7\\u03b5\\u03c4\\u03b5 \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03ce\\u03c3\\u03b5\\u03b9 \\u03ba\\u03b1\\u03bc\\u03af\\u03b1 \\u03b4\\u03b9\\u03ac\\u03b4\\u03c1\\u03b1\\u03c3\\u03b7 \\u03c3\\u03b5 \\u03ba\\u03b1\\u03bc\\u03af\\u03b1 \\u03b1\\u03c0\\u03cc \\u03c4\\u03b9\\u03c2 \\u03c3\\u03b5\\u03bb\\u03af\\u03b4\\u03b5\\u03c2.\",\"noChapterInteractionText\":\"\\u03a0\\u03c1\\u03ad\\u03c0\\u03b5\\u03b9 \\u03bd\\u03b1 \\u03ad\\u03c7\\u03b5\\u03c4\\u03b5 \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03ce\\u03c3\\u03b5\\u03b9 \\u03c4\\u03bf\\u03c5\\u03bb\\u03ac\\u03c7\\u03b9\\u03c3\\u03c4\\u03bf\\u03bd \\u03bc\\u03b9\\u03b1 \\u03b4\\u03b9\\u03ac\\u03b4\\u03c1\\u03b1\\u03c3\\u03b7 \\u03c3\\u03b5 \\u03c4\\u03bf\\u03c5\\u03bb\\u03ac\\u03c7\\u03b9\\u03c3\\u03c4\\u03bf\\u03bd \\u03bc\\u03b9\\u03b1 \\u03c3\\u03b5\\u03bb\\u03af\\u03b4\\u03b1 \\u03b3\\u03b9\\u03b1 \\u03bd\\u03b1 \\u03bc\\u03c0\\u03bf\\u03c1\\u03ad\\u03c3\\u03b5\\u03c4\\u03b5 \\u03bd\\u03b1 \\u03c0\\u03c1\\u03bf\\u03b2\\u03ac\\u03bb\\u03b5\\u03c4\\u03b5 \\u03c4\\u03b7\\u03bd \\u03c0\\u03b5\\u03c1\\u03af\\u03bb\\u03b7\\u03c8\\u03b7.\",\"yourAnswersAreSubmittedForReview\":\"\\u039f\\u03b9 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2 \\u03c3\\u03b1\\u03c2 \\u03ad\\u03c7\\u03bf\\u03c5\\u03bd \\u03c5\\u03c0\\u03bf\\u03b2\\u03bb\\u03b7\\u03b8\\u03b5\\u03af \\u03b3\\u03b9\\u03b1 \\u03ad\\u03bb\\u03b5\\u03b3\\u03c7\\u03bf!\",\"bookProgress\":\"\\u03a0\\u03c1\\u03cc\\u03bf\\u03b4\\u03bf\\u03c2 \\u03c3\\u03c4\\u03bf \\u03b2\\u03b9\\u03b2\\u03bb\\u03af\\u03bf\",\"interactionsProgress\":\"\\u03a0\\u03c1\\u03cc\\u03bf\\u03b4\\u03bf\\u03c2 \\u03b4\\u03b9\\u03b1\\u03b4\\u03c1\\u03ac\\u03c3\\u03b5\\u03c9\\u03bd\",\"totalScoreLabel\":\"\\u03a3\\u03c5\\u03bd\\u03bf\\u03bb\\u03b9\\u03ba\\u03ae \\u03b2\\u03b1\\u03b8\\u03bc\\u03bf\\u03bb\\u03bf\\u03b3\\u03af\\u03b1\",\"a11y\":{\"progress\":\"\\u03a3\\u03b5\\u03bb\\u03af\\u03b4\\u03b1 @page \\u03b1\\u03c0\\u03cc @total.\",\"menu\":\"\\u0395\\u03bd\\u03b1\\u03bb\\u03bb\\u03b1\\u03b3\\u03ae \\u03bc\\u03b5\\u03bd\\u03bf\\u03cd \\u03c0\\u03bb\\u03bf\\u03ae\\u03b3\\u03b7\\u03c3\\u03b7\\u03c2\"}}"}}});