/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};

/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {

/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId])
/******/ 			return installedModules[moduleId].exports;

/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			exports: {},
/******/ 			id: moduleId,
/******/ 			loaded: false
/******/ 		};

/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);

/******/ 		// Flag the module as loaded
/******/ 		module.loaded = true;

/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}


/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;

/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;

/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "/dist/";

/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(0);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports, __webpack_require__) {

	module.exports = __webpack_require__(1);


/***/ }),
/* 1 */
/***/ (function(module, exports, __webpack_require__) {

	"use strict";

	var _regenerator = __webpack_require__(2);

	var _regenerator2 = _interopRequireDefault(_regenerator);

	var _asyncToGenerator2 = __webpack_require__(5);

	var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);

	var _from = __webpack_require__(77);

	var _from2 = _interopRequireDefault(_from);

	__webpack_require__(81);

	__webpack_require__(83);

	__webpack_require__(84);

	__webpack_require__(86);

	var _index = __webpack_require__(87);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	var isSync = parent.window.h5SyncActions && parent.window.h5SyncActions.isSync;


	$(function () {
	  var lottPlay = function () {
	    var _ref5 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee5(data) {
	      var audioElement, audioHorn;
	      return _regenerator2.default.wrap(function _callee5$(_context5) {
	        while (1) {
	          switch (_context5.prev = _context5.next) {
	            case 0:
	              console.log("data======> lottPlay", data);

	              if (!(data[currentIndex].modalAudio !== "")) {
	                _context5.next = 12;
	                break;
	              }

	              audioElement = $(".frequencyAudio").get(currentIndex);

	              audioElement.currentTime = 0;

	              SDK.playRudio({
	                index: audioElement,
	                syncName: $(".frequencyAudio" + currentIndex).attr("data-syncaudio")
	              });
	              audioHorn = "./image/laba.json";

	              if (soundBlasterAnimationsObj[currentIndex]) {
	                _context5.next = 10;
	                break;
	              }

	              _context5.next = 9;
	              return lottieAnimations.init(soundBlasterAnimationsObj[currentIndex], audioHorn, ".sound-blaster" + currentIndex);

	            case 9:
	              soundBlasterAnimationsObj[currentIndex] = _context5.sent;

	            case 10:

	              lottieAnimations.play(soundBlasterAnimationsObj[currentIndex]);

	              audioElement.onended = function () {
	                console.log("音频结束");
	                lottieAnimations.stop(soundBlasterAnimationsObj[currentIndex]);
	              }.bind(this);

	            case 12:
	            case "end":
	              return _context5.stop();
	          }
	        }
	      }, _callee5, this);
	    }));

	    return function lottPlay(_x3) {
	      return _ref5.apply(this, arguments);
	    };
	  }();

	  var staticData = configData.source;
	  var hasPractice = staticData.hasPractice ? String(staticData.hasPractice) : '1';
	  var hasHandAnimation = staticData.hasHandAnimation ? String(staticData.hasHandAnimation) : '1';

	  window.h5Template = {
	    hasDemo: "0",
	    hasPractice: hasPractice };

	  var gameList = staticData.gameList;
	  var modleList = [];
	  var userType = window.frameElement && window.frameElement.getAttribute("user_type");
	  var classStatus = 1;
	  var roundNum = 0;
	  var isPlaying = false;

	  var isFirst = true;
	  if (configData.bg == "") {
	    $(".container").css({
	      "background-image": "url(./image/bg.jpg)"
	    });
	  }
	  staticData.dialogBg && $('#dialogBg').css('background-image', "url(\"" + staticData.dialogBg + "\")");
	  staticData.dialogBtnActiveR && $('.next-btn').first().css('background-image', "url(\"" + staticData.dialogBtnActiveR + "\")");
	  staticData.dialogBtnActiveL && $('.prev-btn').first().css('background-image', "url(\"" + staticData.dialogBtnActiveL + "\")");

	  var timer = null;
	  var soundBlasterAnimationsObj = [];
	  var optionLiAnimationsObj = [];
	  var optionLiw = [],
	      optionLih = [];
	  var fingerIndex = 0;
	  var optionClickStus = true;
	  var isVideo = void 0;

	  renderPx();

	  isShowBtn();

	  initGame();

	  var carouselInner = $(".carousel-inner");
	  var titleCarousel = $(".title-carousel-inner");

	  var currentIndex = 0;
	  var contentUrlAnimations = 0;
	  if (userType == "tea" || !isSync) {
	    $(".modal-close").show();
	  } else {
	    $(".modal-close").hide();
	  };

	  $(".modal-close").on("click touchstart", function (e) {
	    var videos = carouselInner.find("video");
	    if (videos.length > 0) {
	      videos.each(function () {
	        this.pause();
	      });
	    }

	    if (!isSync) {
	      $(this).trigger("syncModalClick");
	      return;
	    }
	    SDK.bindSyncEvt({
	      sendUser: "",
	      receiveUser: "",
	      index: $(e.currentTarget).data("syncactions"),
	      eventType: "click",
	      method: "event",
	      syncName: "syncModalClick",
	      otherInfor: {
	        roundNum: roundNum
	      },
	      recoveryMode: "1"
	    });
	    carouselInner.empty();
	    titleCarousel.empty();
	  });

	  $(".modal-close").on("syncModalClick", function (e, message) {
	    if (e.type == "touchstart") {
	      e.preventDefault();
	    }
	    e.stopPropagation();
	    $("#carousel-modal").hide();
	    $(".authorizationTip").hide();
	    currentIndex = 0;
	    SDK.setEventLock();
	  });

	  $(".modal-close").on("click", function (event, message) {
	    event.stopPropagation();
	    event.preventDefault();
	    SDK.setEventLock();
	  });

	  function updateButtons(data) {
	    console.log("modleListmodleListmodleListmodleList", data.length, data.length == 1);
	    if (userType == "stu") {
	      $(".prev-btn").prop("disabled", true);
	      $(".prev-btn").addClass("prev-btn-disabled");
	      $(".next-btn").prop("disabled", true);
	      $(".next-btn").addClass("next-btn-disabled");
	      if (data.length == 1) {
	        $(".prev-btn").hide();
	        $(".next-btn").hide();
	      }
	      return;
	    };
	    if (data.length == 1) {
	      $(".prev-btn").hide();
	      $(".next-btn").hide();
	    } else {
	      $(".prev-btn").show();
	      $(".next-btn").show();
	      console.log("modleListmodleListmodleListmodleList", currentIndex);

	      if (currentIndex === 0) {
	        $(".prev-btn").addClass("prev-btn-disabled");
	      } else {
	        $(".prev-btn").removeClass("prev-btn-disabled");
	      }

	      if (currentIndex === data.length - 1) {
	        $(".next-btn").addClass("next-btn-disabled");
	      } else {
	        $(".next-btn").removeClass("next-btn-disabled");
	      }
	    }
	  }

	  function goToIndex(index, isIndex) {
	    setTimeout(function () {
	      checkAndClickPlayButton(index);
	    }, 800);
	    currentIndex = index;
	    var translateX = -currentIndex * 100 + "%";
	    carouselInner.css("transform", "translateX(" + translateX + ")");
	    titleCarousel.css("transform", "translateX(" + translateX + ")");
	    if (isIndex) {
	      updateButtons(modleList);
	    }
	  }

	  $(".prev-btn").on("click touchstart", function (e) {
	    if (e.type == "touchstart") {
	      e.preventDefault();
	    }
	    e.stopPropagation();
	    if (!isSync) {
	      $(this).trigger("syncPrevBtnClick");
	      return;
	    }
	    SDK.bindSyncEvt({
	      sendUser: '',
	      receiveUser: '',
	      index: $(e.currentTarget).data('syncactions'),
	      eventType: 'click',
	      method: 'event',
	      syncName: "syncPrevBtnClick",
	      otherInfor: {},
	      recoveryMode: '1'
	    });

	    console.log("prev-btn", $(e.currentTarget).data("syncactions"));
	  });
	  $(".prev-btn").on("syncPrevBtnClick", function (event) {
	    console.log("prev-btn syncPrevBtnClick");
	    event.stopPropagation();

	    if (currentIndex > 0) {
	      goToIndex(currentIndex - 1, true);
	      lottPlay(modleList);
	      isPlaying = false;
	    }
	    SDK.setEventLock();
	  });

	  $(".next-btn").on("click touchstart", function (e) {
	    if (e.type == "touchstart") {
	      e.preventDefault();
	    }
	    e.stopPropagation();
	    if (!isSync) {
	      $(this).trigger("syncNextBtnClick");
	      return;
	    }
	    SDK.bindSyncEvt({
	      sendUser: '',
	      receiveUser: '',
	      index: $(e.currentTarget).data('syncactions'),
	      eventType: 'click',
	      method: 'event',
	      syncName: "syncNextBtnClick",
	      otherInfor: {},
	      recoveryMode: '1'
	    });
	    console.log("next-btn");
	  });
	  $(".next-btn").on("syncNextBtnClick", function (event) {
	    console.log("next-btn syncNextBtnClick");
	    event.stopPropagation();
	    if (currentIndex < modleList.length - 1) {
	      goToIndex(currentIndex + 1, true);
	      lottPlay(modleList);
	      isPlaying = false;
	    }
	    SDK.setEventLock();
	  });

	  function checkAndClickPlayButton(index) {
	    var carouselItem = $('.carousel-item').eq(index);
	    var playButton = carouselItem.find('.play-button.play');
	    if (playButton.length > 0) {
	      playButton.trigger("playButtonClick");
	      console.log('Play button clicked in carousel-item at index:', index);
	    } else {
	      console.log('No play button found in carousel-item at index:', index);
	    }
	  }

	  function handAnima(index, item) {
	    console.log(item.find('.handcss').length, 'jf');
	    if (!item.find('.handcss').length) {
	      item.append('<div class="handsss"></div>');
	    }
	  }

	  function renderPx() {
	    var liHtml = "";
	    for (var i = 1; i < 801; i++) {
	      liHtml += "\n                <li class=\"pos_" + i + "\"></li>\t";
	    }
	    $(".boxUl").html(liHtml);
	  }

	  function initGame(param_roundNum) {
	    optionLiAnimationsObj = (0, _from2.default)({ length: gameList.length }, function (_, index) {
	      return index;
	    });

	    gameList.forEach(function () {
	      var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee4(item, index) {
	        var _this = this;

	        var liEle, left, top, z, liEle2, left2, top2, preList, res, preImgs;
	        return _regenerator2.default.wrap(function _callee4$(_context4) {
	          while (1) {
	            switch (_context4.prev = _context4.next) {
	              case 0:
	                liEle = "";
	                left = item.rightPositionStartX / 100 + "rem";
	                top = item.rightPositionStartY / 100 + "rem";

	                liEle = $("<li class=\"optionLi optionLiPic \" id=\"optionLi-lottie-animations" + index + "\"></li>");
	                liEle.attr({
	                  roundNum: index + 1,
	                  "data-syncactions": "roundNum" + (index + 1)
	                });
	                z = 10;

	                if (param_roundNum && index + 1 <= param_roundNum) {
	                  z = -1;
	                }
	                liEle.css({
	                  left: left,
	                  top: top,
	                  "z-index": z
	                });

	                liEle2 = "";
	                left2 = item.shadePositionX / 100 + "rem";
	                top2 = item.shadePositionY / 100 + "rem";

	                liEle2 = $('<li  class="optionLi optionLiShade"></li>');
	                liEle2.attr({
	                  roundNum: index + 1,
	                  "data-syncactions": "shadeRoundNum" + (index + 1)
	                });
	                liEle2.css({
	                  left: left2,
	                  top: top2,
	                  "background-image": "url(" + item.shadeImg + ")"
	                });
	                preList = [{
	                  image: item.shadeImg
	                }];
	                _context4.next = 17;
	                return $.get(item.rightImg);

	              case 17:
	                res = _context4.sent;

	                console.log("宽高======>", res.w, res.h);
	                if (res.w) {
	                  optionLiw.push(res.w);
	                  optionLih.push(res.h);
	                  liEle.css({
	                    backgroundSize: "100% 100%",
	                    width: res.w / 100 + "rem",
	                    height: res.h / 100 + "rem"
	                  });
	                }

	                preImgs = [];

	                $.when(preloadImg(preList, preImgs)).done((0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee() {
	                  return _regenerator2.default.wrap(function _callee$(_context) {
	                    while (1) {
	                      switch (_context.prev = _context.next) {
	                        case 0:

	                          $(".optionUl").append(liEle);
	                          liEle2.css({
	                            "z-index": 20,
	                            backgroundSize: "100% 100%",
	                            width: preImgs[0].width / 100 + "rem",
	                            height: preImgs[0].height / 100 + "rem"
	                          });
	                          $(".optionUl").append(liEle2);

	                        case 3:
	                        case "end":
	                          return _context.stop();
	                      }
	                    }
	                  }, _callee, this);
	                })));

	                setTimeout((0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee2() {
	                  return _regenerator2.default.wrap(function _callee2$(_context2) {
	                    while (1) {
	                      switch (_context2.prev = _context2.next) {
	                        case 0:
	                          if (item.shadeImg && hasHandAnimation === '1') {
	                            $(".handsss").show();
	                            handAnima(index, liEle2);
	                          } else {
	                            $(".handsss").hide();
	                          }

	                        case 1:
	                        case "end":
	                          return _context2.stop();
	                      }
	                    }
	                  }, _callee2, _this);
	                })), 300);
	                setTimeout((0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee3() {
	                  var elementId;
	                  return _regenerator2.default.wrap(function _callee3$(_context3) {
	                    while (1) {
	                      switch (_context3.prev = _context3.next) {
	                        case 0:
	                          if (index + 1 == gameList.length) {
	                            console.log("添加事件");
	                            addEvent();
	                          }
	                          elementId = "#optionLi-lottie-animations" + index;

	                          if (!($(elementId).length > 0)) {
	                            _context3.next = 7;
	                            break;
	                          }

	                          _context3.next = 5;
	                          return lottieAnimations.init(optionLiAnimationsObj[index], item.rightImg, "#optionLi-lottie-animations" + index);

	                        case 5:
	                          optionLiAnimationsObj[index] = _context3.sent;

	                          lottieAnimations.play(optionLiAnimationsObj[index]);

	                        case 7:
	                        case "end":
	                          return _context3.stop();
	                      }
	                    }
	                  }, _callee3, _this);
	                })), 300);

	              case 24:
	              case "end":
	                return _context4.stop();
	            }
	          }
	        }, _callee4, this);
	      }));

	      return function (_x, _x2) {
	        return _ref.apply(this, arguments);
	      };
	    }());
	  }

	  function isShowBtn() {
	    if (isSync) {
	      classStatus = SDK.getClassConf().h5Course.classStatus;
	      if (classStatus == 0 && userType == "stu") {
	        $(".funcMask").show();
	      }
	    } else {
	      var parseURL = function parseURL(url) {
	        var a = document.createElement("a");
	        a.href = url;
	        return {
	          source: url,
	          protocol: a.protocol.replace(":", ""),
	          host: a.hostname,
	          port: a.port,
	          query: a.search,
	          params: function () {
	            var ret = {},
	                seg = a.search.replace(/^\?/, "").split("&"),
	                len = seg.length,
	                i = 0,
	                s;
	            for (; i < len; i++) {
	              if (!seg[i]) {
	                continue;
	              }
	              s = seg[i].split("=");
	              ret[s[0]] = s[1];
	            }
	            return ret;
	          }(),
	          file: (a.pathname.match(/\/([^\/?#]+)$/i) || [, ""])[1],
	          hash: a.hash.replace("#", ""),
	          path: a.pathname.replace(/^([^\/])/, "/$1"),
	          relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [, ""])[1],
	          segments: a.pathname.replace(/^\//, "").split("/")
	        };
	      };

	      var hrefParam = parseURL("http://www.example.com");
	      if (top.frames[0] && top.frames[0].frameElement) {
	        hrefParam = parseURL(top.frames[0].frameElement.src);
	      } else {
	        hrefParam = parseURL(window.location.href);
	      }
	      var role_num = hrefParam.params["role"];

	      if (role_num == "1" || role_num == undefined) {
	        $(".funcMask").show();
	      } else if (role_num == "2") {
	        $(".funcMask").show();
	      }
	    }
	  }

	  window.SDK.actAuthorize = function (message) {
	    if (isSync) {
	      if (userType == "tea" && SDK.getClassConf().h5Course.classStatus == 5) {
	        $(".doneTip").removeClass("hide");
	      }

	      if (message && message.operate == 5) {
	        isFirst = false;
	      }
	      if (message && message.type == "practiceStart") {
	        if (isFirst) {
	          isFirst = false;
	        }
	      }
	    }
	  };

	  var startBtnStatus = true;
	  $(".startBtn").on("click touchstart", function (e) {
	    if (e.type == "touchstart") {
	      e.preventDefault();
	    }
	    e.stopPropagation();
	    if (startBtnStatus) {
	      startBtnStatus = false;
	    }
	  });

	  window.SDK.actDemo = function (message) {
	    if (isSync) {
	      SDK.bindSyncEvt({
	        index: "clear",
	        eventType: "click",
	        method: "event",
	        syncName: "clear",
	        recoveryMode: "1"
	      });
	    }
	    SDK.setEventLock();
	  };

	  $(".demo-btnStu").on("click touchstart", function (e) {
	    if (e.type == "touchstart") {
	      e.preventDefault();
	    }
	    e.stopPropagation();
	  });

	  function gameControl() {
	    $(".optionLiPic").removeClass("optionScale");
	    if (roundNum >= gameList.length) {
	      clearTimeout(timer);
	      if (userType == "stu" || !isSync) {}
	      return;
	    }

	    roundNum = roundNum + 1;

	    optionClickStus = true;
	  }

	  function addEvent() {
	    $(".optionLi").on("click touchstart", function (e) {
	      if (e.type == "touchstart") {
	        e.preventDefault();
	      }
	      e.stopPropagation();

	      if (!isSync) {
	        $(this).trigger("syncItemClick");
	        return;
	      }
	      SDK.bindSyncEvt({
	        sendUser: "",
	        receiveUser: "",
	        index: $(e.currentTarget).data("syncactions"),
	        eventType: "click",
	        method: "event",
	        syncName: "syncItemClick",
	        otherInfor: {
	          roundNum: roundNum
	        },
	        recoveryMode: "1"
	      });
	    });

	    $(".optionLi").on("syncItemClick", function (e, message) {
	      var self = $(this);
	      var roundNumc = self.attr("roundNum");
	      $(".optionLi[roundNum=\"" + roundNumc + "\"]").find('.handsss').hide();
	      if (self.hasClass("optionLiShade")) {
	        self = self.prev();
	      }

	      gameControl();
	      var roundNumInpic = self.attr("roundNum");

	      rightWrong(self).right();
	      var indexSet = roundNumInpic - 1;

	      if (gameList && gameList[indexSet] && gameList[indexSet].modalList) {
	        modleList = gameList[indexSet].modalList;
	        SDK.setEventLock();
	        console.log("modleList======>length", modleList.length);
	        if (modleList.length == 0) return;
	        updateButtons(modleList);
	        sliderModle(modleList);

	        $("#carousel-modal").show();

	        if (userType === "tea") {
	          $(".authorizationTip").show();
	        }
	      }
	      console.log("点击======》setEventLock");
	      SDK.setEventLock();
	      console.log("点击======》setEventLock");
	      self.removeClass("shake");
	      optionClickStus = true;

	      if (userType == "stu") {
	        gameProcessBidSync();
	      }
	    });
	  }

	  function sliderModle(data) {
	    var _this2 = this;

	    carouselInner.empty();
	    titleCarousel.empty();

	    goToIndex(0, false);

	    soundBlasterAnimationsObj = new Array(data.length).fill(0);
	    data.forEach(function () {
	      var _ref6 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee7(imageSrc, index) {
	        var item, titleItem, contentUrl, fileExtension, titleImg, audioConter, img, videoContainer, video, playButton, progressBar, customControls, json, unknownText;
	        return _regenerator2.default.wrap(function _callee7$(_context7) {
	          while (1) {
	            switch (_context7.prev = _context7.next) {
	              case 0:
	                item = $('<div class="carousel-item"></div>');
	                titleItem = $("<div class=\"carousel-item-title\"><p class=\"sound-blaster" + index + " sound-blaster\" id=\"activItme\" data-syncactions=\"carouselActions" + index + "\"></p></div>");
	                contentUrl = imageSrc.content;
	                fileExtension = contentUrl.split(".").pop().toLowerCase();
	                titleImg = imageSrc.title ? $("<img>").attr("src", imageSrc.title).attr("data-syncactions", "imgTitle" + index) : "<div class='no-img'></div>";
	                audioConter = $("<audio class=\"frequencyAudio frequencyAudio" + index + "\" data-syncaudio=\"frequencyAudio" + index + "\" src='" + imageSrc.modalAudio + "'></audio>");

	                titleItem.find("#activItme").on("click touchstart", function (e) {
	                  var currentElement = $(e.currentTarget);
	                  if (e.type == "touchstart") {
	                    e.preventDefault();
	                  }
	                  e.stopPropagation();
	                  console.log("点击播放按钮", $(e.currentTarget));
	                  if (!isSync) {
	                    currentElement.trigger("activItmeClick");
	                    return;
	                  }
	                  SDK.bindSyncEvt({
	                    sendUser: '',
	                    receiveUser: '',
	                    index: $(e.currentTarget).data('syncactions'),
	                    eventType: 'click',
	                    method: 'event',
	                    syncName: "activItmeClick",
	                    otherInfor: {},
	                    recoveryMode: '1'
	                  });
	                });

	                titleItem.append(titleImg, audioConter);

	                if (fileExtension === "jpg" || fileExtension === "jpeg" || fileExtension === "png" || fileExtension === "gif") {
	                  console.log("soundBlasterAnimationsObj===》图片");
	                  img = $("<img>").attr("src", contentUrl).attr("data-syncactions", "imgContent" + index);

	                  item.append(img);
	                } else if (fileExtension === "mp4" || fileExtension === "webm" || fileExtension === "ogg") {
	                  videoContainer = $('<div class="custom-video-container"></div>');
	                  video = $("<video playsinline><p ></p></video>").attr("src", contentUrl);
	                  playButton = $("<div class=\"play-button play\" data-syncactions='video" + index + "'></div>");
	                  progressBar = $('<div class="progress-box"><span class="current-time">00:00</span><span class="current-timesDats"> / </span><span class="total-time">00:00</span><div class="progress-bar"><div class="progress"></div></div></div>');
	                  customControls = $('<div class="custom-controls"><img class="video-icon" src="./image/custom-bg.jpg"></div>');

	                  customControls.append(progressBar, playButton);
	                  videoContainer.append(video, customControls);
	                  item.append(videoContainer);

	                  video.on("loadedmetadata", function () {
	                    var totalTime = formatTime(video[0].duration);

	                    $(".total-time").text(totalTime);
	                  });
	                  playButton.on("click touchstart", function (e) {
	                    if (userType === "stu") return;

	                    if (e.type == "touchstart") {
	                      e.preventDefault();
	                    }
	                    e.stopPropagation();
	                    console.log("点击播放按钮", $(e.currentTarget));
	                    if (!isSync) {
	                      playButton.trigger("playButtonClick");
	                      return;
	                    }
	                    SDK.bindSyncEvt({
	                      sendUser: '',
	                      receiveUser: '',
	                      index: $(e.currentTarget).data('syncactions'),
	                      eventType: 'click',
	                      method: 'event',
	                      syncName: "playButtonClick",
	                      otherInfor: {},
	                      recoveryMode: '1'
	                    });
	                  });

	                  isPlaying = false;
	                  playButton.on("playButtonClick", function (event) {
	                    event.stopPropagation();
	                    if (isPlaying) {
	                      video[0].pause();
	                      playButton.removeClass("pause").addClass("play");
	                      $(event.target).parent().find(".progress-box").show();
	                    } else {
	                      video[0].play();
	                      $(event.target).parent().find('.video-icon').hide();
	                      playButton.removeClass("play");
	                      $(event.target).parent().find(".progress-box").hide();
	                    }
	                    isPlaying = !isPlaying;
	                    SDK.setEventLock();
	                  });

	                  video.on("timeupdate", function (event) {
	                    var progress = video[0].currentTime / video[0].duration * 100;
	                    $(event.target).parent().find(".progress").css("width", progress + "%");

	                    var currentTime = formatTime(video[0].currentTime);
	                    $(event.target).parent().find(".current-time").text(currentTime);
	                  });
	                  video.on("ended", function (event) {
	                    playButton.removeClass("pause").addClass("play");
	                    $(event.target).parent().find(".progress-box").show();
	                    isPlaying = false;
	                  });

	                  progressBar.click(function (event) {
	                    var rect = progressBar[0].getBoundingClientRect();
	                    var x = event.clientX - rect.left;
	                    var newTime = x / progressBar.width() * video[0].duration;
	                    video[0].currentTime = newTime;
	                  });
	                } else if (fileExtension === "json") {
	                  json = $("<div class=\"custom-contentUrl-container custom-contentUrl-container" + index + "\"></div>");

	                  item.append(json);

	                  setTimeout((0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee6() {
	                    return _regenerator2.default.wrap(function _callee6$(_context6) {
	                      while (1) {
	                        switch (_context6.prev = _context6.next) {
	                          case 0:
	                            _context6.next = 2;
	                            return lottieAnimations.init(contentUrlAnimations, contentUrl, ".custom-contentUrl-container" + index);

	                          case 2:
	                            contentUrlAnimations = _context6.sent;

	                            lottieAnimations.play(contentUrlAnimations);

	                          case 4:
	                          case "end":
	                            return _context6.stop();
	                        }
	                      }
	                    }, _callee6, _this2);
	                  })), 300);

	                  console.log("contentUrlcontentUrl", contentUrl);
	                } else {
	                  unknownText = $("<p>未知文件类型: " + contentUrl + "</p>");

	                  item.append(unknownText);
	                }

	                carouselInner.append(item);
	                titleCarousel.append(titleItem);

	              case 11:
	              case "end":
	                return _context7.stop();
	            }
	          }
	        }, _callee7, _this2);
	      }));

	      return function (_x4, _x5) {
	        return _ref6.apply(this, arguments);
	      };
	    }());
	    lottPlay(data);
	  }
	  $(".title-carousel-inner").on("activItmeClick", ".carousel-item-title", function (event) {
	    event.stopPropagation();
	    var audioElement = $(".frequencyAudio").get(currentIndex);
	    audioElement.currentTime = 0;
	    SDK.playRudio({
	      index: audioElement,
	      syncName: $(this).find('audio').attr("data-syncaudio")
	    });
	    lottieAnimations.play(soundBlasterAnimationsObj[currentIndex]);

	    audioElement.onended = function () {
	      console.log("音频结束");
	      lottieAnimations.stop(soundBlasterAnimationsObj[currentIndex]);
	    }.bind(this);
	    SDK.setEventLock();
	  });

	  function formatTime(time) {
	    var minutes = Math.floor(time / 60);
	    var seconds = Math.floor(time % 60);
	    return minutes.toString().padStart(2, "0") + ":" + seconds.toString().padStart(2, "0");
	  }

	  function gameProcessBidSync() {
	    if (isSync) {
	      SDK.bindSyncEvt({
	        index: "runing",
	        eventType: "click",
	        method: "event",
	        syncName: "syncRuning",
	        otherInfor: {
	          roundNum: roundNum },
	        recoveryMode: "1"
	      });
	    }
	  }

	  $(".runing").on("syncRuning", function (e, message) {
	    if (isSync) {
	      var obj = message.data[0].value.syncAction.otherInfor;
	      if (message.operate == 5) {
	        rebackPage().whenClick(obj);
	      }
	    }
	    SDK.setEventLock();
	  });

	  function sendGameOver() {
	    if (!isSync) {
	      $(".overBtn").trigger("gameOver");
	    } else {
	      SDK.bindSyncEvt({
	        index: "overBtn",
	        eventType: "mygameevent",
	        method: "event",
	        syncName: "gameOver",
	        otherInfor: {
	          roundNum: roundNum
	        },
	        recoveryMode: "1"
	      });
	    }
	  }

	  $(".overBtn").on("gameOver", function (e, message) {
	    clearTimeout(timer);
	    $(".optionLiPic").removeClass("optionScale");
	    if (isSync) {
	      var obj = message.data[0].value.syncAction.otherInfor;
	      if (message.operate == "5") {
	        endGameappendImg("whenend");
	        rebackPage().whenEnd(obj);
	        return;
	      } else {
	        endGameappendImg("over");
	      }

	      if (userType == "tea" && (SDK.getClassConf().h5Course.classStatus == "5" || SDK.getClassConf().h5Course.classStatus == "1")) {
	        SDK.bindSyncCtrl({
	          type: "gameOverToCtrl",
	          data: {
	            CID: SDK.getClassConf().course.id + "",
	            operate: "1",
	            data: [{
	              key: "classStatus",
	              value: "6",
	              ownerUID: SDK.getClassConf().user.id
	            }]
	          }
	        });
	      }
	    } else {
	      endGameappendImg("over");
	    }
	    SDK.setEventLock();
	  });

	  function endGameappendImg(type) {
	    $(".doneTip").addClass("hide");

	    var time = 1;

	    if (type == "over") {
	      var prefect = $("<div class='perfectBox'><img src='./image/light.png' class='light'><img src='./image/prefect.png' class='perfect'></div>");
	      $(".resultWin").append(prefect);
	      time = 5000;
	    }
	    setTimeout(function () {
	      (0, _index.resultHide)();

	      $(".optionLiPic").css({
	        "z-index": 30
	      });

	      $(".endGame").show();
	    }, time);
	  }

	  function rebackPage(data) {
	    return {
	      whenClick: function whenClick(data) {
	        isFirst = false;
	        if (userType == "tea" && SDK.getClassConf().h5Course.classStatus == 5) {
	          $(".doneTip").removeClass("hide");
	        }

	        roundNum = data.roundNum;

	        initGame(roundNum);
	        recoverProgressBar(roundNum);
	        addEvent();
	        gameControl();
	        SDK.setEventLock();
	      },
	      whenEnd: function whenEnd(data) {
	        isFirst = false;
	        $(".doneTip").hide();
	        roundNum = data.roundNum;
	        recoverProgressBar(roundNum);
	        endGameappendImg("whenEnd");
	        SDK.setEventLock();
	      }
	    };
	  }

	  function rightWrong(self) {
	    return {
	      right: function right() {
	        self.addClass("already-hide");
	        rightAni(self);
	      },
	      wrong: function wrong() {
	        self.addClass("shake");
	      }
	    };
	  }

	  function rightAni(self, showfuncMask) {
	    var _this3 = this;

	    var currentElRoundNum = self.attr('roundnum');
	    var left = gameList[currentElRoundNum - 1].rightPositionEndX / 100 + "rem";
	    var top = gameList[currentElRoundNum - 1].rightPositionEndY / 100 + "rem";
	    self.css({
	      left: left,
	      top: top,
	      "z-index": 21
	    });

	    var timer1 = setTimeout((0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee8() {
	      return _regenerator2.default.wrap(function _callee8$(_context8) {
	        while (1) {
	          switch (_context8.prev = _context8.next) {
	            case 0:
	              self.css({
	                left: left,
	                top: top
	              });


	              clearInterval(timer1);
	              gameControl();
	            case 3:
	            case "end":
	              return _context8.stop();
	          }
	        }
	      }, _callee8, _this3);
	    })), 1000);
	  }

	  function recoverProgressBar(roundNum) {
	    var roundNumAll = gameList.length;
	    if (roundNumAll == 1) {
	      return;
	    } else {
	      for (var i = 1; i <= roundNum; i++) {
	        $(".y" + i).css({
	          opacity: 1
	        });
	      }

	      $(".yellowBar").css({
	        width: 0.8 * (roundNum - 1) + "rem"
	      });
	    }
	  }
	});

	function preloadImg(list, imgs) {
	  var def = $.Deferred(),
	      len = list.length;
	  $(list).each(function (i, e) {
	    var img = new Image();
	    img.src = e.image;
	    if (img.complete) {
	      imgs[i] = img;
	      len--;
	      if (len == 0) {
	        def.resolve();
	      }
	    } else {
	      img.onload = function (j) {
	        return function () {
	          imgs[j] = img;
	          len--;
	          if (len == 0) {
	            def.resolve();
	          }
	        };
	      }(i);
	      img.onerror = function () {
	        len--;
	      };
	    }
	  });
	  return def.promise();
	}

/***/ }),
/* 2 */
/***/ (function(module, exports, __webpack_require__) {

	module.exports = __webpack_require__(3);


/***/ }),
/* 3 */
/***/ (function(module, exports, __webpack_require__) {

	/**
	 * Copyright (c) 2014-present, Facebook, Inc.
	 *
	 * This source code is licensed under the MIT license found in the
	 * LICENSE file in the root directory of this source tree.
	 */

	// This method of obtaining a reference to the global object needs to be
	// kept identical to the way it is obtained in runtime.js
	var g = (function() { return this })() || Function("return this")();

	// Use `getOwnPropertyNames` because not all browsers support calling
	// `hasOwnProperty` on the global `self` object in a worker. See #183.
	var hadRuntime = g.regeneratorRuntime &&
	  Object.getOwnPropertyNames(g).indexOf("regeneratorRuntime") >= 0;

	// Save the old regeneratorRuntime in case it needs to be restored later.
	var oldRuntime = hadRuntime && g.regeneratorRuntime;

	// Force reevalutation of runtime.js.
	g.regeneratorRuntime = undefined;

	module.exports = __webpack_require__(4);

	if (hadRuntime) {
	  // Restore the original runtime.
	  g.regeneratorRuntime = oldRuntime;
	} else {
	  // Remove the global property added by runtime.js.
	  try {
	    delete g.regeneratorRuntime;
	  } catch(e) {
	    g.regeneratorRuntime = undefined;
	  }
	}


/***/ }),
/* 4 */
/***/ (function(module, exports) {

	/**
	 * Copyright (c) 2014-present, Facebook, Inc.
	 *
	 * This source code is licensed under the MIT license found in the
	 * LICENSE file in the root directory of this source tree.
	 */

	!(function(global) {
	  "use strict";

	  var Op = Object.prototype;
	  var hasOwn = Op.hasOwnProperty;
	  var undefined; // More compressible than void 0.
	  var $Symbol = typeof Symbol === "function" ? Symbol : {};
	  var iteratorSymbol = $Symbol.iterator || "@@iterator";
	  var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
	  var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";

	  var inModule = typeof module === "object";
	  var runtime = global.regeneratorRuntime;
	  if (runtime) {
	    if (inModule) {
	      // If regeneratorRuntime is defined globally and we're in a module,
	      // make the exports object identical to regeneratorRuntime.
	      module.exports = runtime;
	    }
	    // Don't bother evaluating the rest of this file if the runtime was
	    // already defined globally.
	    return;
	  }

	  // Define the runtime globally (as expected by generated code) as either
	  // module.exports (if we're in a module) or a new, empty object.
	  runtime = global.regeneratorRuntime = inModule ? module.exports : {};

	  function wrap(innerFn, outerFn, self, tryLocsList) {
	    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
	    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
	    var generator = Object.create(protoGenerator.prototype);
	    var context = new Context(tryLocsList || []);

	    // The ._invoke method unifies the implementations of the .next,
	    // .throw, and .return methods.
	    generator._invoke = makeInvokeMethod(innerFn, self, context);

	    return generator;
	  }
	  runtime.wrap = wrap;

	  // Try/catch helper to minimize deoptimizations. Returns a completion
	  // record like context.tryEntries[i].completion. This interface could
	  // have been (and was previously) designed to take a closure to be
	  // invoked without arguments, but in all the cases we care about we
	  // already have an existing method we want to call, so there's no need
	  // to create a new function object. We can even get away with assuming
	  // the method takes exactly one argument, since that happens to be true
	  // in every case, so we don't have to touch the arguments object. The
	  // only additional allocation required is the completion record, which
	  // has a stable shape and so hopefully should be cheap to allocate.
	  function tryCatch(fn, obj, arg) {
	    try {
	      return { type: "normal", arg: fn.call(obj, arg) };
	    } catch (err) {
	      return { type: "throw", arg: err };
	    }
	  }

	  var GenStateSuspendedStart = "suspendedStart";
	  var GenStateSuspendedYield = "suspendedYield";
	  var GenStateExecuting = "executing";
	  var GenStateCompleted = "completed";

	  // Returning this object from the innerFn has the same effect as
	  // breaking out of the dispatch switch statement.
	  var ContinueSentinel = {};

	  // Dummy constructor functions that we use as the .constructor and
	  // .constructor.prototype properties for functions that return Generator
	  // objects. For full spec compliance, you may wish to configure your
	  // minifier not to mangle the names of these two functions.
	  function Generator() {}
	  function GeneratorFunction() {}
	  function GeneratorFunctionPrototype() {}

	  // This is a polyfill for %IteratorPrototype% for environments that
	  // don't natively support it.
	  var IteratorPrototype = {};
	  IteratorPrototype[iteratorSymbol] = function () {
	    return this;
	  };

	  var getProto = Object.getPrototypeOf;
	  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
	  if (NativeIteratorPrototype &&
	      NativeIteratorPrototype !== Op &&
	      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
	    // This environment has a native %IteratorPrototype%; use it instead
	    // of the polyfill.
	    IteratorPrototype = NativeIteratorPrototype;
	  }

	  var Gp = GeneratorFunctionPrototype.prototype =
	    Generator.prototype = Object.create(IteratorPrototype);
	  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
	  GeneratorFunctionPrototype.constructor = GeneratorFunction;
	  GeneratorFunctionPrototype[toStringTagSymbol] =
	    GeneratorFunction.displayName = "GeneratorFunction";

	  // Helper for defining the .next, .throw, and .return methods of the
	  // Iterator interface in terms of a single ._invoke method.
	  function defineIteratorMethods(prototype) {
	    ["next", "throw", "return"].forEach(function(method) {
	      prototype[method] = function(arg) {
	        return this._invoke(method, arg);
	      };
	    });
	  }

	  runtime.isGeneratorFunction = function(genFun) {
	    var ctor = typeof genFun === "function" && genFun.constructor;
	    return ctor
	      ? ctor === GeneratorFunction ||
	        // For the native GeneratorFunction constructor, the best we can
	        // do is to check its .name property.
	        (ctor.displayName || ctor.name) === "GeneratorFunction"
	      : false;
	  };

	  runtime.mark = function(genFun) {
	    if (Object.setPrototypeOf) {
	      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
	    } else {
	      genFun.__proto__ = GeneratorFunctionPrototype;
	      if (!(toStringTagSymbol in genFun)) {
	        genFun[toStringTagSymbol] = "GeneratorFunction";
	      }
	    }
	    genFun.prototype = Object.create(Gp);
	    return genFun;
	  };

	  // Within the body of any async function, `await x` is transformed to
	  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
	  // `hasOwn.call(value, "__await")` to determine if the yielded value is
	  // meant to be awaited.
	  runtime.awrap = function(arg) {
	    return { __await: arg };
	  };

	  function AsyncIterator(generator) {
	    function invoke(method, arg, resolve, reject) {
	      var record = tryCatch(generator[method], generator, arg);
	      if (record.type === "throw") {
	        reject(record.arg);
	      } else {
	        var result = record.arg;
	        var value = result.value;
	        if (value &&
	            typeof value === "object" &&
	            hasOwn.call(value, "__await")) {
	          return Promise.resolve(value.__await).then(function(value) {
	            invoke("next", value, resolve, reject);
	          }, function(err) {
	            invoke("throw", err, resolve, reject);
	          });
	        }

	        return Promise.resolve(value).then(function(unwrapped) {
	          // When a yielded Promise is resolved, its final value becomes
	          // the .value of the Promise<{value,done}> result for the
	          // current iteration. If the Promise is rejected, however, the
	          // result for this iteration will be rejected with the same
	          // reason. Note that rejections of yielded Promises are not
	          // thrown back into the generator function, as is the case
	          // when an awaited Promise is rejected. This difference in
	          // behavior between yield and await is important, because it
	          // allows the consumer to decide what to do with the yielded
	          // rejection (swallow it and continue, manually .throw it back
	          // into the generator, abandon iteration, whatever). With
	          // await, by contrast, there is no opportunity to examine the
	          // rejection reason outside the generator function, so the
	          // only option is to throw it from the await expression, and
	          // let the generator function handle the exception.
	          result.value = unwrapped;
	          resolve(result);
	        }, reject);
	      }
	    }

	    var previousPromise;

	    function enqueue(method, arg) {
	      function callInvokeWithMethodAndArg() {
	        return new Promise(function(resolve, reject) {
	          invoke(method, arg, resolve, reject);
	        });
	      }

	      return previousPromise =
	        // If enqueue has been called before, then we want to wait until
	        // all previous Promises have been resolved before calling invoke,
	        // so that results are always delivered in the correct order. If
	        // enqueue has not been called before, then it is important to
	        // call invoke immediately, without waiting on a callback to fire,
	        // so that the async generator function has the opportunity to do
	        // any necessary setup in a predictable way. This predictability
	        // is why the Promise constructor synchronously invokes its
	        // executor callback, and why async functions synchronously
	        // execute code before the first await. Since we implement simple
	        // async functions in terms of async generators, it is especially
	        // important to get this right, even though it requires care.
	        previousPromise ? previousPromise.then(
	          callInvokeWithMethodAndArg,
	          // Avoid propagating failures to Promises returned by later
	          // invocations of the iterator.
	          callInvokeWithMethodAndArg
	        ) : callInvokeWithMethodAndArg();
	    }

	    // Define the unified helper method that is used to implement .next,
	    // .throw, and .return (see defineIteratorMethods).
	    this._invoke = enqueue;
	  }

	  defineIteratorMethods(AsyncIterator.prototype);
	  AsyncIterator.prototype[asyncIteratorSymbol] = function () {
	    return this;
	  };
	  runtime.AsyncIterator = AsyncIterator;

	  // Note that simple async functions are implemented on top of
	  // AsyncIterator objects; they just return a Promise for the value of
	  // the final result produced by the iterator.
	  runtime.async = function(innerFn, outerFn, self, tryLocsList) {
	    var iter = new AsyncIterator(
	      wrap(innerFn, outerFn, self, tryLocsList)
	    );

	    return runtime.isGeneratorFunction(outerFn)
	      ? iter // If outerFn is a generator, return the full iterator.
	      : iter.next().then(function(result) {
	          return result.done ? result.value : iter.next();
	        });
	  };

	  function makeInvokeMethod(innerFn, self, context) {
	    var state = GenStateSuspendedStart;

	    return function invoke(method, arg) {
	      if (state === GenStateExecuting) {
	        throw new Error("Generator is already running");
	      }

	      if (state === GenStateCompleted) {
	        if (method === "throw") {
	          throw arg;
	        }

	        // Be forgiving, per 25.3.3.3.3 of the spec:
	        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
	        return doneResult();
	      }

	      context.method = method;
	      context.arg = arg;

	      while (true) {
	        var delegate = context.delegate;
	        if (delegate) {
	          var delegateResult = maybeInvokeDelegate(delegate, context);
	          if (delegateResult) {
	            if (delegateResult === ContinueSentinel) continue;
	            return delegateResult;
	          }
	        }

	        if (context.method === "next") {
	          // Setting context._sent for legacy support of Babel's
	          // function.sent implementation.
	          context.sent = context._sent = context.arg;

	        } else if (context.method === "throw") {
	          if (state === GenStateSuspendedStart) {
	            state = GenStateCompleted;
	            throw context.arg;
	          }

	          context.dispatchException(context.arg);

	        } else if (context.method === "return") {
	          context.abrupt("return", context.arg);
	        }

	        state = GenStateExecuting;

	        var record = tryCatch(innerFn, self, context);
	        if (record.type === "normal") {
	          // If an exception is thrown from innerFn, we leave state ===
	          // GenStateExecuting and loop back for another invocation.
	          state = context.done
	            ? GenStateCompleted
	            : GenStateSuspendedYield;

	          if (record.arg === ContinueSentinel) {
	            continue;
	          }

	          return {
	            value: record.arg,
	            done: context.done
	          };

	        } else if (record.type === "throw") {
	          state = GenStateCompleted;
	          // Dispatch the exception by looping back around to the
	          // context.dispatchException(context.arg) call above.
	          context.method = "throw";
	          context.arg = record.arg;
	        }
	      }
	    };
	  }

	  // Call delegate.iterator[context.method](context.arg) and handle the
	  // result, either by returning a { value, done } result from the
	  // delegate iterator, or by modifying context.method and context.arg,
	  // setting context.delegate to null, and returning the ContinueSentinel.
	  function maybeInvokeDelegate(delegate, context) {
	    var method = delegate.iterator[context.method];
	    if (method === undefined) {
	      // A .throw or .return when the delegate iterator has no .throw
	      // method always terminates the yield* loop.
	      context.delegate = null;

	      if (context.method === "throw") {
	        if (delegate.iterator.return) {
	          // If the delegate iterator has a return method, give it a
	          // chance to clean up.
	          context.method = "return";
	          context.arg = undefined;
	          maybeInvokeDelegate(delegate, context);

	          if (context.method === "throw") {
	            // If maybeInvokeDelegate(context) changed context.method from
	            // "return" to "throw", let that override the TypeError below.
	            return ContinueSentinel;
	          }
	        }

	        context.method = "throw";
	        context.arg = new TypeError(
	          "The iterator does not provide a 'throw' method");
	      }

	      return ContinueSentinel;
	    }

	    var record = tryCatch(method, delegate.iterator, context.arg);

	    if (record.type === "throw") {
	      context.method = "throw";
	      context.arg = record.arg;
	      context.delegate = null;
	      return ContinueSentinel;
	    }

	    var info = record.arg;

	    if (! info) {
	      context.method = "throw";
	      context.arg = new TypeError("iterator result is not an object");
	      context.delegate = null;
	      return ContinueSentinel;
	    }

	    if (info.done) {
	      // Assign the result of the finished delegate to the temporary
	      // variable specified by delegate.resultName (see delegateYield).
	      context[delegate.resultName] = info.value;

	      // Resume execution at the desired location (see delegateYield).
	      context.next = delegate.nextLoc;

	      // If context.method was "throw" but the delegate handled the
	      // exception, let the outer generator proceed normally. If
	      // context.method was "next", forget context.arg since it has been
	      // "consumed" by the delegate iterator. If context.method was
	      // "return", allow the original .return call to continue in the
	      // outer generator.
	      if (context.method !== "return") {
	        context.method = "next";
	        context.arg = undefined;
	      }

	    } else {
	      // Re-yield the result returned by the delegate method.
	      return info;
	    }

	    // The delegate iterator is finished, so forget it and continue with
	    // the outer generator.
	    context.delegate = null;
	    return ContinueSentinel;
	  }

	  // Define Generator.prototype.{next,throw,return} in terms of the
	  // unified ._invoke helper method.
	  defineIteratorMethods(Gp);

	  Gp[toStringTagSymbol] = "Generator";

	  // A Generator should always return itself as the iterator object when the
	  // @@iterator function is called on it. Some browsers' implementations of the
	  // iterator prototype chain incorrectly implement this, causing the Generator
	  // object to not be returned from this call. This ensures that doesn't happen.
	  // See https://github.com/facebook/regenerator/issues/274 for more details.
	  Gp[iteratorSymbol] = function() {
	    return this;
	  };

	  Gp.toString = function() {
	    return "[object Generator]";
	  };

	  function pushTryEntry(locs) {
	    var entry = { tryLoc: locs[0] };

	    if (1 in locs) {
	      entry.catchLoc = locs[1];
	    }

	    if (2 in locs) {
	      entry.finallyLoc = locs[2];
	      entry.afterLoc = locs[3];
	    }

	    this.tryEntries.push(entry);
	  }

	  function resetTryEntry(entry) {
	    var record = entry.completion || {};
	    record.type = "normal";
	    delete record.arg;
	    entry.completion = record;
	  }

	  function Context(tryLocsList) {
	    // The root entry object (effectively a try statement without a catch
	    // or a finally block) gives us a place to store values thrown from
	    // locations where there is no enclosing try statement.
	    this.tryEntries = [{ tryLoc: "root" }];
	    tryLocsList.forEach(pushTryEntry, this);
	    this.reset(true);
	  }

	  runtime.keys = function(object) {
	    var keys = [];
	    for (var key in object) {
	      keys.push(key);
	    }
	    keys.reverse();

	    // Rather than returning an object with a next method, we keep
	    // things simple and return the next function itself.
	    return function next() {
	      while (keys.length) {
	        var key = keys.pop();
	        if (key in object) {
	          next.value = key;
	          next.done = false;
	          return next;
	        }
	      }

	      // To avoid creating an additional object, we just hang the .value
	      // and .done properties off the next function object itself. This
	      // also ensures that the minifier will not anonymize the function.
	      next.done = true;
	      return next;
	    };
	  };

	  function values(iterable) {
	    if (iterable) {
	      var iteratorMethod = iterable[iteratorSymbol];
	      if (iteratorMethod) {
	        return iteratorMethod.call(iterable);
	      }

	      if (typeof iterable.next === "function") {
	        return iterable;
	      }

	      if (!isNaN(iterable.length)) {
	        var i = -1, next = function next() {
	          while (++i < iterable.length) {
	            if (hasOwn.call(iterable, i)) {
	              next.value = iterable[i];
	              next.done = false;
	              return next;
	            }
	          }

	          next.value = undefined;
	          next.done = true;

	          return next;
	        };

	        return next.next = next;
	      }
	    }

	    // Return an iterator with no values.
	    return { next: doneResult };
	  }
	  runtime.values = values;

	  function doneResult() {
	    return { value: undefined, done: true };
	  }

	  Context.prototype = {
	    constructor: Context,

	    reset: function(skipTempReset) {
	      this.prev = 0;
	      this.next = 0;
	      // Resetting context._sent for legacy support of Babel's
	      // function.sent implementation.
	      this.sent = this._sent = undefined;
	      this.done = false;
	      this.delegate = null;

	      this.method = "next";
	      this.arg = undefined;

	      this.tryEntries.forEach(resetTryEntry);

	      if (!skipTempReset) {
	        for (var name in this) {
	          // Not sure about the optimal order of these conditions:
	          if (name.charAt(0) === "t" &&
	              hasOwn.call(this, name) &&
	              !isNaN(+name.slice(1))) {
	            this[name] = undefined;
	          }
	        }
	      }
	    },

	    stop: function() {
	      this.done = true;

	      var rootEntry = this.tryEntries[0];
	      var rootRecord = rootEntry.completion;
	      if (rootRecord.type === "throw") {
	        throw rootRecord.arg;
	      }

	      return this.rval;
	    },

	    dispatchException: function(exception) {
	      if (this.done) {
	        throw exception;
	      }

	      var context = this;
	      function handle(loc, caught) {
	        record.type = "throw";
	        record.arg = exception;
	        context.next = loc;

	        if (caught) {
	          // If the dispatched exception was caught by a catch block,
	          // then let that catch block handle the exception normally.
	          context.method = "next";
	          context.arg = undefined;
	        }

	        return !! caught;
	      }

	      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
	        var entry = this.tryEntries[i];
	        var record = entry.completion;

	        if (entry.tryLoc === "root") {
	          // Exception thrown outside of any try block that could handle
	          // it, so set the completion value of the entire function to
	          // throw the exception.
	          return handle("end");
	        }

	        if (entry.tryLoc <= this.prev) {
	          var hasCatch = hasOwn.call(entry, "catchLoc");
	          var hasFinally = hasOwn.call(entry, "finallyLoc");

	          if (hasCatch && hasFinally) {
	            if (this.prev < entry.catchLoc) {
	              return handle(entry.catchLoc, true);
	            } else if (this.prev < entry.finallyLoc) {
	              return handle(entry.finallyLoc);
	            }

	          } else if (hasCatch) {
	            if (this.prev < entry.catchLoc) {
	              return handle(entry.catchLoc, true);
	            }

	          } else if (hasFinally) {
	            if (this.prev < entry.finallyLoc) {
	              return handle(entry.finallyLoc);
	            }

	          } else {
	            throw new Error("try statement without catch or finally");
	          }
	        }
	      }
	    },

	    abrupt: function(type, arg) {
	      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
	        var entry = this.tryEntries[i];
	        if (entry.tryLoc <= this.prev &&
	            hasOwn.call(entry, "finallyLoc") &&
	            this.prev < entry.finallyLoc) {
	          var finallyEntry = entry;
	          break;
	        }
	      }

	      if (finallyEntry &&
	          (type === "break" ||
	           type === "continue") &&
	          finallyEntry.tryLoc <= arg &&
	          arg <= finallyEntry.finallyLoc) {
	        // Ignore the finally entry if control is not jumping to a
	        // location outside the try/catch block.
	        finallyEntry = null;
	      }

	      var record = finallyEntry ? finallyEntry.completion : {};
	      record.type = type;
	      record.arg = arg;

	      if (finallyEntry) {
	        this.method = "next";
	        this.next = finallyEntry.finallyLoc;
	        return ContinueSentinel;
	      }

	      return this.complete(record);
	    },

	    complete: function(record, afterLoc) {
	      if (record.type === "throw") {
	        throw record.arg;
	      }

	      if (record.type === "break" ||
	          record.type === "continue") {
	        this.next = record.arg;
	      } else if (record.type === "return") {
	        this.rval = this.arg = record.arg;
	        this.method = "return";
	        this.next = "end";
	      } else if (record.type === "normal" && afterLoc) {
	        this.next = afterLoc;
	      }

	      return ContinueSentinel;
	    },

	    finish: function(finallyLoc) {
	      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
	        var entry = this.tryEntries[i];
	        if (entry.finallyLoc === finallyLoc) {
	          this.complete(entry.completion, entry.afterLoc);
	          resetTryEntry(entry);
	          return ContinueSentinel;
	        }
	      }
	    },

	    "catch": function(tryLoc) {
	      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
	        var entry = this.tryEntries[i];
	        if (entry.tryLoc === tryLoc) {
	          var record = entry.completion;
	          if (record.type === "throw") {
	            var thrown = record.arg;
	            resetTryEntry(entry);
	          }
	          return thrown;
	        }
	      }

	      // The context.catch method must only be called with a location
	      // argument that corresponds to a known catch block.
	      throw new Error("illegal catch attempt");
	    },

	    delegateYield: function(iterable, resultName, nextLoc) {
	      this.delegate = {
	        iterator: values(iterable),
	        resultName: resultName,
	        nextLoc: nextLoc
	      };

	      if (this.method === "next") {
	        // Deliberately forget the last sent value so that we don't
	        // accidentally pass it on to the delegate.
	        this.arg = undefined;
	      }

	      return ContinueSentinel;
	    }
	  };
	})(
	  // In sloppy mode, unbound `this` refers to the global object, fallback to
	  // Function constructor if we're in global strict mode. That is sadly a form
	  // of indirect eval which violates Content Security Policy.
	  (function() { return this })() || Function("return this")()
	);


/***/ }),
/* 5 */
/***/ (function(module, exports, __webpack_require__) {

	"use strict";

	exports.__esModule = true;

	var _promise = __webpack_require__(6);

	var _promise2 = _interopRequireDefault(_promise);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	exports.default = function (fn) {
	  return function () {
	    var gen = fn.apply(this, arguments);
	    return new _promise2.default(function (resolve, reject) {
	      function step(key, arg) {
	        try {
	          var info = gen[key](arg);
	          var value = info.value;
	        } catch (error) {
	          reject(error);
	          return;
	        }

	        if (info.done) {
	          resolve(value);
	        } else {
	          return _promise2.default.resolve(value).then(function (value) {
	            step("next", value);
	          }, function (err) {
	            step("throw", err);
	          });
	        }
	      }

	      return step("next");
	    });
	  };
	};

/***/ }),
/* 6 */
/***/ (function(module, exports, __webpack_require__) {

	module.exports = { "default": __webpack_require__(7), __esModule: true };

/***/ }),
/* 7 */
/***/ (function(module, exports, __webpack_require__) {

	__webpack_require__(8);
	__webpack_require__(9);
	__webpack_require__(53);
	__webpack_require__(57);
	__webpack_require__(75);
	__webpack_require__(76);
	module.exports = __webpack_require__(17).Promise;


/***/ }),
/* 8 */
/***/ (function(module, exports) {

	

/***/ }),
/* 9 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';
	var $at = __webpack_require__(10)(true);

	// 21.1.3.27 String.prototype[@@iterator]()
	__webpack_require__(13)(String, 'String', function (iterated) {
	  this._t = String(iterated); // target
	  this._i = 0;                // next index
	// 21.1.5.2.1 %StringIteratorPrototype%.next()
	}, function () {
	  var O = this._t;
	  var index = this._i;
	  var point;
	  if (index >= O.length) return { value: undefined, done: true };
	  point = $at(O, index);
	  this._i += point.length;
	  return { value: point, done: false };
	});


/***/ }),
/* 10 */
/***/ (function(module, exports, __webpack_require__) {

	var toInteger = __webpack_require__(11);
	var defined = __webpack_require__(12);
	// true  -> String#at
	// false -> String#codePointAt
	module.exports = function (TO_STRING) {
	  return function (that, pos) {
	    var s = String(defined(that));
	    var i = toInteger(pos);
	    var l = s.length;
	    var a, b;
	    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
	    a = s.charCodeAt(i);
	    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
	      ? TO_STRING ? s.charAt(i) : a
	      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
	  };
	};


/***/ }),
/* 11 */
/***/ (function(module, exports) {

	// 7.1.4 ToInteger
	var ceil = Math.ceil;
	var floor = Math.floor;
	module.exports = function (it) {
	  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
	};


/***/ }),
/* 12 */
/***/ (function(module, exports) {

	// 7.2.1 RequireObjectCoercible(argument)
	module.exports = function (it) {
	  if (it == undefined) throw TypeError("Can't call method on  " + it);
	  return it;
	};


/***/ }),
/* 13 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';
	var LIBRARY = __webpack_require__(14);
	var $export = __webpack_require__(15);
	var redefine = __webpack_require__(31);
	var hide = __webpack_require__(20);
	var Iterators = __webpack_require__(32);
	var $iterCreate = __webpack_require__(33);
	var setToStringTag = __webpack_require__(49);
	var getPrototypeOf = __webpack_require__(51);
	var ITERATOR = __webpack_require__(50)('iterator');
	var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
	var FF_ITERATOR = '@@iterator';
	var KEYS = 'keys';
	var VALUES = 'values';

	var returnThis = function () { return this; };

	module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
	  $iterCreate(Constructor, NAME, next);
	  var getMethod = function (kind) {
	    if (!BUGGY && kind in proto) return proto[kind];
	    switch (kind) {
	      case KEYS: return function keys() { return new Constructor(this, kind); };
	      case VALUES: return function values() { return new Constructor(this, kind); };
	    } return function entries() { return new Constructor(this, kind); };
	  };
	  var TAG = NAME + ' Iterator';
	  var DEF_VALUES = DEFAULT == VALUES;
	  var VALUES_BUG = false;
	  var proto = Base.prototype;
	  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
	  var $default = $native || getMethod(DEFAULT);
	  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
	  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
	  var methods, key, IteratorPrototype;
	  // Fix native
	  if ($anyNative) {
	    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
	    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
	      // Set @@toStringTag to native iterators
	      setToStringTag(IteratorPrototype, TAG, true);
	      // fix for some old engines
	      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
	    }
	  }
	  // fix Array#{values, @@iterator}.name in V8 / FF
	  if (DEF_VALUES && $native && $native.name !== VALUES) {
	    VALUES_BUG = true;
	    $default = function values() { return $native.call(this); };
	  }
	  // Define iterator
	  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
	    hide(proto, ITERATOR, $default);
	  }
	  // Plug for library
	  Iterators[NAME] = $default;
	  Iterators[TAG] = returnThis;
	  if (DEFAULT) {
	    methods = {
	      values: DEF_VALUES ? $default : getMethod(VALUES),
	      keys: IS_SET ? $default : getMethod(KEYS),
	      entries: $entries
	    };
	    if (FORCED) for (key in methods) {
	      if (!(key in proto)) redefine(proto, key, methods[key]);
	    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
	  }
	  return methods;
	};


/***/ }),
/* 14 */
/***/ (function(module, exports) {

	module.exports = true;


/***/ }),
/* 15 */
/***/ (function(module, exports, __webpack_require__) {

	var global = __webpack_require__(16);
	var core = __webpack_require__(17);
	var ctx = __webpack_require__(18);
	var hide = __webpack_require__(20);
	var has = __webpack_require__(30);
	var PROTOTYPE = 'prototype';

	var $export = function (type, name, source) {
	  var IS_FORCED = type & $export.F;
	  var IS_GLOBAL = type & $export.G;
	  var IS_STATIC = type & $export.S;
	  var IS_PROTO = type & $export.P;
	  var IS_BIND = type & $export.B;
	  var IS_WRAP = type & $export.W;
	  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
	  var expProto = exports[PROTOTYPE];
	  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];
	  var key, own, out;
	  if (IS_GLOBAL) source = name;
	  for (key in source) {
	    // contains in native
	    own = !IS_FORCED && target && target[key] !== undefined;
	    if (own && has(exports, key)) continue;
	    // export native or passed
	    out = own ? target[key] : source[key];
	    // prevent global pollution for namespaces
	    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
	    // bind timers to global for call from export context
	    : IS_BIND && own ? ctx(out, global)
	    // wrap global constructors for prevent change them in library
	    : IS_WRAP && target[key] == out ? (function (C) {
	      var F = function (a, b, c) {
	        if (this instanceof C) {
	          switch (arguments.length) {
	            case 0: return new C();
	            case 1: return new C(a);
	            case 2: return new C(a, b);
	          } return new C(a, b, c);
	        } return C.apply(this, arguments);
	      };
	      F[PROTOTYPE] = C[PROTOTYPE];
	      return F;
	    // make static versions for prototype methods
	    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
	    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
	    if (IS_PROTO) {
	      (exports.virtual || (exports.virtual = {}))[key] = out;
	      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
	      if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);
	    }
	  }
	};
	// type bitmap
	$export.F = 1;   // forced
	$export.G = 2;   // global
	$export.S = 4;   // static
	$export.P = 8;   // proto
	$export.B = 16;  // bind
	$export.W = 32;  // wrap
	$export.U = 64;  // safe
	$export.R = 128; // real proto method for `library`
	module.exports = $export;


/***/ }),
/* 16 */
/***/ (function(module, exports) {

	// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
	var global = module.exports = typeof window != 'undefined' && window.Math == Math
	  ? window : typeof self != 'undefined' && self.Math == Math ? self
	  // eslint-disable-next-line no-new-func
	  : Function('return this')();
	if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef


/***/ }),
/* 17 */
/***/ (function(module, exports) {

	var core = module.exports = { version: '2.6.12' };
	if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef


/***/ }),
/* 18 */
/***/ (function(module, exports, __webpack_require__) {

	// optional / simple context binding
	var aFunction = __webpack_require__(19);
	module.exports = function (fn, that, length) {
	  aFunction(fn);
	  if (that === undefined) return fn;
	  switch (length) {
	    case 1: return function (a) {
	      return fn.call(that, a);
	    };
	    case 2: return function (a, b) {
	      return fn.call(that, a, b);
	    };
	    case 3: return function (a, b, c) {
	      return fn.call(that, a, b, c);
	    };
	  }
	  return function (/* ...args */) {
	    return fn.apply(that, arguments);
	  };
	};


/***/ }),
/* 19 */
/***/ (function(module, exports) {

	module.exports = function (it) {
	  if (typeof it != 'function') throw TypeError(it + ' is not a function!');
	  return it;
	};


/***/ }),
/* 20 */
/***/ (function(module, exports, __webpack_require__) {

	var dP = __webpack_require__(21);
	var createDesc = __webpack_require__(29);
	module.exports = __webpack_require__(25) ? function (object, key, value) {
	  return dP.f(object, key, createDesc(1, value));
	} : function (object, key, value) {
	  object[key] = value;
	  return object;
	};


/***/ }),
/* 21 */
/***/ (function(module, exports, __webpack_require__) {

	var anObject = __webpack_require__(22);
	var IE8_DOM_DEFINE = __webpack_require__(24);
	var toPrimitive = __webpack_require__(28);
	var dP = Object.defineProperty;

	exports.f = __webpack_require__(25) ? Object.defineProperty : function defineProperty(O, P, Attributes) {
	  anObject(O);
	  P = toPrimitive(P, true);
	  anObject(Attributes);
	  if (IE8_DOM_DEFINE) try {
	    return dP(O, P, Attributes);
	  } catch (e) { /* empty */ }
	  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
	  if ('value' in Attributes) O[P] = Attributes.value;
	  return O;
	};


/***/ }),
/* 22 */
/***/ (function(module, exports, __webpack_require__) {

	var isObject = __webpack_require__(23);
	module.exports = function (it) {
	  if (!isObject(it)) throw TypeError(it + ' is not an object!');
	  return it;
	};


/***/ }),
/* 23 */
/***/ (function(module, exports) {

	module.exports = function (it) {
	  return typeof it === 'object' ? it !== null : typeof it === 'function';
	};


/***/ }),
/* 24 */
/***/ (function(module, exports, __webpack_require__) {

	module.exports = !__webpack_require__(25) && !__webpack_require__(26)(function () {
	  return Object.defineProperty(__webpack_require__(27)('div'), 'a', { get: function () { return 7; } }).a != 7;
	});


/***/ }),
/* 25 */
/***/ (function(module, exports, __webpack_require__) {

	// Thank's IE8 for his funny defineProperty
	module.exports = !__webpack_require__(26)(function () {
	  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
	});


/***/ }),
/* 26 */
/***/ (function(module, exports) {

	module.exports = function (exec) {
	  try {
	    return !!exec();
	  } catch (e) {
	    return true;
	  }
	};


/***/ }),
/* 27 */
/***/ (function(module, exports, __webpack_require__) {

	var isObject = __webpack_require__(23);
	var document = __webpack_require__(16).document;
	// typeof document.createElement is 'object' in old IE
	var is = isObject(document) && isObject(document.createElement);
	module.exports = function (it) {
	  return is ? document.createElement(it) : {};
	};


/***/ }),
/* 28 */
/***/ (function(module, exports, __webpack_require__) {

	// 7.1.1 ToPrimitive(input [, PreferredType])
	var isObject = __webpack_require__(23);
	// instead of the ES6 spec version, we didn't implement @@toPrimitive case
	// and the second argument - flag - preferred type is a string
	module.exports = function (it, S) {
	  if (!isObject(it)) return it;
	  var fn, val;
	  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
	  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
	  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
	  throw TypeError("Can't convert object to primitive value");
	};


/***/ }),
/* 29 */
/***/ (function(module, exports) {

	module.exports = function (bitmap, value) {
	  return {
	    enumerable: !(bitmap & 1),
	    configurable: !(bitmap & 2),
	    writable: !(bitmap & 4),
	    value: value
	  };
	};


/***/ }),
/* 30 */
/***/ (function(module, exports) {

	var hasOwnProperty = {}.hasOwnProperty;
	module.exports = function (it, key) {
	  return hasOwnProperty.call(it, key);
	};


/***/ }),
/* 31 */
/***/ (function(module, exports, __webpack_require__) {

	module.exports = __webpack_require__(20);


/***/ }),
/* 32 */
/***/ (function(module, exports) {

	module.exports = {};


/***/ }),
/* 33 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';
	var create = __webpack_require__(34);
	var descriptor = __webpack_require__(29);
	var setToStringTag = __webpack_require__(49);
	var IteratorPrototype = {};

	// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
	__webpack_require__(20)(IteratorPrototype, __webpack_require__(50)('iterator'), function () { return this; });

	module.exports = function (Constructor, NAME, next) {
	  Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
	  setToStringTag(Constructor, NAME + ' Iterator');
	};


/***/ }),
/* 34 */
/***/ (function(module, exports, __webpack_require__) {

	// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
	var anObject = __webpack_require__(22);
	var dPs = __webpack_require__(35);
	var enumBugKeys = __webpack_require__(47);
	var IE_PROTO = __webpack_require__(44)('IE_PROTO');
	var Empty = function () { /* empty */ };
	var PROTOTYPE = 'prototype';

	// Create object with fake `null` prototype: use iframe Object with cleared prototype
	var createDict = function () {
	  // Thrash, waste and sodomy: IE GC bug
	  var iframe = __webpack_require__(27)('iframe');
	  var i = enumBugKeys.length;
	  var lt = '<';
	  var gt = '>';
	  var iframeDocument;
	  iframe.style.display = 'none';
	  __webpack_require__(48).appendChild(iframe);
	  iframe.src = 'javascript:'; // eslint-disable-line no-script-url
	  // createDict = iframe.contentWindow.Object;
	  // html.removeChild(iframe);
	  iframeDocument = iframe.contentWindow.document;
	  iframeDocument.open();
	  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
	  iframeDocument.close();
	  createDict = iframeDocument.F;
	  while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
	  return createDict();
	};

	module.exports = Object.create || function create(O, Properties) {
	  var result;
	  if (O !== null) {
	    Empty[PROTOTYPE] = anObject(O);
	    result = new Empty();
	    Empty[PROTOTYPE] = null;
	    // add "__proto__" for Object.getPrototypeOf polyfill
	    result[IE_PROTO] = O;
	  } else result = createDict();
	  return Properties === undefined ? result : dPs(result, Properties);
	};


/***/ }),
/* 35 */
/***/ (function(module, exports, __webpack_require__) {

	var dP = __webpack_require__(21);
	var anObject = __webpack_require__(22);
	var getKeys = __webpack_require__(36);

	module.exports = __webpack_require__(25) ? Object.defineProperties : function defineProperties(O, Properties) {
	  anObject(O);
	  var keys = getKeys(Properties);
	  var length = keys.length;
	  var i = 0;
	  var P;
	  while (length > i) dP.f(O, P = keys[i++], Properties[P]);
	  return O;
	};


/***/ }),
/* 36 */
/***/ (function(module, exports, __webpack_require__) {

	// 19.1.2.14 / 15.2.3.14 Object.keys(O)
	var $keys = __webpack_require__(37);
	var enumBugKeys = __webpack_require__(47);

	module.exports = Object.keys || function keys(O) {
	  return $keys(O, enumBugKeys);
	};


/***/ }),
/* 37 */
/***/ (function(module, exports, __webpack_require__) {

	var has = __webpack_require__(30);
	var toIObject = __webpack_require__(38);
	var arrayIndexOf = __webpack_require__(41)(false);
	var IE_PROTO = __webpack_require__(44)('IE_PROTO');

	module.exports = function (object, names) {
	  var O = toIObject(object);
	  var i = 0;
	  var result = [];
	  var key;
	  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
	  // Don't enum bug & hidden keys
	  while (names.length > i) if (has(O, key = names[i++])) {
	    ~arrayIndexOf(result, key) || result.push(key);
	  }
	  return result;
	};


/***/ }),
/* 38 */
/***/ (function(module, exports, __webpack_require__) {

	// to indexed object, toObject with fallback for non-array-like ES3 strings
	var IObject = __webpack_require__(39);
	var defined = __webpack_require__(12);
	module.exports = function (it) {
	  return IObject(defined(it));
	};


/***/ }),
/* 39 */
/***/ (function(module, exports, __webpack_require__) {

	// fallback for non-array-like ES3 and non-enumerable old V8 strings
	var cof = __webpack_require__(40);
	// eslint-disable-next-line no-prototype-builtins
	module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
	  return cof(it) == 'String' ? it.split('') : Object(it);
	};


/***/ }),
/* 40 */
/***/ (function(module, exports) {

	var toString = {}.toString;

	module.exports = function (it) {
	  return toString.call(it).slice(8, -1);
	};


/***/ }),
/* 41 */
/***/ (function(module, exports, __webpack_require__) {

	// false -> Array#indexOf
	// true  -> Array#includes
	var toIObject = __webpack_require__(38);
	var toLength = __webpack_require__(42);
	var toAbsoluteIndex = __webpack_require__(43);
	module.exports = function (IS_INCLUDES) {
	  return function ($this, el, fromIndex) {
	    var O = toIObject($this);
	    var length = toLength(O.length);
	    var index = toAbsoluteIndex(fromIndex, length);
	    var value;
	    // Array#includes uses SameValueZero equality algorithm
	    // eslint-disable-next-line no-self-compare
	    if (IS_INCLUDES && el != el) while (length > index) {
	      value = O[index++];
	      // eslint-disable-next-line no-self-compare
	      if (value != value) return true;
	    // Array#indexOf ignores holes, Array#includes - not
	    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
	      if (O[index] === el) return IS_INCLUDES || index || 0;
	    } return !IS_INCLUDES && -1;
	  };
	};


/***/ }),
/* 42 */
/***/ (function(module, exports, __webpack_require__) {

	// 7.1.15 ToLength
	var toInteger = __webpack_require__(11);
	var min = Math.min;
	module.exports = function (it) {
	  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
	};


/***/ }),
/* 43 */
/***/ (function(module, exports, __webpack_require__) {

	var toInteger = __webpack_require__(11);
	var max = Math.max;
	var min = Math.min;
	module.exports = function (index, length) {
	  index = toInteger(index);
	  return index < 0 ? max(index + length, 0) : min(index, length);
	};


/***/ }),
/* 44 */
/***/ (function(module, exports, __webpack_require__) {

	var shared = __webpack_require__(45)('keys');
	var uid = __webpack_require__(46);
	module.exports = function (key) {
	  return shared[key] || (shared[key] = uid(key));
	};


/***/ }),
/* 45 */
/***/ (function(module, exports, __webpack_require__) {

	var core = __webpack_require__(17);
	var global = __webpack_require__(16);
	var SHARED = '__core-js_shared__';
	var store = global[SHARED] || (global[SHARED] = {});

	(module.exports = function (key, value) {
	  return store[key] || (store[key] = value !== undefined ? value : {});
	})('versions', []).push({
	  version: core.version,
	  mode: __webpack_require__(14) ? 'pure' : 'global',
	  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
	});


/***/ }),
/* 46 */
/***/ (function(module, exports) {

	var id = 0;
	var px = Math.random();
	module.exports = function (key) {
	  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
	};


/***/ }),
/* 47 */
/***/ (function(module, exports) {

	// IE 8- don't enum bug keys
	module.exports = (
	  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
	).split(',');


/***/ }),
/* 48 */
/***/ (function(module, exports, __webpack_require__) {

	var document = __webpack_require__(16).document;
	module.exports = document && document.documentElement;


/***/ }),
/* 49 */
/***/ (function(module, exports, __webpack_require__) {

	var def = __webpack_require__(21).f;
	var has = __webpack_require__(30);
	var TAG = __webpack_require__(50)('toStringTag');

	module.exports = function (it, tag, stat) {
	  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
	};


/***/ }),
/* 50 */
/***/ (function(module, exports, __webpack_require__) {

	var store = __webpack_require__(45)('wks');
	var uid = __webpack_require__(46);
	var Symbol = __webpack_require__(16).Symbol;
	var USE_SYMBOL = typeof Symbol == 'function';

	var $exports = module.exports = function (name) {
	  return store[name] || (store[name] =
	    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
	};

	$exports.store = store;


/***/ }),
/* 51 */
/***/ (function(module, exports, __webpack_require__) {

	// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
	var has = __webpack_require__(30);
	var toObject = __webpack_require__(52);
	var IE_PROTO = __webpack_require__(44)('IE_PROTO');
	var ObjectProto = Object.prototype;

	module.exports = Object.getPrototypeOf || function (O) {
	  O = toObject(O);
	  if (has(O, IE_PROTO)) return O[IE_PROTO];
	  if (typeof O.constructor == 'function' && O instanceof O.constructor) {
	    return O.constructor.prototype;
	  } return O instanceof Object ? ObjectProto : null;
	};


/***/ }),
/* 52 */
/***/ (function(module, exports, __webpack_require__) {

	// 7.1.13 ToObject(argument)
	var defined = __webpack_require__(12);
	module.exports = function (it) {
	  return Object(defined(it));
	};


/***/ }),
/* 53 */
/***/ (function(module, exports, __webpack_require__) {

	__webpack_require__(54);
	var global = __webpack_require__(16);
	var hide = __webpack_require__(20);
	var Iterators = __webpack_require__(32);
	var TO_STRING_TAG = __webpack_require__(50)('toStringTag');

	var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +
	  'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +
	  'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +
	  'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +
	  'TextTrackList,TouchList').split(',');

	for (var i = 0; i < DOMIterables.length; i++) {
	  var NAME = DOMIterables[i];
	  var Collection = global[NAME];
	  var proto = Collection && Collection.prototype;
	  if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
	  Iterators[NAME] = Iterators.Array;
	}


/***/ }),
/* 54 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';
	var addToUnscopables = __webpack_require__(55);
	var step = __webpack_require__(56);
	var Iterators = __webpack_require__(32);
	var toIObject = __webpack_require__(38);

	// 22.1.3.4 Array.prototype.entries()
	// 22.1.3.13 Array.prototype.keys()
	// 22.1.3.29 Array.prototype.values()
	// 22.1.3.30 Array.prototype[@@iterator]()
	module.exports = __webpack_require__(13)(Array, 'Array', function (iterated, kind) {
	  this._t = toIObject(iterated); // target
	  this._i = 0;                   // next index
	  this._k = kind;                // kind
	// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
	}, function () {
	  var O = this._t;
	  var kind = this._k;
	  var index = this._i++;
	  if (!O || index >= O.length) {
	    this._t = undefined;
	    return step(1);
	  }
	  if (kind == 'keys') return step(0, index);
	  if (kind == 'values') return step(0, O[index]);
	  return step(0, [index, O[index]]);
	}, 'values');

	// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
	Iterators.Arguments = Iterators.Array;

	addToUnscopables('keys');
	addToUnscopables('values');
	addToUnscopables('entries');


/***/ }),
/* 55 */
/***/ (function(module, exports) {

	module.exports = function () { /* empty */ };


/***/ }),
/* 56 */
/***/ (function(module, exports) {

	module.exports = function (done, value) {
	  return { value: value, done: !!done };
	};


/***/ }),
/* 57 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';
	var LIBRARY = __webpack_require__(14);
	var global = __webpack_require__(16);
	var ctx = __webpack_require__(18);
	var classof = __webpack_require__(58);
	var $export = __webpack_require__(15);
	var isObject = __webpack_require__(23);
	var aFunction = __webpack_require__(19);
	var anInstance = __webpack_require__(59);
	var forOf = __webpack_require__(60);
	var speciesConstructor = __webpack_require__(64);
	var task = __webpack_require__(65).set;
	var microtask = __webpack_require__(67)();
	var newPromiseCapabilityModule = __webpack_require__(68);
	var perform = __webpack_require__(69);
	var userAgent = __webpack_require__(70);
	var promiseResolve = __webpack_require__(71);
	var PROMISE = 'Promise';
	var TypeError = global.TypeError;
	var process = global.process;
	var versions = process && process.versions;
	var v8 = versions && versions.v8 || '';
	var $Promise = global[PROMISE];
	var isNode = classof(process) == 'process';
	var empty = function () { /* empty */ };
	var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;
	var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;

	var USE_NATIVE = !!function () {
	  try {
	    // correct subclassing with @@species support
	    var promise = $Promise.resolve(1);
	    var FakePromise = (promise.constructor = {})[__webpack_require__(50)('species')] = function (exec) {
	      exec(empty, empty);
	    };
	    // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
	    return (isNode || typeof PromiseRejectionEvent == 'function')
	      && promise.then(empty) instanceof FakePromise
	      // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
	      // https://bugs.chromium.org/p/chromium/issues/detail?id=830565
	      // we can't detect it synchronously, so just check versions
	      && v8.indexOf('6.6') !== 0
	      && userAgent.indexOf('Chrome/66') === -1;
	  } catch (e) { /* empty */ }
	}();

	// helpers
	var isThenable = function (it) {
	  var then;
	  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
	};
	var notify = function (promise, isReject) {
	  if (promise._n) return;
	  promise._n = true;
	  var chain = promise._c;
	  microtask(function () {
	    var value = promise._v;
	    var ok = promise._s == 1;
	    var i = 0;
	    var run = function (reaction) {
	      var handler = ok ? reaction.ok : reaction.fail;
	      var resolve = reaction.resolve;
	      var reject = reaction.reject;
	      var domain = reaction.domain;
	      var result, then, exited;
	      try {
	        if (handler) {
	          if (!ok) {
	            if (promise._h == 2) onHandleUnhandled(promise);
	            promise._h = 1;
	          }
	          if (handler === true) result = value;
	          else {
	            if (domain) domain.enter();
	            result = handler(value); // may throw
	            if (domain) {
	              domain.exit();
	              exited = true;
	            }
	          }
	          if (result === reaction.promise) {
	            reject(TypeError('Promise-chain cycle'));
	          } else if (then = isThenable(result)) {
	            then.call(result, resolve, reject);
	          } else resolve(result);
	        } else reject(value);
	      } catch (e) {
	        if (domain && !exited) domain.exit();
	        reject(e);
	      }
	    };
	    while (chain.length > i) run(chain[i++]); // variable length - can't use forEach
	    promise._c = [];
	    promise._n = false;
	    if (isReject && !promise._h) onUnhandled(promise);
	  });
	};
	var onUnhandled = function (promise) {
	  task.call(global, function () {
	    var value = promise._v;
	    var unhandled = isUnhandled(promise);
	    var result, handler, console;
	    if (unhandled) {
	      result = perform(function () {
	        if (isNode) {
	          process.emit('unhandledRejection', value, promise);
	        } else if (handler = global.onunhandledrejection) {
	          handler({ promise: promise, reason: value });
	        } else if ((console = global.console) && console.error) {
	          console.error('Unhandled promise rejection', value);
	        }
	      });
	      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
	      promise._h = isNode || isUnhandled(promise) ? 2 : 1;
	    } promise._a = undefined;
	    if (unhandled && result.e) throw result.v;
	  });
	};
	var isUnhandled = function (promise) {
	  return promise._h !== 1 && (promise._a || promise._c).length === 0;
	};
	var onHandleUnhandled = function (promise) {
	  task.call(global, function () {
	    var handler;
	    if (isNode) {
	      process.emit('rejectionHandled', promise);
	    } else if (handler = global.onrejectionhandled) {
	      handler({ promise: promise, reason: promise._v });
	    }
	  });
	};
	var $reject = function (value) {
	  var promise = this;
	  if (promise._d) return;
	  promise._d = true;
	  promise = promise._w || promise; // unwrap
	  promise._v = value;
	  promise._s = 2;
	  if (!promise._a) promise._a = promise._c.slice();
	  notify(promise, true);
	};
	var $resolve = function (value) {
	  var promise = this;
	  var then;
	  if (promise._d) return;
	  promise._d = true;
	  promise = promise._w || promise; // unwrap
	  try {
	    if (promise === value) throw TypeError("Promise can't be resolved itself");
	    if (then = isThenable(value)) {
	      microtask(function () {
	        var wrapper = { _w: promise, _d: false }; // wrap
	        try {
	          then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
	        } catch (e) {
	          $reject.call(wrapper, e);
	        }
	      });
	    } else {
	      promise._v = value;
	      promise._s = 1;
	      notify(promise, false);
	    }
	  } catch (e) {
	    $reject.call({ _w: promise, _d: false }, e); // wrap
	  }
	};

	// constructor polyfill
	if (!USE_NATIVE) {
	  // 25.4.3.1 Promise(executor)
	  $Promise = function Promise(executor) {
	    anInstance(this, $Promise, PROMISE, '_h');
	    aFunction(executor);
	    Internal.call(this);
	    try {
	      executor(ctx($resolve, this, 1), ctx($reject, this, 1));
	    } catch (err) {
	      $reject.call(this, err);
	    }
	  };
	  // eslint-disable-next-line no-unused-vars
	  Internal = function Promise(executor) {
	    this._c = [];             // <- awaiting reactions
	    this._a = undefined;      // <- checked in isUnhandled reactions
	    this._s = 0;              // <- state
	    this._d = false;          // <- done
	    this._v = undefined;      // <- value
	    this._h = 0;              // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
	    this._n = false;          // <- notify
	  };
	  Internal.prototype = __webpack_require__(72)($Promise.prototype, {
	    // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
	    then: function then(onFulfilled, onRejected) {
	      var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
	      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
	      reaction.fail = typeof onRejected == 'function' && onRejected;
	      reaction.domain = isNode ? process.domain : undefined;
	      this._c.push(reaction);
	      if (this._a) this._a.push(reaction);
	      if (this._s) notify(this, false);
	      return reaction.promise;
	    },
	    // 25.4.5.1 Promise.prototype.catch(onRejected)
	    'catch': function (onRejected) {
	      return this.then(undefined, onRejected);
	    }
	  });
	  OwnPromiseCapability = function () {
	    var promise = new Internal();
	    this.promise = promise;
	    this.resolve = ctx($resolve, promise, 1);
	    this.reject = ctx($reject, promise, 1);
	  };
	  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {
	    return C === $Promise || C === Wrapper
	      ? new OwnPromiseCapability(C)
	      : newGenericPromiseCapability(C);
	  };
	}

	$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });
	__webpack_require__(49)($Promise, PROMISE);
	__webpack_require__(73)(PROMISE);
	Wrapper = __webpack_require__(17)[PROMISE];

	// statics
	$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
	  // 25.4.4.5 Promise.reject(r)
	  reject: function reject(r) {
	    var capability = newPromiseCapability(this);
	    var $$reject = capability.reject;
	    $$reject(r);
	    return capability.promise;
	  }
	});
	$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
	  // 25.4.4.6 Promise.resolve(x)
	  resolve: function resolve(x) {
	    return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);
	  }
	});
	$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(74)(function (iter) {
	  $Promise.all(iter)['catch'](empty);
	})), PROMISE, {
	  // 25.4.4.1 Promise.all(iterable)
	  all: function all(iterable) {
	    var C = this;
	    var capability = newPromiseCapability(C);
	    var resolve = capability.resolve;
	    var reject = capability.reject;
	    var result = perform(function () {
	      var values = [];
	      var index = 0;
	      var remaining = 1;
	      forOf(iterable, false, function (promise) {
	        var $index = index++;
	        var alreadyCalled = false;
	        values.push(undefined);
	        remaining++;
	        C.resolve(promise).then(function (value) {
	          if (alreadyCalled) return;
	          alreadyCalled = true;
	          values[$index] = value;
	          --remaining || resolve(values);
	        }, reject);
	      });
	      --remaining || resolve(values);
	    });
	    if (result.e) reject(result.v);
	    return capability.promise;
	  },
	  // 25.4.4.4 Promise.race(iterable)
	  race: function race(iterable) {
	    var C = this;
	    var capability = newPromiseCapability(C);
	    var reject = capability.reject;
	    var result = perform(function () {
	      forOf(iterable, false, function (promise) {
	        C.resolve(promise).then(capability.resolve, reject);
	      });
	    });
	    if (result.e) reject(result.v);
	    return capability.promise;
	  }
	});


/***/ }),
/* 58 */
/***/ (function(module, exports, __webpack_require__) {

	// getting tag from 19.1.3.6 Object.prototype.toString()
	var cof = __webpack_require__(40);
	var TAG = __webpack_require__(50)('toStringTag');
	// ES3 wrong here
	var ARG = cof(function () { return arguments; }()) == 'Arguments';

	// fallback for IE11 Script Access Denied error
	var tryGet = function (it, key) {
	  try {
	    return it[key];
	  } catch (e) { /* empty */ }
	};

	module.exports = function (it) {
	  var O, T, B;
	  return it === undefined ? 'Undefined' : it === null ? 'Null'
	    // @@toStringTag case
	    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
	    // builtinTag case
	    : ARG ? cof(O)
	    // ES3 arguments fallback
	    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
	};


/***/ }),
/* 59 */
/***/ (function(module, exports) {

	module.exports = function (it, Constructor, name, forbiddenField) {
	  if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
	    throw TypeError(name + ': incorrect invocation!');
	  } return it;
	};


/***/ }),
/* 60 */
/***/ (function(module, exports, __webpack_require__) {

	var ctx = __webpack_require__(18);
	var call = __webpack_require__(61);
	var isArrayIter = __webpack_require__(62);
	var anObject = __webpack_require__(22);
	var toLength = __webpack_require__(42);
	var getIterFn = __webpack_require__(63);
	var BREAK = {};
	var RETURN = {};
	var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
	  var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);
	  var f = ctx(fn, that, entries ? 2 : 1);
	  var index = 0;
	  var length, step, iterator, result;
	  if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
	  // fast case for arrays with default iterator
	  if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
	    result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
	    if (result === BREAK || result === RETURN) return result;
	  } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
	    result = call(iterator, f, step.value, entries);
	    if (result === BREAK || result === RETURN) return result;
	  }
	};
	exports.BREAK = BREAK;
	exports.RETURN = RETURN;


/***/ }),
/* 61 */
/***/ (function(module, exports, __webpack_require__) {

	// call something on iterator step with safe closing on error
	var anObject = __webpack_require__(22);
	module.exports = function (iterator, fn, value, entries) {
	  try {
	    return entries ? fn(anObject(value)[0], value[1]) : fn(value);
	  // 7.4.6 IteratorClose(iterator, completion)
	  } catch (e) {
	    var ret = iterator['return'];
	    if (ret !== undefined) anObject(ret.call(iterator));
	    throw e;
	  }
	};


/***/ }),
/* 62 */
/***/ (function(module, exports, __webpack_require__) {

	// check on default Array iterator
	var Iterators = __webpack_require__(32);
	var ITERATOR = __webpack_require__(50)('iterator');
	var ArrayProto = Array.prototype;

	module.exports = function (it) {
	  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
	};


/***/ }),
/* 63 */
/***/ (function(module, exports, __webpack_require__) {

	var classof = __webpack_require__(58);
	var ITERATOR = __webpack_require__(50)('iterator');
	var Iterators = __webpack_require__(32);
	module.exports = __webpack_require__(17).getIteratorMethod = function (it) {
	  if (it != undefined) return it[ITERATOR]
	    || it['@@iterator']
	    || Iterators[classof(it)];
	};


/***/ }),
/* 64 */
/***/ (function(module, exports, __webpack_require__) {

	// 7.3.20 SpeciesConstructor(O, defaultConstructor)
	var anObject = __webpack_require__(22);
	var aFunction = __webpack_require__(19);
	var SPECIES = __webpack_require__(50)('species');
	module.exports = function (O, D) {
	  var C = anObject(O).constructor;
	  var S;
	  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
	};


/***/ }),
/* 65 */
/***/ (function(module, exports, __webpack_require__) {

	var ctx = __webpack_require__(18);
	var invoke = __webpack_require__(66);
	var html = __webpack_require__(48);
	var cel = __webpack_require__(27);
	var global = __webpack_require__(16);
	var process = global.process;
	var setTask = global.setImmediate;
	var clearTask = global.clearImmediate;
	var MessageChannel = global.MessageChannel;
	var Dispatch = global.Dispatch;
	var counter = 0;
	var queue = {};
	var ONREADYSTATECHANGE = 'onreadystatechange';
	var defer, channel, port;
	var run = function () {
	  var id = +this;
	  // eslint-disable-next-line no-prototype-builtins
	  if (queue.hasOwnProperty(id)) {
	    var fn = queue[id];
	    delete queue[id];
	    fn();
	  }
	};
	var listener = function (event) {
	  run.call(event.data);
	};
	// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
	if (!setTask || !clearTask) {
	  setTask = function setImmediate(fn) {
	    var args = [];
	    var i = 1;
	    while (arguments.length > i) args.push(arguments[i++]);
	    queue[++counter] = function () {
	      // eslint-disable-next-line no-new-func
	      invoke(typeof fn == 'function' ? fn : Function(fn), args);
	    };
	    defer(counter);
	    return counter;
	  };
	  clearTask = function clearImmediate(id) {
	    delete queue[id];
	  };
	  // Node.js 0.8-
	  if (__webpack_require__(40)(process) == 'process') {
	    defer = function (id) {
	      process.nextTick(ctx(run, id, 1));
	    };
	  // Sphere (JS game engine) Dispatch API
	  } else if (Dispatch && Dispatch.now) {
	    defer = function (id) {
	      Dispatch.now(ctx(run, id, 1));
	    };
	  // Browsers with MessageChannel, includes WebWorkers
	  } else if (MessageChannel) {
	    channel = new MessageChannel();
	    port = channel.port2;
	    channel.port1.onmessage = listener;
	    defer = ctx(port.postMessage, port, 1);
	  // Browsers with postMessage, skip WebWorkers
	  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
	  } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {
	    defer = function (id) {
	      global.postMessage(id + '', '*');
	    };
	    global.addEventListener('message', listener, false);
	  // IE8-
	  } else if (ONREADYSTATECHANGE in cel('script')) {
	    defer = function (id) {
	      html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {
	        html.removeChild(this);
	        run.call(id);
	      };
	    };
	  // Rest old browsers
	  } else {
	    defer = function (id) {
	      setTimeout(ctx(run, id, 1), 0);
	    };
	  }
	}
	module.exports = {
	  set: setTask,
	  clear: clearTask
	};


/***/ }),
/* 66 */
/***/ (function(module, exports) {

	// fast apply, http://jsperf.lnkit.com/fast-apply/5
	module.exports = function (fn, args, that) {
	  var un = that === undefined;
	  switch (args.length) {
	    case 0: return un ? fn()
	                      : fn.call(that);
	    case 1: return un ? fn(args[0])
	                      : fn.call(that, args[0]);
	    case 2: return un ? fn(args[0], args[1])
	                      : fn.call(that, args[0], args[1]);
	    case 3: return un ? fn(args[0], args[1], args[2])
	                      : fn.call(that, args[0], args[1], args[2]);
	    case 4: return un ? fn(args[0], args[1], args[2], args[3])
	                      : fn.call(that, args[0], args[1], args[2], args[3]);
	  } return fn.apply(that, args);
	};


/***/ }),
/* 67 */
/***/ (function(module, exports, __webpack_require__) {

	var global = __webpack_require__(16);
	var macrotask = __webpack_require__(65).set;
	var Observer = global.MutationObserver || global.WebKitMutationObserver;
	var process = global.process;
	var Promise = global.Promise;
	var isNode = __webpack_require__(40)(process) == 'process';

	module.exports = function () {
	  var head, last, notify;

	  var flush = function () {
	    var parent, fn;
	    if (isNode && (parent = process.domain)) parent.exit();
	    while (head) {
	      fn = head.fn;
	      head = head.next;
	      try {
	        fn();
	      } catch (e) {
	        if (head) notify();
	        else last = undefined;
	        throw e;
	      }
	    } last = undefined;
	    if (parent) parent.enter();
	  };

	  // Node.js
	  if (isNode) {
	    notify = function () {
	      process.nextTick(flush);
	    };
	  // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339
	  } else if (Observer && !(global.navigator && global.navigator.standalone)) {
	    var toggle = true;
	    var node = document.createTextNode('');
	    new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new
	    notify = function () {
	      node.data = toggle = !toggle;
	    };
	  // environments with maybe non-completely correct, but existent Promise
	  } else if (Promise && Promise.resolve) {
	    // Promise.resolve without an argument throws an error in LG WebOS 2
	    var promise = Promise.resolve(undefined);
	    notify = function () {
	      promise.then(flush);
	    };
	  // for other environments - macrotask based on:
	  // - setImmediate
	  // - MessageChannel
	  // - window.postMessag
	  // - onreadystatechange
	  // - setTimeout
	  } else {
	    notify = function () {
	      // strange IE + webpack dev server bug - use .call(global)
	      macrotask.call(global, flush);
	    };
	  }

	  return function (fn) {
	    var task = { fn: fn, next: undefined };
	    if (last) last.next = task;
	    if (!head) {
	      head = task;
	      notify();
	    } last = task;
	  };
	};


/***/ }),
/* 68 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';
	// 25.4.1.5 NewPromiseCapability(C)
	var aFunction = __webpack_require__(19);

	function PromiseCapability(C) {
	  var resolve, reject;
	  this.promise = new C(function ($$resolve, $$reject) {
	    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
	    resolve = $$resolve;
	    reject = $$reject;
	  });
	  this.resolve = aFunction(resolve);
	  this.reject = aFunction(reject);
	}

	module.exports.f = function (C) {
	  return new PromiseCapability(C);
	};


/***/ }),
/* 69 */
/***/ (function(module, exports) {

	module.exports = function (exec) {
	  try {
	    return { e: false, v: exec() };
	  } catch (e) {
	    return { e: true, v: e };
	  }
	};


/***/ }),
/* 70 */
/***/ (function(module, exports, __webpack_require__) {

	var global = __webpack_require__(16);
	var navigator = global.navigator;

	module.exports = navigator && navigator.userAgent || '';


/***/ }),
/* 71 */
/***/ (function(module, exports, __webpack_require__) {

	var anObject = __webpack_require__(22);
	var isObject = __webpack_require__(23);
	var newPromiseCapability = __webpack_require__(68);

	module.exports = function (C, x) {
	  anObject(C);
	  if (isObject(x) && x.constructor === C) return x;
	  var promiseCapability = newPromiseCapability.f(C);
	  var resolve = promiseCapability.resolve;
	  resolve(x);
	  return promiseCapability.promise;
	};


/***/ }),
/* 72 */
/***/ (function(module, exports, __webpack_require__) {

	var hide = __webpack_require__(20);
	module.exports = function (target, src, safe) {
	  for (var key in src) {
	    if (safe && target[key]) target[key] = src[key];
	    else hide(target, key, src[key]);
	  } return target;
	};


/***/ }),
/* 73 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';
	var global = __webpack_require__(16);
	var core = __webpack_require__(17);
	var dP = __webpack_require__(21);
	var DESCRIPTORS = __webpack_require__(25);
	var SPECIES = __webpack_require__(50)('species');

	module.exports = function (KEY) {
	  var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];
	  if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
	    configurable: true,
	    get: function () { return this; }
	  });
	};


/***/ }),
/* 74 */
/***/ (function(module, exports, __webpack_require__) {

	var ITERATOR = __webpack_require__(50)('iterator');
	var SAFE_CLOSING = false;

	try {
	  var riter = [7][ITERATOR]();
	  riter['return'] = function () { SAFE_CLOSING = true; };
	  // eslint-disable-next-line no-throw-literal
	  Array.from(riter, function () { throw 2; });
	} catch (e) { /* empty */ }

	module.exports = function (exec, skipClosing) {
	  if (!skipClosing && !SAFE_CLOSING) return false;
	  var safe = false;
	  try {
	    var arr = [7];
	    var iter = arr[ITERATOR]();
	    iter.next = function () { return { done: safe = true }; };
	    arr[ITERATOR] = function () { return iter; };
	    exec(arr);
	  } catch (e) { /* empty */ }
	  return safe;
	};


/***/ }),
/* 75 */
/***/ (function(module, exports, __webpack_require__) {

	// https://github.com/tc39/proposal-promise-finally
	'use strict';
	var $export = __webpack_require__(15);
	var core = __webpack_require__(17);
	var global = __webpack_require__(16);
	var speciesConstructor = __webpack_require__(64);
	var promiseResolve = __webpack_require__(71);

	$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {
	  var C = speciesConstructor(this, core.Promise || global.Promise);
	  var isFunction = typeof onFinally == 'function';
	  return this.then(
	    isFunction ? function (x) {
	      return promiseResolve(C, onFinally()).then(function () { return x; });
	    } : onFinally,
	    isFunction ? function (e) {
	      return promiseResolve(C, onFinally()).then(function () { throw e; });
	    } : onFinally
	  );
	} });


/***/ }),
/* 76 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';
	// https://github.com/tc39/proposal-promise-try
	var $export = __webpack_require__(15);
	var newPromiseCapability = __webpack_require__(68);
	var perform = __webpack_require__(69);

	$export($export.S, 'Promise', { 'try': function (callbackfn) {
	  var promiseCapability = newPromiseCapability.f(this);
	  var result = perform(callbackfn);
	  (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);
	  return promiseCapability.promise;
	} });


/***/ }),
/* 77 */
/***/ (function(module, exports, __webpack_require__) {

	module.exports = { "default": __webpack_require__(78), __esModule: true };

/***/ }),
/* 78 */
/***/ (function(module, exports, __webpack_require__) {

	__webpack_require__(9);
	__webpack_require__(79);
	module.exports = __webpack_require__(17).Array.from;


/***/ }),
/* 79 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';
	var ctx = __webpack_require__(18);
	var $export = __webpack_require__(15);
	var toObject = __webpack_require__(52);
	var call = __webpack_require__(61);
	var isArrayIter = __webpack_require__(62);
	var toLength = __webpack_require__(42);
	var createProperty = __webpack_require__(80);
	var getIterFn = __webpack_require__(63);

	$export($export.S + $export.F * !__webpack_require__(74)(function (iter) { Array.from(iter); }), 'Array', {
	  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
	  from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
	    var O = toObject(arrayLike);
	    var C = typeof this == 'function' ? this : Array;
	    var aLen = arguments.length;
	    var mapfn = aLen > 1 ? arguments[1] : undefined;
	    var mapping = mapfn !== undefined;
	    var index = 0;
	    var iterFn = getIterFn(O);
	    var length, result, step, iterator;
	    if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
	    // if object isn't iterable or it's array with default iterator - use simple case
	    if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {
	      for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
	        createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
	      }
	    } else {
	      length = toLength(O.length);
	      for (result = new C(length); length > index; index++) {
	        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
	      }
	    }
	    result.length = index;
	    return result;
	  }
	});


/***/ }),
/* 80 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';
	var $defineProperty = __webpack_require__(21);
	var createDesc = __webpack_require__(29);

	module.exports = function (object, index, value) {
	  if (index in object) $defineProperty.f(object, index, createDesc(0, value));
	  else object[index] = value;
	};


/***/ }),
/* 81 */
/***/ (function(module, exports, __webpack_require__) {

	
	"use strict";

	__webpack_require__(82);
	$(function () {

		var data = {
			bg: configData.bg,
			tgs: configData.tg,
			tgMoved: false,
			level: configData.level ? configData.level : {
				high: [],
				low: []
			},
			highMoved: false,
			lowMoved: false,
			desc: configData.desc,
			title: configData.title,
			sync: parent.window.h5SyncActions && parent.window.h5SyncActions.isSync,
			getQueryString: function getQueryString(key) {
				var hrefParam = this.parseURL("http://www.example.com");
				if (top.frames[0] && top.frames[0].frameElement) {
					hrefParam = this.parseURL(top.frames[0].frameElement.src);
				}
				return hrefParam.params[key];
			},
			parseURL: function parseURL(url) {
				var a = document.createElement('a');
				a.href = url;
				return {
					source: url,
					protocol: a.protocol.replace(':', ''),
					host: a.hostname,
					port: a.port,
					query: a.search,
					params: function () {
						var ret = {},
						    seg = a.search.replace(/^\?/, '').split('&'),
						    len = seg.length,
						    i = 0,
						    s;
						for (; i < len; i++) {
							if (!seg[i]) {
								continue;
							}
							s = seg[i].split('=');
							ret[s[0]] = s[1];
						}
						return ret;
					}(),
					file: (a.pathname.match(/\/([^\/?#]+)$/i) || [, ''])[1],
					hash: a.hash.replace('#', ''),
					path: a.pathname.replace(/^([^\/])/, '/$1'),
					relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [, ''])[1],
					segments: a.pathname.replace(/^\//, '').split('/')
				};
			},

			setTitle: function setTitle() {
				if (configData.desc != '') {
					$('.desc').show();
					$('.desc').html(configData.desc);
				}
				if (configData.title != '') {
					$('.title').show();
					$('.title h3').html(configData.title);
				}
			},

			setBg: function setBg() {
				if (this.bg) {
					$('.container').css('background-image', 'url(' + this.bg + ')');
				}
			},

			showTg: function showTg() {
				if (this.sync) {
					if (window.frameElement.getAttribute('user_type') == 'tea') {
						if (this.tgs && this.tgs.length > 0 && (this.tgs[0].title.length > 0 || this.tgs[0].content.length > 0)) {
							this.createTg('1');
						} else {
							this.createTg('0');
						}
					}
				} else {
					if (this.getQueryString('role') === '1') {
						if (this.tgs && this.tgs.length > 0 && (this.tgs[0].title.length > 0 || this.tgs[0].content.length > 0)) {
							var html = "<section class=\"tea\">\n\t\t\t\t\t\t\t<div id=\"tg\"></div>\n\t\t\t\t\t\t</section>";
							$('.container').append(html);
							this.createTg('3');
						}
					} else if (this.getQueryString('role') === '2') {} else {
						if (this.tgs && this.tgs.length > 0 && (this.tgs[0].title.length > 0 || this.tgs[0].content.length > 0)) {
							var _html = "<section class=\"tea\">\n\t\t\t\t\t\t\t<div id=\"tg\"></div>\n\t\t\t\t\t\t</section>";
							$('.container').append(_html);
							this.createTg('3');
						}
					}
				}
			},

			createTg: function createTg(msg) {
				var str = '';
				var tgTemp = '';
				this.tgs.forEach(function (item, index) {
					str += "\n\t\t\t\t<li>\n\t\t\t\t\t<div class=\"tg-list-tit clearfix\">\n\t\t\t\t\t<span class=\"fl tg-list-num\">" + (index + 1) + "</span>\n\t\t\t\t\t<h3 class=\"fl\">" + item.title + "</h3>\n\t\t\t\t\t</div>\n\t\t\t\t\t<p class=\"tg-list-des\">" + item.content + "</p>\n\t\t\t\t</li>\n\t\t\t\t";
				});
				tgTemp = "<img src=\"image/tg.png\" alt=\"\" class=\"tg\">\n\t\t\t<div class=\"tg-content\">\n\t\t\t\t<ul>" + str + "</ul>\n\t\t\t</div>";
				if (this.sync) {
					if (msg == '1') {
						parent.window.h5SyncActions.isCreateTg('1', tgTemp);
					} else if (msg == '0') {
						parent.window.h5SyncActions.isCreateTg('0', '');
					}
				} else {
					if (msg == '3') {
						$(tgTemp).appendTo('#tg');
					}
				}
			},
			bindEvents: function bindEvents() {
				var that = this;
				$('#tg').on('click', '.tg', function () {
					if (!that.tgMoved) {
						that.tgMoved = true;
						$('.tg-content,.tg').addClass('active').removeClass('re-active');
					} else {
						that.tgMoved = false;
						$('.tg-content,.tg').addClass('re-active').removeClass('active');
					}
				});
				$('#highTgBtn').on('click', function () {
					if (!that.highMoved) {
						that.highMoved = true;
						that.lowMoved = false;
						$('.highTg').addClass('active').removeClass('re-active').css('z-index', '1000');
						$('.lowTg').addClass('re-active').removeClass('active').css('z-index', '1001');
					} else {
						that.highMoved = false;
						$('.highTg').addClass('re-active').removeClass('active');
					}
				});
				$('#lowTgBtn').on('click', function () {
					if (!that.lowMoved) {
						that.lowMoved = true;
						that.highMoved = false;
						$('.lowTg').addClass('active').removeClass('re-active').css('z-index', '1000');
						$('.highTg').addClass('re-active').removeClass('active').css('z-index', '1001');
					} else {
						that.lowMoved = false;
						$('.lowTg').addClass('re-active').removeClass('active');
					}
				});
			},

			showLev: function showLev() {
				if (this.sync) {
					if (window.frameElement.getAttribute('user_type') == 'tea') {
						if (this.level) {
							this.createLevel('1');
						} else {
							this.createLevel('0');
						}
					}
				} else {
					if (this.getQueryString('role') === '1') {
						this.createLevel('3');
					} else if (this.getQueryString('role') === '2') {} else {
						this.createLevel('3');
					}
				}
			},

			createLevel: function createLevel(status) {
				var levelHighHtml = '';
				var levelLowHtml = '';
				this.level.high.forEach(function (item, index) {
					levelHighHtml += "\n\t\t\t\t\t<div class=\"highTitle\">\n\t\t\t\t\t\t<span class=\"highIndex\">" + (index + 1) + "</span>\n\t\t\t\t\t\t<h3>" + item.title + "</h3>\n\t\t\t\t\t</div>\n\t\t\t\t\t<p class=\"highCon\">" + item.content + "</p>\n\t\t\t\t";
				});
				this.level.low.forEach(function (item, index) {
					levelLowHtml += "\n\t\t\t\t\t<div class=\"lowTitle\">\n\t\t\t\t\t\t<span class=\"lowIndex\">" + (index + 1) + "</span>\n\t\t\t\t\t\t<h3>" + item.title + "</h3>\n\t\t\t\t\t</div>\n\t\t\t\t\t<p class=\"lowCon\">" + item.content + "</p>\n\t\t\t\t";
				});
				var levHigh = "";
				if (this.level.high.length > 0 && this.level.high[0].title != '' || this.level.high[0].content != '') {
					levHigh = "\n\t\t\t\t\t<div class=\"highTg\">\n\t\t\t\t\t\t<div class=\"highTgCon\">\n\t\t\t\t\t\t\t" + levelHighHtml + "\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span class=\"highTgBtn\" id=\"highTgBtn\">H</span>\n\t\t\t\t\t</div>\n\t\t\t\t";
				}
				var levLow = "";
				if (this.level.low.length > 0 && this.level.low[0].title != '' || this.level.low[0].content != '') {
					levLow = "\n\t\t\t\t\t<div class=\"lowTg\">\n\t\t\t\t\t\t<div class=\"lowTgCon\">\n\t\t\t\t\t\t\t" + levelLowHtml + "\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span class=\"lowTgBtn\" id=\"lowTgBtn\">L</span>\n\t\t\t\t\t</div>\n\t\t\t\t";
				}
				var levelHtml = "\n\t\t\t\t<div class=\"level\">\n\t\t\t\t\t" + levHigh + "\n\t\t\t\t\t" + levLow + "\n\t\t\t\t</div>\n\n\t\t\t";
				if (this.sync) {
					if (status == '1') {
						parent.window.h5SyncActions.isCreateLevelTg('1', levelHtml);
					} else {
						parent.window.h5SyncActions.isCreateLevelTg('0', '');
					}
				} else {
					$('.container').append(levelHtml);
				}
			},
			init: function init() {
				this.showLev();
				this.showTg();
				this.setBg();
				this.setTitle();
				this.bindEvents();
			}
		};

		data.init();
	});

/***/ }),
/* 82 */
/***/ (function(module, exports) {

	"use strict";

	window.reSort = function (arr, page) {
		var newArr = [];
		var len = arr.length;
		var Index = page % len;
		var Middle = arr[Index];
		arr[Index] = arr[0];
		arr[0] = Middle;
		if (len % 2 == 0) {
			var num = len / 2;
			for (var _i = 0; _i < arr.length; _i++) {
				if (_i < num) {
					newArr[_i] = arr[num + _i];
				} else {
					newArr[_i] = arr[--num];
				}
			}
		} else {
			var _num = (len - 1) / 2;
			for (var i = 0; i < arr.length; i++) {
				if (i <= _num) {
					newArr[i] = arr[_num + i];
				} else {
					newArr[i] = arr[--_num];
				}
			}
		}
		return newArr;
	};

	window.reRamdom = function (a) {
		var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 18;

		if (a.length < 4) {
			return a.reverse();
		}
		var newArr = [];
		var arr1 = a.splice(0, Math.floor(a.length / 2));
		if (page % 2 != 0) {
			var last = arr1.pop();
			var first = arr1.shift();
			arr1.unshift(last);
			arr1.push(first);
			a.unshift(a.pop());
		} else {
			var last = a.pop();
			var first = a.shift();
			a.unshift(last);
			a.push(first);
		}
		arr1 = arr1.reverse();
		a = a.reverse();

		for (var i = 0; i < arr1.length; i++) {
			newArr.push(arr1[i], a[i]);
		}

		if (arr1.length < a.length) {
			newArr.push(a[a.length - 1]);
		}

		return newArr;
	};

	var h5SyncActions = parent.window.h5SyncActions;
	window.initTrack = function (tplate) {
		if (parent.window.dataReport) {
			parent.window.dataReport.tracking.init({
				tplate: tplate
			});
		} else {
			Tracking.init(h5SyncActions.classConf, {
				tplate: tplate
			});
		}
	};

/***/ }),
/* 83 */
/***/ (function(module, exports, __webpack_require__) {

	"use strict";

	var _regenerator = __webpack_require__(2);

	var _regenerator2 = _interopRequireDefault(_regenerator);

	var _asyncToGenerator2 = __webpack_require__(5);

	var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	$(function () {
	  var lottieAnimations = {
	    init: function () {
	      var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(animations, json, el) {
	        var loop = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
	        var autoplay = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
	        var res;
	        return _regenerator2.default.wrap(function _callee$(_context) {
	          while (1) {
	            switch (_context.prev = _context.next) {
	              case 0:
	                console.log("animations", animations);
	                _context.prev = 1;
	                _context.next = 4;
	                return $.get(json);

	              case 4:
	                res = _context.sent;

	                if (!res.w) {
	                  _context.next = 11;
	                  break;
	                }

	                console.log("宽高", res.w, res.h);animations = lottie.loadAnimation({
	                  container: document.querySelector(el),
	                  renderer: "svg",
	                  loop: loop,
	                  autoplay: autoplay,
	                  path: json
	                });
	                return _context.abrupt("return", animations);

	              case 11:
	                throw new Error("Failed to load animation");

	              case 12:
	                _context.next = 18;
	                break;

	              case 14:
	                _context.prev = 14;
	                _context.t0 = _context["catch"](1);

	                console.error(_context.t0);throw _context.t0;

	              case 18:
	              case "end":
	                return _context.stop();
	            }
	          }
	        }, _callee, this, [[1, 14]]);
	      }));

	      function init(_x, _x2, _x3) {
	        return _ref.apply(this, arguments);
	      }

	      return init;
	    }(),

	    play: function play(animations) {
	      console.log("播放动画", animations);

	      animations.play();
	    },

	    destroy: function destroy(animations) {
	      animations.destroy();
	    },

	    stop: function stop(animations) {
	      animations.stop();
	    }
	  };
	  window.lottieAnimations = lottieAnimations;
	});

/***/ }),
/* 84 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	var _utils = __webpack_require__(85);

	$(function () {
	    var contentType = 'image';
	    var text = configData.teleprompter;
	    var imageUrl = configData.tImg;
	    (0, _utils.executeForTeacher)(function () {
	        createTeleprompter(contentType, text, imageUrl, configData.tImgX, configData.tImgY);
	    });

	    function createTeleprompter(contentType, text, imageUrl) {
	        var x = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1340;
	        var y = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 15;

	        var width = 1920,
	            height = 1080,
	            imgWidth = 550,
	            imgHeightMax = 400;
	        if (contentType === 'text' && text) {
	            var teleprompter = $('<div></div>', {
	                id: 'teleprompter',
	                css: {
	                    position: 'absolute',
	                    left: x / height * 100 + '%',
	                    top: y / width * 100 + '%',
	                    width: imgWidth / width * 100 + '%',
	                    maxHeight: imgHeightMax / height * 100 + '%',
	                    backgroundColor: 'rgba(255, 255, 255, 0.6)',
	                    borderRadius: '0.2rem',
	                    padding: '0.2rem',
	                    overflowY: 'auto',
	                    boxShadow: '0 2px 10px rgba(0, 0, 0, 0.3)',
	                    zIndex: 9999
	                }
	            });

	            var textDiv = $('<div></div>', {
	                id: 'text',
	                text: text,
	                css: {
	                    fontSize: '0.24rem',
	                    lineHeight: '1.5'
	                }
	            });
	            teleprompter.append(textDiv);

	            $('#container').append(teleprompter);
	            enableDragging(teleprompter);
	        } else if (contentType === 'image' && imageUrl) {
	            var img = $('<img>', {
	                src: imageUrl,
	                css: {
	                    position: 'absolute',
	                    left: x / width * 100 + '%',
	                    top: y / height * 100 + '%',
	                    width: imgWidth / width * 100 + '%',
	                    maxHeight: imgHeightMax / height * 100 + '%',
	                    objectFit: 'cover',
	                    zIndex: 9999 },
	                alt: '提词器图片' });
	            $('#container').append(img);
	            enableDragging(img);
	        }
	    }

	    function addDoubleClickHide(element) {
	        element.on('dblclick touchend', function (e) {
	            if (e.type === 'touchend') {
	                var touch = e.originalEvent.touches[0];
	                var now = Date.now();
	                if (now - (this.lastTouchTime || 0) < 300) {
	                    $(this).hide();
	                }
	                this.lastTouchTime = now;
	            } else {
	                $(this).hide();
	            }
	        });
	    }

	    function throttle(func, delay) {
	        var lastTime = 0;
	        return function () {
	            var now = Date.now();
	            if (now - lastTime >= delay) {
	                lastTime = now;

	                for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
	                    args[_key] = arguments[_key];
	                }

	                return func.apply(this, args);
	            }
	        };
	    }

	    function enableDragging(element) {
	        var isDragging = false;
	        var offsetX = void 0,
	            offsetY = void 0;

	        element.on('mousedown', function (e) {
	            isDragging = true;
	            offsetX = e.clientX - $(this).offset().left + $('#container').offset().left;
	            offsetY = e.clientY - $(this).offset().top + $('#container').offset().top;
	            $(this).css('cursor', 'move');
	            e.preventDefault();
	            e.stopPropagation();
	        });

	        $(document).on('mousemove', throttle(function (e) {
	            if (isDragging) {
	                element.css({
	                    left: e.clientX - offsetX,
	                    top: e.clientY - offsetY
	                });
	            }
	        }, 16));

	        $(document).on('mouseup', function () {
	            isDragging = false;
	            element.css('cursor', '');
	        });
	    }
	});

/***/ }),
/* 85 */
/***/ (function(module, exports) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	function getUrlParameter(paramName) {
	  var url = window.location.href;
	  var urlObj = new URL(url);
	  var params = new URLSearchParams(urlObj.search);
	  return params.get(paramName);
	}

	function executeForTeacher(callback) {
	  var isSync = parent.window.h5SyncActions && parent.window.h5SyncActions.isSync;
	  var userType = window.frameElement ? window.frameElement.getAttribute('user_type') : '';
	  var role = getUrlParameter('role');

	  if (isSync) {
	    if (userType === 'tea') {
	      if (typeof callback === 'function') {
	        callback();
	      }
	    } else {
	      console.warn('当前用户不是教师，无法执行操作');
	    }
	  } else {
	    if (role === '1') {
	      if (typeof callback === 'function') {
	        callback();
	      }
	    } else {
	      console.warn('当前角色不是教师，无法执行操作');
	    }
	  }
	}

	function executeForStudent(callback) {
	  var isSync = parent.window.h5SyncActions && parent.window.h5SyncActions.isSync;
	  var userType = window.frameElement ? window.frameElement.getAttribute('user_type') : '';
	  var role = getUrlParameter('role');

	  if (isSync) {
	    if (userType === 'stu') {
	      if (typeof callback === 'function') {
	        callback();
	      }
	    } else {
	      console.warn('当前用户不是学生，无法执行操作');
	    }
	  } else {
	    if (role === '2') {
	      if (typeof callback === 'function') {
	        callback();
	      }
	    } else {
	      console.warn('当前角色不是学生，无法执行操作');
	    }
	  }
	}

	exports.getUrlParameter = getUrlParameter;
	exports.executeForTeacher = executeForTeacher;
	exports.executeForStudent = executeForStudent;

/***/ }),
/* 86 */
/***/ (function(module, exports, __webpack_require__) {

	
	"use strict";

	var _regenerator = __webpack_require__(2);

	var _regenerator2 = _interopRequireDefault(_regenerator);

	var _asyncToGenerator2 = __webpack_require__(5);

	var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	var isSync = parent.window.h5SyncActions && parent.window.h5SyncActions.isSync;
	__webpack_require__(82);
	$(function () {
	  var data = {
	    dialogs: configData.source.dialogs,
	    dialogIndex: 0,
	    roleAnimations: 0,
	    prevOrNextBtnClicked: false,
	    initDialogEl: function initDialogEl() {
	      var dialogEl = "<audio src=\"\" class=\"dialog-audio\" data-syncaudio=\"dialog-audio\"></audio>\n        <div class=\"dialog\">\n          <div class=\"dialog-role\"></div>\n          <div class=\"dialog-text\"></div>\n        </div>";
	      $(".container").append(dialogEl);
	    },

	    initDialogRole: function initDialogRole() {
	      var _this = this;

	      if (this.roleAnimations) {
	        console.log('已经创建过动画了');
	        lottieAnimations.play(this.roleAnimations);
	        return;
	      }
	      this.getImageSizeFromJSON(this.dialogs.roleImg, function () {
	        var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(width, height) {
	          return _regenerator2.default.wrap(function _callee$(_context) {
	            while (1) {
	              switch (_context.prev = _context.next) {
	                case 0:
	                  _context.next = 2;
	                  return lottieAnimations.init(_this.roleAnimations, _this.dialogs.roleImg, ".dialog-role");

	                case 2:
	                  _this.roleAnimations = _context.sent;

	                  $(".dialog-role").css({
	                    left: _this.dialogs.roleLocationX / 100 + "rem",
	                    top: _this.dialogs.roleLocationY / 100 + "rem",
	                    width: width / 100 + "rem",
	                    height: height / 100 + "rem",
	                    transform: "scale(" + _this.dialogs.scale / 100 + ")"
	                  });
	                  lottieAnimations.play(_this.roleAnimations);

	                case 5:
	                case "end":
	                  return _context.stop();
	              }
	            }
	          }, _callee, _this);
	        }));

	        return function (_x, _x2) {
	          return _ref.apply(this, arguments);
	        };
	      }());
	    },

	    initDialogAudio: function initDialogAudio() {
	      var _this2 = this;

	      var dialogMessage = this.dialogs.messages || [];
	      var autoNext = this.dialogs.autoNext;
	      var message = this.dialogs.messages[this.dialogIndex];
	      var dialogText = $(".dialog-text");
	      var dialogAudio = $(".dialog-audio");
	      this.getImageSize(message.text, function (width, height) {
	        dialogText.html("<img src=\"" + message.text + "\"/>\n          " + (dialogMessage.length > 1 && autoNext === '1' ? "<span id='dialog-text-prev-btn' data-syncactions='dialogPrevBtn' class='dialog-text-prev-btn " + (_this2.dialogIndex === 0 ? 'dialog-text-prev-btn-disabled' : '') + "'></span><span id='dialog-text-next-btn' data-syncactions='dialogNextBtn' class='dialog-text-next-btn  " + (_this2.dialogIndex === dialogMessage.length - 1 ? 'dialog-text-next-btn-disabled' : '') + "'></span>" : '') + "\n          ");
	        dialogText.css({
	          left: _this2.dialogs.messageLocationX / 100 + "rem",
	          top: _this2.dialogs.messageLocationY / 100 + "rem",
	          width: width / 100 + "rem",
	          height: height / 100 + "rem"
	        });
	        dialogAudio.attr("src", message.audio);
	        if ($(window.frameElement).attr("id") === "h5_course_self_frame" || !isSync) {
	          _this2.initDialogRole();
	          SDK.playRudio({
	            index: dialogAudio.get("0"),
	            syncName: dialogAudio.attr("data-syncaudio")
	          });
	        }
	        _this2.onDialogAudioEnd(dialogText, dialogAudio);

	        $("#dialog-text-prev-btn").on("click touchstart", function (e) {
	          console.log("prev click");
	          data.prevOrNextBtnClicked = true;
	          if (e.type == "touchstart") {
	            e.preventDefault();
	          }
	          e.stopPropagation();
	          if (!isSync) {
	            $(this).trigger("syncDialogPrevBtnClick");
	            return;
	          }

	          SDK.bindSyncEvt({
	            index: $(e.currentTarget).data('syncactions'),
	            eventType: 'click',
	            method: 'event',

	            syncName: 'syncDialogPrevBtnClick',
	            recoveryMode: '1'
	          });
	        });

	        $("#dialog-text-prev-btn").on("syncDialogPrevBtnClick", function (e) {
	          console.log("syncDialogPrevBtnClick执行");
	          e.stopPropagation();
	          if (data.dialogIndex > 0) {
	            data.dialogIndex--;
	            data.initDialogAudio();
	          }
	          SDK.setEventLock();
	        });

	        $("#dialog-text-next-btn").on("click touchstart", function (e) {
	          console.log("next click");
	          console.log(data.dialogIndex);
	          data.prevOrNextBtnClicked = true;
	          if (e.type == "touchstart") {
	            e.preventDefault();
	          }
	          e.stopPropagation();

	          if (!isSync) {
	            $(this).trigger("syncDialogNextBtnClick");
	            return;
	          }
	          SDK.bindSyncEvt({
	            index: $(e.currentTarget).data('syncactions'),
	            eventType: 'click',
	            method: 'event',

	            syncName: 'syncDialogNextBtnClick',
	            recoveryMode: '1'
	          });
	        });

	        $("#dialog-text-next-btn").on("syncDialogNextBtnClick", function (e) {
	          console.log("syncDialogNextBtnClick执行");
	          e.stopPropagation();
	          if (data.dialogIndex < dialogMessage.length - 1) {
	            data.dialogIndex++;
	            data.initDialogAudio();
	          }
	          SDK.setEventLock();
	        });
	      });
	    },
	    getImageSize: function getImageSize(url, callback) {
	      var img = new Image();
	      img.src = url;

	      img.onload = function () {
	        var width = img.width;
	        var height = img.height;
	        callback(width, height);
	      };

	      img.onerror = function () {
	        console.error("图片加载失败");
	      };
	    },
	    getImageSizeFromJSON: function getImageSizeFromJSON(jsonUrl, callback) {
	      $.getJSON(jsonUrl, function (data) {
	        var width = data.width || data.w;
	        var height = data.height || data.h;
	        callback(width, height);
	      }).fail(function () {
	        console.error("JSON 文件加载失败");
	      });
	    },

	    onDialogAudioEnd: function onDialogAudioEnd(dialogText, dialogAudio) {
	      var _this3 = this;

	      var _dialogs = this.dialogs,
	          messages = _dialogs.messages,
	          autoNext = _dialogs.autoNext,
	          hiddenStatus = _dialogs.hiddenStatus;

	      dialogAudio.off("ended").on("ended", function () {
	        lottieAnimations.stop(_this3.roleAnimations);
	        if (_this3.dialogIndex < messages.length - 1) {
	          if (autoNext === "2" && !_this3.prevOrNextBtnClicked) {
	            _this3.dialogIndex++;
	            _this3.initDialogAudio();
	          }
	        } else {
	          switch (hiddenStatus) {
	            case "1":
	              break;
	            case "2":
	              dialogText.hide();
	              break;
	            case "3":
	              $('.dialog-role') && $('.dialog-role').hide();
	              dialogText.hide();
	              break;
	            default:
	              break;
	          }
	        }
	      });
	    },

	    init: function init() {
	      if (!this.dialogs.roleImg) return;
	      this.initDialogEl();

	      this.initDialogAudio();
	    }
	  };
	  data.init();
	});

	function preloadImg(list) {
	  var imgs = [];
	  var def = $.Deferred(),
	      len = list.length;
	  $(list).each(function (i, e) {
	    var img = new Image();
	    img.src = e.image;
	    if (img.complete) {
	      imgs[i] = img;
	      len--;
	      if (len == 0) {
	        def.resolve(imgs);
	      }
	    } else {
	      img.onload = function (j) {
	        return function () {
	          imgs[j] = img;
	          len--;
	          if (len == 0) {
	            def.resolve(imgs);
	          }
	        };
	      }(i);
	      img.onerror = function () {
	        len--;
	      };
	    }
	  });
	  return def.promise();
	}

/***/ }),
/* 87 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	    value: true
	});
	exports.resultWin = resultWin;
	exports.resultHide = resultHide;

	__webpack_require__(88);

	function resultWin(msg) {
	    var WinL = msg.WinIsLoop == true ? true : false;
	    if (WinL) {
	        $('.resultWinMp3').attr('loop', 'loop');
	    };

	    if (SDK && SDK.playRudio) {
	        SDK.playRudio({
	            index: $('.resultWinMp3').get(0),
	            syncName: $('.resultWinMp3').attr("data-syncaudio")
	        });
	    }
	    $('.resultMask').css({
	        'z-index': msg.Mask_Z_Index ? msg.Mask_Z_Index : '10'
	    });
	    $('.resultMask').show().find('.resultWin').show();
	    var aniTNum = 1;
	    var aniTNum2 = 1;

	    $('.resultAPos_' + aniTNum).css({
	        animation: 'resultAPosAn 4s infinite linear'
	    });
	    var aniT = null;
	    clearInterval(aniT);
	    aniT = setInterval(function () {
	        var mad = Math.random() * 3 + 2;
	        if (aniTNum < 19) {
	            aniTNum = aniTNum + 2;
	            if ($('.resultAPos_' + aniTNum).hasClass('rotate')) {
	                $('.resultAPos_' + aniTNum).css({
	                    animation: 'resultAPosAn ' + mad + 's infinite linear,rotateAni 1s linear infinite'
	                });
	            } else {
	                $('.resultAPos_' + aniTNum).css({
	                    animation: 'resultAPosAn ' + mad + 's infinite ease-in'
	                });
	            }
	            aniTNum2 = aniTNum + 1;
	            if ($('.resultAPos_' + aniTNum2).hasClass('rotate')) {
	                $('.resultAPos_' + aniTNum2).css({
	                    animation: 'resultAPosAn ' + mad + 's infinite linear,rotateAni 1s linear infinite'
	                });
	            } else {
	                $('.resultAPos_' + aniTNum2).css({
	                    animation: 'resultAPosAn ' + mad + 's infinite ease-out'
	                });
	            }
	        } else {
	            clearInterval(aniT);
	        }
	    }, 300);
	};
	function resultHide() {
	    $('.resultAPos').css('animation', '');
	    if (SDK && SDK.pauseRudio) {
	        SDK.pauseRudio({
	            index: $('.resultWinMp3').get('0'),
	            syncName: $('.resultWinMp3').attr("data-syncaudio")
	        });
	    }
	    $('.resultMask').hide();
	    $('.resultLose').hide();
	    $('.resultWin').hide();
	}

/***/ }),
/* 88 */
/***/ (function(module, exports) {

	'use strict';

	(function ($) {
	    $.fn.snow = function (options) {
	        var documentHeight = $(this).height();
	        var documentWidth = $(this).width();
	        var that = $(this);
	        var defaults = {
	            base: 1,
	            unitType: 'px',
	            minSize: 10,
	            maxSize: 20,
	            newOn: 1000,
	            flakeColor: "#AFDAEF",
	            showType: 'font',
	            showHtml: '&#10052;',
	            zIndex: '9999',
	            imgSize: ['', ''] };
	        var options = $.extend({}, defaults, options);
	        var unitType = options.unitType;
	        var base = options.base;
	        var $flake = '';
	        if (options.showType == 'font') {
	            $flake = $('<div id="snowbox" />').css({
	                'position': 'absolute',
	                'z-index': options.zIndex,
	                'top': -50 / base + unitType
	            }).html(options.showHtml);
	        } else if (options.showType == 'img') {
	            $flake = $('<div id="snowbox" />').css({
	                'position': 'absolute',
	                'z-index': options.zIndex,
	                'top': -50 / base + unitType
	            }).html('<img src="' + options.showHtml + '"/>');
	        }
	        $('.snowbox img').css({
	            "width": options.imgSize[0] + unitType,
	            "height": options.imgSize[1] + unitType
	        });
	        var interval = setInterval(function () {
	            var startPositionLeft = Math.random() * documentWidth / base,
	                startOpacity = 0.5 + Math.random(),
	                sizeFlake = (options.minSize + Math.random() * options.maxSize) / base,
	                endPositionTop = documentHeight / base,
	                endPositionLeft = startPositionLeft - 500 / base + Math.random() * (500 / base),
	                durationFall = documentHeight * 10 + Math.random() * 5000;
	            var cloneSnow = $flake.clone();
	            cloneSnow.find('img').css({
	                'width': (options.minSize + Math.random() * options.maxSize) / base + unitType,
	                'height': '100%'
	            });
	            cloneSnow.appendTo(that).css({
	                left: startPositionLeft + unitType,
	                opacity: startOpacity,
	                'font-size': sizeFlake + unitType,
	                color: options.flakeColor
	            }).animate({
	                top: endPositionTop + unitType,
	                left: endPositionLeft + unitType,
	                opacity: 0.2
	            }, durationFall, 'linear', function () {
	                $(this).remove();
	            });
	        }, options.newOn);
	    };
	})(jQuery);

/***/ })
/******/ ]);