diff --git a/src/main/java/im/zhaojun/zfile/core/FileListCacheAop.java b/src/main/java/im/zhaojun/zfile/aspect/FileListCacheAop.java similarity index 54% rename from src/main/java/im/zhaojun/zfile/core/FileListCacheAop.java rename to src/main/java/im/zhaojun/zfile/aspect/FileListCacheAop.java index ce0c338..edff900 100644 --- a/src/main/java/im/zhaojun/zfile/core/FileListCacheAop.java +++ b/src/main/java/im/zhaojun/zfile/aspect/FileListCacheAop.java @@ -1,13 +1,14 @@ -package im.zhaojun.zfile.core; +package im.zhaojun.zfile.aspect; import im.zhaojun.zfile.cache.ZFileCache; import im.zhaojun.zfile.model.dto.FileItemDTO; -import im.zhaojun.zfile.service.SystemConfigService; +import im.zhaojun.zfile.model.entity.DriveConfig; +import im.zhaojun.zfile.service.DriveConfigService; +import im.zhaojun.zfile.service.base.AbstractBaseFileService; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.List; @@ -24,28 +25,41 @@ public class FileListCacheAop { private ZFileCache zFileCache; @Resource - private SystemConfigService systemConfigService; + private DriveConfigService driveConfigService; + + /** + * 缓存切面, 如果此驱动器开启了缓存, 则从缓存中取数据, 没有开启, 则直接调用方法. + */ @Around(value = "execution(public * im.zhaojun.zfile.service.base.AbstractBaseFileService.fileList(..))") public Object around(ProceedingJoinPoint point) throws Throwable { List result; + // 获取请求路径 Object[] args = point.getArgs(); String path = String.valueOf(args[0]); - boolean enableCache = systemConfigService.getEnableCache(); + // 获取当前驱动器 + AbstractBaseFileService fileService = ((AbstractBaseFileService) point.getTarget()); + Integer driveId = fileService.driveId; + + // 判断驱动器是否开启了缓存 + DriveConfig driveConfig = driveConfigService.findById(driveId); + boolean enableCache = driveConfig.getEnableCache(); if (enableCache) { - List cacheFileList = zFileCache.get(path); - if (CollectionUtils.isEmpty(cacheFileList)) { + List cacheFileList = zFileCache.get(driveId, path); + if (cacheFileList == null) { result = (List) point.proceed(); - zFileCache.put(path, result); + zFileCache.put(driveId, path, result); } else { result = cacheFileList; } } else { result = (List) point.proceed(); } + return result; } + } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/cache/ZFileCache.java b/src/main/java/im/zhaojun/zfile/cache/ZFileCache.java index 2574b34..0fe2819 100644 --- a/src/main/java/im/zhaojun/zfile/cache/ZFileCache.java +++ b/src/main/java/im/zhaojun/zfile/cache/ZFileCache.java @@ -1,85 +1,136 @@ package im.zhaojun.zfile.cache; +import cn.hutool.cache.CacheUtil; +import cn.hutool.cache.impl.CacheObj; +import cn.hutool.cache.impl.TimedCache; import cn.hutool.core.util.StrUtil; import im.zhaojun.zfile.model.constant.ZFileConstant; import im.zhaojun.zfile.model.dto.FileItemDTO; import im.zhaojun.zfile.model.dto.SystemConfigDTO; +import im.zhaojun.zfile.model.entity.DriveConfig; +import im.zhaojun.zfile.repository.DriverConfigRepository; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; -import java.util.*; +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Objects; +import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; /** - * @author zhaojun * ZFile 缓存类 + * + * @author zhaojun */ @Component public class ZFileCache { + @Value("${zfile.cache.timeout}") + private long timeout; + + /** * 缓存 map 对象. + * + * ConcurrentMap>> + * ConcurrentMap> + * + * driveId: 驱动器 ID * key: 文件夹路径 * value: 文件夹中内容 */ - private ConcurrentMap> cache = new ConcurrentHashMap<>(); + private ConcurrentMap>> drivesCache = new ConcurrentHashMap<>(); /** * 系统设置缓存 */ private SystemConfigDTO systemConfigCache; - /** - * 缓存最后自动刷新时间 - */ - public Date lastCacheAutoRefreshDate; + @Resource + private DriverConfigRepository driverConfigRepository; + /** * 写入缓存 - * @param key 文件夹路径 - * @param value 文件夹中内容 + * + * @param driveId + * 驱动器 ID + * + * @param key + * 文件夹路径 + * + * @param value + * 文件夹中列表 */ - public synchronized void put(String key, List value) { - cache.put(key, value); + public synchronized void put(Integer driveId, String key, List value) { + getCacheByDriveId(driveId).put(key, value); } - /** - * 根据文件夹路径取的环境 - * @param key 文件夹路径 - * @return 文件夹中内容 - */ - public List get(String key) { - return cache.get(key); - } /** - * 清空缓存. + * 获取指定驱动器, 某个文件夹的名称 + * + * @param driveId + * 驱动器 ID + * + * @param key + * 文件夹路径 + * + * @return 驱动器中文件夹的内容 */ - public void clear() { - cache.clear(); + public List get(Integer driveId, String key) { + return getCacheByDriveId(driveId).get(key, false); } + /** - * 获取已缓存文件夹数量 + * 清空指定驱动器的缓存. + * + * @param driveId + * 驱动器 ID + */ + public void clear(Integer driveId) { + getCacheByDriveId(driveId).clear(); + } + + + /** + * 获取指定驱动器中已缓存文件夹数量 + * + * @param driveId + * 驱动器 ID + * * @return 已缓存文件夹数量 */ - public int cacheCount() { - return cache.size(); + public int cacheCount(Integer driveId) { + return getCacheByDriveId(driveId).size(); } + /** - * 搜索缓存中内容 - * @param key 搜索键, 可匹配文件夹名称和文件名称. - * @param ignoreCase 是否忽略大小写, true 为忽略, false 为不忽略. - * @param searchContainEncryptedFile 搜索是否包含加密文件. true 为不包含, false 为包含, 用于控制当文件夹被密码保护时, 是否出现在搜索结果中. - * @return 搜索结果, 包含文件夹和文件. + * 指定驱动器, 根据文件及文件名查找相关的文件 + * + * @param driveId + * 驱动器 ID + * + * @param key + * 搜索键, 可匹配文件夹名称和文件名称. + * + * @return 搜索结果, 包含文件夹和文件. */ - public List find(String key, boolean ignoreCase, boolean searchContainEncryptedFile) { + public List find(Integer driveId, String key) { List result = new ArrayList<>(); - Collection> values = cache.values(); - for (List fileItemList : values) { + DriveConfig driveConfig = driverConfigRepository.getOne(driveId); + boolean searchContainEncryptedFile = driveConfig.getSearchContainEncryptedFile(); + boolean ignoreCase = driveConfig.getSearchIgnoreCase(); + for (List fileItemList : getCacheByDriveId(driveId)) { // 过滤加密文件 if (!searchContainEncryptedFile && isEncryptedFolder(fileItemList)) { continue; @@ -103,38 +154,58 @@ public class ZFileCache { return result; } - /** - * 获取所有缓存 key (文件夹名称) - * @return 所有缓存 key - */ - public Set keySet() { - return cache.keySet(); - } /** - * 从缓存中删除一个条目 - * @param key 文件夹名称 + * 获取所有缓存 key (文件夹名称) + * + * @return 所有缓存 key */ - public void remove(String key) { - cache.remove(key); + public Set keySet(Integer driveId) { + Iterator>> cacheObjIterator = getCacheByDriveId(driveId).cacheObjIterator(); + Set keys = new HashSet<>(); + while (cacheObjIterator.hasNext()) { + keys.add(cacheObjIterator.next().getKey()); + } + return keys; } + + /** + * 从缓存中删除指定存储器的某个路径的缓存 + * + * @param driveId + * 驱动器 ID + * + * @param key + * 文件夹路径 + */ + public void remove(Integer driveId, String key) { + getCacheByDriveId(driveId).remove(key); + } + + + /** * 更新缓存中的系统设置 - * @param systemConfigCache 系统设置 + * + * @param systemConfigCache + * 系统设置 */ public void updateConfig(SystemConfigDTO systemConfigCache) { this.systemConfigCache = systemConfigCache; } + /** - * 从获取中获取系统设置 + * 从缓存中获取系统设置 + * * @return 系统设置 */ public SystemConfigDTO getConfig() { return this.systemConfigCache; } + /** * 清空系统设置缓存 */ @@ -142,27 +213,14 @@ public class ZFileCache { this.systemConfigCache = null; } - /** - * 获取缓存最后刷新时间 - * @return 缓存最后刷新时间 - */ - public Date getLastCacheAutoRefreshDate() { - return lastCacheAutoRefreshDate; - } /** - * 更新缓存最后刷新时间 - * @param lastCacheAutoRefreshDate 缓存最后刷新时间 - */ - public void setLastCacheAutoRefreshDate(Date lastCacheAutoRefreshDate) { - this.lastCacheAutoRefreshDate = lastCacheAutoRefreshDate; - } - - - /** - * 判断是否为加密文件夹 - * @param list 文件夹中的内容 - * @return 返回此文件夹是否加密. + * 判断此文件夹是否为加密文件夹 (包含) + * + * @param list + * 文件夹中的内容 + * + * @return 返回此文件夹是否是加密的 (). */ private boolean isEncryptedFolder(List list) { // 遍历文件判断是否包含 @@ -173,4 +231,24 @@ public class ZFileCache { } return false; } -} + + + /** + * 获取指定驱动器对应的缓存 + * + * @param driveId + * 驱动器 ID + * + * @return 驱动器对应的缓存 + */ + private synchronized TimedCache> getCacheByDriveId(Integer driveId) { + TimedCache> driveCache = drivesCache.get(driveId); + if (driveCache == null) { + driveCache = CacheUtil.newTimedCache(timeout * 1000); + drivesCache.put(driveId, driveCache); + } + + return driveCache; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/config/ContentTypeTextToTextJson.java b/src/main/java/im/zhaojun/zfile/config/ContentTypeTextToTextJson.java deleted file mode 100644 index 52d0cef..0000000 --- a/src/main/java/im/zhaojun/zfile/config/ContentTypeTextToTextJson.java +++ /dev/null @@ -1,26 +0,0 @@ -package im.zhaojun.zfile.config; - -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpRequest; -import org.springframework.http.client.ClientHttpRequestExecution; -import org.springframework.http.client.ClientHttpRequestInterceptor; -import org.springframework.http.client.ClientHttpResponse; - -import java.io.IOException; -import java.util.Collections; - -/** - * @author zhaojun - */ -public class ContentTypeTextToTextJson implements ClientHttpRequestInterceptor { - - @Override - public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) - throws IOException { - ClientHttpResponse response = execution.execute(request, body); - HttpHeaders headers = response.getHeaders(); - headers.put("Content-Type", Collections.singletonList("application/text")); - return response; - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/config/GlobalScheduleTask.java b/src/main/java/im/zhaojun/zfile/config/GlobalScheduleTask.java deleted file mode 100644 index a496008..0000000 --- a/src/main/java/im/zhaojun/zfile/config/GlobalScheduleTask.java +++ /dev/null @@ -1,81 +0,0 @@ -package im.zhaojun.zfile.config; - -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.service.SystemConfigService; -import im.zhaojun.zfile.service.base.AbstractBaseFileService; -import im.zhaojun.zfile.service.impl.OneDriveChinaServiceImpl; -import im.zhaojun.zfile.service.impl.OneDriveServiceImpl; -import lombok.extern.slf4j.Slf4j; -import org.springframework.context.annotation.Configuration; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.scheduling.annotation.Scheduled; - -import javax.annotation.Resource; -import java.time.LocalDateTime; -import java.util.Objects; - -/** - * @author zhaojun - */ -@Configuration -@EnableScheduling -@Slf4j -public class GlobalScheduleTask { - - @Resource - private OneDriveServiceImpl oneDriveServiceImpl; - - @Resource - private OneDriveChinaServiceImpl oneDriveChinaServiceImpl; - - @Resource - private SystemConfigService systemConfigService; - - /** - * 项目启动 30 秒后, 每 15 分钟执行一次刷新 OneDrive Token 的定时任务. - */ - @Scheduled(fixedRate = 1000 * 60 * 10, initialDelay = 1000 * 30) - public void autoRefreshOneDriveToken() { - - try { - log.debug("尝试调用 OneDrive 自动刷新 AccessToken 定时任务"); - - AbstractBaseFileService currentFileService = systemConfigService.getCurrentFileService(); - - if (!(currentFileService instanceof OneDriveServiceImpl - || currentFileService instanceof OneDriveChinaServiceImpl)) { - log.debug("当前启用存储类型, 不是 OneDrive, 跳过自动刷新 AccessToken"); - return; - } - - if (currentFileService.getIsUnInitialized()) { - log.debug("当前启用 OneDrive 未初始化成功, 跳过自动刷新 AccessToken"); - return; - } - - StorageTypeEnum currentStorageTypeEnum = currentFileService.getStorageTypeEnum(); - - try { - refreshOneDriveToken(currentStorageTypeEnum); - } catch (Exception e) { - log.debug("刷新 " + currentStorageTypeEnum.getDescription() + " Token 失败.", e); - } - } catch (Throwable e) { - log.debug("尝试调用 OneDrive 自动刷新 AccessToken 定时任务出现未知异常", e); - } - - } - - /** - * 调用刷新 OneDrive Token - */ - public void refreshOneDriveToken(StorageTypeEnum storageType) { - if (Objects.equals(storageType, StorageTypeEnum.ONE_DRIVE_CHINA)) { - oneDriveChinaServiceImpl.refreshOneDriveToken(); - } else { - oneDriveServiceImpl.refreshOneDriveToken(); - } - log.info("刷新 {} key 时间: {}", storageType.getDescription(), LocalDateTime.now()); - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/config/OneDriveConfig.java b/src/main/java/im/zhaojun/zfile/config/OneDriveConfig.java index 9bdee73..6de1c1f 100644 --- a/src/main/java/im/zhaojun/zfile/config/OneDriveConfig.java +++ b/src/main/java/im/zhaojun/zfile/config/OneDriveConfig.java @@ -1,14 +1,13 @@ package im.zhaojun.zfile.config; -import im.zhaojun.zfile.model.entity.StorageConfig; import im.zhaojun.zfile.model.constant.StorageConfigConstant; +import im.zhaojun.zfile.model.entity.StorageConfig; import im.zhaojun.zfile.model.enums.StorageTypeEnum; import im.zhaojun.zfile.service.StorageConfigService; import im.zhaojun.zfile.service.impl.OneDriveChinaServiceImpl; import im.zhaojun.zfile.service.impl.OneDriveServiceImpl; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Lazy; import org.springframework.http.client.ClientHttpRequestInterceptor; import org.springframework.web.client.RestTemplate; @@ -25,13 +24,15 @@ public class OneDriveConfig { private StorageConfigService storageConfigService; @Resource - @Lazy private OneDriveServiceImpl oneDriveServiceImpl; @Resource - @Lazy private OneDriveChinaServiceImpl oneDriveChinaServiceImpl; + + /** + * OneDrive 请求 RestTemplate, 会在请求头中添加 Bearer: Authorization {token} 信息, 用于 API 认证. + */ @Bean public RestTemplate oneDriveRestTemplate() { RestTemplate restTemplate = new RestTemplate(); @@ -58,4 +59,4 @@ public class OneDriveConfig { return restTemplate; } -} +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/config/WebMvcConfig.java b/src/main/java/im/zhaojun/zfile/config/WebMvcConfig.java index d888c44..84de067 100644 --- a/src/main/java/im/zhaojun/zfile/config/WebMvcConfig.java +++ b/src/main/java/im/zhaojun/zfile/config/WebMvcConfig.java @@ -22,10 +22,13 @@ public class WebMvcConfig implements WebMvcConfigurer { @Bean public ServletWebServerFactory webServerFactory() { TomcatServletWebServerFactory webServerFactory = new TomcatServletWebServerFactory(); + + // 添加对 URL 中特殊符号的支持. webServerFactory.addConnectorCustomizers(connector -> { connector.setAttribute("relaxedPathChars", "<>[\\]^`{|}"); connector.setAttribute("relaxedQueryChars", "<>[\\]^`{|}"); }); return webServerFactory; } + } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/config/ZFileConfiguration.java b/src/main/java/im/zhaojun/zfile/config/ZFileConfiguration.java index 57405fd..37d1d8d 100644 --- a/src/main/java/im/zhaojun/zfile/config/ZFileConfiguration.java +++ b/src/main/java/im/zhaojun/zfile/config/ZFileConfiguration.java @@ -2,6 +2,8 @@ package im.zhaojun.zfile.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.http.HttpHeaders; +import org.springframework.http.client.ClientHttpResponse; import org.springframework.http.converter.StringHttpMessageConverter; import org.springframework.web.client.RestTemplate; @@ -18,7 +20,14 @@ public class ZFileConfiguration { public RestTemplate restTemplate(){ RestTemplate restTemplate = new RestTemplate(); restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)); - restTemplate.setInterceptors(Collections.singletonList(new ContentTypeTextToTextJson())); + + restTemplate.setInterceptors(Collections.singletonList((request, body, execution) -> { + ClientHttpResponse response = execution.execute(request, body); + HttpHeaders headers = response.getHeaders(); + headers.put("Content-Type", Collections.singletonList("application/text")); + return response; + })); + return restTemplate; } diff --git a/src/main/java/im/zhaojun/zfile/context/DriveContext.java b/src/main/java/im/zhaojun/zfile/context/DriveContext.java new file mode 100644 index 0000000..11ffac2 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/context/DriveContext.java @@ -0,0 +1,107 @@ +package im.zhaojun.zfile.context; + +import im.zhaojun.zfile.model.entity.DriveConfig; +import im.zhaojun.zfile.model.enums.StorageTypeEnum; +import im.zhaojun.zfile.service.DriveConfigService; +import im.zhaojun.zfile.service.base.AbstractBaseFileService; +import im.zhaojun.zfile.util.SpringContextHolder; +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.context.annotation.DependsOn; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.ConcurrentHashMap; + +/** + * 驱动器上下文环境 + * @author zhaojun + */ +@Component +@DependsOn("springContextHolder") +public class DriveContext implements ApplicationContextAware { + + private static Map drivesServiceMap = new ConcurrentHashMap<>(); + + private static Map> storageTypeEnumClassMap = new ConcurrentHashMap<>(); + + @Resource + private DriveConfigService driveConfigService; + + + /** + * 初始化指定驱动器的 Service, 添加到上下文环境中. + * + * @param driveId + * 驱动器 ID. + */ + public void initDrive(Integer driveId) { + AbstractBaseFileService baseFileService = getBeanByDriveId(driveId); + if (baseFileService != null) { + baseFileService.init(driveId); + drivesServiceMap.put(driveId, baseFileService); + } + } + + + /** + * 获取指定驱动器的 Service. + * + * @param driveId + * 驱动器 ID + * + * @return 驱动器对应的 Service + */ + public AbstractBaseFileService getDriveService(Integer driveId) { + return drivesServiceMap.get(driveId); + } + + + /** + * 销毁指定驱动器的 Service. + * + * @param driveId + * 驱动器 ID + */ + public void destroyDrive(Integer driveId) { + drivesServiceMap.remove(driveId); + } + + + /** + * 获取指定驱动器对应的 Service, 状态为未初始化 + * + * @param driveId + * 驱动器 ID + * + * @return 驱动器对应未初始化的 Service + */ + private AbstractBaseFileService getBeanByDriveId(Integer driveId) { + StorageTypeEnum storageTypeEnum = driveConfigService.findStorageTypeById(driveId); + Map beansOfType = SpringContextHolder.getBeansOfType(AbstractBaseFileService.class); + for (AbstractBaseFileService value : beansOfType.values()) { + if (Objects.equals(value.getStorageTypeEnum(), storageTypeEnum)) { + return SpringContextHolder.getBean(value.getClass()); + } + } + return null; + } + + + /** + * 项目启动时, 自动调用所有驱动器进行初始化. + */ + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + List list = driveConfigService.list(); + for (DriveConfig driveConfig : list) { + initDrive(driveConfig.getId()); + } + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/config/StorageTypeFactory.java b/src/main/java/im/zhaojun/zfile/context/StorageTypeContext.java similarity index 91% rename from src/main/java/im/zhaojun/zfile/config/StorageTypeFactory.java rename to src/main/java/im/zhaojun/zfile/context/StorageTypeContext.java index d7e1dc1..0b8ef1d 100644 --- a/src/main/java/im/zhaojun/zfile/config/StorageTypeFactory.java +++ b/src/main/java/im/zhaojun/zfile/context/StorageTypeContext.java @@ -1,4 +1,4 @@ -package im.zhaojun.zfile.config; +package im.zhaojun.zfile.context; import im.zhaojun.zfile.model.enums.StorageTypeEnum; import im.zhaojun.zfile.service.base.AbstractBaseFileService; @@ -6,19 +6,21 @@ import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; - import java.util.Map; + /** + * 存储类型工厂类 * @author zhaojun */ @Component -public class StorageTypeFactory implements ApplicationContextAware { +public class StorageTypeContext implements ApplicationContextAware { private static Map storageTypeEnumFileServiceMap; private static ApplicationContext applicationContext; + /** * 项目启动时执行 */ @@ -30,6 +32,7 @@ public class StorageTypeFactory implements ApplicationContextAware { storageTypeEnumFileServiceMap = act.getBeansOfType(AbstractBaseFileService.class); } + /** * 获取指定存储类型 Service */ @@ -44,7 +47,9 @@ public class StorageTypeFactory implements ApplicationContextAware { return result; } + public static ApplicationContext getApplicationContext() { return applicationContext; } + } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/controller/AdminController.java b/src/main/java/im/zhaojun/zfile/controller/AdminController.java deleted file mode 100644 index 5df52c1..0000000 --- a/src/main/java/im/zhaojun/zfile/controller/AdminController.java +++ /dev/null @@ -1,200 +0,0 @@ -package im.zhaojun.zfile.controller; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.ZipUtil; -import im.zhaojun.zfile.config.StorageTypeFactory; -import im.zhaojun.zfile.model.dto.ResultBean; -import im.zhaojun.zfile.model.dto.StorageStrategyDTO; -import im.zhaojun.zfile.model.dto.SystemConfigDTO; -import im.zhaojun.zfile.model.entity.StorageConfig; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.model.support.SystemMonitorInfo; -import im.zhaojun.zfile.service.StorageConfigService; -import im.zhaojun.zfile.service.SystemConfigService; -import im.zhaojun.zfile.service.base.AbstractBaseFileService; -import im.zhaojun.zfile.service.support.FileAsyncCacheService; -import im.zhaojun.zfile.util.FileUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; -import java.io.File; -import java.util.*; - -/** - * 后台管理 - * @author zhaojun - */ -@RestController -@RequestMapping("/admin") -public class AdminController { - - private static final Logger log = LoggerFactory.getLogger(AdminController.class); - - @Resource - private StorageConfigService storageConfigService; - - @Resource - private SystemConfigService systemConfigService; - - @Resource - private FileAsyncCacheService fileAsyncCacheService; - - /** - * 获取系统配置 - */ - @GetMapping("/config") - public ResultBean getConfig() { - SystemConfigDTO systemConfigDTO = systemConfigService.getSystemConfig(); - return ResultBean.success(systemConfigDTO); - } - - /** - * 更新系统配置 - */ - @PostMapping("/config") - public ResultBean updateConfig(SystemConfigDTO systemConfigDTO) throws Exception { - StorageTypeEnum currentStorageStrategy = systemConfigService.getCurrentStorageStrategy(); - if (!Objects.equals(currentStorageStrategy, systemConfigDTO.getStorageStrategy())) { - if (systemConfigService.getEnableCache()) { - return ResultBean.error("不支持缓存开启状态下, 切换存储策略, 请先手动关闭缓存"); - } - log.info("已将存储策略由 {} 切换为 {}", - currentStorageStrategy.getDescription(), - systemConfigDTO.getStorageStrategy().getDescription()); - refreshStorageStrategy(); - } - - systemConfigDTO.setId(1); - systemConfigService.updateSystemConfig(systemConfigDTO); - - return ResultBean.success(); - } - - /** - * 修改管理员登陆密码 - */ - @PostMapping("/update-pwd") - public ResultBean updatePwd(String username, String password) { - systemConfigService.updateUsernameAndPwd(username, password); - return ResultBean.success(); - } - - /** - * 获取指定存储策略的设置 - * @param storageType 存储策略 - * @return 所有设置 - */ - @GetMapping("/strategy-form") - public ResultBean getFormByStorageType(StorageTypeEnum storageType) { - List storageConfigList = storageConfigService.selectStorageConfigByType(storageType); - return ResultBean.success(storageConfigList); - } - - /** - * 返回支持的存储引擎. - */ - @GetMapping("/support-strategy") - public ResultBean supportStrategy() { - List result = new ArrayList<>(); - StorageTypeEnum[] values = StorageTypeEnum.values(); - for (StorageTypeEnum value : values) { - AbstractBaseFileService storageTypeService = StorageTypeFactory.getStorageTypeService(value); - result.add(new StorageStrategyDTO(value.getKey(), - value.getDescription(), - storageTypeService.getIsInitialized())); - } - return ResultBean.successData(result); - } - - /** - * 保存存储策略 - * @param storageStrategyConfig 保存表单值 - * @param storageStrategy 所属策略 - * @return 操作结果 - */ - @PostMapping("/storage-strategy") - public ResultBean save(@RequestParam Map storageStrategyConfig, StorageTypeEnum storageStrategy) { - // 保存设置. - List storageConfigList = storageConfigService.selectStorageConfigByType(storageStrategy); - for (StorageConfig storageConfig : storageConfigList) { - String key = storageConfig.getKey(); - String value = storageStrategyConfig.get(key); - storageConfig.setValue(value); - } - storageConfigService.updateStorageConfig(storageConfigList); - - // 获取当前修改的存储策略 Service, 尝试调用初始化. - AbstractBaseFileService updateStorageStrategyService = StorageTypeFactory.getStorageTypeService(storageStrategy); - updateStorageStrategyService.init(); - - // 如果修改的为当前启用的缓存, 则重新进行缓存. - StorageTypeEnum currentStorageStrategy = systemConfigService.getCurrentStorageStrategy(); - if (Objects.equals(storageStrategy, currentStorageStrategy)) { - if (log.isDebugEnabled()) { - log.debug("检测到更新了当前启用的存储策略 {}, 已清理缓存.", currentStorageStrategy); - } - - AbstractBaseFileService fileService = systemConfigService.getCurrentFileService(); - fileService.clearFileCache(); - fileAsyncCacheService.cacheGlobalFile(); - } - - // 返回是否初始化成功. - if (updateStorageStrategyService.getIsInitialized()) { - return ResultBean.success(); - } else { - return ResultBean.error("保存成功, 但尝试初始化异常, 请检查设置."); - } - } - - /** - * 更新存储策略 - */ - public void refreshStorageStrategy() { - StorageTypeEnum storageStrategy = systemConfigService.getCurrentStorageStrategy(); - refreshStorageStrategy(storageStrategy); - } - - /** - * 更新存储策略 - */ - private void refreshStorageStrategy(StorageTypeEnum storageStrategy) { - if (storageStrategy == null) { - log.info("尚未配置存储策略."); - } else { - AbstractBaseFileService fileService = systemConfigService.getCurrentFileService(); - fileService.init(); - fileService.clearFileCache(); - log.info("切换至存储类型: {}", storageStrategy.getDescription()); - fileAsyncCacheService.cacheGlobalFile(); - } - } - - /** - * 系统日志下载 - */ - @GetMapping("/log") - public ResponseEntity downloadLog(HttpServletResponse response) { - String userHome = System.getProperty("user.home"); - File fileZip = ZipUtil.zip(userHome + "/.zfile/logs"); - String currentDate = DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"); - return FileUtil.export(fileZip, "ZFile 诊断日志 - " + currentDate + ".zip"); - } - - /** - * 获取系统监控信息 - */ - @GetMapping("monitor") - public ResultBean monitor() { - return ResultBean.success(new SystemMonitorInfo()); - } - -} diff --git a/src/main/java/im/zhaojun/zfile/controller/CacheController.java b/src/main/java/im/zhaojun/zfile/controller/CacheController.java deleted file mode 100644 index 30f4d43..0000000 --- a/src/main/java/im/zhaojun/zfile/controller/CacheController.java +++ /dev/null @@ -1,84 +0,0 @@ -package im.zhaojun.zfile.controller; - -import im.zhaojun.zfile.cache.ZFileCache; -import im.zhaojun.zfile.model.dto.CacheConfigDTO; -import im.zhaojun.zfile.model.dto.ResultBean; -import im.zhaojun.zfile.service.SystemConfigService; -import im.zhaojun.zfile.service.base.AbstractBaseFileService; -import im.zhaojun.zfile.service.support.FileAsyncCacheService; -import im.zhaojun.zfile.service.support.FileCacheService; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; - -/** - * @author zhaojun - */ -@RestController -@RequestMapping("/admin/cache") -public class CacheController { - - @Resource - private SystemConfigService systemConfigService; - - @Resource - private FileAsyncCacheService fileAsyncCacheService; - - @Resource - private FileCacheService fileCacheService; - - @Resource - private ZFileCache zFileCache; - - @PostMapping("/enable") - public ResultBean enableCache() { - fileCacheService.enableCache(); - return ResultBean.success(); - } - - @PostMapping("/disable") - public ResultBean disableCache() { - fileCacheService.disableCache(); - return ResultBean.success(); - } - - @GetMapping("/config") - public ResultBean cacheConfig() { - CacheConfigDTO cacheConfigDTO = new CacheConfigDTO(); - cacheConfigDTO.setEnableCache(systemConfigService.getEnableCache()); - cacheConfigDTO.setCacheFinish(fileAsyncCacheService.isCacheFinish()); - cacheConfigDTO.setCacheKeys(zFileCache.keySet()); - cacheConfigDTO.setCacheDirectoryCount(zFileCache.cacheCount()); - cacheConfigDTO.setLastCacheAutoRefreshDate(zFileCache.getLastCacheAutoRefreshDate()); - return ResultBean.success(cacheConfigDTO); - } - - - @PostMapping("/refresh") - public ResultBean refreshCache(String key) throws Exception { - AbstractBaseFileService fileService = systemConfigService.getCurrentFileService(); - fileService.refreshCache(key); - return ResultBean.success(); - } - - /* - @PostMapping("/clear") - public ResultBean clearCache(String key) { - AbstractFileService fileService = systemConfigService.getCurrentFileService(); - fileService.clearFileCache(); - return ResultBean.success(); - } - - - @PostMapping("/all") - public ResultBean cacheAll() { - AbstractFileService fileService = systemConfigService.getCurrentFileService(); - fileService.clearFileCache(); - fileAsyncCacheService.cacheGlobalFile(); - return ResultBean.success(); - } - */ -} diff --git a/src/main/java/im/zhaojun/zfile/controller/CommonController.java b/src/main/java/im/zhaojun/zfile/controller/CommonController.java index fa5bd2c..b5f60e4 100644 --- a/src/main/java/im/zhaojun/zfile/controller/CommonController.java +++ b/src/main/java/im/zhaojun/zfile/controller/CommonController.java @@ -9,21 +9,32 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** + * 公共 Controller * @author zhaojun */ @RestController @RequestMapping("/common") public class CommonController { + + /** + * 返回系统支持的所有存储策略 + * + * @return 存储策略 + */ @GetMapping("/support-strategy") public ResultBean supportStrategy() { return ResultBean.successData(StorageTypeEnum.values()); } + /** - * 获取文件内容, 仅限用于, txt, md, ini 等普通文本文件. - * @param url 文件路径 - * @return 文件内容 + * 获取文件内容, 仅限用于 txt, md, ini 等普通文本文件. + * + * @param url + * 文件路径 + * + * @return 文件内容 */ @GetMapping("/content") public ResultBean getContent(String url) { @@ -31,35 +42,17 @@ public class CommonController { } - /** - * 获取文件内容, 仅限用于, txt, md, ini 等普通文本文件. - * @param url 文件路径 - * @return 文件内容 - */ - @GetMapping("/content/origin") - public String getContentOrigin(String url) { - return HttpUtil.getTextContent(url); - } - - - /** - * 检测文件是否存在 - * @param url 文件路径 - * @return 是否存在 - */ - @GetMapping("/content/exist") - public boolean checkFileExist(String url) { - return HttpUtil.checkUrlExist(url); - } - - /** * 获取音频文件信息 - * @param url 文件 URL - * @return 音频信息, 标题封面等信息 + * + * @param url + * 文件 URL + * + * @return 音频信息, 标题封面等信息 */ @GetMapping("/audio-info") public ResultBean getAudioInfo(String url) throws Exception { return ResultBean.success(AudioHelper.getAudioInfo(url)); } -} + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/controller/FileController.java b/src/main/java/im/zhaojun/zfile/controller/FileController.java index 26ce0b3..dc033c5 100644 --- a/src/main/java/im/zhaojun/zfile/controller/FileController.java +++ b/src/main/java/im/zhaojun/zfile/controller/FileController.java @@ -1,31 +1,31 @@ package im.zhaojun.zfile.controller; -import cn.hutool.core.util.BooleanUtil; -import cn.hutool.core.util.URLUtil; -import im.zhaojun.zfile.model.annotation.CheckStorageStrategyInit; -import im.zhaojun.zfile.exception.SearchDisableException; -import im.zhaojun.zfile.model.support.FilePageModel; import im.zhaojun.zfile.model.constant.ZFileConstant; import im.zhaojun.zfile.model.dto.FileItemDTO; import im.zhaojun.zfile.model.dto.ResultBean; -import im.zhaojun.zfile.model.dto.SiteConfigDTO; -import im.zhaojun.zfile.model.dto.SystemConfigDTO; -import im.zhaojun.zfile.service.base.AbstractBaseFileService; -import im.zhaojun.zfile.service.support.FileAsyncCacheService; +import im.zhaojun.zfile.model.dto.SystemFrontConfigDTO; +import im.zhaojun.zfile.model.support.FilePageModel; +import im.zhaojun.zfile.service.DriveConfigService; import im.zhaojun.zfile.service.SystemConfigService; -import im.zhaojun.zfile.service.SystemService; +import im.zhaojun.zfile.service.base.AbstractBaseFileService; +import im.zhaojun.zfile.context.DriveContext; import im.zhaojun.zfile.util.FileComparator; import im.zhaojun.zfile.util.HttpUtil; import im.zhaojun.zfile.util.StringUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.HttpClientErrorException; import javax.annotation.Resource; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Objects; /** * 前台文件管理 @@ -36,34 +36,61 @@ import java.util.*; @RestController public class FileController { - @Resource - private SystemService systemService; - @Resource private SystemConfigService systemConfigService; @Resource - private FileAsyncCacheService fileAsyncCacheService; + private DriveContext driveContext; + + @Resource + private DriveConfigService driveConfigService; /** * 滚动加载每页条数. */ private static final Integer PAGE_SIZE = 30; - @CheckStorageStrategyInit - @GetMapping("/list") - public ResultBean list(@RequestParam(defaultValue = "/") String path, - @RequestParam(defaultValue = "name") String sortBy, - @RequestParam(defaultValue = "asc") String order, + + /** + * 获取所有驱动器 + * + * @return 所有驱动器 + */ + @GetMapping("/drive/list") + public ResultBean drives() { + return ResultBean.success(driveConfigService.list()); + } + + /** + * 获取某个驱动器下, 指定路径的数据, 每页固定 {@link #PAGE_SIZE} 条数据. + * + * @param driveId + * 驱动器 ID + * + * @param path + * 路径 + * + * @param password + * 文件夹密码, 某些文件夹需要密码才能访问, 当不需要密码时, 此参数可以为空 + * + * @param page + * 页数 + * + * @return 当前路径下所有文件及文件夹 + */ + @GetMapping("/list/{driveId}") + public ResultBean list(@PathVariable(name = "driveId") Integer driveId, + @RequestParam(defaultValue = "/") String path, @RequestParam(required = false) String password, @RequestParam(defaultValue = "1") Integer page) throws Exception { - AbstractBaseFileService fileService = systemConfigService.getCurrentFileService(); + AbstractBaseFileService fileService = driveContext.getDriveService(driveId); List fileItemList = fileService.fileList(StringUtils.removeDuplicateSeparator("/" + path + "/")); + for (FileItemDTO fileItemDTO : fileItemList) { if (ZFileConstant.PASSWORD_FILE_NAME.equals(fileItemDTO.getName())) { String expectedPasswordContent; try { - expectedPasswordContent = HttpUtil.getTextContent(fileItemDTO.getUrl() + '1'); + expectedPasswordContent = HttpUtil.getTextContent(fileItemDTO.getUrl()); } catch (HttpClientErrorException httpClientErrorException) { log.debug("尝试重新获取密码文件缓存中链接后仍失败", httpClientErrorException); try { @@ -86,45 +113,50 @@ public class FileController { return ResultBean.error("此文件夹需要密码.", ResultBean.REQUIRED_PASSWORD); } } - return ResultBean.successData(getSortedPagingData(fileItemList, page)); } - /** * 获取系统配置信息和当前页的标题, 页面文档信息 - * @param path 路径 + * + * @param driveId + * 驱动器 ID + * + * @return 返回指定存储器的系统配置信息 */ - @CheckStorageStrategyInit - @GetMapping("/config") - public ResultBean getConfig(String path) throws Exception { - SiteConfigDTO config = systemService.getConfig(StringUtils.removeDuplicateSeparator("/" + path + "/")); - config.setSystemConfigDTO(systemConfigService.getSystemConfig()); - return ResultBean.successData(config); + @GetMapping("/config/{driveId}") + public ResultBean getConfig(@PathVariable(name = "driveId") Integer driveId, String path) { + SystemFrontConfigDTO systemConfig = systemConfigService.getSystemFrontConfig(driveId); + + AbstractBaseFileService fileService = driveContext.getDriveService(driveId); + String fullPath = StringUtils.removeDuplicateSeparator(path + "/" + ZFileConstant.README_FILE_NAME); + try { + FileItemDTO fileItem = fileService.getFileItem(fullPath); + String readme = HttpUtil.getTextContent(fileItem.getUrl()); + systemConfig.setReadme(readme); + } catch (Exception e) { + // ignore + } + + return ResultBean.successData(systemConfig); } - @CheckStorageStrategyInit - @GetMapping("/search") + @GetMapping("/search/{driveId}") public ResultBean search(@RequestParam(value = "name", defaultValue = "/") String name, @RequestParam(defaultValue = "name") String sortBy, @RequestParam(defaultValue = "asc") String order, - @RequestParam(defaultValue = "1") Integer page) { - AbstractBaseFileService fileService = systemConfigService.getCurrentFileService(); - SystemConfigDTO systemConfigDTO = systemConfigService.getSystemConfig(); - if (BooleanUtil.isFalse(systemConfigDTO.getSearchEnable())) { - throw new SearchDisableException("搜索功能未开启"); - } - if (!fileAsyncCacheService.isCacheFinish()) { - throw new SearchDisableException("搜索功能缓存预热中, 请稍后再试"); - } - List fileItemList = fileService.search(URLUtil.decode(name)); - return ResultBean.successData(getSortedPagingData(fileItemList, page)); + @RequestParam(defaultValue = "1") Integer page, + @PathVariable("driveId") Integer driveId) { + return ResultBean.error("暂不支持搜索功能"); } /** - * 过滤文件列表, 不显示密码, 文档文件. + * 过滤文件列表, 去除密码, 文档文件. + * + * @param fileItemList + * 文件列表 */ private void filterFileList(List fileItemList) { if (fileItemList == null) { @@ -136,6 +168,17 @@ public class FileController { } + /** + * 对传入的文件列表, 按照文件名进行排序, 然后取相应页数的文件 + * + * @param fileItemList + * 文件列表 + * + * @param page + * 要取的页数 + * + * @return 排序及分页后的那段数据 + */ private FilePageModel getSortedPagingData(List fileItemList, Integer page) { ArrayList copy = new ArrayList<>(Arrays.asList(new FileItemDTO[fileItemList.size()])); Collections.copy(copy, fileItemList); @@ -148,25 +191,30 @@ public class FileController { int totalPage = (total + PAGE_SIZE - 1) / PAGE_SIZE; if (page > totalPage) { - return new FilePageModel(total, totalPage, Collections.emptyList()); + return new FilePageModel(totalPage, Collections.emptyList()); } int start = (page - 1) * PAGE_SIZE; int end = page * PAGE_SIZE; end = Math.min(end, total); - return new FilePageModel(total, totalPage, copy.subList(start, end)); + return new FilePageModel(totalPage, copy.subList(start, end)); } /** * 获取指定路径下的文件信息内容 - * @param path 文件全路径 - * @return 该文件的名称, 路径, 大小, 下载地址等信息. + * + * @param driveId + * 驱动器 ID + * + * @param path + * 文件全路径 + * + * @return 该文件的名称, 路径, 大小, 下载地址等信息. */ - @CheckStorageStrategyInit - @GetMapping("/directlink") - public ResultBean directlink(String path) { - AbstractBaseFileService fileService = systemConfigService.getCurrentFileService(); + @GetMapping("/directlink/{driveId}") + public ResultBean directlink(@PathVariable(name = "driveId") Integer driveId, String path) { + AbstractBaseFileService fileService = driveContext.getDriveService(driveId); return ResultBean.successData(fileService.getFileItem(path)); } } diff --git a/src/main/java/im/zhaojun/zfile/controller/InstallController.java b/src/main/java/im/zhaojun/zfile/controller/InstallController.java index cbcb727..7384077 100644 --- a/src/main/java/im/zhaojun/zfile/controller/InstallController.java +++ b/src/main/java/im/zhaojun/zfile/controller/InstallController.java @@ -1,20 +1,17 @@ package im.zhaojun.zfile.controller; import cn.hutool.crypto.SecureUtil; -import im.zhaojun.zfile.model.entity.StorageConfig; -import im.zhaojun.zfile.model.dto.InstallModelDTO; +import im.zhaojun.zfile.controller.admin.AdminController; import im.zhaojun.zfile.model.dto.ResultBean; import im.zhaojun.zfile.model.dto.SystemConfigDTO; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; import im.zhaojun.zfile.service.StorageConfigService; import im.zhaojun.zfile.service.SystemConfigService; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; -import java.util.List; -import java.util.Map; /** * 系统安装初始化 @@ -34,50 +31,23 @@ public class InstallController { @GetMapping("/is-installed") public ResultBean isInstall() { - if (systemConfigService.getCurrentStorageStrategy() == null) { - return ResultBean.success(); + if (!StringUtils.isEmpty(systemConfigService.getAdminUsername())) { + return ResultBean.error("请勿重复初始化"); } - return ResultBean.error("请勿重复初始化"); - } - - - @PostMapping("/install") - public ResultBean install(InstallModelDTO installModelDTO) throws Exception { - SystemConfigDTO systemConfigDTO = systemConfigService.getSystemConfig(); - - if (systemConfigDTO.getStorageStrategy() != null) { - return ResultBean.error("请勿重复初始化."); - } - - systemConfigDTO.setSiteName(installModelDTO.getSiteName()); - StorageTypeEnum storageTypeEnum = installModelDTO.getStorageStrategy(); - systemConfigDTO.setStorageStrategy(storageTypeEnum); - systemConfigDTO.setUsername(installModelDTO.getUsername()); - systemConfigDTO.setPassword(SecureUtil.md5(installModelDTO.getPassword())); - systemConfigDTO.setDomain(installModelDTO.getDomain()); - systemConfigService.updateSystemConfig(systemConfigDTO); - - Map storageStrategyConfig = installModelDTO.getStorageStrategyConfig(); - - List storageConfigList = storageConfigService.selectStorageConfigByType(storageTypeEnum); - for (StorageConfig storageConfig : storageConfigList) { - String key = storageConfig.getKey(); - String value = storageStrategyConfig.get(key); - storageConfig.setValue(value); - } - - storageConfigService.updateStorageConfig(storageConfigList); - adminController.refreshStorageStrategy(); return ResultBean.success(); } - @GetMapping("/form") - public ResultBean getFormByStorageType(String storageType) { - StorageTypeEnum storageTypeEnum = StorageTypeEnum.getEnum(storageType); - List storageConfigList = storageConfigService.selectStorageConfigByType(storageTypeEnum); - storageConfigList.forEach(storageConfig -> storageConfig.setValue(null)); - return ResultBean.success(storageConfigList); + @PostMapping("/install") + public ResultBean install(SystemConfigDTO systemConfigDTO) { + if (!StringUtils.isEmpty(systemConfigService.getAdminUsername())) { + return ResultBean.error("请勿重复初始化."); + } + + systemConfigDTO.setPassword(SecureUtil.md5(systemConfigDTO.getPassword())); + systemConfigService.updateSystemConfig(systemConfigDTO); + + return ResultBean.success(); } } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/controller/LocalController.java b/src/main/java/im/zhaojun/zfile/controller/LocalController.java index 91e687e..5c51395 100644 --- a/src/main/java/im/zhaojun/zfile/controller/LocalController.java +++ b/src/main/java/im/zhaojun/zfile/controller/LocalController.java @@ -1,12 +1,14 @@ package im.zhaojun.zfile.controller; +import im.zhaojun.zfile.service.impl.LocalServiceImpl; +import im.zhaojun.zfile.context.DriveContext; import im.zhaojun.zfile.util.FileUtil; import im.zhaojun.zfile.util.StringUtils; -import im.zhaojun.zfile.service.impl.LocalServiceImpl; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.util.AntPathMatcher; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.HandlerMapping; @@ -15,23 +17,33 @@ import javax.servlet.http.HttpServletRequest; import java.io.File; /** + * 本地存储 Controller * @author zhaojun */ @Controller public class LocalController { @Resource - private LocalServiceImpl localServiceImpl; + private DriveContext driveContext; - @GetMapping("/file/**") + /** + * 本地存储下载指定文件 + * + * @param driveId + * 驱动器 ID + * + * @return 文件 + */ + @GetMapping("/file/{driveId}/**") @ResponseBody - public ResponseEntity downAttachment(final HttpServletRequest request) { + public ResponseEntity downAttachment(@PathVariable("driveId") Integer driveId, final HttpServletRequest request) { String path = (String) request.getAttribute( HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE); String bestMatchPattern = (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE); AntPathMatcher apm = new AntPathMatcher(); String filePath = apm.extractPathWithinPattern(bestMatchPattern, path); - - return FileUtil.export(new File(StringUtils.concatPath(localServiceImpl.getFilePath(), filePath))); + LocalServiceImpl localService = (LocalServiceImpl) driveContext.getDriveService(driveId); + return FileUtil.export(new File(StringUtils.concatPath(localService.getFilePath(), filePath))); } -} + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/controller/OneDriveController.java b/src/main/java/im/zhaojun/zfile/controller/OneDriveController.java index 2e15797..3f5c0e6 100644 --- a/src/main/java/im/zhaojun/zfile/controller/OneDriveController.java +++ b/src/main/java/im/zhaojun/zfile/controller/OneDriveController.java @@ -1,7 +1,7 @@ package im.zhaojun.zfile.controller; -import im.zhaojun.zfile.service.impl.OneDriveChinaServiceImpl; import im.zhaojun.zfile.model.support.OneDriveToken; +import im.zhaojun.zfile.service.impl.OneDriveChinaServiceImpl; import im.zhaojun.zfile.service.impl.OneDriveServiceImpl; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; @@ -24,7 +24,7 @@ public class OneDriveController { private OneDriveChinaServiceImpl oneDriveChinaServiceImpl; @GetMapping("/callback") - public String onedriveCallback(String code, Model model) { + public String oneDriveCallback(String code, Model model) { OneDriveToken oneDriveToken = oneDriveServiceImpl.getToken(code); model.addAttribute("accessToken", oneDriveToken.getAccessToken()); model.addAttribute("refreshToken", oneDriveToken.getRefreshToken()); @@ -33,7 +33,7 @@ public class OneDriveController { @GetMapping("/china-callback") - public String onedriveChinaCallback(String code, Model model) { + public String oneDriveChinaCallback(String code, Model model) { OneDriveToken oneDriveToken = oneDriveChinaServiceImpl.getToken(code); model.addAttribute("accessToken", oneDriveToken.getAccessToken()); model.addAttribute("refreshToken", oneDriveToken.getRefreshToken()); diff --git a/src/main/java/im/zhaojun/zfile/controller/PageController.java b/src/main/java/im/zhaojun/zfile/controller/PageController.java index d5fdc2c..969933a 100644 --- a/src/main/java/im/zhaojun/zfile/controller/PageController.java +++ b/src/main/java/im/zhaojun/zfile/controller/PageController.java @@ -4,11 +4,12 @@ import cn.hutool.core.util.URLUtil; import im.zhaojun.zfile.model.constant.ZFileConstant; import im.zhaojun.zfile.model.dto.FileItemDTO; import im.zhaojun.zfile.model.enums.FileTypeEnum; -import im.zhaojun.zfile.service.SystemConfigService; import im.zhaojun.zfile.service.base.AbstractBaseFileService; +import im.zhaojun.zfile.context.DriveContext; import org.springframework.stereotype.Controller; import org.springframework.util.AntPathMatcher; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.servlet.HandlerMapping; import javax.annotation.Resource; @@ -17,16 +18,22 @@ import java.util.Objects; /** * @author Zhao Jun - * 2020/2/9 11:17 */ @Controller public class PageController { @Resource - private SystemConfigService systemConfigService; + private DriveContext driveContext; - @GetMapping("/directlink/**") - public String directlink(final HttpServletRequest request) { + /** + * 获取指定驱动器, 某个文件的直链, 然后重定向过去. + * @param driveId + * 驱动器 ID + * + * @return 重定向至文件直链 + */ + @GetMapping("/directlink/{driveId}/**") + public String directlink(@PathVariable("driveId") Integer driveId, final HttpServletRequest request) { String path = (String) request.getAttribute( HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE); String bestMatchPattern = (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE); @@ -37,7 +44,7 @@ public class PageController { filePath = "/" + filePath; } - AbstractBaseFileService fileService = systemConfigService.getCurrentFileService(); + AbstractBaseFileService fileService = driveContext.getDriveService(driveId); FileItemDTO fileItem = fileService.getFileItem(filePath); String url = fileItem.getUrl(); diff --git a/src/main/java/im/zhaojun/zfile/controller/admin/AdminController.java b/src/main/java/im/zhaojun/zfile/controller/admin/AdminController.java new file mode 100644 index 0000000..b7e7d4b --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/controller/admin/AdminController.java @@ -0,0 +1,119 @@ +package im.zhaojun.zfile.controller.admin; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ZipUtil; +import im.zhaojun.zfile.context.StorageTypeContext; +import im.zhaojun.zfile.model.dto.ResultBean; +import im.zhaojun.zfile.model.dto.StorageStrategyDTO; +import im.zhaojun.zfile.model.dto.SystemConfigDTO; +import im.zhaojun.zfile.model.entity.StorageConfig; +import im.zhaojun.zfile.model.enums.StorageTypeEnum; +import im.zhaojun.zfile.model.support.SystemMonitorInfo; +import im.zhaojun.zfile.service.SystemConfigService; +import im.zhaojun.zfile.service.base.AbstractBaseFileService; +import im.zhaojun.zfile.util.FileUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 管理后台接口 + * @author zhaojun + */ +@RestController +@RequestMapping("/admin") +@Slf4j +public class AdminController { + + @Resource + private SystemConfigService systemConfigService; + + /** + * 获取系统配置 + */ + @GetMapping("/config") + public ResultBean getConfig() { + SystemConfigDTO systemConfigDTO = systemConfigService.getSystemConfig(); + return ResultBean.success(systemConfigDTO); + } + + + /** + * 更新系统配置 + */ + @PostMapping("/config") + public ResultBean updateConfig(SystemConfigDTO systemConfigDTO) throws Exception { + systemConfigDTO.setId(1); + systemConfigService.updateSystemConfig(systemConfigDTO); + return ResultBean.success(); + } + + + /** + * 修改管理员登陆密码 + */ + @PostMapping("/update-pwd") + public ResultBean updatePwd(String username, String password) { + systemConfigService.updateUsernameAndPwd(username, password); + return ResultBean.success(); + } + + + /** + * 获取指定存储策略的表单域 + * + * @param storageType + * 存储策略 + * + * @return 所有表单域 + */ + @GetMapping("/strategy-form") + public ResultBean getFormByStorageType(StorageTypeEnum storageType) { + AbstractBaseFileService storageTypeService = StorageTypeContext.getStorageTypeService(storageType); + List storageConfigList = storageTypeService.storageStrategyConfigList(); + return ResultBean.success(storageConfigList); + } + + + /** + * 返回支持的存储引擎. + */ + @GetMapping("/support-strategy") + public ResultBean supportStrategy() { + List result = new ArrayList<>(); + StorageTypeEnum[] values = StorageTypeEnum.values(); + return ResultBean.successData(values); + } + + + /** + * 系统日志下载 + */ + @GetMapping("/log") + public ResponseEntity downloadLog(HttpServletResponse response) { + String userHome = System.getProperty("user.home"); + File fileZip = ZipUtil.zip(userHome + "/.zfile/logs"); + String currentDate = DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"); + return FileUtil.export(fileZip, "ZFile 诊断日志 - " + currentDate + ".zip"); + } + + + /** + * 获取系统监控信息 + */ + @GetMapping("monitor") + public ResultBean monitor() { + return ResultBean.success(new SystemMonitorInfo()); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/controller/admin/CacheController.java b/src/main/java/im/zhaojun/zfile/controller/admin/CacheController.java new file mode 100644 index 0000000..3935b26 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/controller/admin/CacheController.java @@ -0,0 +1,37 @@ +package im.zhaojun.zfile.controller.admin; + +import im.zhaojun.zfile.model.dto.ResultBean; +import im.zhaojun.zfile.service.DriveConfigService; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * 缓存 Controller + * + * @author zhaojun + */ +@RestController +@RequestMapping("/admin/cache") +public class CacheController { + + @Resource + private DriveConfigService driveConfigService; + + + @PostMapping("/{driveId}/enable") + public ResultBean enableCache(@PathVariable("driveId") Integer driveId) { + driveConfigService.updateCacheStatus(driveId, true); + return ResultBean.success(); + } + + @PostMapping("/{driveId}/disable") + public ResultBean disableCache(@PathVariable("driveId") Integer driveId) { + driveConfigService.updateCacheStatus(driveId, false); + return ResultBean.success(); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/controller/admin/DriveController.java b/src/main/java/im/zhaojun/zfile/controller/admin/DriveController.java new file mode 100644 index 0000000..e07ee8c --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/controller/admin/DriveController.java @@ -0,0 +1,81 @@ +package im.zhaojun.zfile.controller.admin; + +import im.zhaojun.zfile.model.dto.DriveConfigDTO; +import im.zhaojun.zfile.model.dto.ResultBean; +import im.zhaojun.zfile.model.entity.DriveConfig; +import im.zhaojun.zfile.service.DriveConfigService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 驱动器 Controller + * @author zhaojun + */ +@RestController +@RequestMapping("/admin") +@Slf4j +public class DriveController { + + @Resource + private DriveConfigService driveConfigService; + + + /** + * 获取所有驱动器列表 + * + * @return 驱动器列表 + */ + @GetMapping("drives") + public ResultBean driveList() { + List list = driveConfigService.list(); + return ResultBean.success(list); + } + + + /** + * 获取指定驱动器基本信息及其参数 + * + * @param id + * 驱动器 ID + * + * @return 驱动器基本信息信息 + */ + @GetMapping("drive/{id}") + public ResultBean driveItem(@PathVariable Integer id) { + DriveConfigDTO driveConfig = driveConfigService.findDriveConfigDTOById(id); + return ResultBean.success(driveConfig); + } + + + /** + * 保存驱动器设置 + */ + @PostMapping("drive") + public ResultBean saveDriveItem(@RequestBody DriveConfigDTO driveConfigDTO) { + driveConfigService.save(driveConfigDTO); + return ResultBean.success(); + } + + + /** + * 删除驱动器设置 + * + * @param id + * 驱动器 ID + */ + @DeleteMapping("drive/{id}") + public ResultBean deleteDriveItem(@PathVariable Integer id) { + driveConfigService.deleteById(id); + return ResultBean.success(); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/core/StorageStrategyInitCheckAop.java b/src/main/java/im/zhaojun/zfile/core/StorageStrategyInitCheckAop.java deleted file mode 100644 index 212ce42..0000000 --- a/src/main/java/im/zhaojun/zfile/core/StorageStrategyInitCheckAop.java +++ /dev/null @@ -1,31 +0,0 @@ -package im.zhaojun.zfile.core; - -import im.zhaojun.zfile.exception.StorageStrategyUninitializedException; -import im.zhaojun.zfile.service.base.AbstractBaseFileService; -import im.zhaojun.zfile.service.SystemConfigService; -import im.zhaojun.zfile.util.SpringContextHolder; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.annotation.Before; -import org.springframework.stereotype.Component; - -/** - * @author zhaojun - */ -@Aspect -@Component -public class StorageStrategyInitCheckAop { - - @Before("@annotation(im.zhaojun.zfile.model.annotation.CheckStorageStrategyInit)") - public void logStart() { - SystemConfigService systemConfigService = SpringContextHolder.getBean(SystemConfigService.class); - AbstractBaseFileService currentFileService = systemConfigService.getCurrentFileService(); - if (currentFileService == null) { - throw new StorageStrategyUninitializedException("存储策略尚未初始化, 请联系管理员!"); - } - if (currentFileService.getIsUnInitialized()) { - throw new StorageStrategyUninitializedException("存储策略异常, 请联系管理员!"); - } - - } - -} diff --git a/src/main/java/im/zhaojun/zfile/exception/GlobleExceptionHandler.java b/src/main/java/im/zhaojun/zfile/exception/GlobleExceptionHandler.java index 055cd4b..03d3031 100644 --- a/src/main/java/im/zhaojun/zfile/exception/GlobleExceptionHandler.java +++ b/src/main/java/im/zhaojun/zfile/exception/GlobleExceptionHandler.java @@ -63,6 +63,15 @@ public class GlobleExceptionHandler { // } } + @ExceptionHandler({PreviewException.class}) + @ResponseBody + @ResponseStatus + public ResultBean previewException(PreviewException ex) { + return ResultBean.error(ex.getMessage()); + } + + + @ExceptionHandler @ResponseBody @ResponseStatus(code= HttpStatus.INTERNAL_SERVER_ERROR) diff --git a/src/main/java/im/zhaojun/zfile/exception/PreviewException.java b/src/main/java/im/zhaojun/zfile/exception/PreviewException.java new file mode 100644 index 0000000..4120e45 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/exception/PreviewException.java @@ -0,0 +1,28 @@ +package im.zhaojun.zfile.exception; + +/** + * 文件预览异常类 + * @author zhaojun + */ +public class PreviewException extends RuntimeException { + + public PreviewException() { + } + + public PreviewException(String message) { + super(message); + } + + public PreviewException(String message, Throwable cause) { + super(message, cause); + } + + public PreviewException(Throwable cause) { + super(cause); + } + + public PreviewException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/config/CorsFilter.java b/src/main/java/im/zhaojun/zfile/filter/CorsFilter.java similarity index 96% rename from src/main/java/im/zhaojun/zfile/config/CorsFilter.java rename to src/main/java/im/zhaojun/zfile/filter/CorsFilter.java index 8620917..ffd847e 100644 --- a/src/main/java/im/zhaojun/zfile/config/CorsFilter.java +++ b/src/main/java/im/zhaojun/zfile/filter/CorsFilter.java @@ -1,4 +1,4 @@ -package im.zhaojun.zfile.config; +package im.zhaojun.zfile.filter; import org.springframework.http.HttpHeaders; import org.springframework.web.cors.CorsUtils; @@ -23,7 +23,6 @@ public class CorsFilter extends GenericFilterBean { HttpServletRequest httpServletRequest = (HttpServletRequest) request; HttpServletResponse httpServletResponse = (HttpServletResponse) response; - // Set customized header httpServletResponse.setHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, httpServletRequest.getHeader(HttpHeaders.ORIGIN)); httpServletResponse.setHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_HEADERS, "Origin, X-Requested-With, Content-Type, Accept"); httpServletResponse.setHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_METHODS, "GET, POST, PUT, DELETE, OPTIONS"); @@ -34,4 +33,5 @@ public class CorsFilter extends GenericFilterBean { chain.doFilter(httpServletRequest, httpServletResponse); } } + } diff --git a/src/main/java/im/zhaojun/zfile/model/annotation/CheckStorageStrategyInit.java b/src/main/java/im/zhaojun/zfile/model/annotation/CheckStorageStrategyInit.java deleted file mode 100644 index babd87d..0000000 --- a/src/main/java/im/zhaojun/zfile/model/annotation/CheckStorageStrategyInit.java +++ /dev/null @@ -1,15 +0,0 @@ -package im.zhaojun.zfile.model.annotation; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * 标记注解, 用于在调用前检查是否已存储策略 - * @author zhaojun - */ -@Target(ElementType.METHOD) -@Retention(RetentionPolicy.RUNTIME) -public @interface CheckStorageStrategyInit { -} diff --git a/src/main/java/im/zhaojun/zfile/model/constant/StorageConfigConstant.java b/src/main/java/im/zhaojun/zfile/model/constant/StorageConfigConstant.java index ae7f7c1..294c085 100644 --- a/src/main/java/im/zhaojun/zfile/model/constant/StorageConfigConstant.java +++ b/src/main/java/im/zhaojun/zfile/model/constant/StorageConfigConstant.java @@ -5,7 +5,7 @@ package im.zhaojun.zfile.model.constant; */ public class StorageConfigConstant { - public static final String BUCKET_NAME_KEY = "bucket-name"; + public static final String BUCKET_NAME_KEY = "bucketName"; public static final String SECRET_ID_KEY = "secretId"; @@ -15,7 +15,7 @@ public class StorageConfigConstant { public static final String ENDPOINT_KEY = "endPoint"; - public static final String BASE_PATH = "base-path"; + public static final String BASE_PATH = "basePath"; public static final String DOMAIN_KEY = "domain"; diff --git a/src/main/java/im/zhaojun/zfile/model/constant/SystemConfigConstant.java b/src/main/java/im/zhaojun/zfile/model/constant/SystemConfigConstant.java index 332049e..2f6c87d 100644 --- a/src/main/java/im/zhaojun/zfile/model/constant/SystemConfigConstant.java +++ b/src/main/java/im/zhaojun/zfile/model/constant/SystemConfigConstant.java @@ -7,8 +7,6 @@ public class SystemConfigConstant { public static final String SITE_NAME = "siteName"; - public static final String INFO_ENABLE = "infoEnable"; - public static final String SEARCH_ENABLE = "searchEnable"; public static final String SEARCH_IGNORE_CASE = "searchIgnoreCase"; diff --git a/src/main/java/im/zhaojun/zfile/model/constant/ZFileConstant.java b/src/main/java/im/zhaojun/zfile/model/constant/ZFileConstant.java index c7820ce..db02ae1 100644 --- a/src/main/java/im/zhaojun/zfile/model/constant/ZFileConstant.java +++ b/src/main/java/im/zhaojun/zfile/model/constant/ZFileConstant.java @@ -28,6 +28,17 @@ public class ZFileConstant { */ public static String PASSWORD_FILE_NAME = "password.txt"; + /** + * 最大支持文件大小为 ? MB 的音乐文件解析封面, 歌手等信息. + */ + public static Long AUDIO_MAX_FILE_SIZE_MB = 1L; + + /** + * 最大支持文本文件大小为 ? KB 的文件内容. + */ + public static Long TEXT_MAX_FILE_SIZE_KB = 100L; + + @Autowired(required = false) public void setHeaderFileName(@Value("${zfile.constant.readme}") String headerFileName) { ZFileConstant.README_FILE_NAME = headerFileName; @@ -38,4 +49,15 @@ public class ZFileConstant { ZFileConstant.PASSWORD_FILE_NAME = passwordFileName; } + @Autowired(required = false) + public void setAudioMaxFileSizeMb(@Value("${zfile.preview.audio.maxFileSizeMb}") Long maxFileSizeMb) { + ZFileConstant.AUDIO_MAX_FILE_SIZE_MB = maxFileSizeMb; + } + + @Autowired(required = false) + public void setTextMaxFileSizeMb(@Value("${zfile.preview.text.maxFileSizeKb}") Long maxFileSizeKb) { + ZFileConstant.TEXT_MAX_FILE_SIZE_KB = maxFileSizeKb; + } + + } diff --git a/src/main/java/im/zhaojun/zfile/model/dto/AudioInfoDTO.java b/src/main/java/im/zhaojun/zfile/model/dto/AudioInfoDTO.java index 0c750cd..15123b6 100644 --- a/src/main/java/im/zhaojun/zfile/model/dto/AudioInfoDTO.java +++ b/src/main/java/im/zhaojun/zfile/model/dto/AudioInfoDTO.java @@ -1,53 +1,27 @@ package im.zhaojun.zfile.model.dto; +import lombok.Data; + /** * @author zhaojun */ +@Data public class AudioInfoDTO { + private String title; + private String artist; + private String cover; + private String src; - public String getTitle() { - return title; + public static AudioInfoDTO buildDefaultAudioInfoDTO() { + AudioInfoDTO audioInfoDTO = new AudioInfoDTO(); + audioInfoDTO.setTitle("未知歌曲"); + audioInfoDTO.setArtist("未知"); + audioInfoDTO.setCover("http://c.jun6.net/audio.png"); + return audioInfoDTO; } - public void setTitle(String title) { - this.title = title; - } - - public String getArtist() { - return artist; - } - - public void setArtist(String artist) { - this.artist = artist; - } - - public String getCover() { - return cover; - } - - public void setCover(String cover) { - this.cover = cover; - } - - public String getSrc() { - return src; - } - - public void setSrc(String src) { - this.src = src; - } - - @Override - public String toString() { - return "AudioInfoDTO{" + - "title='" + title + '\'' + - ", artist='" + artist + '\'' + - ", cover='" + cover + '\'' + - ", src='" + src + '\'' + - '}'; - } } diff --git a/src/main/java/im/zhaojun/zfile/model/dto/DriveConfigDTO.java b/src/main/java/im/zhaojun/zfile/model/dto/DriveConfigDTO.java new file mode 100644 index 0000000..980d197 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/model/dto/DriveConfigDTO.java @@ -0,0 +1,33 @@ +package im.zhaojun.zfile.model.dto; + +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import im.zhaojun.zfile.model.enums.StorageTypeEnum; +import im.zhaojun.zfile.model.enums.StorageTypeEnumJsonDeSerializerConvert; +import lombok.Data; + +/** + * @author zhaojun + */ +@Data +public class DriveConfigDTO { + + private Integer id; + + private String name; + + @JsonDeserialize(using = StorageTypeEnumJsonDeSerializerConvert.class) + private StorageTypeEnum type; + + private boolean enableCache; + + private boolean autoRefreshCache; + + private boolean searchEnable; + + private boolean searchIgnoreCase; + + private boolean searchContainEncryptedFile; + + private StorageStrategyConfig storageStrategyConfig; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/dto/SiteConfigDTO.java b/src/main/java/im/zhaojun/zfile/model/dto/SiteConfigDTO.java index c959fc0..8d5e895 100644 --- a/src/main/java/im/zhaojun/zfile/model/dto/SiteConfigDTO.java +++ b/src/main/java/im/zhaojun/zfile/model/dto/SiteConfigDTO.java @@ -1,23 +1,23 @@ -package im.zhaojun.zfile.model.dto; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Data; -import lombok.ToString; - -import java.io.Serializable; - -/** - * @author zhaojun - */ -@Data -@ToString -public class SiteConfigDTO implements Serializable { - - private static final long serialVersionUID = 8811196207046121740L; - - private String readme; - - @JsonProperty("viewConfig") - private SystemConfigDTO systemConfigDTO; - -} +// package im.zhaojun.zfile.model.dto; +// +// import com.fasterxml.jackson.annotation.JsonProperty; +// import lombok.Data; +// import lombok.ToString; +// +// import java.io.Serializable; +// +// /** +// * @author zhaojun +// */ +// @Data +// @ToString +// public class SiteConfigDTO implements Serializable { +// +// private static final long serialVersionUID = 8811196207046121740L; +// +// private String readme; +// +// @JsonProperty("viewConfig") +// private SystemConfigDTO systemConfigDTO; +// +// } diff --git a/src/main/java/im/zhaojun/zfile/model/dto/StorageStrategyConfig.java b/src/main/java/im/zhaojun/zfile/model/dto/StorageStrategyConfig.java new file mode 100644 index 0000000..ce35f35 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/model/dto/StorageStrategyConfig.java @@ -0,0 +1,43 @@ +package im.zhaojun.zfile.model.dto; + +import lombok.Data; + +/** + * @author zhaojun + */ +@Data +public class StorageStrategyConfig { + + private String endPoint; + + private String pathStyle; + + private boolean isPrivate; + + private String accessKey; + + private String secretKey; + + private String bucketName; + + private String host; + + private String port; + + private String accessToken; + + private String refreshToken; + + private String secretId; + + private String filePath; + + private String username; + + private String password; + + private String domain; + + private String basePath; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/dto/SystemConfigDTO.java b/src/main/java/im/zhaojun/zfile/model/dto/SystemConfigDTO.java index 09308cf..4e9ea8b 100644 --- a/src/main/java/im/zhaojun/zfile/model/dto/SystemConfigDTO.java +++ b/src/main/java/im/zhaojun/zfile/model/dto/SystemConfigDTO.java @@ -9,6 +9,7 @@ import lombok.ToString; /** * 系统设置传输类 + * * @author zhaojun */ @ToString @@ -20,26 +21,16 @@ public class SystemConfigDTO { private String siteName; - private Boolean infoEnable; - - private Boolean searchEnable; - - private Boolean searchIgnoreCase; + private String username; @JsonSerialize(using = StorageTypeEnumSerializerConvert.class) private StorageTypeEnum storageStrategy; - private String username; - @JsonIgnore private String password; private String domain; - private Boolean enableCache; - - private Boolean searchContainEncryptedFile; - private String customJs; private String customCss; diff --git a/src/main/java/im/zhaojun/zfile/model/dto/SystemFrontConfigDTO.java b/src/main/java/im/zhaojun/zfile/model/dto/SystemFrontConfigDTO.java new file mode 100644 index 0000000..37fa2b2 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/model/dto/SystemFrontConfigDTO.java @@ -0,0 +1,47 @@ +package im.zhaojun.zfile.model.dto; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; +import lombok.ToString; + +/** + * 系统设置传输类 + * @author zhaojun + */ +@ToString +@Data +public class SystemFrontConfigDTO { + + @JsonIgnore + private Integer id; + + private String siteName; + + private Boolean searchEnable; + + // @JsonSerialize(using = StorageTypeEnumSerializerConvert.class) + // private StorageTypeEnum storageStrategy; + + private String username; + + private String domain; + + private String customJs; + + private String customCss; + + private String tableSize; + + private Boolean showOperator; + + private Boolean showDocument; + + private String announcement; + + private Boolean showAnnouncement; + + private String layout; + + private String readme; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/entity/DriveConfig.java b/src/main/java/im/zhaojun/zfile/model/entity/DriveConfig.java new file mode 100644 index 0000000..611513a --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/model/entity/DriveConfig.java @@ -0,0 +1,38 @@ +package im.zhaojun.zfile.model.entity; + +import im.zhaojun.zfile.model.enums.StorageTypeEnum; +import lombok.Data; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +/** + * 驱动器 + * + * @author zhaojun + */ +@Entity(name = "DRIVER_CONFIG") +@Data +public class DriveConfig { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + + private String name; + + private Boolean enableCache; + + private Boolean autoRefreshCache; + + private StorageTypeEnum type; + + private Boolean searchEnable; + + private Boolean searchIgnoreCase; + + private Boolean searchContainEncryptedFile; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/entity/StorageConfig.java b/src/main/java/im/zhaojun/zfile/model/entity/StorageConfig.java index 1504f83..c108cbc 100644 --- a/src/main/java/im/zhaojun/zfile/model/entity/StorageConfig.java +++ b/src/main/java/im/zhaojun/zfile/model/entity/StorageConfig.java @@ -30,6 +30,13 @@ public class StorageConfig { @Column(length = 4000) private String value; + private Integer driveId; + + public StorageConfig(String key, String title) { + this.key = key; + this.title = title; + } + public Integer getId() { return id; } diff --git a/src/main/java/im/zhaojun/zfile/model/enums/StorageTypeEnumDeSerializerConvert.java b/src/main/java/im/zhaojun/zfile/model/enums/StorageTypeEnumDeSerializerConvert.java index 02ce6c7..8f45250 100644 --- a/src/main/java/im/zhaojun/zfile/model/enums/StorageTypeEnumDeSerializerConvert.java +++ b/src/main/java/im/zhaojun/zfile/model/enums/StorageTypeEnumDeSerializerConvert.java @@ -12,4 +12,5 @@ public class StorageTypeEnumDeSerializerConvert implements Converter { + + @Override + public StorageTypeEnum deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { + return StorageTypeEnum.getEnum(jsonParser.getText()); + } +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/support/FilePageModel.java b/src/main/java/im/zhaojun/zfile/model/support/FilePageModel.java index d257d84..395f508 100644 --- a/src/main/java/im/zhaojun/zfile/model/support/FilePageModel.java +++ b/src/main/java/im/zhaojun/zfile/model/support/FilePageModel.java @@ -13,10 +13,8 @@ import java.util.List; @AllArgsConstructor public class FilePageModel { - private int total; - private int totalPage; private List fileList; -} +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/support/SystemMonitorInfo.java b/src/main/java/im/zhaojun/zfile/model/support/SystemMonitorInfo.java index 280fd5b..3adb3ab 100644 --- a/src/main/java/im/zhaojun/zfile/model/support/SystemMonitorInfo.java +++ b/src/main/java/im/zhaojun/zfile/model/support/SystemMonitorInfo.java @@ -1,8 +1,5 @@ package im.zhaojun.zfile.model.support; -import im.zhaojun.zfile.model.support.Jvm; -import im.zhaojun.zfile.model.support.Mem; -import im.zhaojun.zfile.model.support.Sys; import lombok.Data; import java.io.Serializable; diff --git a/src/main/java/im/zhaojun/zfile/repository/DriverConfigRepository.java b/src/main/java/im/zhaojun/zfile/repository/DriverConfigRepository.java new file mode 100644 index 0000000..b194ee0 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/repository/DriverConfigRepository.java @@ -0,0 +1,26 @@ +package im.zhaojun.zfile.repository; + +import im.zhaojun.zfile.model.entity.DriveConfig; +import im.zhaojun.zfile.model.enums.StorageTypeEnum; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @author zhaojun + */ +@Repository +public interface DriverConfigRepository extends JpaRepository { + + /** + * 根据存储策略类型获取所有驱动器 + * + * @param type + * 存储类型 + * + * @return 指定存储类型的存储器 + */ + List findByType(StorageTypeEnum type); + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/repository/StorageConfigRepository.java b/src/main/java/im/zhaojun/zfile/repository/StorageConfigRepository.java index 3221f1c..a62577f 100644 --- a/src/main/java/im/zhaojun/zfile/repository/StorageConfigRepository.java +++ b/src/main/java/im/zhaojun/zfile/repository/StorageConfigRepository.java @@ -15,16 +15,56 @@ public interface StorageConfigRepository extends JpaRepository findByTypeOrderById(StorageTypeEnum type); + + /** + * 根据存储类型找对应的配置信息 + * + * @param driveId + * 驱动器 ID + * + * @return 此驱动器所有的配置信息 + */ + List findByDriveIdOrderById(Integer driveId); + + + /** + * 根据驱动器找到对应的配置信息 + * + * @param driveId + * 驱动器 ID + * + * @return 此驱动器所有的配置信息 + */ + List findByDriveId(Integer driveId); + + + /** + * 删除指定驱动器对应的配置信息 + * + * @param driveId + * 驱动器 ID + */ + void deleteByDriveId(Integer driveId); + + /** * 根据存储类型找到某个 KEY 的值 - * @param type 存储类型 - * @param key KEY - * @return KEY 对应的对象 + * + * @param type + * 存储类型 + * + * @param key + * KEY 值 + * + * @return KEY 对应的对象 */ StorageConfig findByTypeAndKey(StorageTypeEnum type, String key); diff --git a/src/main/java/im/zhaojun/zfile/repository/SystemConfigRepository.java b/src/main/java/im/zhaojun/zfile/repository/SystemConfigRepository.java index 8011542..6343722 100644 --- a/src/main/java/im/zhaojun/zfile/repository/SystemConfigRepository.java +++ b/src/main/java/im/zhaojun/zfile/repository/SystemConfigRepository.java @@ -12,8 +12,12 @@ public interface SystemConfigRepository extends JpaRepository driveConfigList = driveConfigService.findByType(StorageTypeEnum.ONE_DRIVE); + driveConfigList.addAll(driveConfigService.findByType(StorageTypeEnum.ONE_DRIVE_CHINA)); + + driveConfigList.forEach(driveConfig -> { + StorageTypeEnum storageType = driveConfig.getType(); + String name = driveConfig.getName(); + + try { + AbstractOneDriveServiceBase driveService = (AbstractOneDriveServiceBase) driveContext.getDriveService(driveConfig.getId()); + driveService.refreshOneDriveToken(); + log.info("刷新驱动器 {}, {} key 时间: {}", name, storageType.getDescription(), LocalDateTime.now()); + } catch (Exception e) { + log.debug("刷新驱动器 " + name + " Token 失败.", e); + } + + }); + + } catch (Throwable e) { + log.debug("尝试调用 OneDrive 自动刷新 AccessToken 定时任务出现未知异常", e); + } + + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/security/MyUserDetailsServiceImpl.java b/src/main/java/im/zhaojun/zfile/security/MyUserDetailsServiceImpl.java index 0febad7..b807368 100644 --- a/src/main/java/im/zhaojun/zfile/security/MyUserDetailsServiceImpl.java +++ b/src/main/java/im/zhaojun/zfile/security/MyUserDetailsServiceImpl.java @@ -30,4 +30,5 @@ public class MyUserDetailsServiceImpl implements UserDetailsService { } return new User(systemConfig.getUsername(), systemConfig.getPassword(), Collections.emptyList()); } + } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/DriveConfigService.java b/src/main/java/im/zhaojun/zfile/service/DriveConfigService.java new file mode 100644 index 0000000..3bba9e4 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/service/DriveConfigService.java @@ -0,0 +1,212 @@ +package im.zhaojun.zfile.service; + +import im.zhaojun.zfile.context.StorageTypeContext; +import im.zhaojun.zfile.model.dto.DriveConfigDTO; +import im.zhaojun.zfile.model.dto.StorageStrategyConfig; +import im.zhaojun.zfile.model.entity.DriveConfig; +import im.zhaojun.zfile.model.entity.StorageConfig; +import im.zhaojun.zfile.model.enums.StorageTypeEnum; +import im.zhaojun.zfile.repository.DriverConfigRepository; +import im.zhaojun.zfile.repository.StorageConfigRepository; +import im.zhaojun.zfile.service.base.AbstractBaseFileService; +import im.zhaojun.zfile.context.DriveContext; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.lang.reflect.Field; +import java.util.List; + +/** + * 驱动器 Service 类 + * @author zhaojun + */ +@Slf4j +@Service +public class DriveConfigService { + + @Resource + private DriverConfigRepository driverConfigRepository; + + @Resource + private StorageConfigRepository storageConfigRepository; + + @Resource + private DriveContext driveContext; + + public static final Class STORAGE_STRATEGY_CONFIG_CLASS = StorageStrategyConfig.class; + + /** + * 获取所有驱动器列表 + * + * @return 驱动器列表 + */ + public List list() { + return driverConfigRepository.findAll(); + } + + + /** + * 获取指定驱动器设置 + * + * @param id + * 驱动器 ID + * + * @return 驱动器设置 + */ + public DriveConfig findById(Integer id) { + return driverConfigRepository.getOne(id); + } + + + /** + * 获取指定驱动器 DTO 对象, 此对象包含详细的参数设置. + * + * @param id + * 驱动器 ID + * + * @return 驱动器 DTO + */ + public DriveConfigDTO findDriveConfigDTOById(Integer id) { + DriveConfig driveConfig = driverConfigRepository.getOne(id); + + DriveConfigDTO driveConfigDTO = new DriveConfigDTO(); + + List storageConfigList = storageConfigRepository.findByDriveId(driveConfig.getId()); + BeanUtils.copyProperties(driveConfig, driveConfigDTO); + + StorageStrategyConfig storageStrategyConfig = new StorageStrategyConfig(); + for (StorageConfig storageConfig : storageConfigList) { + String key = storageConfig.getKey(); + String value = storageConfig.getValue(); + + Field declaredField; + try { + declaredField = STORAGE_STRATEGY_CONFIG_CLASS.getDeclaredField(key); + declaredField.setAccessible(true); + declaredField.set(storageStrategyConfig, value); + } catch (NoSuchFieldException | IllegalAccessException e) { + if (log.isDebugEnabled()) { + log.debug("通过反射, 将字段 {" + key + "}注入 DriveConfigDTO 时出现异常:", e); + } + } + + } + + driveConfigDTO.setStorageStrategyConfig(storageStrategyConfig); + return driveConfigDTO; + } + + /** + * 获取指定驱动器的存储策略. + * + * @param id + * 驱动器 ID + * + * @return 驱动器对应的存储策略. + */ + public StorageTypeEnum findStorageTypeById(Integer id) { + // return findById(id).getType(); + return driverConfigRepository.findById(id).get().getType(); + } + + + /** + * 保存驱动器基本信息及其对应的参数设置 + * + * @param driveConfigDTO 驱动器 DTO 对象 + */ + @Transactional(rollbackFor = Exception.class) + public void save(DriveConfigDTO driveConfigDTO) { + + // 判断是新增还是修改 + boolean updateFlag = driveConfigDTO.getId() != null; + + // 保存基本信息 + DriveConfig driveConfig = new DriveConfig(); + StorageTypeEnum storageType = driveConfigDTO.getType(); + BeanUtils.copyProperties(driveConfigDTO, driveConfig); + driverConfigRepository.save(driveConfig); + + // 保存存储策略设置. + StorageStrategyConfig storageStrategyConfig = driveConfigDTO.getStorageStrategyConfig(); + + AbstractBaseFileService storageTypeService = StorageTypeContext.getStorageTypeService(storageType); + + List storageConfigList; + if (updateFlag) { + storageConfigList = storageConfigRepository.findByDriveId(driveConfigDTO.getId()); + } else { + storageConfigList = storageTypeService.storageStrategyConfigList(); + } + + for (StorageConfig storageConfig : storageConfigList) { + String key = storageConfig.getKey(); + + try { + Field field = STORAGE_STRATEGY_CONFIG_CLASS.getDeclaredField(key); + field.setAccessible(true); + Object o = field.get(storageStrategyConfig); + String value = o == null ? null : o.toString(); + storageConfig.setValue(value); + storageConfig.setType(storageType); + storageConfig.setDriveId(driveConfig.getId()); + } catch (IllegalAccessException | NoSuchFieldException e) { + if (log.isDebugEnabled()) { + log.debug("通过反射, 从 StorageStrategyConfig 中获取字段 {" + key + "} 时出现异常:", e); + } + } + + } + storageConfigRepository.saveAll(storageConfigList); + + driveContext.initDrive(driveConfig.getId()); + } + + + /** + * 删除指定驱动器设置, 会级联删除其参数设置 + * + * @param id + * 驱动器 ID + */ + @Transactional(rollbackFor = Exception.class) + public void deleteById(Integer id) { + driverConfigRepository.deleteById(id); + storageConfigRepository.deleteByDriveId(id); + driveContext.destroyDrive(id); + } + + + /** + * 根据存储策略类型获取所有驱动器 + * + * @param type + * 存储类型 + * + * @return 指定存储类型的存储器 + */ + public List findByType(StorageTypeEnum type) { + return driverConfigRepository.findByType(type); + } + + + /** + * 更新指定驱动器的缓存启用状态 + * + * @param driveId + * 驱动器 ID + * + * @param cacheEnable + * 是否启用缓存 + */ + public void updateCacheStatus(Integer driveId, Boolean cacheEnable) { + DriveConfig driveConfig = findById(driveId); + if (driveConfig != null) { + driveConfig.setEnableCache(cacheEnable); + driverConfigRepository.save(driveConfig); + } + } +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/StorageConfigService.java b/src/main/java/im/zhaojun/zfile/service/StorageConfigService.java index dc29975..c89b373 100644 --- a/src/main/java/im/zhaojun/zfile/service/StorageConfigService.java +++ b/src/main/java/im/zhaojun/zfile/service/StorageConfigService.java @@ -23,6 +23,9 @@ public class StorageConfigService { return storageConfigRepository.findByTypeOrderById(storageTypeEnum); } + public List selectStorageConfigByDriveId(Integer driveId) { + return storageConfigRepository.findByDriveIdOrderById(driveId); + } public StorageConfig selectByTypeAndKey(StorageTypeEnum storageType, String key) { return storageConfigRepository.findByTypeAndKey(storageType, key); @@ -38,8 +41,19 @@ public class StorageConfigService { } + public Map selectStorageConfigMapByDriveId(Integer driveId) { + Map map = new HashMap<>(24); + for (StorageConfig storageConfig : selectStorageConfigByDriveId(driveId)) { + map.put(storageConfig.getKey(), storageConfig); + } + return map; + } + + public void updateStorageConfig(List storageConfigList) { storageConfigRepository.saveAll(storageConfigList); } + + } diff --git a/src/main/java/im/zhaojun/zfile/service/SystemConfigService.java b/src/main/java/im/zhaojun/zfile/service/SystemConfigService.java index b8ca9df..f66109a 100644 --- a/src/main/java/im/zhaojun/zfile/service/SystemConfigService.java +++ b/src/main/java/im/zhaojun/zfile/service/SystemConfigService.java @@ -1,17 +1,16 @@ package im.zhaojun.zfile.service; import cn.hutool.core.convert.Convert; -import cn.hutool.core.util.BooleanUtil; import cn.hutool.crypto.SecureUtil; import im.zhaojun.zfile.cache.ZFileCache; -import im.zhaojun.zfile.config.StorageTypeFactory; import im.zhaojun.zfile.model.constant.SystemConfigConstant; import im.zhaojun.zfile.model.dto.SystemConfigDTO; +import im.zhaojun.zfile.model.dto.SystemFrontConfigDTO; +import im.zhaojun.zfile.model.entity.DriveConfig; import im.zhaojun.zfile.model.entity.SystemConfig; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; import im.zhaojun.zfile.repository.SystemConfigRepository; -import im.zhaojun.zfile.service.base.AbstractBaseFileService; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -32,8 +31,17 @@ public class SystemConfigService { @Resource private SystemConfigRepository systemConfigRepository; + @Resource + private DriveConfigService driveConfigService; + private Class systemConfigClazz = SystemConfigDTO.class; + + /** + * 获取系统设置, 如果缓存中有, 则去缓存取, 没有则查询数据库并写入到缓存中. + * + * @return 系统设置 + */ public SystemConfigDTO getSystemConfig() { SystemConfigDTO cacheConfig = zFileCache.getConfig(); if (cacheConfig != null) { @@ -48,12 +56,10 @@ public class SystemConfigService { try { Field field = systemConfigClazz.getDeclaredField(key); - if (field != null) { - field.setAccessible(true); - String strVal = systemConfig.getValue(); - Object convertVal = Convert.convert(field.getType(), strVal); - field.set(systemConfigDTO, convertVal); - } + field.setAccessible(true); + String strVal = systemConfig.getValue(); + Object convertVal = Convert.convert(field.getType(), strVal); + field.set(systemConfigDTO, convertVal); } catch (NoSuchFieldException | IllegalAccessException e) { if (log.isDebugEnabled()) { log.debug("通过反射, 将字段 {" + key + "}注入 SystemConfigDTO 时出现异常:", e); @@ -66,7 +72,14 @@ public class SystemConfigService { } - public void updateSystemConfig(SystemConfigDTO systemConfigDTO) throws Exception { + /** + * 更新系统设置, 并清空缓存中的内容. + * + * @param systemConfigDTO + * 系统 + * + */ + public void updateSystemConfig(SystemConfigDTO systemConfigDTO) { List systemConfigList = new ArrayList<>(); Field[] fields = systemConfigClazz.getDeclaredFields(); @@ -75,7 +88,16 @@ public class SystemConfigService { SystemConfig systemConfig = systemConfigRepository.findByKey(key); if (systemConfig != null) { field.setAccessible(true); - Object val = field.get(systemConfigDTO); + Object val = null; + + try { + val = field.get(systemConfigDTO); + } catch (IllegalAccessException e) { + if (log.isDebugEnabled()) { + log.debug("通过反射, 从 SystemConfigDTO 获取字段 {" + key + "} 时出现异常:", e); + } + } + if (val != null) { systemConfig.setValue(val.toString()); systemConfigList.add(systemConfig); @@ -88,6 +110,34 @@ public class SystemConfigService { } + /** + * 根据驱动器 ID, 获取对于前台页面的系统设置. + * + * @param driveId + * 驱动器 ID + * + * @return 前台系统设置 + */ + public SystemFrontConfigDTO getSystemFrontConfig(Integer driveId) { + SystemConfigDTO systemConfig = getSystemConfig(); + SystemFrontConfigDTO systemFrontConfigDTO = new SystemFrontConfigDTO(); + BeanUtils.copyProperties(systemConfig, systemFrontConfigDTO); + + DriveConfig driveConfig = driveConfigService.findById(driveId); + systemFrontConfigDTO.setSearchEnable(driveConfig.getSearchEnable()); + return systemFrontConfigDTO; + } + + + /** + * 更新后台账号密码 + * + * @param username + * 用户名 + * + * @param password + * 密码 + */ public void updateUsernameAndPwd(String username, String password) { SystemConfig usernameConfig = systemConfigRepository.findByKey(SystemConfigConstant.USERNAME); usernameConfig.setValue(username); @@ -103,34 +153,14 @@ public class SystemConfigService { } - public void updateCacheEnableConfig(Boolean isEnable) { - SystemConfig enableConfig = systemConfigRepository.findByKey(SystemConfigConstant.ENABLE_CACHE); - enableConfig.setValue(isEnable.toString()); - systemConfigRepository.save(enableConfig); - zFileCache.removeConfig(); - } - - - public AbstractBaseFileService getCurrentFileService() { - StorageTypeEnum storageStrategy = getCurrentStorageStrategy(); - return StorageTypeFactory.getStorageTypeService(storageStrategy); - } - - - public StorageTypeEnum getCurrentStorageStrategy() { + /** + * 获取管理员名称 + * + * @return 管理员名称 + */ + public String getAdminUsername() { SystemConfigDTO systemConfigDTO = getSystemConfig(); - return systemConfigDTO.getStorageStrategy(); + return systemConfigDTO.getUsername(); } - public boolean getEnableCache() { - SystemConfigDTO systemConfigDTO = getSystemConfig(); - return BooleanUtil.isTrue(systemConfigDTO.getEnableCache()); - } - - public boolean getSearchIgnoreCase() { - SystemConfigDTO systemConfigDTO = getSystemConfig(); - return BooleanUtil.isTrue(systemConfigDTO.getSearchIgnoreCase()); - } - - } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/SystemService.java b/src/main/java/im/zhaojun/zfile/service/SystemService.java index 38da707..fa23a07 100644 --- a/src/main/java/im/zhaojun/zfile/service/SystemService.java +++ b/src/main/java/im/zhaojun/zfile/service/SystemService.java @@ -1,67 +1,69 @@ -package im.zhaojun.zfile.service; - -import im.zhaojun.zfile.model.constant.ZFileConstant; -import im.zhaojun.zfile.model.dto.FileItemDTO; -import im.zhaojun.zfile.model.dto.SiteConfigDTO; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.service.base.AbstractBaseFileService; -import im.zhaojun.zfile.util.HttpUtil; -import im.zhaojun.zfile.util.StringUtils; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; -import org.springframework.web.client.HttpClientErrorException; - -import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -/** - * @author zhaojun - */ -@Slf4j -@Service -public class SystemService { - - @Resource - private SystemConfigService systemConfigService; - - /** - * 构建指定路径下标题, 页面文档信息 - * @param path 路径 - */ - public SiteConfigDTO getConfig(String path) throws Exception { - - SiteConfigDTO siteConfigDTO = new SiteConfigDTO(); - AbstractBaseFileService fileService = systemConfigService.getCurrentFileService(); - - List fileItemList; - - if (Objects.equals(systemConfigService.getSystemConfig().getStorageStrategy(), StorageTypeEnum.FTP)) { - fileItemList = new ArrayList<>(); - } else { - fileItemList = fileService.fileList(path); - } - - for (FileItemDTO fileItemDTO : fileItemList) { - if (ZFileConstant.README_FILE_NAME.equalsIgnoreCase(fileItemDTO.getName())) { - String textContent = null; - try { - textContent = HttpUtil.getTextContent(fileItemDTO.getUrl()); - } catch (HttpClientErrorException httpClientErrorException) { - log.debug("尝试重新获取文档区缓存中链接后仍失败", httpClientErrorException); - try { - String fullPath = StringUtils.removeDuplicateSeparator(fileItemDTO.getPath() + "/" + fileItemDTO.getName()); - FileItemDTO fileItem = fileService.getFileItem(fullPath); - textContent = HttpUtil.getTextContent(fileItem.getUrl()); - } catch (Exception e) { - log.debug("尝试重新获取文档区链接后仍失败, 已置为空", e); - } - } - siteConfigDTO.setReadme(textContent); - } - } - return siteConfigDTO; - } - -} +// package im.zhaojun.zfile.service; +// +// import im.zhaojun.zfile.model.constant.ZFileConstant; +// import im.zhaojun.zfile.model.dto.FileItemDTO; +// import im.zhaojun.zfile.model.dto.SiteConfigDTO; +// import im.zhaojun.zfile.model.enums.StorageTypeEnum; +// import im.zhaojun.zfile.service.base.AbstractBaseFileService; +// import im.zhaojun.zfile.context.DriveContext; +// import im.zhaojun.zfile.util.HttpUtil; +// import im.zhaojun.zfile.util.StringUtils; +// import lombok.extern.slf4j.Slf4j; +// import org.springframework.stereotype.Service; +// import org.springframework.web.client.HttpClientErrorException; +// +// import javax.annotation.Resource; +// import java.util.ArrayList; +// import java.util.List; +// import java.util.Objects; +// +// /** +// * @author zhaojun +// */ +// @Slf4j +// @Service +// public class SystemService { +// +// @Resource +// private DriveContext driveContext; +// +// /** +// * 构建指定路径下标题, 页面文档信息 +// * @param path 路径 +// */ +// public SiteConfigDTO getConfig(Integer driveId, String path) throws Exception { +// +// SiteConfigDTO siteConfigDTO = new SiteConfigDTO(); +// +// AbstractBaseFileService fileService = driveContext.getDriveService(driveId); +// +// List fileItemList; +// +// if (Objects.equals(fileService.getStorageTypeEnum(), StorageTypeEnum.FTP)) { +// fileItemList = new ArrayList<>(); +// } else { +// fileItemList = fileService.fileList(path); +// } +// +// for (FileItemDTO fileItemDTO : fileItemList) { +// if (ZFileConstant.README_FILE_NAME.equalsIgnoreCase(fileItemDTO.getName())) { +// String textContent = null; +// try { +// textContent = HttpUtil.getTextContent(fileItemDTO.getUrl()); +// } catch (HttpClientErrorException httpClientErrorException) { +// log.debug("尝试重新获取文档区缓存中链接后仍失败", httpClientErrorException); +// try { +// String fullPath = StringUtils.removeDuplicateSeparator(fileItemDTO.getPath() + "/" + fileItemDTO.getName()); +// FileItemDTO fileItem = fileService.getFileItem(fullPath); +// textContent = HttpUtil.getTextContent(fileItem.getUrl()); +// } catch (Exception e) { +// log.debug("尝试重新获取文档区链接后仍失败, 已置为空", e); +// } +// } +// siteConfigDTO.setReadme(textContent); +// } +// } +// return siteConfigDTO; +// } +// +// } diff --git a/src/main/java/im/zhaojun/zfile/service/base/AbstractBaseFileService.java b/src/main/java/im/zhaojun/zfile/service/base/AbstractBaseFileService.java index e2f8cb8..7774180 100644 --- a/src/main/java/im/zhaojun/zfile/service/base/AbstractBaseFileService.java +++ b/src/main/java/im/zhaojun/zfile/service/base/AbstractBaseFileService.java @@ -1,18 +1,14 @@ package im.zhaojun.zfile.service.base; -import cn.hutool.core.util.BooleanUtil; import im.zhaojun.zfile.cache.ZFileCache; import im.zhaojun.zfile.model.dto.FileItemDTO; -import im.zhaojun.zfile.model.dto.SystemConfigDTO; +import im.zhaojun.zfile.model.entity.StorageConfig; import im.zhaojun.zfile.model.enums.StorageTypeEnum; import im.zhaojun.zfile.service.SystemConfigService; -import im.zhaojun.zfile.service.support.FileAsyncCacheService; -import im.zhaojun.zfile.service.support.FileCacheService; import lombok.extern.slf4j.Slf4j; import org.springframework.aop.framework.AopContext; import org.springframework.beans.factory.annotation.Value; -import javax.annotation.PostConstruct; import javax.annotation.Resource; import java.util.List; @@ -20,49 +16,69 @@ import java.util.List; * @author zhaojun */ @Slf4j -public abstract class AbstractBaseFileService extends FileCacheService implements BaseFileService { +public abstract class AbstractBaseFileService implements BaseFileService { + /** + * 下载链接过期时间, 目前只在兼容 S3 协议的存储策略中使用到. + */ @Value("${zfile.cache.timeout}") protected Long timeout; + /** + * 是否初始化成功 + */ protected boolean isInitialized = false; + /** + * 基路径 + */ protected String basePath; + /** + * 驱动器 ID + */ + public Integer driveId; + @Resource private SystemConfigService systemConfigService; - @Resource - private FileAsyncCacheService fileAsyncCacheService; - @Resource private ZFileCache zFileCache; + /*** * 获取指定路径下的文件及文件夹, 默认缓存 60 分钟,每隔 30 分钟刷新一次. - * @param path 文件路径 - * @return 文件及文件夹列表 + * + * @param path + * 文件路径 + * + * @return 文件及文件夹列表 + * * @throws Exception 获取文件列表中出现的异常 */ @Override public abstract List fileList(String path) throws Exception; + /** * 清理当前存储策略的缓存 - * 1. 删除全部缓存 - * 2. 标记为当前处于未完成缓存状态 */ public void clearFileCache() { - zFileCache.clear(); - fileAsyncCacheService.setCacheFinish(false); + zFileCache.clear(driveId); } + /** * 初始化方法, 启动时自动调用实现类的此方法进行初始化. */ - @PostConstruct - public abstract void init(); + public abstract void init(Integer driveId); + + /** + * 测试是否连接成功, 会尝试取调用获取根路径的文件, 如果没有抛出异常, 则认为连接成功, 某些存储策略需要复写此方法. + * + * @return 连接结果 + */ protected boolean testConnection() { boolean flag = true; try { @@ -74,55 +90,79 @@ public abstract class AbstractBaseFileService extends FileCacheService implement return flag; } + /** * 获取是否初始化成功 - * @return 初始化成功与否 + * + * @return 初始化成功与否 */ public boolean getIsUnInitialized() { return !isInitialized; } + /** * 获取是否初始化成功 - * @return 初始化成功与否 + * + * @return 初始化成功与否 */ public boolean getIsInitialized() { return isInitialized; } + /** - * 获取存储策略类型 - * @return 存储策略类型枚举 + * 获取当前实现类的存储策略类型 + * + * @return 存储策略类型枚举对象 */ public abstract StorageTypeEnum getStorageTypeEnum(); + + /** + * 获取初始化当前存储策略, 所需要的参数信息 (表单填写) + * + * @return 初始化所需的参数列表 + */ + public abstract List storageStrategyConfigList(); + + /** * 搜索文件 - * @param name 文件名 - * @return 包含该文件名的所有文件或文件夹 + * + * @param name + * 文件名 + * + * @return 包含该文件名的所有文件或文件夹 */ public List search(String name) { - SystemConfigDTO systemConfig = systemConfigService.getSystemConfig(); - - boolean searchIgnoreCase = BooleanUtil.isTrue(systemConfig.getSearchIgnoreCase()); - boolean searchContainEncryptedFile = BooleanUtil.isTrue(systemConfig.getSearchContainEncryptedFile()); - return zFileCache.find(name, searchIgnoreCase, searchContainEncryptedFile); + return zFileCache.find(driveId, name); } + /** - * 刷新缓存 + * 刷新指定 key 的缓存: + * 1. 清空此 key 的缓存. + * 2. 重新调用方法写入缓存. + * + * @param key + * 缓存 key (文件夹名称) */ public void refreshCache(String key) throws Exception { - zFileCache.remove(key); + zFileCache.remove(driveId, key); BaseFileService currentFileService = (BaseFileService) AopContext.currentProxy(); currentFileService.fileList(key); } + /** * 获取单个文件信息 - * @param path 文件路径 + * + * @param path + * 文件路径 + * * @return 单个文件的内容. */ public abstract FileItemDTO getFileItem(String path); -} +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/base/AbstractOneDriveServiceBase.java b/src/main/java/im/zhaojun/zfile/service/base/AbstractOneDriveServiceBase.java index 087ea5a..3acf241 100644 --- a/src/main/java/im/zhaojun/zfile/service/base/AbstractOneDriveServiceBase.java +++ b/src/main/java/im/zhaojun/zfile/service/base/AbstractOneDriveServiceBase.java @@ -7,16 +7,17 @@ import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import im.zhaojun.zfile.model.constant.ZFileConstant; -import im.zhaojun.zfile.model.entity.StorageConfig; import im.zhaojun.zfile.model.constant.StorageConfigConstant; +import im.zhaojun.zfile.model.constant.ZFileConstant; import im.zhaojun.zfile.model.dto.FileItemDTO; +import im.zhaojun.zfile.model.entity.StorageConfig; import im.zhaojun.zfile.model.enums.FileTypeEnum; +import im.zhaojun.zfile.model.support.OneDriveToken; import im.zhaojun.zfile.repository.StorageConfigRepository; import im.zhaojun.zfile.service.StorageConfigService; import im.zhaojun.zfile.util.StringUtils; -import im.zhaojun.zfile.model.support.OneDriveToken; import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Lazy; import org.springframework.http.ResponseEntity; import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.RestTemplate; @@ -28,7 +29,6 @@ import java.util.List; /** * @author Zhao Jun - * 2020/1/29 11:54 */ @Slf4j public abstract class AbstractOneDriveServiceBase extends AbstractBaseFileService { @@ -46,6 +46,7 @@ public abstract class AbstractOneDriveServiceBase extends AbstractBaseFileServic private static final String ONE_DRIVE_FILE_FLAG = "file"; @Resource + @Lazy private RestTemplate oneDriveRestTemplate; @Resource @@ -54,6 +55,11 @@ public abstract class AbstractOneDriveServiceBase extends AbstractBaseFileServic @Resource private StorageConfigService storageConfigService; + /** + * 根据 RefreshToken 刷新 AccessToken, 返回刷新后的 Token. + * + * @return 刷新后的 Token + */ public OneDriveToken getRefreshToken() { StorageConfig refreshStorageConfig = storageConfigRepository.findByTypeAndKey(this.getStorageTypeEnum(), StorageConfigConstant.REFRESH_TOKEN_KEY); @@ -72,6 +78,14 @@ public abstract class AbstractOneDriveServiceBase extends AbstractBaseFileServic return JSONObject.parseObject(response.body(), OneDriveToken.class); } + /** + * OAuth2 协议中, 根据 code 换取 access_token 和 refresh_token. + * + * @param code + * 代码 + * + * @return 获取的 Token 信息. + */ public OneDriveToken getToken(String code) { String param = "client_id=" + getClientId() + "&redirect_uri=" + getRedirectUri() + @@ -88,10 +102,6 @@ public abstract class AbstractOneDriveServiceBase extends AbstractBaseFileServic return JSONObject.parseObject(response.body(), OneDriveToken.class); } - public String getUserInfo() { - return oneDriveRestTemplate.getForObject(DRIVER_INFO_URL, String.class); - } - @Override public List fileList(String path) { path = StringUtils.removeFirstSeparator(path); @@ -211,4 +221,14 @@ public abstract class AbstractOneDriveServiceBase extends AbstractBaseFileServic storageConfigService.updateStorageConfig(Arrays.asList(accessTokenConfig, refreshTokenConfig)); } -} + + @Override + public List storageStrategyConfigList() { + return new ArrayList() {{ + add(new StorageConfig("accessToken", "访问令牌")); + add(new StorageConfig("refreshToken", "刷新令牌")); + add(new StorageConfig("basePath", "基路径")); + }}; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/base/AbstractS3BaseFileService.java b/src/main/java/im/zhaojun/zfile/service/base/AbstractS3BaseFileService.java index 4e73495..589f6b3 100644 --- a/src/main/java/im/zhaojun/zfile/service/base/AbstractS3BaseFileService.java +++ b/src/main/java/im/zhaojun/zfile/service/base/AbstractS3BaseFileService.java @@ -6,10 +6,10 @@ import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.model.ListObjectsRequest; import com.amazonaws.services.s3.model.ObjectListing; import com.amazonaws.services.s3.model.S3ObjectSummary; -import im.zhaojun.zfile.service.StorageConfigService; import im.zhaojun.zfile.exception.NotExistFileException; import im.zhaojun.zfile.model.dto.FileItemDTO; import im.zhaojun.zfile.model.enums.FileTypeEnum; +import im.zhaojun.zfile.service.StorageConfigService; import im.zhaojun.zfile.util.StringUtils; import javax.annotation.Resource; diff --git a/src/main/java/im/zhaojun/zfile/service/impl/AliyunServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/AliyunServiceImpl.java index 069e301..6b76745 100644 --- a/src/main/java/im/zhaojun/zfile/service/impl/AliyunServiceImpl.java +++ b/src/main/java/im/zhaojun/zfile/service/impl/AliyunServiceImpl.java @@ -5,14 +5,15 @@ import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.client.builder.AwsClientBuilder; import com.amazonaws.services.s3.AmazonS3ClientBuilder; -import im.zhaojun.zfile.model.dto.StorageStrategyDTO; -import im.zhaojun.zfile.model.entity.StorageConfig; import im.zhaojun.zfile.model.constant.StorageConfigConstant; +import im.zhaojun.zfile.model.entity.StorageConfig; import im.zhaojun.zfile.model.enums.StorageTypeEnum; import im.zhaojun.zfile.service.base.AbstractS3BaseFileService; import im.zhaojun.zfile.service.base.BaseFileService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -24,15 +25,17 @@ import java.util.Objects; * @author zhaojun */ @Service +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class AliyunServiceImpl extends AbstractS3BaseFileService implements BaseFileService { private static final Logger log = LoggerFactory.getLogger(AliyunServiceImpl.class); @Override - public void init() { + public void init(Integer driveId) { try { + this.driveId = driveId; Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByKey(getStorageTypeEnum()); + storageConfigService.selectStorageConfigMapByDriveId(driveId); String accessKey = stringStorageConfigMap.get(StorageConfigConstant.ACCESS_KEY).getValue(); String secretKey = stringStorageConfigMap.get(StorageConfigConstant.SECRET_KEY).getValue(); String endPoint = stringStorageConfigMap.get(StorageConfigConstant.ENDPOINT_KEY).getValue(); @@ -64,14 +67,14 @@ public class AliyunServiceImpl extends AbstractS3BaseFileService implements Base } @Override - public List storageStrategyList() { + public List storageStrategyConfigList() { return new ArrayList() {{ add(new StorageConfig("accessKey", "AccessKey")); add(new StorageConfig("secretKey", "SecretKey")); - add(new StorageConfig("bucket-name", "Bucket 名称")); + add(new StorageConfig("bucketName", "Bucket 名称")); add(new StorageConfig("domain", "Bucket 域名 / CDN 加速域名")); add(new StorageConfig("endPoint", "区域")); - add(new StorageConfig("base-path", "基路径")); + add(new StorageConfig("basePath", "基路径")); }}; } } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/impl/FtpServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/FtpServiceImpl.java index d1266c3..c4ef898 100644 --- a/src/main/java/im/zhaojun/zfile/service/impl/FtpServiceImpl.java +++ b/src/main/java/im/zhaojun/zfile/service/impl/FtpServiceImpl.java @@ -16,6 +16,8 @@ import org.apache.commons.net.ftp.FTPClientConfig; import org.apache.commons.net.ftp.FTPFile; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -29,6 +31,7 @@ import java.util.Objects; * @author zhaojun */ @Service +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class FtpServiceImpl extends AbstractBaseFileService implements BaseFileService { private static final Logger log = LoggerFactory.getLogger(FtpServiceImpl.class); @@ -49,10 +52,11 @@ public class FtpServiceImpl extends AbstractBaseFileService implements BaseFileS private String password; @Override - public void init() { + public void init(Integer driveId) { try { + this.driveId = driveId; Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByKey(getStorageTypeEnum()); + storageConfigService.selectStorageConfigMapByDriveId(driveId); host = stringStorageConfigMap.get(StorageConfigConstant.HOST_KEY).getValue(); port = stringStorageConfigMap.get(StorageConfigConstant.PORT_KEY).getValue(); username = stringStorageConfigMap.get(StorageConfigConstant.USERNAME_KEY).getValue(); @@ -131,14 +135,14 @@ public class FtpServiceImpl extends AbstractBaseFileService implements BaseFileS } @Override - public List storageStrategyList() { + public List storageStrategyConfigList() { return new ArrayList() {{ add(new StorageConfig("host", "域名或IP")); add(new StorageConfig("port", "端口")); add(new StorageConfig("username", "用户名")); add(new StorageConfig("password", "密码")); add(new StorageConfig("domain", "加速域名")); - add(new StorageConfig("base-path", "基路径")); + add(new StorageConfig("basePath", "基路径")); }}; } } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/impl/HuaweiServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/HuaweiServiceImpl.java index a09f22e..b68c5fa 100644 --- a/src/main/java/im/zhaojun/zfile/service/impl/HuaweiServiceImpl.java +++ b/src/main/java/im/zhaojun/zfile/service/impl/HuaweiServiceImpl.java @@ -5,13 +5,15 @@ import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.client.builder.AwsClientBuilder; import com.amazonaws.services.s3.AmazonS3ClientBuilder; -import im.zhaojun.zfile.model.entity.StorageConfig; import im.zhaojun.zfile.model.constant.StorageConfigConstant; +import im.zhaojun.zfile.model.entity.StorageConfig; import im.zhaojun.zfile.model.enums.StorageTypeEnum; import im.zhaojun.zfile.service.base.AbstractS3BaseFileService; import im.zhaojun.zfile.service.base.BaseFileService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -23,15 +25,17 @@ import java.util.Objects; * @author zhaojun */ @Service +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class HuaweiServiceImpl extends AbstractS3BaseFileService implements BaseFileService { private static final Logger log = LoggerFactory.getLogger(HuaweiServiceImpl.class); @Override - public void init() { + public void init(Integer driveId) { try { + this.driveId = driveId; Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByKey(getStorageTypeEnum()); + storageConfigService.selectStorageConfigMapByDriveId(driveId); String accessKey = stringStorageConfigMap.get(StorageConfigConstant.ACCESS_KEY).getValue(); String secretKey = stringStorageConfigMap.get(StorageConfigConstant.SECRET_KEY).getValue(); String endPoint = stringStorageConfigMap.get(StorageConfigConstant.ENDPOINT_KEY).getValue(); @@ -63,14 +67,14 @@ public class HuaweiServiceImpl extends AbstractS3BaseFileService implements Base } @Override - public List storageStrategyList() { + public List storageStrategyConfigList() { return new ArrayList() {{ add(new StorageConfig("accessKey", "AccessKey")); add(new StorageConfig("secretKey", "SecretKey")); - add(new StorageConfig("bucket-name", "云存储服务名称")); + add(new StorageConfig("bucketName", "云存储服务名称")); add(new StorageConfig("domain", "加速域名")); add(new StorageConfig("endPoint", "区域")); - add(new StorageConfig("base-path", "基路径")); + add(new StorageConfig("basePath", "基路径")); add(new StorageConfig("isPrivate", "是否是私有空间")); }}; } diff --git a/src/main/java/im/zhaojun/zfile/service/impl/LocalServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/LocalServiceImpl.java index 88f6a41..5fefbdb 100644 --- a/src/main/java/im/zhaojun/zfile/service/impl/LocalServiceImpl.java +++ b/src/main/java/im/zhaojun/zfile/service/impl/LocalServiceImpl.java @@ -1,20 +1,22 @@ package im.zhaojun.zfile.service.impl; import im.zhaojun.zfile.exception.NotExistFileException; -import im.zhaojun.zfile.model.entity.StorageConfig; -import im.zhaojun.zfile.model.entity.SystemConfig; import im.zhaojun.zfile.model.constant.StorageConfigConstant; import im.zhaojun.zfile.model.constant.SystemConfigConstant; import im.zhaojun.zfile.model.dto.FileItemDTO; +import im.zhaojun.zfile.model.entity.StorageConfig; +import im.zhaojun.zfile.model.entity.SystemConfig; import im.zhaojun.zfile.model.enums.FileTypeEnum; import im.zhaojun.zfile.model.enums.StorageTypeEnum; import im.zhaojun.zfile.repository.SystemConfigRepository; +import im.zhaojun.zfile.service.StorageConfigService; import im.zhaojun.zfile.service.base.AbstractBaseFileService; import im.zhaojun.zfile.service.base.BaseFileService; -import im.zhaojun.zfile.service.StorageConfigService; import im.zhaojun.zfile.util.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -29,6 +31,7 @@ import java.util.Objects; * @author zhaojun */ @Service +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class LocalServiceImpl extends AbstractBaseFileService implements BaseFileService { private static final Logger log = LoggerFactory.getLogger(LocalServiceImpl.class); @@ -42,10 +45,11 @@ public class LocalServiceImpl extends AbstractBaseFileService implements BaseFil private String filePath; @Override - public void init() { + public void init(Integer driveId) { try { + this.driveId = driveId; Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByKey(getStorageTypeEnum()); + storageConfigService.selectStorageConfigMapByDriveId(driveId); filePath = stringStorageConfigMap.get(StorageConfigConstant.FILE_PATH_KEY).getValue(); if (Objects.isNull(filePath)) { log.debug("初始化存储策略 [{}] 失败: 参数不完整", getStorageTypeEnum().getDescription()); @@ -89,7 +93,7 @@ public class LocalServiceImpl extends AbstractBaseFileService implements BaseFil @Override public String getDownloadUrl(String path) { SystemConfig usernameConfig = systemConfigRepository.findByKey(SystemConfigConstant.DOMAIN); - return StringUtils.removeDuplicateSeparator(usernameConfig.getValue() + "/file/" + path); + return StringUtils.removeDuplicateSeparator(usernameConfig.getValue() + "/file/" + driveId + "/" + path); } public String getFilePath() { @@ -129,7 +133,7 @@ public class LocalServiceImpl extends AbstractBaseFileService implements BaseFil } @Override - public List storageStrategyList() { + public List storageStrategyConfigList() { return new ArrayList() {{ add(new StorageConfig("filePath", "文件路径")); }}; diff --git a/src/main/java/im/zhaojun/zfile/service/impl/MinIOServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/MinIOServiceImpl.java index 84ff176..94dae5d 100644 --- a/src/main/java/im/zhaojun/zfile/service/impl/MinIOServiceImpl.java +++ b/src/main/java/im/zhaojun/zfile/service/impl/MinIOServiceImpl.java @@ -5,13 +5,15 @@ import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.client.builder.AwsClientBuilder; import com.amazonaws.services.s3.AmazonS3ClientBuilder; -import im.zhaojun.zfile.model.entity.StorageConfig; import im.zhaojun.zfile.model.constant.StorageConfigConstant; +import im.zhaojun.zfile.model.entity.StorageConfig; import im.zhaojun.zfile.model.enums.StorageTypeEnum; import im.zhaojun.zfile.service.base.AbstractS3BaseFileService; import im.zhaojun.zfile.service.base.BaseFileService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -23,15 +25,17 @@ import java.util.Objects; * @author zhaojun */ @Service +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class MinIOServiceImpl extends AbstractS3BaseFileService implements BaseFileService { private static final Logger log = LoggerFactory.getLogger(MinIOServiceImpl.class); @Override - public void init() { + public void init(Integer driveId) { try { + this.driveId = driveId; Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByKey(getStorageTypeEnum()); + storageConfigService.selectStorageConfigMapByDriveId(driveId); String accessKey = stringStorageConfigMap.get(StorageConfigConstant.ACCESS_KEY).getValue(); String secretKey = stringStorageConfigMap.get(StorageConfigConstant.SECRET_KEY).getValue(); String endPoint = stringStorageConfigMap.get(StorageConfigConstant.ENDPOINT_KEY).getValue(); @@ -64,13 +68,13 @@ public class MinIOServiceImpl extends AbstractS3BaseFileService implements BaseF } @Override - public List storageStrategyList() { + public List storageStrategyConfigList() { return new ArrayList() {{ add(new StorageConfig("accessKey", "AccessKey")); add(new StorageConfig("secretKey", "SecretKey")); add(new StorageConfig("endPoint", "服务地址")); - add(new StorageConfig("bucket-name", "存储空间名称")); - add(new StorageConfig("base-path", "基路径")); + add(new StorageConfig("bucketName", "存储空间名称")); + add(new StorageConfig("basePath", "基路径")); add(new StorageConfig("isPrivate", "是否是私有空间")); }}; } diff --git a/src/main/java/im/zhaojun/zfile/service/impl/OneDriveChinaServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/OneDriveChinaServiceImpl.java index b3ea8e2..6835a8f 100644 --- a/src/main/java/im/zhaojun/zfile/service/impl/OneDriveChinaServiceImpl.java +++ b/src/main/java/im/zhaojun/zfile/service/impl/OneDriveChinaServiceImpl.java @@ -8,6 +8,8 @@ import im.zhaojun.zfile.service.base.AbstractOneDriveServiceBase; import im.zhaojun.zfile.service.base.BaseFileService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; @@ -19,6 +21,7 @@ import java.util.Map; */ @Service @Slf4j +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class OneDriveChinaServiceImpl extends AbstractOneDriveServiceBase implements BaseFileService { @Resource @@ -37,10 +40,11 @@ public class OneDriveChinaServiceImpl extends AbstractOneDriveServiceBase implem private String scope; @Override - public void init() { + public void init(Integer driveId) { try { + this.driveId = driveId; Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByKey(getStorageTypeEnum()); + storageConfigService.selectStorageConfigMapByDriveId(driveId); String accessToken = stringStorageConfigMap.get(StorageConfigConstant.ACCESS_TOKEN_KEY).getValue(); String refreshToken = stringStorageConfigMap.get(StorageConfigConstant.REFRESH_TOKEN_KEY).getValue(); super.basePath = stringStorageConfigMap.get(StorageConfigConstant.BASE_PATH).getValue(); diff --git a/src/main/java/im/zhaojun/zfile/service/impl/OneDriveServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/OneDriveServiceImpl.java index a73f855..f08de7e 100644 --- a/src/main/java/im/zhaojun/zfile/service/impl/OneDriveServiceImpl.java +++ b/src/main/java/im/zhaojun/zfile/service/impl/OneDriveServiceImpl.java @@ -8,6 +8,8 @@ import im.zhaojun.zfile.service.base.AbstractOneDriveServiceBase; import im.zhaojun.zfile.service.base.BaseFileService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; @@ -19,6 +21,7 @@ import java.util.Map; */ @Service @Slf4j +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class OneDriveServiceImpl extends AbstractOneDriveServiceBase implements BaseFileService { @Resource @@ -37,10 +40,11 @@ public class OneDriveServiceImpl extends AbstractOneDriveServiceBase implements protected String scope; @Override - public void init() { + public void init(Integer driveId) { try { + this.driveId = driveId; Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByKey(getStorageTypeEnum()); + storageConfigService.selectStorageConfigMapByDriveId(driveId); String accessToken = stringStorageConfigMap.get(StorageConfigConstant.ACCESS_TOKEN_KEY).getValue(); String refreshToken = stringStorageConfigMap.get(StorageConfigConstant.REFRESH_TOKEN_KEY).getValue(); super.basePath = stringStorageConfigMap.get(StorageConfigConstant.BASE_PATH).getValue(); diff --git a/src/main/java/im/zhaojun/zfile/service/impl/QiniuServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/QiniuServiceImpl.java index a442530..cfa3ccf 100644 --- a/src/main/java/im/zhaojun/zfile/service/impl/QiniuServiceImpl.java +++ b/src/main/java/im/zhaojun/zfile/service/impl/QiniuServiceImpl.java @@ -5,13 +5,15 @@ import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.client.builder.AwsClientBuilder; import com.amazonaws.services.s3.AmazonS3ClientBuilder; -import im.zhaojun.zfile.model.entity.StorageConfig; import im.zhaojun.zfile.model.constant.StorageConfigConstant; +import im.zhaojun.zfile.model.entity.StorageConfig; import im.zhaojun.zfile.model.enums.StorageTypeEnum; import im.zhaojun.zfile.service.base.AbstractS3BaseFileService; import im.zhaojun.zfile.service.base.BaseFileService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -23,15 +25,17 @@ import java.util.Objects; * @author zhaojun */ @Service +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class QiniuServiceImpl extends AbstractS3BaseFileService implements BaseFileService { private static final Logger log = LoggerFactory.getLogger(QiniuServiceImpl.class); @Override - public void init() { + public void init(Integer driveId) { try { + this.driveId = driveId; Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByKey(getStorageTypeEnum()); + storageConfigService.selectStorageConfigMapByDriveId(driveId); String accessKey = stringStorageConfigMap.get(StorageConfigConstant.ACCESS_KEY).getValue(); String secretKey = stringStorageConfigMap.get(StorageConfigConstant.SECRET_KEY).getValue(); String endPoint = stringStorageConfigMap.get(StorageConfigConstant.ENDPOINT_KEY).getValue(); @@ -63,14 +67,14 @@ public class QiniuServiceImpl extends AbstractS3BaseFileService implements BaseF } @Override - public List storageStrategyList() { + public List storageStrategyConfigList() { return new ArrayList() {{ add(new StorageConfig("accessKey", "AccessKey")); add(new StorageConfig("secretKey", "SecretKey")); - add(new StorageConfig("bucket-name", "存储空间名称")); + add(new StorageConfig("bucketName", "存储空间名称")); add(new StorageConfig("domain", "加速域名")); add(new StorageConfig("endPoint", "区域")); - add(new StorageConfig("base-path", "基路径")); + add(new StorageConfig("basePath", "基路径")); add(new StorageConfig("isPrivate", "是否是私有空间")); }}; } diff --git a/src/main/java/im/zhaojun/zfile/service/impl/AbstractS3Service.java b/src/main/java/im/zhaojun/zfile/service/impl/S3ServiceImpl.java similarity index 71% rename from src/main/java/im/zhaojun/zfile/service/impl/AbstractS3Service.java rename to src/main/java/im/zhaojun/zfile/service/impl/S3ServiceImpl.java index e5b44b0..792fc53 100644 --- a/src/main/java/im/zhaojun/zfile/service/impl/AbstractS3Service.java +++ b/src/main/java/im/zhaojun/zfile/service/impl/S3ServiceImpl.java @@ -5,15 +5,19 @@ import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.client.builder.AwsClientBuilder; import com.amazonaws.services.s3.AmazonS3ClientBuilder; -import im.zhaojun.zfile.model.entity.StorageConfig; import im.zhaojun.zfile.model.constant.StorageConfigConstant; +import im.zhaojun.zfile.model.entity.StorageConfig; import im.zhaojun.zfile.model.enums.StorageTypeEnum; import im.zhaojun.zfile.service.base.AbstractS3BaseFileService; import im.zhaojun.zfile.service.base.BaseFileService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; import java.util.Map; import java.util.Objects; @@ -21,15 +25,17 @@ import java.util.Objects; * @author zhaojun */ @Service -public abstract class AbstractS3Service extends AbstractS3BaseFileService implements BaseFileService { +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) +public class S3ServiceImpl extends AbstractS3BaseFileService implements BaseFileService { - private static final Logger log = LoggerFactory.getLogger(AbstractS3Service.class); + private static final Logger log = LoggerFactory.getLogger(S3ServiceImpl.class); @Override - public void init() { + public void init(Integer driveId) { try { + this.driveId = driveId; Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByKey(getStorageTypeEnum()); + storageConfigService.selectStorageConfigMapByDriveId(driveId); String accessKey = stringStorageConfigMap.get(StorageConfigConstant.ACCESS_KEY).getValue(); String secretKey = stringStorageConfigMap.get(StorageConfigConstant.SECRET_KEY).getValue(); String endPoint = stringStorageConfigMap.get(StorageConfigConstant.ENDPOINT_KEY).getValue(); @@ -65,4 +71,17 @@ public abstract class AbstractS3Service extends AbstractS3BaseFileService implem return StorageTypeEnum.S3; } + @Override + public List storageStrategyConfigList() { + return new ArrayList() {{ + add(new StorageConfig("accessKey", "AccessKey")); + add(new StorageConfig("secretKey", "SecretKey")); + add(new StorageConfig("endPoint", "服务地址(EndPoint)")); + add(new StorageConfig("bucketName", "存储空间名称")); + add(new StorageConfig("basePath", "基路径")); + add(new StorageConfig("domain", "加速域名")); + add(new StorageConfig("pathStyle", "域名风格")); + add(new StorageConfig("isPrivate", "是否是私有空间")); + }}; + } } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/impl/TencentServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/TencentServiceImpl.java index e0e7ea9..ecea8d3 100644 --- a/src/main/java/im/zhaojun/zfile/service/impl/TencentServiceImpl.java +++ b/src/main/java/im/zhaojun/zfile/service/impl/TencentServiceImpl.java @@ -5,13 +5,15 @@ import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.client.builder.AwsClientBuilder; import com.amazonaws.services.s3.AmazonS3ClientBuilder; -import im.zhaojun.zfile.model.entity.StorageConfig; import im.zhaojun.zfile.model.constant.StorageConfigConstant; +import im.zhaojun.zfile.model.entity.StorageConfig; import im.zhaojun.zfile.model.enums.StorageTypeEnum; import im.zhaojun.zfile.service.base.AbstractS3BaseFileService; import im.zhaojun.zfile.service.base.BaseFileService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -23,15 +25,17 @@ import java.util.Objects; * @author zhaojun */ @Service +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class TencentServiceImpl extends AbstractS3BaseFileService implements BaseFileService { private static final Logger log = LoggerFactory.getLogger(TencentServiceImpl.class); @Override - public void init() { + public void init(Integer driveId) { try { + this.driveId = driveId; Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByKey(getStorageTypeEnum()); + storageConfigService.selectStorageConfigMapByDriveId(driveId); String secretId = stringStorageConfigMap.get(StorageConfigConstant.SECRET_ID_KEY).getValue(); String secretKey = stringStorageConfigMap.get(StorageConfigConstant.SECRET_KEY).getValue(); String endPoint = stringStorageConfigMap.get(StorageConfigConstant.ENDPOINT_KEY).getValue(); @@ -63,14 +67,14 @@ public class TencentServiceImpl extends AbstractS3BaseFileService implements Bas } @Override - public List storageStrategyList() { + public List storageStrategyConfigList() { return new ArrayList() {{ add(new StorageConfig("secretId", "SecretId")); add(new StorageConfig("secretKey", "SecretKey")); - add(new StorageConfig("bucket-name", "云存储服务名称")); + add(new StorageConfig("bucketName", "云存储服务名称")); add(new StorageConfig("domain", "加速域名")); add(new StorageConfig("endPoint", "区域")); - add(new StorageConfig("base-path", "基路径")); + add(new StorageConfig("basePath", "基路径")); add(new StorageConfig("isPrivate", "是否是私有空间")); }}; } diff --git a/src/main/java/im/zhaojun/zfile/service/impl/UFileServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/UFileServiceImpl.java index d53df3d..be9e259 100644 --- a/src/main/java/im/zhaojun/zfile/service/impl/UFileServiceImpl.java +++ b/src/main/java/im/zhaojun/zfile/service/impl/UFileServiceImpl.java @@ -1,12 +1,15 @@ package im.zhaojun.zfile.service.impl; import im.zhaojun.zfile.model.enums.StorageTypeEnum; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; /** * @author zhaojun */ @Service +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class UFileServiceImpl extends UpYunServiceImpl { @Override diff --git a/src/main/java/im/zhaojun/zfile/service/impl/UpYunServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/UpYunServiceImpl.java index 4ee76bc..1f05649 100644 --- a/src/main/java/im/zhaojun/zfile/service/impl/UpYunServiceImpl.java +++ b/src/main/java/im/zhaojun/zfile/service/impl/UpYunServiceImpl.java @@ -3,21 +3,26 @@ package im.zhaojun.zfile.service.impl; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.URLUtil; import com.UpYun; +import com.upyun.UpException; import im.zhaojun.zfile.exception.NotExistFileException; -import im.zhaojun.zfile.model.entity.StorageConfig; import im.zhaojun.zfile.model.constant.StorageConfigConstant; import im.zhaojun.zfile.model.dto.FileItemDTO; +import im.zhaojun.zfile.model.entity.StorageConfig; import im.zhaojun.zfile.model.enums.FileTypeEnum; import im.zhaojun.zfile.model.enums.StorageTypeEnum; +import im.zhaojun.zfile.service.StorageConfigService; import im.zhaojun.zfile.service.base.AbstractBaseFileService; import im.zhaojun.zfile.service.base.BaseFileService; -import im.zhaojun.zfile.service.StorageConfigService; import im.zhaojun.zfile.util.StringUtils; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.io.IOException; import java.util.ArrayList; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -28,6 +33,7 @@ import java.util.Objects; */ @Service @Slf4j +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class UpYunServiceImpl extends AbstractBaseFileService implements BaseFileService { private static final String END_MARK = "g2gCZAAEbmV4dGQAA2VvZg"; @@ -42,10 +48,11 @@ public class UpYunServiceImpl extends AbstractBaseFileService implements BaseFil private String basePath; @Override - public void init() { + public void init(Integer driveId) { try { + this.driveId = driveId; Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByKey(getStorageTypeEnum()); + storageConfigService.selectStorageConfigMapByDriveId(driveId); String bucketName = stringStorageConfigMap.get(StorageConfigConstant.BUCKET_NAME_KEY).getValue(); String username = stringStorageConfigMap.get(StorageConfigConstant.USERNAME_KEY).getValue(); String password = stringStorageConfigMap.get(StorageConfigConstant.PASSWORD_KEY).getValue(); @@ -111,32 +118,44 @@ public class UpYunServiceImpl extends AbstractBaseFileService implements BaseFil @Override public FileItemDTO getFileItem(String path) { - List list; try { - int end = path.lastIndexOf("/"); - list = fileList(path.substring(0, end)); - } catch (Exception e) { - throw new NotExistFileException(); - } + int lastDelimiterIndex = path.lastIndexOf("/"); + String name = path.substring(lastDelimiterIndex + 1); - for (FileItemDTO fileItemDTO : list) { - String fullPath = StringUtils.concatUrl(fileItemDTO.getPath(), fileItemDTO.getName()); - if (Objects.equals(fullPath, path)) { - return fileItemDTO; + Map fileInfo = upYun.getFileInfo(StringUtils.removeDuplicateSeparator(basePath + "/" + path)); + + if (fileInfo == null) { + throw new NotExistFileException(); } + + FileItemDTO fileItemDTO = new FileItemDTO(); + fileItemDTO.setName(name); + fileItemDTO.setSize(Long.valueOf(fileInfo.get("size"))); + fileItemDTO.setTime(new Date(Long.parseLong(fileInfo.get("date")) * 1000)); + fileItemDTO.setPath(path); + + if ("folder".equals(fileInfo.get("type"))) { + fileItemDTO.setType(FileTypeEnum.FOLDER); + } else { + fileItemDTO.setType(FileTypeEnum.FILE); + fileItemDTO.setUrl(getDownloadUrl(StringUtils.removeDuplicateSeparator(basePath + "/" + path))); + } + return fileItemDTO; + } catch (IOException | UpException e) { + e.printStackTrace(); } throw new NotExistFileException(); } @Override - public List storageStrategyList() { + public List storageStrategyConfigList() { return new ArrayList() {{ - add(new StorageConfig("bucket-name", "云存储服务名称")); + add(new StorageConfig("bucketName", "云存储服务名称")); add(new StorageConfig("username", "操作员名称")); add(new StorageConfig("password", "操作员密码")); add(new StorageConfig("domain", "加速域名")); - add(new StorageConfig("base-path", "基路径")); + add(new StorageConfig("basePath", "基路径")); }}; } diff --git a/src/main/java/im/zhaojun/zfile/service/support/FileAsyncCacheService.java b/src/main/java/im/zhaojun/zfile/service/support/FileAsyncCacheService.java deleted file mode 100644 index a80fd15..0000000 --- a/src/main/java/im/zhaojun/zfile/service/support/FileAsyncCacheService.java +++ /dev/null @@ -1,191 +0,0 @@ -package im.zhaojun.zfile.service.support; - -import im.zhaojun.zfile.cache.ZFileCache; -import im.zhaojun.zfile.config.StorageTypeFactory; -import im.zhaojun.zfile.model.dto.FileItemDTO; -import im.zhaojun.zfile.model.enums.FileTypeEnum; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.service.SystemConfigService; -import im.zhaojun.zfile.service.base.AbstractBaseFileService; -import im.zhaojun.zfile.service.base.BaseFileService; -import im.zhaojun.zfile.util.StringUtils; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.scheduling.annotation.Async; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Objects; -import java.util.Set; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; - -/** - * @author zhaojun - */ -@Slf4j -@Service -public class FileAsyncCacheService { - - public static final String CACHE_PROCESS_PREFIX = "zfile-process-cache:"; - - private boolean cacheFinish; - - @Resource - private SystemConfigService systemConfigService; - - private volatile boolean stopFlag = false; - - @Resource - private ZFileCache zFileCache; - - @Value("${zfile.cache.auto-refresh.enable}") - protected boolean enableAutoRefreshCache; - - @Value("${zfile.cache.auto-refresh.delay}") - protected Long delay; - - @Value("${zfile.cache.auto-refresh.interval}") - protected Long interval; - - @Async - public void cacheGlobalFile() { - stopFlag = false; - StorageTypeEnum storageStrategy = systemConfigService.getCurrentStorageStrategy(); - - if (storageStrategy == null) { - log.debug("尚未配置存储策略. 跳过启动缓存."); - return; - } - - boolean enableCache = systemConfigService.getEnableCache(); - if (!enableCache) { - log.debug("存储策略 {} 未启用缓存, 跳过缓存.", storageStrategy.getDescription()); - return; - } - - AbstractBaseFileService fileService = StorageTypeFactory.getStorageTypeService(storageStrategy); - - if (fileService.getIsUnInitialized()) { - log.debug("存储策略 {} 未初始化成功, 跳过缓存.", storageStrategy.getDescription()); - return; - } - - log.info("缓存 {} 所有文件开始", storageStrategy.getDescription()); - long startTime = System.currentTimeMillis(); - try { - BaseFileService currentFileService = systemConfigService.getCurrentFileService(); - List rootFileItems = currentFileService.fileList("/"); - ArrayDeque queue = new ArrayDeque<>(rootFileItems); - - while (!queue.isEmpty()) { - FileItemDTO fileItemDTO = queue.pop(); - - if (stopFlag) { - zFileCache.clear(); - break; - } - - if (fileItemDTO.getType() == FileTypeEnum.FOLDER) { - String filePath = StringUtils.removeDuplicateSeparator("/" + fileItemDTO.getPath() + "/" + fileItemDTO.getName() + "/"); - - List fileItems = currentFileService.fileList(filePath); - queue.addAll(fileItems); - } - } - } catch (Exception e) { - log.error("缓存所有文件失败", e); - e.printStackTrace(); - } - long endTime = System.currentTimeMillis(); - - if (stopFlag) { - log.info("缓存 {} 所有文件被强制结束, 用时: {} 秒", storageStrategy.getDescription(), ((endTime - startTime) / 1000)); - cacheFinish = false; - stopFlag = false; - } else { - log.info("缓存 {} 所有文件结束, 用时: {} 秒", storageStrategy.getDescription(), ((endTime - startTime) / 1000)); - enableCacheAutoRefreshTask(); - cacheFinish = true; - stopFlag = false; - } - } - - private void enableCacheAutoRefreshTask() { - StorageTypeEnum currentStorageStrategy = systemConfigService.getCurrentStorageStrategy(); - - if (enableAutoRefreshCache) { - ScheduledExecutorService scheduledExecutorService = Executors.newSingleThreadScheduledExecutor(); - scheduledExecutorService.scheduleWithFixedDelay(() -> { - zFileCache.setLastCacheAutoRefreshDate(new Date()); - - boolean enableCache = systemConfigService.getEnableCache(); - - if (!enableCache) { - log.debug("当前存储引擎未开启缓存, 跳过自动刷新缓存"); - zFileCache.clear(); - return; - } - - log.debug("开始调用自动刷新缓存"); - - Set keySet = zFileCache.keySet(); - - ArrayList keys = new ArrayList<>(keySet); - - - for (String key : keys) { - try { - Thread.sleep(300); - } catch (InterruptedException e) { - e.printStackTrace(); - } - - if (stopFlag) { - break; - } - - zFileCache.remove(key); - AbstractBaseFileService currentFileService = systemConfigService.getCurrentFileService(); - try { - if (Objects.equals(currentStorageStrategy, systemConfigService.getCurrentStorageStrategy())) { - currentFileService.fileList(key); - } - } catch (Exception e) { - log.error("刷新过程中出错 : [" + key + "]", e); - } - } - - if (stopFlag) { - log.debug("检测到停止 [{}] 缓存指令, 已停止自动刷新任务", currentStorageStrategy); - scheduledExecutorService.shutdownNow(); - stopFlag = false; - } else { - log.debug("自动刷新缓存完成"); - } - }, delay, interval, TimeUnit.SECONDS); - } - } - - public void stopScheduled() { - this.stopFlag = true; - } - - public void enableScheduled() { - this.stopFlag = false; - } - - public boolean isCacheFinish() { - return cacheFinish; - } - - public void setCacheFinish(boolean cacheFinish) { - this.cacheFinish = cacheFinish; - } - -} diff --git a/src/main/java/im/zhaojun/zfile/service/support/FileCacheService.java b/src/main/java/im/zhaojun/zfile/service/support/FileCacheService.java deleted file mode 100644 index 97bc6d2..0000000 --- a/src/main/java/im/zhaojun/zfile/service/support/FileCacheService.java +++ /dev/null @@ -1,38 +0,0 @@ -package im.zhaojun.zfile.service.support; - -import im.zhaojun.zfile.cache.ZFileCache; -import im.zhaojun.zfile.service.SystemConfigService; -import org.springframework.context.annotation.Lazy; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; - -/** - * @author zhaojun - */ -@Service -public class FileCacheService { - - @Resource - private SystemConfigService systemConfigService; - - @Resource - @Lazy - private FileAsyncCacheService fileAsyncCacheService; - - @Resource - private ZFileCache zFileCache; - - public void enableCache() { - systemConfigService.updateCacheEnableConfig(true); - fileAsyncCacheService.cacheGlobalFile(); - } - - public void disableCache() { - systemConfigService.updateCacheEnableConfig(false); - zFileCache.clear(); - fileAsyncCacheService.setCacheFinish(false); - fileAsyncCacheService.stopScheduled(); - } - -} diff --git a/src/main/java/im/zhaojun/zfile/util/AudioHelper.java b/src/main/java/im/zhaojun/zfile/util/AudioHelper.java index a1578af..1466775 100644 --- a/src/main/java/im/zhaojun/zfile/util/AudioHelper.java +++ b/src/main/java/im/zhaojun/zfile/util/AudioHelper.java @@ -35,6 +35,12 @@ public class AudioHelper { url = url.replace(query, URLUtil.encode(query)); } + // 如果音乐文件大小超出 5M, 则不解析此音乐 + if (im.zhaojun.zfile.util.HttpUtil.getRemoteFileSize(url) + > (1024 * 1024 * ZFileConstant.AUDIO_MAX_FILE_SIZE_MB)) { + return AudioInfoDTO.buildDefaultAudioInfoDTO(); + } + File file = new File(ZFileConstant.USER_HOME + ZFileConstant.AUDIO_TMP_PATH + UUID.fastUUID()); FileUtil.mkParentDirs(file); HttpUtil.downloadFile(url, file); @@ -45,10 +51,7 @@ public class AudioHelper { } private static AudioInfoDTO parseAudioInfo(File file) throws IOException, UnsupportedTagException { - AudioInfoDTO audioInfoDTO = new AudioInfoDTO(); - audioInfoDTO.setTitle("未知歌曲"); - audioInfoDTO.setArtist("未知"); - audioInfoDTO.setCover("http://c.jun6.net/audio.png"); + AudioInfoDTO audioInfoDTO = AudioInfoDTO.buildDefaultAudioInfoDTO(); Mp3File mp3File = null; try { diff --git a/src/main/java/im/zhaojun/zfile/util/HttpUtil.java b/src/main/java/im/zhaojun/zfile/util/HttpUtil.java index 5459dde..5d5cef3 100644 --- a/src/main/java/im/zhaojun/zfile/util/HttpUtil.java +++ b/src/main/java/im/zhaojun/zfile/util/HttpUtil.java @@ -1,7 +1,9 @@ package im.zhaojun.zfile.util; +import im.zhaojun.zfile.exception.PreviewException; +import im.zhaojun.zfile.model.constant.ZFileConstant; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.client.RestClientException; +import org.springframework.http.HttpHeaders; import org.springframework.web.client.RestTemplate; /** @@ -10,20 +12,26 @@ import org.springframework.web.client.RestTemplate; @Slf4j public class HttpUtil { + /** + * 最大支持文件预览大小: 1M + */ public static String getTextContent(String url) { RestTemplate restTemplate = SpringContextHolder.getBean("restTemplate"); + + if (getRemoteFileSize(url) > (1024 * ZFileConstant.TEXT_MAX_FILE_SIZE_KB)) { + throw new PreviewException("存储源跨域请求失败, 服务器中转状态, 预览文件超出大小, 最大支持 1M"); + } + String result = restTemplate.getForObject(url, String.class); return result == null ? "" : result; } - public static boolean checkUrlExist(String url) { - RestTemplate restTemplate = SpringContextHolder.getBean("restTemplate"); - try { - restTemplate.headForHeaders(url); - return true; - } catch (RestClientException ignored) { - } - return false; + /** + * 获取远程文件大小 + */ + public static Long getRemoteFileSize(String url) { + HttpHeaders httpHeaders = new RestTemplate().headForHeaders(url); + return httpHeaders.getContentLength(); } } diff --git a/src/main/java/im/zhaojun/zfile/util/SpringContextHolder.java b/src/main/java/im/zhaojun/zfile/util/SpringContextHolder.java index 3f82f73..37d7daa 100644 --- a/src/main/java/im/zhaojun/zfile/util/SpringContextHolder.java +++ b/src/main/java/im/zhaojun/zfile/util/SpringContextHolder.java @@ -6,15 +6,15 @@ import org.springframework.beans.BeansException; import org.springframework.beans.factory.DisposableBean; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; -import org.springframework.context.annotation.Lazy; import org.springframework.lang.NonNull; import org.springframework.stereotype.Service; +import java.util.Map; + /** * @author zhaojun */ @Service -@Lazy(false) public class SpringContextHolder implements ApplicationContextAware, DisposableBean { private static ApplicationContext applicationContext = null; @@ -67,4 +67,8 @@ public class SpringContextHolder implements ApplicationContextAware, DisposableB SpringContextHolder.applicationContext = applicationContext; } + public static Map getBeansOfType(Class classz) { + return applicationContext.getBeansOfType(classz); + } + } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/util/StartupListener.java b/src/main/java/im/zhaojun/zfile/util/StartupListener.java index b77f754..e889050 100644 --- a/src/main/java/im/zhaojun/zfile/util/StartupListener.java +++ b/src/main/java/im/zhaojun/zfile/util/StartupListener.java @@ -1,8 +1,6 @@ package im.zhaojun.zfile.util; import cn.hutool.core.net.NetUtil; -import im.zhaojun.zfile.exception.InitializeException; -import im.zhaojun.zfile.service.support.FileAsyncCacheService; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.context.event.ApplicationStartedEvent; import org.springframework.context.ApplicationListener; @@ -21,16 +19,12 @@ import java.util.LinkedHashSet; @Slf4j public class StartupListener implements ApplicationListener { - @Resource - private FileAsyncCacheService fileAsyncCacheService; - @Resource private Environment environment; @Override public void onApplicationEvent(@NonNull ApplicationStartedEvent event) { printStartInfo(); - cacheAllFile(); } @@ -49,11 +43,11 @@ public class StartupListener implements ApplicationListener.scrollbar,.monaco-editor.vs .monaco-scrollable-element>.scrollbar{-ms-high-contrast-adjust:none;background:background!important;border:1px solid windowtext;-webkit-box-sizing:border-box;box-sizing:border-box}.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider,.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider{background:windowtext!important}.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider.active,.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider:hover,.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider.active,.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider:hover{background:highlight!important}.monaco-editor.vs-dark .decorationsOverviewRuler,.monaco-editor.vs .decorationsOverviewRuler{opacity:0}.monaco-editor.vs-dark .minimap,.monaco-editor.vs .minimap{display:none}.monaco-editor.vs-dark .squiggly-d-error,.monaco-editor.vs .squiggly-d-error{background:transparent!important;border-bottom:4px double #e47777}.monaco-editor.vs-dark .squiggly-b-info,.monaco-editor.vs-dark .squiggly-c-warning,.monaco-editor.vs .squiggly-b-info,.monaco-editor.vs .squiggly-c-warning{border-bottom:4px double #71b771}.monaco-editor.vs-dark .squiggly-a-hint,.monaco-editor.vs .squiggly-a-hint{border-bottom:4px double #6c6c6c}.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label{-ms-high-contrast-adjust:none;color:highlighttext!important;background-color:highlight!important}.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label,.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label{-ms-high-contrast-adjust:none;background:transparent!important;border:1px solid highlight;-webkit-box-sizing:border-box;box-sizing:border-box}.monaco-diff-editor.vs-dark .diffOverviewRuler,.monaco-diff-editor.vs .diffOverviewRuler{display:none}.monaco-editor.vs-dark .line-delete,.monaco-editor.vs-dark .line-insert,.monaco-editor.vs .line-delete,.monaco-editor.vs .line-insert{background:transparent!important;border:1px solid highlight!important;-webkit-box-sizing:border-box;box-sizing:border-box}.monaco-editor.vs-dark .char-delete,.monaco-editor.vs-dark .char-insert,.monaco-editor.vs .char-delete,.monaco-editor.vs .char-insert{background:transparent!important}}.monaco-aria-container{position:absolute;left:-999em}::-ms-clear{display:none}.monaco-editor .editor-widget input{color:inherit}.monaco-editor{position:relative;overflow:visible;-webkit-text-size-adjust:100%}.monaco-editor .overflow-guard{position:relative;overflow:hidden}.monaco-editor .view-overlays{position:absolute;top:0}.monaco-editor .inputarea{min-width:0;min-height:0;margin:0;padding:0;position:absolute;outline:none!important;resize:none;border:none;overflow:hidden;color:transparent;background-color:transparent}.monaco-editor .inputarea.ime-input{z-index:10}.monaco-editor .margin-view-overlays .line-numbers{position:absolute;text-align:right;display:inline-block;vertical-align:middle;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:default;height:100%}.monaco-editor .relative-current-line-number{text-align:left;display:inline-block;width:100%}.monaco-editor .margin-view-overlays .line-numbers.lh-odd{margin-top:1px}.monaco-editor .margin-view-overlays .current-line,.monaco-editor .view-overlays .current-line{display:block;position:absolute;left:0;top:0;-webkit-box-sizing:border-box;box-sizing:border-box}.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both{border-right:0}.monaco-editor .lines-content .cdr{position:absolute}.monaco-scrollable-element>.scrollbar>.up-arrow{background:url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTEgMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkuNDggOC45NjFsMS4yNi0xLjI2LTUuMDQtNS4wNC01LjQ2IDUuMDQgMS4yNiAxLjI2IDQuMi0zLjc4IDMuNzggMy43OHoiIGZpbGw9IiM0MjQyNDIiLz48L3N2Zz4=");cursor:pointer}.monaco-scrollable-element>.scrollbar>.down-arrow{background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMSAxMSI+PHBhdGggZmlsbD0iIzQyNDI0MiIgZD0iTTEuNSAyLjY2MkwuMjQgMy45MjJsNS4wNCA1LjA0IDUuNDYtNS4wNC0xLjI2LTEuMjYtNC4yIDMuNzgtMy43OC0zLjc4eiIvPjwvc3ZnPg==");cursor:pointer}.monaco-scrollable-element>.scrollbar>.left-arrow{background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMSAxMSI+PHBhdGggZmlsbD0iIzQyNDI0MiIgZD0iTTguNjQgMS40NDFMNy4zOC4xODFsLTUuMDQgNS4wNCA1LjA0IDUuNDYgMS4yNi0xLjI2LTMuNzgtNC4yIDMuNzgtMy43OHoiLz48L3N2Zz4=");cursor:pointer}.monaco-scrollable-element>.scrollbar>.right-arrow{background:url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTEgMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iIzQyNDI0MiIgZD0iTTIuNDY3IDkuNTQ4bDEuMjYgMS4yNiA1LjA0LTUuMDQtNS4wNC01LjQ2LTEuMjYgMS4yNiAzLjc4IDQuMi0zLjc4IDMuNzh6Ii8+PC9zdmc+");cursor:pointer}.hc-black .monaco-scrollable-element>.scrollbar>.up-arrow,.vs-dark .monaco-scrollable-element>.scrollbar>.up-arrow{background:url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTEgMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkuNDggOC45NjFsMS4yNi0xLjI2LTUuMDQtNS4wNC01LjQ2IDUuMDQgMS4yNiAxLjI2IDQuMi0zLjc4IDMuNzggMy43OHoiIGZpbGw9IiNFOEU4RTgiLz48L3N2Zz4=")}.hc-black .monaco-scrollable-element>.scrollbar>.down-arrow,.vs-dark .monaco-scrollable-element>.scrollbar>.down-arrow{background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMSAxMSI+PHBhdGggZmlsbD0iI0U4RThFOCIgZD0iTTEuNSAyLjY2MkwuMjQgMy45MjJsNS4wNCA1LjA0IDUuNDYtNS4wNC0xLjI2LTEuMjYtNC4yIDMuNzgtMy43OC0zLjc4eiIvPjwvc3ZnPg==")}.hc-black .monaco-scrollable-element>.scrollbar>.left-arrow,.vs-dark .monaco-scrollable-element>.scrollbar>.left-arrow{background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMSAxMSI+PHBhdGggZmlsbD0iI0U4RThFOCIgZD0iTTguNjQgMS40NDFMNy4zOC4xODFsLTUuMDQgNS4wNCA1LjA0IDUuNDYgMS4yNi0xLjI2LTMuNzgtNC4yIDMuNzgtMy43OHoiLz48L3N2Zz4=")}.hc-black .monaco-scrollable-element>.scrollbar>.right-arrow,.vs-dark .monaco-scrollable-element>.scrollbar>.right-arrow{background:url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTEgMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0U4RThFOCIgZD0iTTIuNDY3IDkuNTQ4bDEuMjYgMS4yNiA1LjA0LTUuMDQtNS4wNC01LjQ2LTEuMjYgMS4yNiAzLjc4IDQuMi0zLjc4IDMuNzh6Ii8+PC9zdmc+")}.monaco-scrollable-element>.visible{opacity:1;background:transparent;-webkit-transition:opacity .1s linear;transition:opacity .1s linear}.monaco-scrollable-element>.invisible{opacity:0;pointer-events:none}.monaco-scrollable-element>.invisible.fade{-webkit-transition:opacity .8s linear;transition:opacity .8s linear}.monaco-scrollable-element>.shadow{position:absolute;display:none}.monaco-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;-webkit-box-shadow:#ddd 0 6px 6px -6px inset;box-shadow:inset 0 6px 6px -6px #ddd}.monaco-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;-webkit-box-shadow:#ddd 6px 0 6px -6px inset;box-shadow:inset 6px 0 6px -6px #ddd}.monaco-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.monaco-scrollable-element>.shadow.top.left{-webkit-box-shadow:#ddd 6px 6px 6px -6px inset;box-shadow:inset 6px 6px 6px -6px #ddd}.vs .monaco-scrollable-element>.scrollbar>.slider{background:hsla(0,0%,39.2%,.4)}.vs-dark .monaco-scrollable-element>.scrollbar>.slider{background:hsla(0,0%,47.5%,.4)}.hc-black .monaco-scrollable-element>.scrollbar>.slider{background:rgba(111,195,223,.6)}.monaco-scrollable-element>.scrollbar>.slider:hover{background:hsla(0,0%,39.2%,.7)}.hc-black .monaco-scrollable-element>.scrollbar>.slider:hover{background:rgba(111,195,223,.8)}.monaco-scrollable-element>.scrollbar>.slider.active{background:rgba(0,0,0,.6)}.vs-dark .monaco-scrollable-element>.scrollbar>.slider.active{background:hsla(0,0%,74.9%,.4)}.hc-black .monaco-scrollable-element>.scrollbar>.slider.active{background:#6fc3df}.vs-dark .monaco-scrollable-element .shadow.top{-webkit-box-shadow:none;box-shadow:none}.vs-dark .monaco-scrollable-element .shadow.left{-webkit-box-shadow:#000 6px 0 6px -6px inset;box-shadow:inset 6px 0 6px -6px #000}.vs-dark .monaco-scrollable-element .shadow.top.left{-webkit-box-shadow:#000 6px 6px 6px -6px inset;box-shadow:inset 6px 6px 6px -6px #000}.hc-black .monaco-scrollable-element .shadow.left,.hc-black .monaco-scrollable-element .shadow.top,.hc-black .monaco-scrollable-element .shadow.top.left{-webkit-box-shadow:none;box-shadow:none}.monaco-editor .glyph-margin{position:absolute;top:0}.monaco-editor .margin-view-overlays .cgmr{position:absolute;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.monaco-editor .lines-content .cigr,.monaco-editor .lines-content .cigra{position:absolute}.monaco-editor.no-user-select .lines-content,.monaco-editor.no-user-select .view-line,.monaco-editor.no-user-select .view-lines{-moz-user-select:none;user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-editor .view-lines{cursor:text;white-space:nowrap}.monaco-editor.hc-black.mac .view-lines,.monaco-editor.vs-dark.mac .view-lines{cursor:-webkit-image-set(url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAL0lEQVQoz2NgCD3x//9/BhBYBWdhgFVAiVW4JBFKGIa4AqD0//9D3pt4I4tAdAMAHTQ/j5Zom30AAAAASUVORK5CYII=) 1x,url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAAz0lEQVRIx2NgYGBY/R8I/vx5eelX3n82IJ9FxGf6tksvf/8FiTMQAcAGQMDvSwu09abffY8QYSAScNk45G198eX//yev73/4///701eh//kZSARckrNBRvz//+8+6ZohwCzjGNjdgQxkAg7B9WADeBjIBqtJCbhRA0YNoIkBSNmaPEMoNmA0FkYNoFKhapJ6FGyAH3nauaSmPfwI0v/3OukVi0CIZ+F25KrtYcx/CTIy0e+rC7R1Z4KMICVTQQ14feVXIbR695u14+Ir4gwAAD49E54wc1kWAAAAAElFTkSuQmCC) 2x) 5 8,text}.monaco-editor .view-line{position:absolute;width:100%}.monaco-editor .lines-decorations{position:absolute;top:0;background:#fff}.monaco-editor .margin-view-overlays .cldr{position:absolute;height:100%}.monaco-editor .margin-view-overlays .cmdr{position:absolute;left:0;width:100%;height:100%}.monaco-editor .minimap.slider-mouseover .minimap-slider{opacity:0;-webkit-transition:opacity .1s linear;transition:opacity .1s linear}.monaco-editor .minimap.slider-mouseover .minimap-slider.active,.monaco-editor .minimap.slider-mouseover:hover .minimap-slider{opacity:1}.monaco-editor .minimap-shadow-hidden{position:absolute;width:0}.monaco-editor .minimap-shadow-visible{position:absolute;left:-6px;width:6px}.monaco-editor .overlayWidgets{position:absolute;top:0;left:0}.monaco-editor .view-ruler{position:absolute;top:0}.monaco-editor .scroll-decoration{position:absolute;top:0;left:0;height:6px}.monaco-editor .lines-content .cslr{position:absolute}.monaco-editor .top-left-radius{border-top-left-radius:3px}.monaco-editor .bottom-left-radius{border-bottom-left-radius:3px}.monaco-editor .top-right-radius{border-top-right-radius:3px}.monaco-editor .bottom-right-radius{border-bottom-right-radius:3px}.monaco-editor.hc-black .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-black .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-black .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-black .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor .cursors-layer{position:absolute;top:0}.monaco-editor .cursors-layer>.cursor{position:absolute;cursor:text;overflow:hidden}.monaco-editor .cursors-layer.cursor-smooth-caret-animation>.cursor{-webkit-transition:all 80ms;transition:all 80ms}.monaco-editor .cursors-layer.cursor-block-outline-style>.cursor{-webkit-box-sizing:border-box;box-sizing:border-box;background:transparent!important;border-style:solid;border-width:1px}.monaco-editor .cursors-layer.cursor-underline-style>.cursor{border-bottom-width:2px;border-bottom-style:solid;background:transparent!important;-webkit-box-sizing:border-box;box-sizing:border-box}.monaco-editor .cursors-layer.cursor-underline-thin-style>.cursor{border-bottom-width:1px;border-bottom-style:solid;background:transparent!important;-webkit-box-sizing:border-box;box-sizing:border-box}@-webkit-keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@-webkit-keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@-webkit-keyframes monaco-cursor-expand{0%,20%{-webkit-transform:scaleY(1);transform:scaleY(1)}80%,to{-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes monaco-cursor-expand{0%,20%{-webkit-transform:scaleY(1);transform:scaleY(1)}80%,to{-webkit-transform:scaleY(0);transform:scaleY(0)}}.cursor-smooth{-webkit-animation:monaco-cursor-smooth .5s ease-in-out 0s 20 alternate;animation:monaco-cursor-smooth .5s ease-in-out 0s 20 alternate}.cursor-phase{-webkit-animation:monaco-cursor-phase .5s ease-in-out 0s 20 alternate;animation:monaco-cursor-phase .5s ease-in-out 0s 20 alternate}.cursor-expand>.cursor{-webkit-animation:monaco-cursor-expand .5s ease-in-out 0s 20 alternate;animation:monaco-cursor-expand .5s ease-in-out 0s 20 alternate}.monaco-diff-editor .diffOverview{z-index:9}.monaco-diff-editor.vs .diffOverview{background:rgba(0,0,0,.03)}.monaco-diff-editor.vs-dark .diffOverview{background:hsla(0,0%,100%,.01)}.monaco-diff-editor .diffViewport{-webkit-box-shadow:inset 0 0 1px 0 #b9b9b9;box-shadow:inset 0 0 1px 0 #b9b9b9;background:rgba(0,0,0,.1)}.monaco-diff-editor.hc-black .diffViewport,.monaco-diff-editor.vs-dark .diffViewport{background:hsla(0,0%,100%,.1)}.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar{background:transparent}.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar{background:none}.monaco-scrollable-element.modified-in-monaco-diff-editor .slider{z-index:10}.modified-in-monaco-diff-editor .slider.active{background:hsla(0,0%,67.1%,.4)}.modified-in-monaco-diff-editor.hc-black .slider.active{background:none}.monaco-diff-editor .delete-sign,.monaco-diff-editor .insert-sign,.monaco-editor .delete-sign,.monaco-editor .insert-sign{font-size:11px!important;opacity:.7!important;display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.monaco-diff-editor.hc-black .delete-sign,.monaco-diff-editor.hc-black .insert-sign,.monaco-editor.hc-black .delete-sign,.monaco-editor.hc-black .insert-sign{opacity:1}.monaco-editor .inline-added-margin-view-zone,.monaco-editor .inline-deleted-margin-view-zone{text-align:right}.monaco-editor .diagonal-fill{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAChJREFUKFNjOH/+fAMDDgCSu3Dhwn9c8gwwBTgNGR4KQP4HhQOhsAIAZCBTkhtqePcAAAAASUVORK5CYII=")}.monaco-editor.vs-dark .diagonal-fill{opacity:.2}.monaco-editor.hc-black .diagonal-fill{background:none}.monaco-editor .view-zones .view-lines .view-line span{display:inline-block}.monaco-editor .margin-view-zones .lightbulb-glyph:hover{cursor:pointer}.monaco-sash{position:absolute;z-index:35;-ms-touch-action:none;touch-action:none}.monaco-sash.disabled{pointer-events:none}.monaco-sash.vertical{cursor:ew-resize;top:0;width:4px;height:100%}.monaco-sash.mac.vertical{cursor:col-resize}.monaco-sash.vertical.minimum{cursor:e-resize}.monaco-sash.vertical.maximum{cursor:w-resize}.monaco-sash.horizontal{cursor:ns-resize;left:0;width:100%;height:4px}.monaco-sash.mac.horizontal{cursor:row-resize}.monaco-sash.horizontal.minimum{cursor:s-resize}.monaco-sash.horizontal.maximum{cursor:n-resize}.monaco-sash:not(.disabled).orthogonal-end:after,.monaco-sash:not(.disabled).orthogonal-start:before{content:" ";height:8px;width:8px;z-index:100;display:block;cursor:all-scroll;position:absolute}.monaco-sash.orthogonal-start.vertical:before{left:-2px;top:-4px}.monaco-sash.orthogonal-end.vertical:after{left:-2px;bottom:-4px}.monaco-sash.orthogonal-start.horizontal:before{top:-2px;left:-4px}.monaco-sash.orthogonal-end.horizontal:after{top:-2px;right:-4px}.monaco-sash.disabled{cursor:default!important;pointer-events:none!important}.monaco-sash.touch.vertical{width:20px}.monaco-sash.touch.horizontal{height:20px}.monaco-sash.debug{background:#0ff}.monaco-sash.debug.disabled{background:rgba(0,255,255,.2)}.monaco-sash.debug:not(.disabled).orthogonal-end:after,.monaco-sash.debug:not(.disabled).orthogonal-start:before{background:red}.monaco-diff-editor .diff-review-line-number{text-align:right;display:inline-block}.monaco-diff-editor .diff-review{position:absolute;-moz-user-select:none;user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-diff-editor .diff-review-summary{padding-left:10px}.monaco-diff-editor .diff-review-shadow{position:absolute}.monaco-diff-editor .diff-review-row{white-space:pre}.monaco-diff-editor .diff-review-table{display:table;min-width:100%}.monaco-diff-editor .diff-review-row{display:table-row;width:100%}.monaco-diff-editor .diff-review-cell{display:table-cell}.monaco-diff-editor .diff-review-spacer{display:inline-block;width:10px}.monaco-diff-editor .diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px}.monaco-diff-editor .diff-review-actions .action-label{width:16px;height:16px;margin:2px 0}.monaco-action-bar{text-align:right;overflow:hidden;white-space:nowrap}.monaco-action-bar .actions-container{display:-webkit-box;display:-ms-flexbox;display:flex;margin:0 auto;padding:0;width:100%;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.monaco-action-bar.vertical .actions-container{display:inline-block}.monaco-action-bar.reverse .actions-container{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.monaco-action-bar .action-item{cursor:pointer;display:inline-block;-webkit-transition:-webkit-transform 50ms ease;transition:-webkit-transform 50ms ease;transition:transform 50ms ease;transition:transform 50ms ease,-webkit-transform 50ms ease;position:relative}.monaco-action-bar .action-item.disabled{cursor:default}.monaco-action-bar.animated .action-item.active{-webkit-transform:scale(1.272019649);transform:scale(1.272019649)}.monaco-action-bar .action-item .codicon,.monaco-action-bar .action-item .icon{display:inline-block}.monaco-action-bar .action-label{font-size:11px;margin-right:4px}.monaco-action-bar .action-item.disabled .action-label,.monaco-action-bar .action-item.disabled .action-label:hover{opacity:.4}.monaco-action-bar.vertical{text-align:left}.monaco-action-bar.vertical .action-item{display:block}.monaco-action-bar.vertical .action-label.separator{display:block;border-bottom:1px solid #bbb;padding-top:1px;margin-left:.8em;margin-right:.8em}.monaco-action-bar.animated.vertical .action-item.active{-webkit-transform:translate(5px);transform:translate(5px)}.secondary-actions .monaco-action-bar .action-label{margin-left:6px}.monaco-action-bar .action-item.select-container{overflow:hidden;-webkit-box-flex:1;-ms-flex:1;flex:1;max-width:170px;min-width:60px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-right:10px}.context-view .monaco-menu{min-width:130px}.context-view-block{position:fixed;left:0;top:0;z-index:-1;width:100%;height:100%}.monaco-menu .monaco-action-bar.vertical{margin-left:0;overflow:visible}.monaco-menu .monaco-action-bar.vertical .actions-container{display:block}.monaco-menu .monaco-action-bar.vertical .action-item{padding:0;-webkit-transform:none;transform:none;display:-webkit-box;display:-ms-flexbox;display:flex}.monaco-menu .monaco-action-bar.vertical .action-item.active{-webkit-transform:none;transform:none}.monaco-menu .monaco-action-bar.vertical .action-menu-item{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;display:-webkit-box;display:-ms-flexbox;display:flex;height:2em;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative}.monaco-menu .monaco-action-bar.vertical .action-label{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;text-decoration:none;padding:0 1em;background:none;font-size:12px;line-height:1}.monaco-menu .monaco-action-bar.vertical .keybinding,.monaco-menu .monaco-action-bar.vertical .submenu-indicator{display:inline-block;-webkit-box-flex:2;-ms-flex:2 1 auto;flex:2 1 auto;padding:0 1em;text-align:right;font-size:12px;line-height:1}.monaco-menu .monaco-action-bar.vertical .submenu-indicator{height:100%}.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon{font-size:16px!important;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon:before{margin-left:auto;margin-right:-20px}.monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding,.monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator{opacity:.4}.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator){display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0}.monaco-menu .monaco-action-bar.vertical .action-item{position:static;overflow:visible}.monaco-menu .monaco-action-bar.vertical .action-item .monaco-submenu{position:absolute}.monaco-menu .monaco-action-bar.vertical .action-label.separator{padding:.5em 0 0 0;margin-bottom:.5em;width:100%}.monaco-menu .monaco-action-bar.vertical .action-label.separator.text{padding:.7em 1em .1em 1em;font-weight:700;opacity:1}.monaco-menu .monaco-action-bar.vertical .action-label:hover{color:inherit}.monaco-menu .monaco-action-bar.vertical .menu-item-check{position:absolute;visibility:hidden;width:1em;height:100%}.monaco-menu .monaco-action-bar.vertical .action-menu-item.checked .menu-item-check{visibility:visible;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.context-view.monaco-menu-container{outline:0;border:none;-webkit-animation:fadeIn 83ms linear;animation:fadeIn 83ms linear}.context-view.monaco-menu-container .monaco-action-bar.vertical:focus,.context-view.monaco-menu-container .monaco-action-bar.vertical :focus,.context-view.monaco-menu-container :focus{outline:0}.monaco-menu .monaco-action-bar.vertical .action-item{border:thin solid transparent}.hc-black .context-view.monaco-menu-container{-webkit-box-shadow:none;box-shadow:none}.hc-black .monaco-menu .monaco-action-bar.vertical .action-item.focused{background:none}.menubar{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-negative:1;flex-shrink:1;-webkit-box-sizing:border-box;box-sizing:border-box;height:30px;overflow:hidden;-ms-flex-wrap:wrap;flex-wrap:wrap}.fullscreen .menubar:not(.compact){margin:0;padding:0 5px}.menubar>.menubar-menu-button{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 8px;cursor:default;-webkit-app-region:no-drag;zoom:1;white-space:nowrap;outline:0}.menubar.compact{-ms-flex-negative:0;flex-shrink:0}.menubar.compact>.menubar-menu-button{width:100%;height:100%;padding:0}.menubar .menubar-menu-items-holder{position:absolute;left:0;opacity:1;z-index:2000}.menubar .menubar-menu-items-holder.monaco-menu-container{outline:0;border:none}.menubar .menubar-menu-items-holder.monaco-menu-container :focus{outline:0}.menubar .toolbar-toggle-more{width:20px;height:100%}.menubar.compact .toolbar-toggle-more{position:absolute;left:0;top:0;cursor:pointer;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.menubar .toolbar-toggle-more{padding:0;vertical-align:sub}.menubar.compact .toolbar-toggle-more:before{content:"\EB94"!important}.context-view{position:absolute;z-index:2500}.monaco-list{position:relative;height:100%;width:100%;white-space:nowrap}.monaco-list.mouse-support{-moz-user-select:none;user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-list>.monaco-scrollable-element{height:100%}.monaco-list-rows{position:relative;width:100%;height:100%}.monaco-list.horizontal-scrolling .monaco-list-rows{width:auto;min-width:100%}.monaco-list-row{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;width:100%}.monaco-list.mouse-support .monaco-list-row{cursor:pointer;-ms-touch-action:none;touch-action:none}.monaco-list-row.scrolling{display:none!important}.monaco-list.element-focused,.monaco-list.selection-multiple,.monaco-list.selection-single{outline:0!important}.monaco-list:focus .monaco-list-row.selected .codicon{color:inherit}.monaco-drag-image{display:inline-block;padding:1px 7px;border-radius:10px;font-size:12px;position:absolute}.monaco-list-type-filter{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:absolute;border-radius:2px;padding:0 3px;max-width:calc(100% - 10px);text-overflow:ellipsis;overflow:hidden;text-align:right;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:all-scroll;font-size:13px;line-height:18px;height:20px;z-index:1;top:4px}.monaco-list-type-filter.dragging{-webkit-transition:top .2s,left .2s;transition:top .2s,left .2s}.monaco-list-type-filter.ne{right:4px}.monaco-list-type-filter.nw{left:4px}.monaco-list-type-filter>.controls{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .2s;transition:width .2s;width:0}.monaco-list-type-filter.dragging>.controls,.monaco-list-type-filter:hover>.controls{width:36px}.monaco-list-type-filter>.controls>*{border:none;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;background:none;width:16px;height:16px;-ms-flex-negative:0;flex-shrink:0;margin:0;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;cursor:pointer}.monaco-list-type-filter>.controls>.filter:checked:before{content:"\EB83"!important}.monaco-list-type-filter>.controls>.filter{margin-left:4px}.monaco-list-type-filter-message{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;top:0;left:0;padding:40px 1em 1em 1em;text-align:center;white-space:normal;opacity:.7;pointer-events:none}.monaco-list-type-filter-message:empty{display:none}.monaco-list-type-filter{cursor:-webkit-grab;cursor:grab}.monaco-list-type-filter.dragging{cursor:-webkit-grabbing;cursor:grabbing}.monaco-tl-row{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative}.monaco-tl-indent{height:100%;position:absolute;top:0;left:16px;pointer-events:none}.hide-arrows .monaco-tl-indent{left:12px}.monaco-tl-indent>.indent-guide{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;border-left:1px solid transparent;-webkit-transition:border-color .1s linear;transition:border-color .1s linear}.monaco-tl-contents,.monaco-tl-twistie{height:100%}.monaco-tl-twistie{font-size:10px;text-align:right;padding-right:6px;-ms-flex-negative:0;flex-shrink:0;width:16px;display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:inherit!important;-webkit-transform:translateX(3px);transform:translateX(3px)}.monaco-tl-contents{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden}.monaco-tl-twistie.collapsed:before{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.monaco-tl-twistie.codicon-loading:before{-webkit-animation:codicon-spin 1.25s linear infinite;animation:codicon-spin 1.25s linear infinite}.content[data-v-0f46f00c] img{max-height:150vh;max-width:150vh;vertical-align:middle}.content .markdown-body[data-v-0f46f00c] pre{margin-right:20px;background-color:rgba(27,31,35,.05)}.dialog-scroll[data-v-0f46f00c]{height:calc(90vh - 109px);overflow-y:auto;margin:0}.editor[data-v-0f46f00c]{width:100%;height:80vh} \ No newline at end of file +.monaco-editor{font-family:-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,HelveticaNeue-Light,Ubuntu,Droid Sans,sans-serif}.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-editor-hover p{margin:0}.monaco-editor.hc-black{-ms-high-contrast-adjust:none}@media screen and (-ms-high-contrast:active){.monaco-editor.vs-dark .view-overlays .current-line,.monaco-editor.vs .view-overlays .current-line{border-color:windowtext!important;border-left:0;border-right:0}.monaco-editor.vs-dark .cursor,.monaco-editor.vs .cursor{background-color:windowtext!important}.monaco-editor.vs-dark .dnd-target,.monaco-editor.vs .dnd-target{border-color:windowtext!important}.monaco-editor.vs-dark .selected-text,.monaco-editor.vs .selected-text{background-color:highlight!important}.monaco-editor.vs-dark .view-line,.monaco-editor.vs .view-line{-ms-high-contrast-adjust:none}.monaco-editor.vs-dark .view-line span,.monaco-editor.vs .view-line span{color:windowtext!important}.monaco-editor.vs-dark .view-line span.inline-selected-text,.monaco-editor.vs .view-line span.inline-selected-text{color:highlighttext!important}.monaco-editor.vs-dark .view-overlays,.monaco-editor.vs .view-overlays{-ms-high-contrast-adjust:none}.monaco-editor.vs-dark .reference-decoration,.monaco-editor.vs-dark .selectionHighlight,.monaco-editor.vs-dark .wordHighlight,.monaco-editor.vs-dark .wordHighlightStrong,.monaco-editor.vs .reference-decoration,.monaco-editor.vs .selectionHighlight,.monaco-editor.vs .wordHighlight,.monaco-editor.vs .wordHighlightStrong{border:2px dotted highlight!important;background:transparent!important;-webkit-box-sizing:border-box;box-sizing:border-box}.monaco-editor.vs-dark .rangeHighlight,.monaco-editor.vs .rangeHighlight{background:transparent!important;border:1px dotted activeborder!important;-webkit-box-sizing:border-box;box-sizing:border-box}.monaco-editor.vs-dark .bracket-match,.monaco-editor.vs .bracket-match{border-color:windowtext!important;background:transparent!important}.monaco-editor.vs-dark .currentFindMatch,.monaco-editor.vs-dark .findMatch,.monaco-editor.vs .currentFindMatch,.monaco-editor.vs .findMatch{border:2px dotted activeborder!important;background:transparent!important;-webkit-box-sizing:border-box;box-sizing:border-box}.monaco-editor.vs-dark .find-widget,.monaco-editor.vs .find-widget{border:1px solid windowtext}.monaco-editor.vs-dark .monaco-list .monaco-list-row,.monaco-editor.vs .monaco-list .monaco-list-row{-ms-high-contrast-adjust:none;color:windowtext!important}.monaco-editor.vs-dark .monaco-list .monaco-list-row.focused,.monaco-editor.vs .monaco-list .monaco-list-row.focused{color:highlighttext!important;background-color:highlight!important}.monaco-editor.vs-dark .monaco-list .monaco-list-row:hover,.monaco-editor.vs .monaco-list .monaco-list-row:hover{background:transparent!important;border:1px solid highlight;-webkit-box-sizing:border-box;box-sizing:border-box}.monaco-editor.vs-dark .monaco-tree .monaco-tree-row,.monaco-editor.vs .monaco-tree .monaco-tree-row{-ms-high-contrast-adjust:none;color:windowtext!important}.monaco-editor.vs-dark .monaco-tree .monaco-tree-row.focused,.monaco-editor.vs-dark .monaco-tree .monaco-tree-row.selected,.monaco-editor.vs .monaco-tree .monaco-tree-row.focused,.monaco-editor.vs .monaco-tree .monaco-tree-row.selected{color:highlighttext!important;background-color:highlight!important}.monaco-editor.vs-dark .monaco-tree .monaco-tree-row:hover,.monaco-editor.vs .monaco-tree .monaco-tree-row:hover{background:transparent!important;border:1px solid highlight;-webkit-box-sizing:border-box;box-sizing:border-box}.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar,.monaco-editor.vs .monaco-scrollable-element>.scrollbar{-ms-high-contrast-adjust:none;background:background!important;border:1px solid windowtext;-webkit-box-sizing:border-box;box-sizing:border-box}.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider,.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider{background:windowtext!important}.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider.active,.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider:hover,.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider.active,.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider:hover{background:highlight!important}.monaco-editor.vs-dark .decorationsOverviewRuler,.monaco-editor.vs .decorationsOverviewRuler{opacity:0}.monaco-editor.vs-dark .minimap,.monaco-editor.vs .minimap{display:none}.monaco-editor.vs-dark .squiggly-d-error,.monaco-editor.vs .squiggly-d-error{background:transparent!important;border-bottom:4px double #e47777}.monaco-editor.vs-dark .squiggly-b-info,.monaco-editor.vs-dark .squiggly-c-warning,.monaco-editor.vs .squiggly-b-info,.monaco-editor.vs .squiggly-c-warning{border-bottom:4px double #71b771}.monaco-editor.vs-dark .squiggly-a-hint,.monaco-editor.vs .squiggly-a-hint{border-bottom:4px double #6c6c6c}.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label{-ms-high-contrast-adjust:none;color:highlighttext!important;background-color:highlight!important}.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label,.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label{-ms-high-contrast-adjust:none;background:transparent!important;border:1px solid highlight;-webkit-box-sizing:border-box;box-sizing:border-box}.monaco-diff-editor.vs-dark .diffOverviewRuler,.monaco-diff-editor.vs .diffOverviewRuler{display:none}.monaco-editor.vs-dark .line-delete,.monaco-editor.vs-dark .line-insert,.monaco-editor.vs .line-delete,.monaco-editor.vs .line-insert{background:transparent!important;border:1px solid highlight!important;-webkit-box-sizing:border-box;box-sizing:border-box}.monaco-editor.vs-dark .char-delete,.monaco-editor.vs-dark .char-insert,.monaco-editor.vs .char-delete,.monaco-editor.vs .char-insert{background:transparent!important}}.monaco-aria-container{position:absolute;left:-999em}::-ms-clear{display:none}.monaco-editor .editor-widget input{color:inherit}.monaco-editor{position:relative;overflow:visible;-webkit-text-size-adjust:100%}.monaco-editor .overflow-guard{position:relative;overflow:hidden}.monaco-editor .view-overlays{position:absolute;top:0}.monaco-editor .inputarea{min-width:0;min-height:0;margin:0;padding:0;position:absolute;outline:none!important;resize:none;border:none;overflow:hidden;color:transparent;background-color:transparent}.monaco-editor .inputarea.ime-input{z-index:10}.monaco-editor .margin-view-overlays .line-numbers{position:absolute;text-align:right;display:inline-block;vertical-align:middle;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:default;height:100%}.monaco-editor .relative-current-line-number{text-align:left;display:inline-block;width:100%}.monaco-editor .margin-view-overlays .line-numbers.lh-odd{margin-top:1px}.monaco-editor .margin-view-overlays .current-line,.monaco-editor .view-overlays .current-line{display:block;position:absolute;left:0;top:0;-webkit-box-sizing:border-box;box-sizing:border-box}.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both{border-right:0}.monaco-editor .lines-content .cdr{position:absolute}.monaco-scrollable-element>.scrollbar>.up-arrow{background:url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTEgMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkuNDggOC45NjFsMS4yNi0xLjI2LTUuMDQtNS4wNC01LjQ2IDUuMDQgMS4yNiAxLjI2IDQuMi0zLjc4IDMuNzggMy43OHoiIGZpbGw9IiM0MjQyNDIiLz48L3N2Zz4=");cursor:pointer}.monaco-scrollable-element>.scrollbar>.down-arrow{background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMSAxMSI+PHBhdGggZmlsbD0iIzQyNDI0MiIgZD0iTTEuNSAyLjY2MkwuMjQgMy45MjJsNS4wNCA1LjA0IDUuNDYtNS4wNC0xLjI2LTEuMjYtNC4yIDMuNzgtMy43OC0zLjc4eiIvPjwvc3ZnPg==");cursor:pointer}.monaco-scrollable-element>.scrollbar>.left-arrow{background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMSAxMSI+PHBhdGggZmlsbD0iIzQyNDI0MiIgZD0iTTguNjQgMS40NDFMNy4zOC4xODFsLTUuMDQgNS4wNCA1LjA0IDUuNDYgMS4yNi0xLjI2LTMuNzgtNC4yIDMuNzgtMy43OHoiLz48L3N2Zz4=");cursor:pointer}.monaco-scrollable-element>.scrollbar>.right-arrow{background:url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTEgMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iIzQyNDI0MiIgZD0iTTIuNDY3IDkuNTQ4bDEuMjYgMS4yNiA1LjA0LTUuMDQtNS4wNC01LjQ2LTEuMjYgMS4yNiAzLjc4IDQuMi0zLjc4IDMuNzh6Ii8+PC9zdmc+");cursor:pointer}.hc-black .monaco-scrollable-element>.scrollbar>.up-arrow,.vs-dark .monaco-scrollable-element>.scrollbar>.up-arrow{background:url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTEgMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkuNDggOC45NjFsMS4yNi0xLjI2LTUuMDQtNS4wNC01LjQ2IDUuMDQgMS4yNiAxLjI2IDQuMi0zLjc4IDMuNzggMy43OHoiIGZpbGw9IiNFOEU4RTgiLz48L3N2Zz4=")}.hc-black .monaco-scrollable-element>.scrollbar>.down-arrow,.vs-dark .monaco-scrollable-element>.scrollbar>.down-arrow{background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMSAxMSI+PHBhdGggZmlsbD0iI0U4RThFOCIgZD0iTTEuNSAyLjY2MkwuMjQgMy45MjJsNS4wNCA1LjA0IDUuNDYtNS4wNC0xLjI2LTEuMjYtNC4yIDMuNzgtMy43OC0zLjc4eiIvPjwvc3ZnPg==")}.hc-black .monaco-scrollable-element>.scrollbar>.left-arrow,.vs-dark .monaco-scrollable-element>.scrollbar>.left-arrow{background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMSAxMSI+PHBhdGggZmlsbD0iI0U4RThFOCIgZD0iTTguNjQgMS40NDFMNy4zOC4xODFsLTUuMDQgNS4wNCA1LjA0IDUuNDYgMS4yNi0xLjI2LTMuNzgtNC4yIDMuNzgtMy43OHoiLz48L3N2Zz4=")}.hc-black .monaco-scrollable-element>.scrollbar>.right-arrow,.vs-dark .monaco-scrollable-element>.scrollbar>.right-arrow{background:url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTEgMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0U4RThFOCIgZD0iTTIuNDY3IDkuNTQ4bDEuMjYgMS4yNiA1LjA0LTUuMDQtNS4wNC01LjQ2LTEuMjYgMS4yNiAzLjc4IDQuMi0zLjc4IDMuNzh6Ii8+PC9zdmc+")}.monaco-scrollable-element>.visible{opacity:1;background:transparent;-webkit-transition:opacity .1s linear;transition:opacity .1s linear}.monaco-scrollable-element>.invisible{opacity:0;pointer-events:none}.monaco-scrollable-element>.invisible.fade{-webkit-transition:opacity .8s linear;transition:opacity .8s linear}.monaco-scrollable-element>.shadow{position:absolute;display:none}.monaco-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;-webkit-box-shadow:#ddd 0 6px 6px -6px inset;box-shadow:inset 0 6px 6px -6px #ddd}.monaco-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;-webkit-box-shadow:#ddd 6px 0 6px -6px inset;box-shadow:inset 6px 0 6px -6px #ddd}.monaco-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.monaco-scrollable-element>.shadow.top.left{-webkit-box-shadow:#ddd 6px 6px 6px -6px inset;box-shadow:inset 6px 6px 6px -6px #ddd}.vs .monaco-scrollable-element>.scrollbar>.slider{background:hsla(0,0%,39.2%,.4)}.vs-dark .monaco-scrollable-element>.scrollbar>.slider{background:hsla(0,0%,47.5%,.4)}.hc-black .monaco-scrollable-element>.scrollbar>.slider{background:rgba(111,195,223,.6)}.monaco-scrollable-element>.scrollbar>.slider:hover{background:hsla(0,0%,39.2%,.7)}.hc-black .monaco-scrollable-element>.scrollbar>.slider:hover{background:rgba(111,195,223,.8)}.monaco-scrollable-element>.scrollbar>.slider.active{background:rgba(0,0,0,.6)}.vs-dark .monaco-scrollable-element>.scrollbar>.slider.active{background:hsla(0,0%,74.9%,.4)}.hc-black .monaco-scrollable-element>.scrollbar>.slider.active{background:#6fc3df}.vs-dark .monaco-scrollable-element .shadow.top{-webkit-box-shadow:none;box-shadow:none}.vs-dark .monaco-scrollable-element .shadow.left{-webkit-box-shadow:#000 6px 0 6px -6px inset;box-shadow:inset 6px 0 6px -6px #000}.vs-dark .monaco-scrollable-element .shadow.top.left{-webkit-box-shadow:#000 6px 6px 6px -6px inset;box-shadow:inset 6px 6px 6px -6px #000}.hc-black .monaco-scrollable-element .shadow.left,.hc-black .monaco-scrollable-element .shadow.top,.hc-black .monaco-scrollable-element .shadow.top.left{-webkit-box-shadow:none;box-shadow:none}.monaco-editor .glyph-margin{position:absolute;top:0}.monaco-editor .margin-view-overlays .cgmr{position:absolute;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.monaco-editor .lines-content .cigr,.monaco-editor .lines-content .cigra{position:absolute}.monaco-editor.no-user-select .lines-content,.monaco-editor.no-user-select .view-line,.monaco-editor.no-user-select .view-lines{-moz-user-select:none;user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-editor .view-lines{cursor:text;white-space:nowrap}.monaco-editor.hc-black.mac .view-lines,.monaco-editor.vs-dark.mac .view-lines{cursor:-webkit-image-set(url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAL0lEQVQoz2NgCD3x//9/BhBYBWdhgFVAiVW4JBFKGIa4AqD0//9D3pt4I4tAdAMAHTQ/j5Zom30AAAAASUVORK5CYII=) 1x,url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAAz0lEQVRIx2NgYGBY/R8I/vx5eelX3n82IJ9FxGf6tksvf/8FiTMQAcAGQMDvSwu09abffY8QYSAScNk45G198eX//yev73/4///701eh//kZSARckrNBRvz//+8+6ZohwCzjGNjdgQxkAg7B9WADeBjIBqtJCbhRA0YNoIkBSNmaPEMoNmA0FkYNoFKhapJ6FGyAH3nauaSmPfwI0v/3OukVi0CIZ+F25KrtYcx/CTIy0e+rC7R1Z4KMICVTQQ14feVXIbR695u14+Ir4gwAAD49E54wc1kWAAAAAElFTkSuQmCC) 2x) 5 8,text}.monaco-editor .view-line{position:absolute;width:100%}.monaco-editor .lines-decorations{position:absolute;top:0;background:#fff}.monaco-editor .margin-view-overlays .cldr{position:absolute;height:100%}.monaco-editor .margin-view-overlays .cmdr{position:absolute;left:0;width:100%;height:100%}.monaco-editor .minimap.slider-mouseover .minimap-slider{opacity:0;-webkit-transition:opacity .1s linear;transition:opacity .1s linear}.monaco-editor .minimap.slider-mouseover .minimap-slider.active,.monaco-editor .minimap.slider-mouseover:hover .minimap-slider{opacity:1}.monaco-editor .minimap-shadow-hidden{position:absolute;width:0}.monaco-editor .minimap-shadow-visible{position:absolute;left:-6px;width:6px}.monaco-editor .overlayWidgets{position:absolute;top:0;left:0}.monaco-editor .view-ruler{position:absolute;top:0}.monaco-editor .scroll-decoration{position:absolute;top:0;left:0;height:6px}.monaco-editor .lines-content .cslr{position:absolute}.monaco-editor .top-left-radius{border-top-left-radius:3px}.monaco-editor .bottom-left-radius{border-bottom-left-radius:3px}.monaco-editor .top-right-radius{border-top-right-radius:3px}.monaco-editor .bottom-right-radius{border-bottom-right-radius:3px}.monaco-editor.hc-black .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-black .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-black .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-black .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor .cursors-layer{position:absolute;top:0}.monaco-editor .cursors-layer>.cursor{position:absolute;cursor:text;overflow:hidden}.monaco-editor .cursors-layer.cursor-smooth-caret-animation>.cursor{-webkit-transition:all 80ms;transition:all 80ms}.monaco-editor .cursors-layer.cursor-block-outline-style>.cursor{-webkit-box-sizing:border-box;box-sizing:border-box;background:transparent!important;border-style:solid;border-width:1px}.monaco-editor .cursors-layer.cursor-underline-style>.cursor{border-bottom-width:2px;border-bottom-style:solid;background:transparent!important;-webkit-box-sizing:border-box;box-sizing:border-box}.monaco-editor .cursors-layer.cursor-underline-thin-style>.cursor{border-bottom-width:1px;border-bottom-style:solid;background:transparent!important;-webkit-box-sizing:border-box;box-sizing:border-box}@-webkit-keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@-webkit-keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@-webkit-keyframes monaco-cursor-expand{0%,20%{-webkit-transform:scaleY(1);transform:scaleY(1)}80%,to{-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes monaco-cursor-expand{0%,20%{-webkit-transform:scaleY(1);transform:scaleY(1)}80%,to{-webkit-transform:scaleY(0);transform:scaleY(0)}}.cursor-smooth{-webkit-animation:monaco-cursor-smooth .5s ease-in-out 0s 20 alternate;animation:monaco-cursor-smooth .5s ease-in-out 0s 20 alternate}.cursor-phase{-webkit-animation:monaco-cursor-phase .5s ease-in-out 0s 20 alternate;animation:monaco-cursor-phase .5s ease-in-out 0s 20 alternate}.cursor-expand>.cursor{-webkit-animation:monaco-cursor-expand .5s ease-in-out 0s 20 alternate;animation:monaco-cursor-expand .5s ease-in-out 0s 20 alternate}.monaco-diff-editor .diffOverview{z-index:9}.monaco-diff-editor.vs .diffOverview{background:rgba(0,0,0,.03)}.monaco-diff-editor.vs-dark .diffOverview{background:hsla(0,0%,100%,.01)}.monaco-diff-editor .diffViewport{-webkit-box-shadow:inset 0 0 1px 0 #b9b9b9;box-shadow:inset 0 0 1px 0 #b9b9b9;background:rgba(0,0,0,.1)}.monaco-diff-editor.hc-black .diffViewport,.monaco-diff-editor.vs-dark .diffViewport{background:hsla(0,0%,100%,.1)}.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar{background:transparent}.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar{background:none}.monaco-scrollable-element.modified-in-monaco-diff-editor .slider{z-index:10}.modified-in-monaco-diff-editor .slider.active{background:hsla(0,0%,67.1%,.4)}.modified-in-monaco-diff-editor.hc-black .slider.active{background:none}.monaco-diff-editor .delete-sign,.monaco-diff-editor .insert-sign,.monaco-editor .delete-sign,.monaco-editor .insert-sign{font-size:11px!important;opacity:.7!important;display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.monaco-diff-editor.hc-black .delete-sign,.monaco-diff-editor.hc-black .insert-sign,.monaco-editor.hc-black .delete-sign,.monaco-editor.hc-black .insert-sign{opacity:1}.monaco-editor .inline-added-margin-view-zone,.monaco-editor .inline-deleted-margin-view-zone{text-align:right}.monaco-editor .diagonal-fill{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAChJREFUKFNjOH/+fAMDDgCSu3Dhwn9c8gwwBTgNGR4KQP4HhQOhsAIAZCBTkhtqePcAAAAASUVORK5CYII=")}.monaco-editor.vs-dark .diagonal-fill{opacity:.2}.monaco-editor.hc-black .diagonal-fill{background:none}.monaco-editor .view-zones .view-lines .view-line span{display:inline-block}.monaco-editor .margin-view-zones .lightbulb-glyph:hover{cursor:pointer}.monaco-sash{position:absolute;z-index:35;-ms-touch-action:none;touch-action:none}.monaco-sash.disabled{pointer-events:none}.monaco-sash.vertical{cursor:ew-resize;top:0;width:4px;height:100%}.monaco-sash.mac.vertical{cursor:col-resize}.monaco-sash.vertical.minimum{cursor:e-resize}.monaco-sash.vertical.maximum{cursor:w-resize}.monaco-sash.horizontal{cursor:ns-resize;left:0;width:100%;height:4px}.monaco-sash.mac.horizontal{cursor:row-resize}.monaco-sash.horizontal.minimum{cursor:s-resize}.monaco-sash.horizontal.maximum{cursor:n-resize}.monaco-sash:not(.disabled).orthogonal-end:after,.monaco-sash:not(.disabled).orthogonal-start:before{content:" ";height:8px;width:8px;z-index:100;display:block;cursor:all-scroll;position:absolute}.monaco-sash.orthogonal-start.vertical:before{left:-2px;top:-4px}.monaco-sash.orthogonal-end.vertical:after{left:-2px;bottom:-4px}.monaco-sash.orthogonal-start.horizontal:before{top:-2px;left:-4px}.monaco-sash.orthogonal-end.horizontal:after{top:-2px;right:-4px}.monaco-sash.disabled{cursor:default!important;pointer-events:none!important}.monaco-sash.touch.vertical{width:20px}.monaco-sash.touch.horizontal{height:20px}.monaco-sash.debug{background:#0ff}.monaco-sash.debug.disabled{background:rgba(0,255,255,.2)}.monaco-sash.debug:not(.disabled).orthogonal-end:after,.monaco-sash.debug:not(.disabled).orthogonal-start:before{background:red}.monaco-diff-editor .diff-review-line-number{text-align:right;display:inline-block}.monaco-diff-editor .diff-review{position:absolute;-moz-user-select:none;user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-diff-editor .diff-review-summary{padding-left:10px}.monaco-diff-editor .diff-review-shadow{position:absolute}.monaco-diff-editor .diff-review-row{white-space:pre}.monaco-diff-editor .diff-review-table{display:table;min-width:100%}.monaco-diff-editor .diff-review-row{display:table-row;width:100%}.monaco-diff-editor .diff-review-cell{display:table-cell}.monaco-diff-editor .diff-review-spacer{display:inline-block;width:10px}.monaco-diff-editor .diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px}.monaco-diff-editor .diff-review-actions .action-label{width:16px;height:16px;margin:2px 0}.monaco-action-bar{text-align:right;overflow:hidden;white-space:nowrap}.monaco-action-bar .actions-container{display:-webkit-box;display:-ms-flexbox;display:flex;margin:0 auto;padding:0;width:100%;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.monaco-action-bar.vertical .actions-container{display:inline-block}.monaco-action-bar.reverse .actions-container{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.monaco-action-bar .action-item{cursor:pointer;display:inline-block;-webkit-transition:-webkit-transform 50ms ease;transition:-webkit-transform 50ms ease;transition:transform 50ms ease;transition:transform 50ms ease,-webkit-transform 50ms ease;position:relative}.monaco-action-bar .action-item.disabled{cursor:default}.monaco-action-bar.animated .action-item.active{-webkit-transform:scale(1.272019649);transform:scale(1.272019649)}.monaco-action-bar .action-item .codicon,.monaco-action-bar .action-item .icon{display:inline-block}.monaco-action-bar .action-label{font-size:11px;margin-right:4px}.monaco-action-bar .action-item.disabled .action-label,.monaco-action-bar .action-item.disabled .action-label:hover{opacity:.4}.monaco-action-bar.vertical{text-align:left}.monaco-action-bar.vertical .action-item{display:block}.monaco-action-bar.vertical .action-label.separator{display:block;border-bottom:1px solid #bbb;padding-top:1px;margin-left:.8em;margin-right:.8em}.monaco-action-bar.animated.vertical .action-item.active{-webkit-transform:translate(5px);transform:translate(5px)}.secondary-actions .monaco-action-bar .action-label{margin-left:6px}.monaco-action-bar .action-item.select-container{overflow:hidden;-webkit-box-flex:1;-ms-flex:1;flex:1;max-width:170px;min-width:60px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-right:10px}.context-view .monaco-menu{min-width:130px}.context-view-block{position:fixed;left:0;top:0;z-index:-1;width:100%;height:100%}.monaco-menu .monaco-action-bar.vertical{margin-left:0;overflow:visible}.monaco-menu .monaco-action-bar.vertical .actions-container{display:block}.monaco-menu .monaco-action-bar.vertical .action-item{padding:0;-webkit-transform:none;transform:none;display:-webkit-box;display:-ms-flexbox;display:flex}.monaco-menu .monaco-action-bar.vertical .action-item.active{-webkit-transform:none;transform:none}.monaco-menu .monaco-action-bar.vertical .action-menu-item{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;display:-webkit-box;display:-ms-flexbox;display:flex;height:2em;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative}.monaco-menu .monaco-action-bar.vertical .action-label{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;text-decoration:none;padding:0 1em;background:none;font-size:12px;line-height:1}.monaco-menu .monaco-action-bar.vertical .keybinding,.monaco-menu .monaco-action-bar.vertical .submenu-indicator{display:inline-block;-webkit-box-flex:2;-ms-flex:2 1 auto;flex:2 1 auto;padding:0 1em;text-align:right;font-size:12px;line-height:1}.monaco-menu .monaco-action-bar.vertical .submenu-indicator{height:100%}.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon{font-size:16px!important;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon:before{margin-left:auto;margin-right:-20px}.monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding,.monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator{opacity:.4}.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator){display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0}.monaco-menu .monaco-action-bar.vertical .action-item{position:static;overflow:visible}.monaco-menu .monaco-action-bar.vertical .action-item .monaco-submenu{position:absolute}.monaco-menu .monaco-action-bar.vertical .action-label.separator{padding:.5em 0 0 0;margin-bottom:.5em;width:100%}.monaco-menu .monaco-action-bar.vertical .action-label.separator.text{padding:.7em 1em .1em 1em;font-weight:700;opacity:1}.monaco-menu .monaco-action-bar.vertical .action-label:hover{color:inherit}.monaco-menu .monaco-action-bar.vertical .menu-item-check{position:absolute;visibility:hidden;width:1em;height:100%}.monaco-menu .monaco-action-bar.vertical .action-menu-item.checked .menu-item-check{visibility:visible;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.context-view.monaco-menu-container{outline:0;border:none;-webkit-animation:fadeIn 83ms linear;animation:fadeIn 83ms linear}.context-view.monaco-menu-container .monaco-action-bar.vertical:focus,.context-view.monaco-menu-container .monaco-action-bar.vertical :focus,.context-view.monaco-menu-container :focus{outline:0}.monaco-menu .monaco-action-bar.vertical .action-item{border:thin solid transparent}.hc-black .context-view.monaco-menu-container{-webkit-box-shadow:none;box-shadow:none}.hc-black .monaco-menu .monaco-action-bar.vertical .action-item.focused{background:none}.menubar{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-negative:1;flex-shrink:1;-webkit-box-sizing:border-box;box-sizing:border-box;height:30px;overflow:hidden;-ms-flex-wrap:wrap;flex-wrap:wrap}.fullscreen .menubar:not(.compact){margin:0;padding:0 5px}.menubar>.menubar-menu-button{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 8px;cursor:default;-webkit-app-region:no-drag;zoom:1;white-space:nowrap;outline:0}.menubar.compact{-ms-flex-negative:0;flex-shrink:0}.menubar.compact>.menubar-menu-button{width:100%;height:100%;padding:0}.menubar .menubar-menu-items-holder{position:absolute;left:0;opacity:1;z-index:2000}.menubar .menubar-menu-items-holder.monaco-menu-container{outline:0;border:none}.menubar .menubar-menu-items-holder.monaco-menu-container :focus{outline:0}.menubar .toolbar-toggle-more{width:20px;height:100%}.menubar.compact .toolbar-toggle-more{position:absolute;left:0;top:0;cursor:pointer;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.menubar .toolbar-toggle-more{padding:0;vertical-align:sub}.menubar.compact .toolbar-toggle-more:before{content:"\EB94"!important}.context-view{position:absolute;z-index:2500}.monaco-list{position:relative;height:100%;width:100%;white-space:nowrap}.monaco-list.mouse-support{-moz-user-select:none;user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-list>.monaco-scrollable-element{height:100%}.monaco-list-rows{position:relative;width:100%;height:100%}.monaco-list.horizontal-scrolling .monaco-list-rows{width:auto;min-width:100%}.monaco-list-row{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;width:100%}.monaco-list.mouse-support .monaco-list-row{cursor:pointer;-ms-touch-action:none;touch-action:none}.monaco-list-row.scrolling{display:none!important}.monaco-list.element-focused,.monaco-list.selection-multiple,.monaco-list.selection-single{outline:0!important}.monaco-list:focus .monaco-list-row.selected .codicon{color:inherit}.monaco-drag-image{display:inline-block;padding:1px 7px;border-radius:10px;font-size:12px;position:absolute}.monaco-list-type-filter{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:absolute;border-radius:2px;padding:0 3px;max-width:calc(100% - 10px);text-overflow:ellipsis;overflow:hidden;text-align:right;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:all-scroll;font-size:13px;line-height:18px;height:20px;z-index:1;top:4px}.monaco-list-type-filter.dragging{-webkit-transition:top .2s,left .2s;transition:top .2s,left .2s}.monaco-list-type-filter.ne{right:4px}.monaco-list-type-filter.nw{left:4px}.monaco-list-type-filter>.controls{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .2s;transition:width .2s;width:0}.monaco-list-type-filter.dragging>.controls,.monaco-list-type-filter:hover>.controls{width:36px}.monaco-list-type-filter>.controls>*{border:none;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;background:none;width:16px;height:16px;-ms-flex-negative:0;flex-shrink:0;margin:0;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;cursor:pointer}.monaco-list-type-filter>.controls>.filter:checked:before{content:"\EB83"!important}.monaco-list-type-filter>.controls>.filter{margin-left:4px}.monaco-list-type-filter-message{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;top:0;left:0;padding:40px 1em 1em 1em;text-align:center;white-space:normal;opacity:.7;pointer-events:none}.monaco-list-type-filter-message:empty{display:none}.monaco-list-type-filter{cursor:-webkit-grab;cursor:grab}.monaco-list-type-filter.dragging{cursor:-webkit-grabbing;cursor:grabbing}.monaco-tl-row{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative}.monaco-tl-indent{height:100%;position:absolute;top:0;left:16px;pointer-events:none}.hide-arrows .monaco-tl-indent{left:12px}.monaco-tl-indent>.indent-guide{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;border-left:1px solid transparent;-webkit-transition:border-color .1s linear;transition:border-color .1s linear}.monaco-tl-contents,.monaco-tl-twistie{height:100%}.monaco-tl-twistie{font-size:10px;text-align:right;padding-right:6px;-ms-flex-negative:0;flex-shrink:0;width:16px;display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:inherit!important;-webkit-transform:translateX(3px);transform:translateX(3px)}.monaco-tl-contents{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden}.monaco-tl-twistie.collapsed:before{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.monaco-tl-twistie.codicon-loading:before{-webkit-animation:codicon-spin 1.25s linear infinite;animation:codicon-spin 1.25s linear infinite}.content[data-v-769bb2a4] img{max-height:150vh;max-width:150vh;vertical-align:middle}.content .markdown-body[data-v-769bb2a4] pre{margin-right:20px;background-color:rgba(27,31,35,.05)}.dialog-scroll[data-v-769bb2a4]{height:calc(90vh - 109px);overflow-y:auto;margin:0}.editor[data-v-769bb2a4]{width:100%;height:80vh} \ No newline at end of file diff --git a/src/main/resources/static/css/chunk-4c69887f.7aac81e0.css b/src/main/resources/static/css/chunk-4c69887f.7aac81e0.css new file mode 100644 index 0000000..df8801b --- /dev/null +++ b/src/main/resources/static/css/chunk-4c69887f.7aac81e0.css @@ -0,0 +1 @@ +.box-card[data-v-1c272cd0]{padding-top:30px;padding-right:30px;margin:25vh auto;height:40vh;overflow-y:auto}.el-select[data-v-1c272cd0]{width:100%}.zfile-word-aux[data-v-1c272cd0]{margin-left:20px;color:#aaa} \ No newline at end of file diff --git a/src/main/resources/static/css/chunk-548ba676.5c3079db.css b/src/main/resources/static/css/chunk-548ba676.5c3079db.css deleted file mode 100644 index 76f894a..0000000 --- a/src/main/resources/static/css/chunk-548ba676.5c3079db.css +++ /dev/null @@ -1 +0,0 @@ -#storageForm[data-v-24d679d0]{margin-left:20px}#storageForm[data-v-24d679d0] .el-select{width:100%}.zfile-word-aux[data-v-24d679d0]{margin-left:20px;color:#aaa}.el-tabs[data-v-0a248fe4]{display:block} \ No newline at end of file diff --git a/src/main/resources/static/css/chunk-5a048f62.71936c2b.css b/src/main/resources/static/css/chunk-5a048f62.71936c2b.css deleted file mode 100644 index aa3b429..0000000 --- a/src/main/resources/static/css/chunk-5a048f62.71936c2b.css +++ /dev/null @@ -1 +0,0 @@ -.el-menu[data-v-e36af7ca],.el-row[data-v-e36af7ca]{height:100vh} \ No newline at end of file diff --git a/src/main/resources/static/css/chunk-5ba4ff2c.4f2ea9d1.css b/src/main/resources/static/css/chunk-5ba4ff2c.4f2ea9d1.css new file mode 100644 index 0000000..ef4861c --- /dev/null +++ b/src/main/resources/static/css/chunk-5ba4ff2c.4f2ea9d1.css @@ -0,0 +1 @@ +.zfile-word-aux[data-v-78df1314]{margin-left:20px;color:#aaa} \ No newline at end of file diff --git a/src/main/resources/static/css/chunk-6a2760fc.50f63948.css b/src/main/resources/static/css/chunk-6a2760fc.50f63948.css new file mode 100644 index 0000000..4db43f9 --- /dev/null +++ b/src/main/resources/static/css/chunk-6a2760fc.50f63948.css @@ -0,0 +1 @@ +.markdown-body[data-v-271433d0]{padding:20px!important}.scroll[data-v-271433d0]{height:100vh;overflow-y:auto} \ No newline at end of file diff --git a/src/main/resources/static/css/chunk-6b263e10.bc5fc5af.css b/src/main/resources/static/css/chunk-6b263e10.bc5fc5af.css deleted file mode 100644 index c3d3db2..0000000 --- a/src/main/resources/static/css/chunk-6b263e10.bc5fc5af.css +++ /dev/null @@ -1 +0,0 @@ -.el-row[data-v-30de6894]{overflow-y:auto}#siteForm[data-v-30de6894]{margin-top:20px;margin-left:20px}#siteForm[data-v-30de6894] .el-select{width:70%}.zfile-word-aux[data-v-30de6894]{margin-left:20px;color:#aaa} \ No newline at end of file diff --git a/src/main/resources/static/css/chunk-718902cb.e55a2dd9.css b/src/main/resources/static/css/chunk-718902cb.e55a2dd9.css deleted file mode 100644 index 1105aae..0000000 --- a/src/main/resources/static/css/chunk-718902cb.e55a2dd9.css +++ /dev/null @@ -1 +0,0 @@ -.markdown-body[data-v-1d926c65]{padding:20px!important}.scroll[data-v-1d926c65]{height:100vh;overflow-y:auto} \ No newline at end of file diff --git a/src/main/resources/static/css/chunk-784b29e9.24c1e191.css b/src/main/resources/static/css/chunk-784b29e9.24c1e191.css new file mode 100644 index 0000000..92141d5 --- /dev/null +++ b/src/main/resources/static/css/chunk-784b29e9.24c1e191.css @@ -0,0 +1 @@ +.el-menu[data-v-45b61f3e],.el-row[data-v-45b61f3e]{height:100vh} \ No newline at end of file diff --git a/src/main/resources/static/css/chunk-faa8fca8.bb4fd588.css b/src/main/resources/static/css/chunk-8994d9ec.0904927b.css similarity index 68% rename from src/main/resources/static/css/chunk-faa8fca8.bb4fd588.css rename to src/main/resources/static/css/chunk-8994d9ec.0904927b.css index 6b16b09..66d5555 100644 --- a/src/main/resources/static/css/chunk-faa8fca8.bb4fd588.css +++ b/src/main/resources/static/css/chunk-8994d9ec.0904927b.css @@ -1 +1 @@ -.zfile-header[data-v-69b2489f]{height:48px;line-height:48px!important;background:#fafafa;border-bottom:1px solid rgba(0,0,0,.05);padding-left:30px}.zfile-header .el-breadcrumb[data-v-69b2489f],.zfile-header .el-input[data-v-69b2489f]{line-height:48px}@media only screen and (max-width:767px){.hidden-xs-only{display:none!important}}@media only screen and (min-width:768px){.hidden-sm-and-up{display:none!important}}@media only screen and (min-width:768px) and (max-width:991px){.hidden-sm-only{display:none!important}}@media only screen and (max-width:991px){.hidden-sm-and-down{display:none!important}}@media only screen and (min-width:992px){.hidden-md-and-up{display:none!important}}@media only screen and (min-width:992px) and (max-width:1199px){.hidden-md-only{display:none!important}}@media only screen and (max-width:1199px){.hidden-md-and-down{display:none!important}}@media only screen and (min-width:1200px){.hidden-lg-and-up{display:none!important}}@media only screen and (min-width:1200px) and (max-width:1919px){.hidden-lg-only{display:none!important}}@media only screen and (max-width:1919px){.hidden-lg-and-down{display:none!important}}@media only screen and (min-width:1920px){.hidden-xl-only{display:none!important}}#List[data-v-360f2068]{overflow:hidden}.el-table[data-v-360f2068]{margin:20px 0 0 20px;padding-right:30px;overflow-y:hidden}.el-table[data-v-360f2068]:before{height:0}.el-table svg[data-v-360f2068]{font-size:18px;margin-right:15px}#ListTable[data-v-360f2068] .table-header-left{margin-left:38px}#ListTable[data-v-360f2068] tr{cursor:pointer}.el-scrollbar[data-v-360f2068] .el-scrollbar__wrap{overflow-x:hidden!important}#videoDialog[data-v-360f2068] .el-dialog__body{padding:10px 0 0 0}#List[data-v-360f2068] .el-dialog__header{text-align:center;margin-bottom:-10px;padding:5px 0 5px 0}#videoDialog[data-v-360f2068] .el-dialog__headerbtn{top:10px}#textDialog[data-v-360f2068] .el-dialog{margin-bottom:0}.v-contextmenu-item[data-v-360f2068] label{margin-left:10px}@media screen and (max-device-width:1920px){#videoDialog[data-v-360f2068] .el-dialog{margin-top:5vh!important;width:70%!important}}@media screen and (max-device-width:769px){#videoDialog[data-v-360f2068] .el-dialog{margin-top:10vh!important;width:90%!important}}.operator-btn[data-v-360f2068]{color:#1e9fff;margin-right:20px;font-size:16px}#app{font-family:Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,"\5FAE\8F6F\96C5\9ED1",Arial,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c3e50;overflow-x:hidden}body{margin:unset}.icon,body{overflow:hidden}.icon{width:1em;height:1em;vertical-align:-.15em;fill:currentColor}::-webkit-scrollbar{width:6px;height:8px;background:rgba(144,147,153,.3)}::-webkit-scrollbar-button:vertical{display:none}::-webkit-scrollbar-corner,::-webkit-scrollbar-track{background-color:#e2e2e2}::-webkit-scrollbar-thumb{border-radius:8px;background-color:#a6a6a6}::-webkit-scrollbar-thumb:vertical:hover{background-color:#7f7f7f}::-webkit-scrollbar-thumb:vertical:active{background-color:rgba(0,0,0,.38)}.center-box-card{width:1100px;margin:0 auto}.markdown-body{height:300px;overflow-y:auto;padding:0!important;min-width:100%!important}.alert{background-color:#f4f4f5;color:#909399;font-size:12px;margin:0 0 0;width:100%;padding:10px 16px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;position:relative;overflow:hidden;opacity:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transition:opacity .2s;transition:opacity .2s} \ No newline at end of file +.zfile-header[data-v-78021a72]{height:48px;line-height:48px!important;background:#fafafa;border-bottom:1px solid rgba(0,0,0,.05);padding-left:30px}.zfile-header .el-breadcrumb[data-v-78021a72],.zfile-header .el-input[data-v-78021a72]{line-height:48px}@media only screen and (max-width:767px){.hidden-xs-only{display:none!important}}@media only screen and (min-width:768px){.hidden-sm-and-up{display:none!important}}@media only screen and (min-width:768px) and (max-width:991px){.hidden-sm-only{display:none!important}}@media only screen and (max-width:991px){.hidden-sm-and-down{display:none!important}}@media only screen and (min-width:992px){.hidden-md-and-up{display:none!important}}@media only screen and (min-width:992px) and (max-width:1199px){.hidden-md-only{display:none!important}}@media only screen and (max-width:1199px){.hidden-md-and-down{display:none!important}}@media only screen and (min-width:1200px){.hidden-lg-and-up{display:none!important}}@media only screen and (min-width:1200px) and (max-width:1919px){.hidden-lg-only{display:none!important}}@media only screen and (max-width:1919px){.hidden-lg-and-down{display:none!important}}@media only screen and (min-width:1920px){.hidden-xl-only{display:none!important}}#List[data-v-39c0e91d]{overflow:hidden}.el-table[data-v-39c0e91d]{margin:20px 0 0 20px;padding-right:30px;overflow-y:hidden}.el-table[data-v-39c0e91d]:before{height:0}.el-table svg[data-v-39c0e91d]{font-size:18px;margin-right:15px}#ListTable[data-v-39c0e91d] .table-header-left{margin-left:38px}#ListTable[data-v-39c0e91d] tr{cursor:pointer}.el-scrollbar[data-v-39c0e91d] .el-scrollbar__wrap{overflow-x:hidden!important}#videoDialog[data-v-39c0e91d] .el-dialog__body{padding:10px 0 0 0}#List[data-v-39c0e91d] .el-dialog__header{text-align:center;margin-bottom:-10px;padding:5px 0 5px 0}#videoDialog[data-v-39c0e91d] .el-dialog__headerbtn{top:10px}#textDialog[data-v-39c0e91d] .el-dialog{margin-bottom:0}.v-contextmenu-item[data-v-39c0e91d] label{margin-left:10px}@media screen and (max-device-width:1920px){#videoDialog[data-v-39c0e91d] .el-dialog{margin-top:5vh!important;width:70%!important}}@media screen and (max-device-width:769px){#videoDialog[data-v-39c0e91d] .el-dialog{margin-top:10vh!important;width:90%!important}}.operator-btn[data-v-39c0e91d]{color:#1e9fff;margin-right:20px;font-size:16px}#app{font-family:Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,"\5FAE\8F6F\96C5\9ED1",Arial,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c3e50;overflow-x:hidden}body{margin:unset}.icon,body{overflow:hidden}.icon{width:1em;height:1em;vertical-align:-.15em;fill:currentColor}::-webkit-scrollbar{width:6px;height:8px;background:rgba(144,147,153,.3)}::-webkit-scrollbar-button:vertical{display:none}::-webkit-scrollbar-corner,::-webkit-scrollbar-track{background-color:#e2e2e2}::-webkit-scrollbar-thumb{border-radius:8px;background-color:#a6a6a6}::-webkit-scrollbar-thumb:vertical:hover{background-color:#7f7f7f}::-webkit-scrollbar-thumb:vertical:active{background-color:rgba(0,0,0,.38)}.center-box-card{width:1100px;margin:0 auto}.markdown-body{height:300px;overflow-y:auto;padding:0!important;min-width:100%!important}.alert{background-color:#f4f4f5;color:#909399;font-size:12px;margin:0 0 0;width:100%;padding:10px 16px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;position:relative;overflow:hidden;opacity:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transition:opacity .2s;transition:opacity .2s} \ No newline at end of file diff --git a/src/main/resources/static/css/chunk-c5bf65e6.accc08d6.css b/src/main/resources/static/css/chunk-c5bf65e6.accc08d6.css deleted file mode 100644 index c86f249..0000000 --- a/src/main/resources/static/css/chunk-c5bf65e6.accc08d6.css +++ /dev/null @@ -1 +0,0 @@ -.box-card[data-v-7d75c59c]{padding-top:30px;padding-right:30px;margin:10vh auto;height:75vh;overflow-y:auto}.el-select[data-v-7d75c59c]{width:100%}.zfile-word-aux[data-v-7d75c59c]{margin-left:20px;color:#aaa} \ No newline at end of file diff --git a/src/main/resources/static/css/chunk-cf5906ce.d5432c19.css b/src/main/resources/static/css/chunk-cf5906ce.d5432c19.css new file mode 100644 index 0000000..fb5b7e7 --- /dev/null +++ b/src/main/resources/static/css/chunk-cf5906ce.d5432c19.css @@ -0,0 +1 @@ +.el-row[data-v-7b40e23a]{overflow-y:auto}#siteForm[data-v-7b40e23a]{margin-top:20px;margin-left:20px}#siteForm[data-v-7b40e23a] .el-select{width:70%} \ No newline at end of file diff --git a/src/main/resources/static/css/chunk-28547ac9.d30178ad.css b/src/main/resources/static/css/chunk-f1b5112e.d30178ad.css similarity index 100% rename from src/main/resources/static/css/chunk-28547ac9.d30178ad.css rename to src/main/resources/static/css/chunk-f1b5112e.d30178ad.css diff --git a/src/main/resources/static/css/chunk-vendors.4a45e43f.css b/src/main/resources/static/css/chunk-vendors.1f2b3e18.css similarity index 51% rename from src/main/resources/static/css/chunk-vendors.4a45e43f.css rename to src/main/resources/static/css/chunk-vendors.1f2b3e18.css index 4ba01d4..53dd4f6 100644 --- a/src/main/resources/static/css/chunk-vendors.4a45e43f.css +++ b/src/main/resources/static/css/chunk-vendors.1f2b3e18.css @@ -1 +1 @@ -.el-message__closeBtn:focus,.el-message__content:focus{outline-width:0}.el-message{min-width:380px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;border-width:1px;border-style:solid;border-color:#ebeef5;position:fixed;left:50%;top:20px;-webkit-transform:translateX(-50%);transform:translateX(-50%);background-color:#edf2fc;-webkit-transition:opacity .3s,top .4s,-webkit-transform .4s;transition:opacity .3s,top .4s,-webkit-transform .4s;transition:opacity .3s,transform .4s,top .4s;transition:opacity .3s,transform .4s,top .4s,-webkit-transform .4s;overflow:hidden;padding:15px 15px 15px 20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-message.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#909399}.el-message--success{background-color:#f0f9eb;border-color:#e1f3d8}.el-message--success .el-message__content{color:#67c23a}.el-message--warning{background-color:#fdf6ec;border-color:#faecd8}.el-message--warning .el-message__content{color:#e6a23c}.el-message--error{background-color:#fef0f0;border-color:#fde2e2}.el-message--error .el-message__content{color:#f56c6c}.el-message__icon{margin-right:10px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__closeBtn{position:absolute;top:50%;right:15px;-webkit-transform:translateY(-50%);transform:translateY(-50%);cursor:pointer;color:#c0c4cc;font-size:16px}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#67c23a}.el-message .el-icon-error{color:#f56c6c}.el-message .el-icon-info{color:#909399}.el-message .el-icon-warning{color:#e6a23c}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;-webkit-transform:translate(-50%,-100%);transform:translate(-50%,-100%)}.el-notification{display:-webkit-box;display:-ms-flexbox;display:flex;width:330px;padding:14px 26px 14px 13px;border-radius:8px;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #ebeef5;position:fixed;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;overflow:hidden}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:13px;margin-right:8px}.el-notification__title{font-weight:700;font-size:16px;color:#303133;margin:0}.el-notification__content{font-size:14px;line-height:21px;margin:6px 0 0;color:#606266;text-align:justify}.el-notification__content p{margin:0}.el-notification__icon{height:24px;width:24px;font-size:24px}.el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:#909399;font-size:16px}.el-notification__closeBtn:hover{color:#606266}.el-notification .el-icon-success{color:#67c23a}.el-notification .el-icon-error{color:#f56c6c}.el-notification .el-icon-info{color:#909399}.el-notification .el-icon-warning{color:#e6a23c}.el-notification-fade-enter.right{right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.el-notification-fade-enter.left{left:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.el-notification-fade-leave-active{opacity:0}.el-button,.el-input__inner{-webkit-appearance:none;outline:0}.el-message-box,.el-popup-parent--hidden{overflow:hidden}.el-message-box{display:inline-block;width:420px;padding-bottom:10px;vertical-align:middle;background-color:#fff;border-radius:4px;border:1px solid #ebeef5;font-size:18px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);text-align:left;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box__wrapper{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center}.el-message-box__wrapper:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box__header{position:relative;padding:15px 15px 10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:18px;line-height:1;color:#303133}.el-message-box__headerbtn{position:absolute;top:15px;right:15px;padding:0;border:none;outline:0;background:0 0;font-size:16px;cursor:pointer}.el-message-box__headerbtn .el-message-box__close{color:#909399}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:#409eff}.el-message-box__content{position:relative;padding:10px 15px;color:#606266;font-size:14px}.el-message-box__input{padding-top:15px}.el-message-box__input input.invalid,.el-message-box__input input.invalid:focus{border-color:#f56c6c}.el-message-box__status{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px}.el-message-box__status.el-icon-success{color:#67c23a}.el-message-box__status.el-icon-info{color:#909399}.el-message-box__status.el-icon-warning{color:#e6a23c}.el-message-box__status.el-icon-error{color:#f56c6c}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:#f56c6c;font-size:12px;min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;text-align:right}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.el-message-box--center{padding-bottom:30px}.el-message-box--center .el-message-box__header{padding-top:30px}.el-message-box--center .el-message-box__title{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;-webkit-transform:translateY(-1px);transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__content{text-align:center}.el-message-box--center .el-message-box__content{padding-left:27px;padding-right:27px}.msgbox-fade-enter-active{-webkit-animation:msgbox-fade-in .3s;animation:msgbox-fade-in .3s}.msgbox-fade-leave-active{-webkit-animation:msgbox-fade-out .3s;animation:msgbox-fade-out .3s}@-webkit-keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@-webkit-keyframes msgbox-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes msgbox-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-radio,.el-radio--medium.is-bordered .el-radio__label{font-size:14px}.el-radio,.el-radio__input{white-space:nowrap;line-height:1;outline:0}.el-radio,.el-radio__inner,.el-radio__input{position:relative;display:inline-block}.el-radio{color:#606266;font-weight:500;cursor:pointer;margin-right:30px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.el-radio.is-bordered{padding:12px 20px 0 10px;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;height:40px}.el-radio.is-bordered.is-checked{border-color:#409eff}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:#ebeef5}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#f5f7fa;border-color:#e4e7ed}.el-radio.is-bordered+.el-radio.is-bordered{margin-left:10px}.el-radio--medium.is-bordered{padding:10px 20px 0 10px;border-radius:4px;height:36px}.el-radio--mini.is-bordered .el-radio__label,.el-radio--small.is-bordered .el-radio__label{font-size:12px}.el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.el-radio--small.is-bordered{padding:8px 15px 0 10px;border-radius:3px;height:32px}.el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio--mini.is-bordered{padding:6px 15px 0 10px;border-radius:3px;height:28px}.el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{cursor:pointer;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:#f5f7fa}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:#c0c4cc}.el-radio__input.is-disabled+span.el-radio__label{color:#c0c4cc;cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:#409eff;background:#409eff}.el-radio__input.is-checked .el-radio__inner:after{-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:#409eff}.el-radio__input.is-focus .el-radio__inner{border-color:#409eff}.el-radio__inner{border:1px solid #dcdfe6;border-radius:100%;width:14px;height:14px;background-color:#fff;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box}.el-radio__inner:hover{border-color:#409eff}.el-radio__inner:after{width:4px;height:4px;border-radius:100%;background-color:#fff;content:"";position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0);-webkit-transition:-webkit-transform .15s ease-in;transition:-webkit-transform .15s ease-in;transition:transform .15s ease-in;transition:transform .15s ease-in,-webkit-transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{-webkit-box-shadow:0 0 2px 2px #409eff;box-shadow:0 0 2px 2px #409eff}.el-radio__label{font-size:14px;padding-left:10px}.el-link{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;cursor:pointer;padding:0;font-size:14px;font-weight:500}.el-link.is-underline:hover:after{content:"";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid #409eff}.el-link.el-link--default:after,.el-link.el-link--primary.is-underline:hover:after,.el-link.el-link--primary:after{border-color:#409eff}.el-link.is-disabled{cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default{color:#606266}.el-link.el-link--default:hover{color:#409eff}.el-link.el-link--default.is-disabled{color:#c0c4cc}.el-link.el-link--primary{color:#409eff}.el-link.el-link--primary:hover{color:#66b1ff}.el-link.el-link--primary.is-disabled{color:#a0cfff}.el-link.el-link--danger.is-underline:hover:after,.el-link.el-link--danger:after{border-color:#f56c6c}.el-link.el-link--danger{color:#f56c6c}.el-link.el-link--danger:hover{color:#f78989}.el-link.el-link--danger.is-disabled{color:#fab6b6}.el-link.el-link--success.is-underline:hover:after,.el-link.el-link--success:after{border-color:#67c23a}.el-link.el-link--success{color:#67c23a}.el-link.el-link--success:hover{color:#85ce61}.el-link.el-link--success.is-disabled{color:#b3e19d}.el-link.el-link--warning.is-underline:hover:after,.el-link.el-link--warning:after{border-color:#e6a23c}.el-link.el-link--warning{color:#e6a23c}.el-link.el-link--warning:hover{color:#ebb563}.el-link.el-link--warning.is-disabled{color:#f3d19e}.el-link.el-link--info.is-underline:hover:after,.el-link.el-link--info:after{border-color:#909399}.el-link.el-link--info{color:#909399}.el-link.el-link--info:hover{color:#a6a9ad}.el-link.el-link--info.is-disabled{color:#c8c9cc}.el-badge{position:relative;vertical-align:middle;display:inline-block}.el-badge__content{background-color:#f56c6c;border-radius:10px;color:#fff;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap;border:1px solid #fff}.el-badge__content.is-fixed{position:absolute;top:0;right:10px;-webkit-transform:translateY(-50%) translateX(100%);transform:translateY(-50%) translateX(100%)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:#409eff}.el-badge__content--success{background-color:#67c23a}.el-badge__content--warning{background-color:#e6a23c}.el-badge__content--info{background-color:#909399}.el-badge__content--danger{background-color:#f56c6c}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:hsla(0,0%,100%,.9);margin:0;top:0;right:0;bottom:0;left:0;-webkit-transition:opacity .3s;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:#409eff;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#409eff;stroke-linecap:round}.el-loading-spinner i{color:#409eff}.el-loading-fade-enter,.el-loading-fade-leave-active{opacity:0}@-webkit-keyframes loading-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loading-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-popover{position:absolute;background:#fff;min-width:150px;border-radius:4px;border:1px solid #ebeef5;padding:12px;z-index:2000;color:#606266;line-height:1.4;text-align:justify;font-size:14px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);word-break:break-all}.el-popover--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1;margin-bottom:12px}.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.el-card{border-radius:4px;border:1px solid #ebeef5;background-color:#fff;overflow:hidden;color:#303133;-webkit-transition:.3s;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{padding:18px 20px;border-bottom:1px solid #ebeef5;-webkit-box-sizing:border-box;box-sizing:border-box}.el-card__body{padding:20px}.el-col-pull-0,.el-col-pull-1,.el-col-pull-2,.el-col-pull-3,.el-col-pull-4,.el-col-pull-5,.el-col-pull-6,.el-col-pull-7,.el-col-pull-8,.el-col-pull-9,.el-col-pull-10,.el-col-pull-11,.el-col-pull-13,.el-col-pull-14,.el-col-pull-15,.el-col-pull-16,.el-col-pull-17,.el-col-pull-18,.el-col-pull-19,.el-col-pull-20,.el-col-pull-21,.el-col-pull-22,.el-col-pull-23,.el-col-pull-24,.el-col-push-0,.el-col-push-1,.el-col-push-2,.el-col-push-3,.el-col-push-4,.el-col-push-5,.el-col-push-6,.el-col-push-7,.el-col-push-8,.el-col-push-9,.el-col-push-10,.el-col-push-11,.el-col-push-12,.el-col-push-13,.el-col-push-14,.el-col-push-15,.el-col-push-16,.el-col-push-17,.el-col-push-18,.el-col-push-19,.el-col-push-20,.el-col-push-21,.el-col-push-22,.el-col-push-23,.el-col-push-24{position:relative}[class*=el-col-]{float:left;-webkit-box-sizing:border-box;box-sizing:border-box}.el-col-0{display:none;width:0}.el-col-offset-0{margin-left:0}.el-col-pull-0{right:0}.el-col-push-0{left:0}.el-col-1{width:4.16667%}.el-col-offset-1{margin-left:4.16667%}.el-col-pull-1{right:4.16667%}.el-col-push-1{left:4.16667%}.el-col-2{width:8.33333%}.el-col-offset-2{margin-left:8.33333%}.el-col-pull-2{right:8.33333%}.el-col-push-2{left:8.33333%}.el-col-3{width:12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{right:12.5%}.el-col-push-3{left:12.5%}.el-col-4{width:16.66667%}.el-col-offset-4{margin-left:16.66667%}.el-col-pull-4{right:16.66667%}.el-col-push-4{left:16.66667%}.el-col-5{width:20.83333%}.el-col-offset-5{margin-left:20.83333%}.el-col-pull-5{right:20.83333%}.el-col-push-5{left:20.83333%}.el-col-6{width:25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{right:25%}.el-col-push-6{left:25%}.el-col-7{width:29.16667%}.el-col-offset-7{margin-left:29.16667%}.el-col-pull-7{right:29.16667%}.el-col-push-7{left:29.16667%}.el-col-8{width:33.33333%}.el-col-offset-8{margin-left:33.33333%}.el-col-pull-8{right:33.33333%}.el-col-push-8{left:33.33333%}.el-col-9{width:37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{right:37.5%}.el-col-push-9{left:37.5%}.el-col-10{width:41.66667%}.el-col-offset-10{margin-left:41.66667%}.el-col-pull-10{right:41.66667%}.el-col-push-10{left:41.66667%}.el-col-11{width:45.83333%}.el-col-offset-11{margin-left:45.83333%}.el-col-pull-11{right:45.83333%}.el-col-push-11{left:45.83333%}.el-col-12{width:50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{left:50%}.el-col-13{width:54.16667%}.el-col-offset-13{margin-left:54.16667%}.el-col-pull-13{right:54.16667%}.el-col-push-13{left:54.16667%}.el-col-14{width:58.33333%}.el-col-offset-14{margin-left:58.33333%}.el-col-pull-14{right:58.33333%}.el-col-push-14{left:58.33333%}.el-col-15{width:62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{right:62.5%}.el-col-push-15{left:62.5%}.el-col-16{width:66.66667%}.el-col-offset-16{margin-left:66.66667%}.el-col-pull-16{right:66.66667%}.el-col-push-16{left:66.66667%}.el-col-17{width:70.83333%}.el-col-offset-17{margin-left:70.83333%}.el-col-pull-17{right:70.83333%}.el-col-push-17{left:70.83333%}.el-col-18{width:75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{right:75%}.el-col-push-18{left:75%}.el-col-19{width:79.16667%}.el-col-offset-19{margin-left:79.16667%}.el-col-pull-19{right:79.16667%}.el-col-push-19{left:79.16667%}.el-col-20{width:83.33333%}.el-col-offset-20{margin-left:83.33333%}.el-col-pull-20{right:83.33333%}.el-col-push-20{left:83.33333%}.el-col-21{width:87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{right:87.5%}.el-col-push-21{left:87.5%}.el-col-22{width:91.66667%}.el-col-offset-22{margin-left:91.66667%}.el-col-pull-22{right:91.66667%}.el-col-push-22{left:91.66667%}.el-col-23{width:95.83333%}.el-col-offset-23{margin-left:95.83333%}.el-col-pull-23{right:95.83333%}.el-col-push-23{left:95.83333%}.el-col-24{width:100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{right:100%}.el-col-push-24{left:100%}@media only screen and (max-width:767px){.el-col-xs-0{display:none;width:0}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{width:4.16667%}.el-col-xs-offset-1{margin-left:4.16667%}.el-col-xs-pull-1{position:relative;right:4.16667%}.el-col-xs-push-1{position:relative;left:4.16667%}.el-col-xs-2{width:8.33333%}.el-col-xs-offset-2{margin-left:8.33333%}.el-col-xs-pull-2{position:relative;right:8.33333%}.el-col-xs-push-2{position:relative;left:8.33333%}.el-col-xs-3{width:12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{width:16.66667%}.el-col-xs-offset-4{margin-left:16.66667%}.el-col-xs-pull-4{position:relative;right:16.66667%}.el-col-xs-push-4{position:relative;left:16.66667%}.el-col-xs-5{width:20.83333%}.el-col-xs-offset-5{margin-left:20.83333%}.el-col-xs-pull-5{position:relative;right:20.83333%}.el-col-xs-push-5{position:relative;left:20.83333%}.el-col-xs-6{width:25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{width:29.16667%}.el-col-xs-offset-7{margin-left:29.16667%}.el-col-xs-pull-7{position:relative;right:29.16667%}.el-col-xs-push-7{position:relative;left:29.16667%}.el-col-xs-8{width:33.33333%}.el-col-xs-offset-8{margin-left:33.33333%}.el-col-xs-pull-8{position:relative;right:33.33333%}.el-col-xs-push-8{position:relative;left:33.33333%}.el-col-xs-9{width:37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{width:41.66667%}.el-col-xs-offset-10{margin-left:41.66667%}.el-col-xs-pull-10{position:relative;right:41.66667%}.el-col-xs-push-10{position:relative;left:41.66667%}.el-col-xs-11{width:45.83333%}.el-col-xs-offset-11{margin-left:45.83333%}.el-col-xs-pull-11{position:relative;right:45.83333%}.el-col-xs-push-11{position:relative;left:45.83333%}.el-col-xs-12{width:50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{width:54.16667%}.el-col-xs-offset-13{margin-left:54.16667%}.el-col-xs-pull-13{position:relative;right:54.16667%}.el-col-xs-push-13{position:relative;left:54.16667%}.el-col-xs-14{width:58.33333%}.el-col-xs-offset-14{margin-left:58.33333%}.el-col-xs-pull-14{position:relative;right:58.33333%}.el-col-xs-push-14{position:relative;left:58.33333%}.el-col-xs-15{width:62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{width:66.66667%}.el-col-xs-offset-16{margin-left:66.66667%}.el-col-xs-pull-16{position:relative;right:66.66667%}.el-col-xs-push-16{position:relative;left:66.66667%}.el-col-xs-17{width:70.83333%}.el-col-xs-offset-17{margin-left:70.83333%}.el-col-xs-pull-17{position:relative;right:70.83333%}.el-col-xs-push-17{position:relative;left:70.83333%}.el-col-xs-18{width:75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{width:79.16667%}.el-col-xs-offset-19{margin-left:79.16667%}.el-col-xs-pull-19{position:relative;right:79.16667%}.el-col-xs-push-19{position:relative;left:79.16667%}.el-col-xs-20{width:83.33333%}.el-col-xs-offset-20{margin-left:83.33333%}.el-col-xs-pull-20{position:relative;right:83.33333%}.el-col-xs-push-20{position:relative;left:83.33333%}.el-col-xs-21{width:87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{width:91.66667%}.el-col-xs-offset-22{margin-left:91.66667%}.el-col-xs-pull-22{position:relative;right:91.66667%}.el-col-xs-push-22{position:relative;left:91.66667%}.el-col-xs-23{width:95.83333%}.el-col-xs-offset-23{margin-left:95.83333%}.el-col-xs-pull-23{position:relative;right:95.83333%}.el-col-xs-push-23{position:relative;left:95.83333%}.el-col-xs-24{width:100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;width:0}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{width:4.16667%}.el-col-sm-offset-1{margin-left:4.16667%}.el-col-sm-pull-1{position:relative;right:4.16667%}.el-col-sm-push-1{position:relative;left:4.16667%}.el-col-sm-2{width:8.33333%}.el-col-sm-offset-2{margin-left:8.33333%}.el-col-sm-pull-2{position:relative;right:8.33333%}.el-col-sm-push-2{position:relative;left:8.33333%}.el-col-sm-3{width:12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{width:16.66667%}.el-col-sm-offset-4{margin-left:16.66667%}.el-col-sm-pull-4{position:relative;right:16.66667%}.el-col-sm-push-4{position:relative;left:16.66667%}.el-col-sm-5{width:20.83333%}.el-col-sm-offset-5{margin-left:20.83333%}.el-col-sm-pull-5{position:relative;right:20.83333%}.el-col-sm-push-5{position:relative;left:20.83333%}.el-col-sm-6{width:25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{width:29.16667%}.el-col-sm-offset-7{margin-left:29.16667%}.el-col-sm-pull-7{position:relative;right:29.16667%}.el-col-sm-push-7{position:relative;left:29.16667%}.el-col-sm-8{width:33.33333%}.el-col-sm-offset-8{margin-left:33.33333%}.el-col-sm-pull-8{position:relative;right:33.33333%}.el-col-sm-push-8{position:relative;left:33.33333%}.el-col-sm-9{width:37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{width:41.66667%}.el-col-sm-offset-10{margin-left:41.66667%}.el-col-sm-pull-10{position:relative;right:41.66667%}.el-col-sm-push-10{position:relative;left:41.66667%}.el-col-sm-11{width:45.83333%}.el-col-sm-offset-11{margin-left:45.83333%}.el-col-sm-pull-11{position:relative;right:45.83333%}.el-col-sm-push-11{position:relative;left:45.83333%}.el-col-sm-12{width:50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{width:54.16667%}.el-col-sm-offset-13{margin-left:54.16667%}.el-col-sm-pull-13{position:relative;right:54.16667%}.el-col-sm-push-13{position:relative;left:54.16667%}.el-col-sm-14{width:58.33333%}.el-col-sm-offset-14{margin-left:58.33333%}.el-col-sm-pull-14{position:relative;right:58.33333%}.el-col-sm-push-14{position:relative;left:58.33333%}.el-col-sm-15{width:62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{width:66.66667%}.el-col-sm-offset-16{margin-left:66.66667%}.el-col-sm-pull-16{position:relative;right:66.66667%}.el-col-sm-push-16{position:relative;left:66.66667%}.el-col-sm-17{width:70.83333%}.el-col-sm-offset-17{margin-left:70.83333%}.el-col-sm-pull-17{position:relative;right:70.83333%}.el-col-sm-push-17{position:relative;left:70.83333%}.el-col-sm-18{width:75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{width:79.16667%}.el-col-sm-offset-19{margin-left:79.16667%}.el-col-sm-pull-19{position:relative;right:79.16667%}.el-col-sm-push-19{position:relative;left:79.16667%}.el-col-sm-20{width:83.33333%}.el-col-sm-offset-20{margin-left:83.33333%}.el-col-sm-pull-20{position:relative;right:83.33333%}.el-col-sm-push-20{position:relative;left:83.33333%}.el-col-sm-21{width:87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{width:91.66667%}.el-col-sm-offset-22{margin-left:91.66667%}.el-col-sm-pull-22{position:relative;right:91.66667%}.el-col-sm-push-22{position:relative;left:91.66667%}.el-col-sm-23{width:95.83333%}.el-col-sm-offset-23{margin-left:95.83333%}.el-col-sm-pull-23{position:relative;right:95.83333%}.el-col-sm-push-23{position:relative;left:95.83333%}.el-col-sm-24{width:100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0{display:none;width:0}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{width:4.16667%}.el-col-md-offset-1{margin-left:4.16667%}.el-col-md-pull-1{position:relative;right:4.16667%}.el-col-md-push-1{position:relative;left:4.16667%}.el-col-md-2{width:8.33333%}.el-col-md-offset-2{margin-left:8.33333%}.el-col-md-pull-2{position:relative;right:8.33333%}.el-col-md-push-2{position:relative;left:8.33333%}.el-col-md-3{width:12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{width:16.66667%}.el-col-md-offset-4{margin-left:16.66667%}.el-col-md-pull-4{position:relative;right:16.66667%}.el-col-md-push-4{position:relative;left:16.66667%}.el-col-md-5{width:20.83333%}.el-col-md-offset-5{margin-left:20.83333%}.el-col-md-pull-5{position:relative;right:20.83333%}.el-col-md-push-5{position:relative;left:20.83333%}.el-col-md-6{width:25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{width:29.16667%}.el-col-md-offset-7{margin-left:29.16667%}.el-col-md-pull-7{position:relative;right:29.16667%}.el-col-md-push-7{position:relative;left:29.16667%}.el-col-md-8{width:33.33333%}.el-col-md-offset-8{margin-left:33.33333%}.el-col-md-pull-8{position:relative;right:33.33333%}.el-col-md-push-8{position:relative;left:33.33333%}.el-col-md-9{width:37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{width:41.66667%}.el-col-md-offset-10{margin-left:41.66667%}.el-col-md-pull-10{position:relative;right:41.66667%}.el-col-md-push-10{position:relative;left:41.66667%}.el-col-md-11{width:45.83333%}.el-col-md-offset-11{margin-left:45.83333%}.el-col-md-pull-11{position:relative;right:45.83333%}.el-col-md-push-11{position:relative;left:45.83333%}.el-col-md-12{width:50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{width:54.16667%}.el-col-md-offset-13{margin-left:54.16667%}.el-col-md-pull-13{position:relative;right:54.16667%}.el-col-md-push-13{position:relative;left:54.16667%}.el-col-md-14{width:58.33333%}.el-col-md-offset-14{margin-left:58.33333%}.el-col-md-pull-14{position:relative;right:58.33333%}.el-col-md-push-14{position:relative;left:58.33333%}.el-col-md-15{width:62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{width:66.66667%}.el-col-md-offset-16{margin-left:66.66667%}.el-col-md-pull-16{position:relative;right:66.66667%}.el-col-md-push-16{position:relative;left:66.66667%}.el-col-md-17{width:70.83333%}.el-col-md-offset-17{margin-left:70.83333%}.el-col-md-pull-17{position:relative;right:70.83333%}.el-col-md-push-17{position:relative;left:70.83333%}.el-col-md-18{width:75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{width:79.16667%}.el-col-md-offset-19{margin-left:79.16667%}.el-col-md-pull-19{position:relative;right:79.16667%}.el-col-md-push-19{position:relative;left:79.16667%}.el-col-md-20{width:83.33333%}.el-col-md-offset-20{margin-left:83.33333%}.el-col-md-pull-20{position:relative;right:83.33333%}.el-col-md-push-20{position:relative;left:83.33333%}.el-col-md-21{width:87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{width:91.66667%}.el-col-md-offset-22{margin-left:91.66667%}.el-col-md-pull-22{position:relative;right:91.66667%}.el-col-md-push-22{position:relative;left:91.66667%}.el-col-md-23{width:95.83333%}.el-col-md-offset-23{margin-left:95.83333%}.el-col-md-pull-23{position:relative;right:95.83333%}.el-col-md-push-23{position:relative;left:95.83333%}.el-col-md-24{width:100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;width:0}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{width:4.16667%}.el-col-lg-offset-1{margin-left:4.16667%}.el-col-lg-pull-1{position:relative;right:4.16667%}.el-col-lg-push-1{position:relative;left:4.16667%}.el-col-lg-2{width:8.33333%}.el-col-lg-offset-2{margin-left:8.33333%}.el-col-lg-pull-2{position:relative;right:8.33333%}.el-col-lg-push-2{position:relative;left:8.33333%}.el-col-lg-3{width:12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{width:16.66667%}.el-col-lg-offset-4{margin-left:16.66667%}.el-col-lg-pull-4{position:relative;right:16.66667%}.el-col-lg-push-4{position:relative;left:16.66667%}.el-col-lg-5{width:20.83333%}.el-col-lg-offset-5{margin-left:20.83333%}.el-col-lg-pull-5{position:relative;right:20.83333%}.el-col-lg-push-5{position:relative;left:20.83333%}.el-col-lg-6{width:25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{width:29.16667%}.el-col-lg-offset-7{margin-left:29.16667%}.el-col-lg-pull-7{position:relative;right:29.16667%}.el-col-lg-push-7{position:relative;left:29.16667%}.el-col-lg-8{width:33.33333%}.el-col-lg-offset-8{margin-left:33.33333%}.el-col-lg-pull-8{position:relative;right:33.33333%}.el-col-lg-push-8{position:relative;left:33.33333%}.el-col-lg-9{width:37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{width:41.66667%}.el-col-lg-offset-10{margin-left:41.66667%}.el-col-lg-pull-10{position:relative;right:41.66667%}.el-col-lg-push-10{position:relative;left:41.66667%}.el-col-lg-11{width:45.83333%}.el-col-lg-offset-11{margin-left:45.83333%}.el-col-lg-pull-11{position:relative;right:45.83333%}.el-col-lg-push-11{position:relative;left:45.83333%}.el-col-lg-12{width:50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{width:54.16667%}.el-col-lg-offset-13{margin-left:54.16667%}.el-col-lg-pull-13{position:relative;right:54.16667%}.el-col-lg-push-13{position:relative;left:54.16667%}.el-col-lg-14{width:58.33333%}.el-col-lg-offset-14{margin-left:58.33333%}.el-col-lg-pull-14{position:relative;right:58.33333%}.el-col-lg-push-14{position:relative;left:58.33333%}.el-col-lg-15{width:62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{width:66.66667%}.el-col-lg-offset-16{margin-left:66.66667%}.el-col-lg-pull-16{position:relative;right:66.66667%}.el-col-lg-push-16{position:relative;left:66.66667%}.el-col-lg-17{width:70.83333%}.el-col-lg-offset-17{margin-left:70.83333%}.el-col-lg-pull-17{position:relative;right:70.83333%}.el-col-lg-push-17{position:relative;left:70.83333%}.el-col-lg-18{width:75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{width:79.16667%}.el-col-lg-offset-19{margin-left:79.16667%}.el-col-lg-pull-19{position:relative;right:79.16667%}.el-col-lg-push-19{position:relative;left:79.16667%}.el-col-lg-20{width:83.33333%}.el-col-lg-offset-20{margin-left:83.33333%}.el-col-lg-pull-20{position:relative;right:83.33333%}.el-col-lg-push-20{position:relative;left:83.33333%}.el-col-lg-21{width:87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{width:91.66667%}.el-col-lg-offset-22{margin-left:91.66667%}.el-col-lg-pull-22{position:relative;right:91.66667%}.el-col-lg-push-22{position:relative;left:91.66667%}.el-col-lg-23{width:95.83333%}.el-col-lg-offset-23{margin-left:95.83333%}.el-col-lg-pull-23{position:relative;right:95.83333%}.el-col-lg-push-23{position:relative;left:95.83333%}.el-col-lg-24{width:100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;width:0}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{width:4.16667%}.el-col-xl-offset-1{margin-left:4.16667%}.el-col-xl-pull-1{position:relative;right:4.16667%}.el-col-xl-push-1{position:relative;left:4.16667%}.el-col-xl-2{width:8.33333%}.el-col-xl-offset-2{margin-left:8.33333%}.el-col-xl-pull-2{position:relative;right:8.33333%}.el-col-xl-push-2{position:relative;left:8.33333%}.el-col-xl-3{width:12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{width:16.66667%}.el-col-xl-offset-4{margin-left:16.66667%}.el-col-xl-pull-4{position:relative;right:16.66667%}.el-col-xl-push-4{position:relative;left:16.66667%}.el-col-xl-5{width:20.83333%}.el-col-xl-offset-5{margin-left:20.83333%}.el-col-xl-pull-5{position:relative;right:20.83333%}.el-col-xl-push-5{position:relative;left:20.83333%}.el-col-xl-6{width:25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{width:29.16667%}.el-col-xl-offset-7{margin-left:29.16667%}.el-col-xl-pull-7{position:relative;right:29.16667%}.el-col-xl-push-7{position:relative;left:29.16667%}.el-col-xl-8{width:33.33333%}.el-col-xl-offset-8{margin-left:33.33333%}.el-col-xl-pull-8{position:relative;right:33.33333%}.el-col-xl-push-8{position:relative;left:33.33333%}.el-col-xl-9{width:37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{width:41.66667%}.el-col-xl-offset-10{margin-left:41.66667%}.el-col-xl-pull-10{position:relative;right:41.66667%}.el-col-xl-push-10{position:relative;left:41.66667%}.el-col-xl-11{width:45.83333%}.el-col-xl-offset-11{margin-left:45.83333%}.el-col-xl-pull-11{position:relative;right:45.83333%}.el-col-xl-push-11{position:relative;left:45.83333%}.el-col-xl-12{width:50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{width:54.16667%}.el-col-xl-offset-13{margin-left:54.16667%}.el-col-xl-pull-13{position:relative;right:54.16667%}.el-col-xl-push-13{position:relative;left:54.16667%}.el-col-xl-14{width:58.33333%}.el-col-xl-offset-14{margin-left:58.33333%}.el-col-xl-pull-14{position:relative;right:58.33333%}.el-col-xl-push-14{position:relative;left:58.33333%}.el-col-xl-15{width:62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{width:66.66667%}.el-col-xl-offset-16{margin-left:66.66667%}.el-col-xl-pull-16{position:relative;right:66.66667%}.el-col-xl-push-16{position:relative;left:66.66667%}.el-col-xl-17{width:70.83333%}.el-col-xl-offset-17{margin-left:70.83333%}.el-col-xl-pull-17{position:relative;right:70.83333%}.el-col-xl-push-17{position:relative;left:70.83333%}.el-col-xl-18{width:75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{width:79.16667%}.el-col-xl-offset-19{margin-left:79.16667%}.el-col-xl-pull-19{position:relative;right:79.16667%}.el-col-xl-push-19{position:relative;left:79.16667%}.el-col-xl-20{width:83.33333%}.el-col-xl-offset-20{margin-left:83.33333%}.el-col-xl-pull-20{position:relative;right:83.33333%}.el-col-xl-push-20{position:relative;left:83.33333%}.el-col-xl-21{width:87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{width:91.66667%}.el-col-xl-offset-22{margin-left:91.66667%}.el-col-xl-pull-22{position:relative;right:91.66667%}.el-col-xl-push-22{position:relative;left:91.66667%}.el-col-xl-23{width:95.83333%}.el-col-xl-offset-23{margin-left:95.83333%}.el-col-xl-pull-23{position:relative;right:95.83333%}.el-col-xl-push-23{position:relative;left:95.83333%}.el-col-xl-24{width:100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}.el-row{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box}.el-row:after,.el-row:before{display:table;content:""}.el-row:after{clear:both}.el-row--flex{display:-webkit-box;display:-ms-flexbox;display:flex}.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-row--flex.is-justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.el-row--flex.is-justify-space-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.el-row--flex.is-justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.el-row--flex.is-align-middle{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-row--flex.is-align-bottom{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}@font-face{font-family:element-icons;src:url(../fonts/element-icons.535877f5.woff) format("woff"),url(../fonts/element-icons.732389de.ttf) format("truetype");font-weight:400;font-display:"auto";font-style:normal}[class*=" el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-ice-cream-round:before{content:"\E6A0"}.el-icon-ice-cream-square:before{content:"\E6A3"}.el-icon-lollipop:before{content:"\E6A4"}.el-icon-potato-strips:before{content:"\E6A5"}.el-icon-milk-tea:before{content:"\E6A6"}.el-icon-ice-drink:before{content:"\E6A7"}.el-icon-ice-tea:before{content:"\E6A9"}.el-icon-coffee:before{content:"\E6AA"}.el-icon-orange:before{content:"\E6AB"}.el-icon-pear:before{content:"\E6AC"}.el-icon-apple:before{content:"\E6AD"}.el-icon-cherry:before{content:"\E6AE"}.el-icon-watermelon:before{content:"\E6AF"}.el-icon-grape:before{content:"\E6B0"}.el-icon-refrigerator:before{content:"\E6B1"}.el-icon-goblet-square-full:before{content:"\E6B2"}.el-icon-goblet-square:before{content:"\E6B3"}.el-icon-goblet-full:before{content:"\E6B4"}.el-icon-goblet:before{content:"\E6B5"}.el-icon-cold-drink:before{content:"\E6B6"}.el-icon-coffee-cup:before{content:"\E6B8"}.el-icon-water-cup:before{content:"\E6B9"}.el-icon-hot-water:before{content:"\E6BA"}.el-icon-ice-cream:before{content:"\E6BB"}.el-icon-dessert:before{content:"\E6BC"}.el-icon-sugar:before{content:"\E6BD"}.el-icon-tableware:before{content:"\E6BE"}.el-icon-burger:before{content:"\E6BF"}.el-icon-knife-fork:before{content:"\E6C1"}.el-icon-fork-spoon:before{content:"\E6C2"}.el-icon-chicken:before{content:"\E6C3"}.el-icon-food:before{content:"\E6C4"}.el-icon-dish-1:before{content:"\E6C5"}.el-icon-dish:before{content:"\E6C6"}.el-icon-moon-night:before{content:"\E6EE"}.el-icon-moon:before{content:"\E6F0"}.el-icon-cloudy-and-sunny:before{content:"\E6F1"}.el-icon-partly-cloudy:before{content:"\E6F2"}.el-icon-cloudy:before{content:"\E6F3"}.el-icon-sunny:before{content:"\E6F6"}.el-icon-sunset:before{content:"\E6F7"}.el-icon-sunrise-1:before{content:"\E6F8"}.el-icon-sunrise:before{content:"\E6F9"}.el-icon-heavy-rain:before{content:"\E6FA"}.el-icon-lightning:before{content:"\E6FB"}.el-icon-light-rain:before{content:"\E6FC"}.el-icon-wind-power:before{content:"\E6FD"}.el-icon-baseball:before{content:"\E712"}.el-icon-soccer:before{content:"\E713"}.el-icon-football:before{content:"\E715"}.el-icon-basketball:before{content:"\E716"}.el-icon-ship:before{content:"\E73F"}.el-icon-truck:before{content:"\E740"}.el-icon-bicycle:before{content:"\E741"}.el-icon-mobile-phone:before{content:"\E6D3"}.el-icon-service:before{content:"\E6D4"}.el-icon-key:before{content:"\E6E2"}.el-icon-unlock:before{content:"\E6E4"}.el-icon-lock:before{content:"\E6E5"}.el-icon-watch:before{content:"\E6FE"}.el-icon-watch-1:before{content:"\E6FF"}.el-icon-timer:before{content:"\E702"}.el-icon-alarm-clock:before{content:"\E703"}.el-icon-map-location:before{content:"\E704"}.el-icon-delete-location:before{content:"\E705"}.el-icon-add-location:before{content:"\E706"}.el-icon-location-information:before{content:"\E707"}.el-icon-location-outline:before{content:"\E708"}.el-icon-location:before{content:"\E79E"}.el-icon-place:before{content:"\E709"}.el-icon-discover:before{content:"\E70A"}.el-icon-first-aid-kit:before{content:"\E70B"}.el-icon-trophy-1:before{content:"\E70C"}.el-icon-trophy:before{content:"\E70D"}.el-icon-medal:before{content:"\E70E"}.el-icon-medal-1:before{content:"\E70F"}.el-icon-stopwatch:before{content:"\E710"}.el-icon-mic:before{content:"\E711"}.el-icon-copy-document:before{content:"\E718"}.el-icon-full-screen:before{content:"\E719"}.el-icon-switch-button:before{content:"\E71B"}.el-icon-aim:before{content:"\E71C"}.el-icon-crop:before{content:"\E71D"}.el-icon-odometer:before{content:"\E71E"}.el-icon-time:before{content:"\E71F"}.el-icon-bangzhu:before{content:"\E724"}.el-icon-close-notification:before{content:"\E726"}.el-icon-microphone:before{content:"\E727"}.el-icon-turn-off-microphone:before{content:"\E728"}.el-icon-position:before{content:"\E729"}.el-icon-postcard:before{content:"\E72A"}.el-icon-message:before{content:"\E72B"}.el-icon-chat-line-square:before{content:"\E72D"}.el-icon-chat-dot-square:before{content:"\E72E"}.el-icon-chat-dot-round:before{content:"\E72F"}.el-icon-chat-square:before{content:"\E730"}.el-icon-chat-line-round:before{content:"\E731"}.el-icon-chat-round:before{content:"\E732"}.el-icon-set-up:before{content:"\E733"}.el-icon-turn-off:before{content:"\E734"}.el-icon-open:before{content:"\E735"}.el-icon-connection:before{content:"\E736"}.el-icon-link:before{content:"\E737"}.el-icon-cpu:before{content:"\E738"}.el-icon-thumb:before{content:"\E739"}.el-icon-female:before{content:"\E73A"}.el-icon-male:before{content:"\E73B"}.el-icon-guide:before{content:"\E73C"}.el-icon-news:before{content:"\E73E"}.el-icon-price-tag:before{content:"\E744"}.el-icon-discount:before{content:"\E745"}.el-icon-wallet:before{content:"\E747"}.el-icon-coin:before{content:"\E748"}.el-icon-money:before{content:"\E749"}.el-icon-bank-card:before{content:"\E74A"}.el-icon-box:before{content:"\E74B"}.el-icon-present:before{content:"\E74C"}.el-icon-sell:before{content:"\E6D5"}.el-icon-sold-out:before{content:"\E6D6"}.el-icon-shopping-bag-2:before{content:"\E74D"}.el-icon-shopping-bag-1:before{content:"\E74E"}.el-icon-shopping-cart-2:before{content:"\E74F"}.el-icon-shopping-cart-1:before{content:"\E750"}.el-icon-shopping-cart-full:before{content:"\E751"}.el-icon-smoking:before{content:"\E752"}.el-icon-no-smoking:before{content:"\E753"}.el-icon-house:before{content:"\E754"}.el-icon-table-lamp:before{content:"\E755"}.el-icon-school:before{content:"\E756"}.el-icon-office-building:before{content:"\E757"}.el-icon-toilet-paper:before{content:"\E758"}.el-icon-notebook-2:before{content:"\E759"}.el-icon-notebook-1:before{content:"\E75A"}.el-icon-files:before{content:"\E75B"}.el-icon-collection:before{content:"\E75C"}.el-icon-receiving:before{content:"\E75D"}.el-icon-suitcase-1:before{content:"\E760"}.el-icon-suitcase:before{content:"\E761"}.el-icon-film:before{content:"\E763"}.el-icon-collection-tag:before{content:"\E765"}.el-icon-data-analysis:before{content:"\E766"}.el-icon-pie-chart:before{content:"\E767"}.el-icon-data-board:before{content:"\E768"}.el-icon-data-line:before{content:"\E76D"}.el-icon-reading:before{content:"\E769"}.el-icon-magic-stick:before{content:"\E76A"}.el-icon-coordinate:before{content:"\E76B"}.el-icon-mouse:before{content:"\E76C"}.el-icon-brush:before{content:"\E76E"}.el-icon-headset:before{content:"\E76F"}.el-icon-umbrella:before{content:"\E770"}.el-icon-scissors:before{content:"\E771"}.el-icon-mobile:before{content:"\E773"}.el-icon-attract:before{content:"\E774"}.el-icon-monitor:before{content:"\E775"}.el-icon-search:before{content:"\E778"}.el-icon-takeaway-box:before{content:"\E77A"}.el-icon-paperclip:before{content:"\E77D"}.el-icon-printer:before{content:"\E77E"}.el-icon-document-add:before{content:"\E782"}.el-icon-document:before{content:"\E785"}.el-icon-document-checked:before{content:"\E786"}.el-icon-document-copy:before{content:"\E787"}.el-icon-document-delete:before{content:"\E788"}.el-icon-document-remove:before{content:"\E789"}.el-icon-tickets:before{content:"\E78B"}.el-icon-folder-checked:before{content:"\E77F"}.el-icon-folder-delete:before{content:"\E780"}.el-icon-folder-remove:before{content:"\E781"}.el-icon-folder-add:before{content:"\E783"}.el-icon-folder-opened:before{content:"\E784"}.el-icon-folder:before{content:"\E78A"}.el-icon-edit-outline:before{content:"\E764"}.el-icon-edit:before{content:"\E78C"}.el-icon-date:before{content:"\E78E"}.el-icon-c-scale-to-original:before{content:"\E7C6"}.el-icon-view:before{content:"\E6CE"}.el-icon-loading:before{content:"\E6CF"}.el-icon-rank:before{content:"\E6D1"}.el-icon-sort-down:before{content:"\E7C4"}.el-icon-sort-up:before{content:"\E7C5"}.el-icon-sort:before{content:"\E6D2"}.el-icon-finished:before{content:"\E6CD"}.el-icon-refresh-left:before{content:"\E6C7"}.el-icon-refresh-right:before{content:"\E6C8"}.el-icon-refresh:before{content:"\E6D0"}.el-icon-video-play:before{content:"\E7C0"}.el-icon-video-pause:before{content:"\E7C1"}.el-icon-d-arrow-right:before{content:"\E6DC"}.el-icon-d-arrow-left:before{content:"\E6DD"}.el-icon-arrow-up:before{content:"\E6E1"}.el-icon-arrow-down:before{content:"\E6DF"}.el-icon-arrow-right:before{content:"\E6E0"}.el-icon-arrow-left:before{content:"\E6DE"}.el-icon-top-right:before{content:"\E6E7"}.el-icon-top-left:before{content:"\E6E8"}.el-icon-top:before{content:"\E6E6"}.el-icon-bottom:before{content:"\E6EB"}.el-icon-right:before{content:"\E6E9"}.el-icon-back:before{content:"\E6EA"}.el-icon-bottom-right:before{content:"\E6EC"}.el-icon-bottom-left:before{content:"\E6ED"}.el-icon-caret-top:before{content:"\E78F"}.el-icon-caret-bottom:before{content:"\E790"}.el-icon-caret-right:before{content:"\E791"}.el-icon-caret-left:before{content:"\E792"}.el-icon-d-caret:before{content:"\E79A"}.el-icon-share:before{content:"\E793"}.el-icon-menu:before{content:"\E798"}.el-icon-s-grid:before{content:"\E7A6"}.el-icon-s-check:before{content:"\E7A7"}.el-icon-s-data:before{content:"\E7A8"}.el-icon-s-opportunity:before{content:"\E7AA"}.el-icon-s-custom:before{content:"\E7AB"}.el-icon-s-claim:before{content:"\E7AD"}.el-icon-s-finance:before{content:"\E7AE"}.el-icon-s-comment:before{content:"\E7AF"}.el-icon-s-flag:before{content:"\E7B0"}.el-icon-s-marketing:before{content:"\E7B1"}.el-icon-s-shop:before{content:"\E7B4"}.el-icon-s-open:before{content:"\E7B5"}.el-icon-s-management:before{content:"\E7B6"}.el-icon-s-ticket:before{content:"\E7B7"}.el-icon-s-release:before{content:"\E7B8"}.el-icon-s-home:before{content:"\E7B9"}.el-icon-s-promotion:before{content:"\E7BA"}.el-icon-s-operation:before{content:"\E7BB"}.el-icon-s-unfold:before{content:"\E7BC"}.el-icon-s-fold:before{content:"\E7A9"}.el-icon-s-platform:before{content:"\E7BD"}.el-icon-s-order:before{content:"\E7BE"}.el-icon-s-cooperation:before{content:"\E7BF"}.el-icon-bell:before{content:"\E725"}.el-icon-message-solid:before{content:"\E799"}.el-icon-video-camera:before{content:"\E772"}.el-icon-video-camera-solid:before{content:"\E796"}.el-icon-camera:before{content:"\E779"}.el-icon-camera-solid:before{content:"\E79B"}.el-icon-download:before{content:"\E77C"}.el-icon-upload2:before{content:"\E77B"}.el-icon-upload:before{content:"\E7C3"}.el-icon-picture-outline-round:before{content:"\E75F"}.el-icon-picture-outline:before{content:"\E75E"}.el-icon-picture:before{content:"\E79F"}.el-icon-close:before{content:"\E6DB"}.el-icon-check:before{content:"\E6DA"}.el-icon-plus:before{content:"\E6D9"}.el-icon-minus:before{content:"\E6D8"}.el-icon-help:before{content:"\E73D"}.el-icon-s-help:before{content:"\E7B3"}.el-icon-circle-close:before{content:"\E78D"}.el-icon-circle-check:before{content:"\E720"}.el-icon-circle-plus-outline:before{content:"\E723"}.el-icon-remove-outline:before{content:"\E722"}.el-icon-zoom-out:before{content:"\E776"}.el-icon-zoom-in:before{content:"\E777"}.el-icon-error:before{content:"\E79D"}.el-icon-success:before{content:"\E79C"}.el-icon-circle-plus:before{content:"\E7A0"}.el-icon-remove:before{content:"\E7A2"}.el-icon-info:before{content:"\E7A1"}.el-icon-question:before{content:"\E7A4"}.el-icon-warning-outline:before{content:"\E6C9"}.el-icon-warning:before{content:"\E7A3"}.el-icon-goods:before{content:"\E7C2"}.el-icon-s-goods:before{content:"\E7B2"}.el-icon-star-off:before{content:"\E717"}.el-icon-star-on:before{content:"\E797"}.el-icon-more-outline:before{content:"\E6CC"}.el-icon-more:before{content:"\E794"}.el-icon-phone-outline:before{content:"\E6CB"}.el-icon-phone:before{content:"\E795"}.el-icon-user:before{content:"\E6E3"}.el-icon-user-solid:before{content:"\E7A5"}.el-icon-setting:before{content:"\E6CA"}.el-icon-s-tools:before{content:"\E7AC"}.el-icon-delete:before{content:"\E6D7"}.el-icon-delete-solid:before{content:"\E7C9"}.el-icon-eleme:before{content:"\E7C7"}.el-icon-platform-eleme:before{content:"\E7CA"}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotating{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:#409eff;z-index:1;-webkit-transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.el-tabs__new-tab{float:right;border:1px solid #d3dce6;height:18px;width:18px;line-height:18px;margin:12px 0 9px 10px;border-radius:3px;text-align:center;font-size:12px;color:#d3dce6;cursor:pointer;-webkit-transition:all .15s;transition:all .15s}.el-tabs__new-tab .el-icon-plus{-webkit-transform:scale(.8);transform:scale(.8)}.el-tabs__new-tab:hover{color:#409eff}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#e4e7ed;z-index:1}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after,.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:#909399}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;float:left;z-index:2}.el-tabs__nav.is-stretch{min-width:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.el-tabs__nav.is-stretch>*{-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:40px;display:inline-block;list-style:none;font-size:14px;font-weight:500;color:#303133;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.el-tabs__item:focus.is-active.is-focus:not(:active){-webkit-box-shadow:0 0 2px 2px #409eff inset;box-shadow:inset 0 0 2px 2px #409eff;border-radius:3px}.el-tabs__item .el-icon-close{border-radius:50%;text-align:center;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);margin-left:5px}.el-tabs__item .el-icon-close:before{-webkit-transform:scale(.9);transform:scale(.9);display:inline-block}.el-tabs__item .el-icon-close:hover{background-color:#c0c4cc;color:#fff}.el-tabs__item.is-active{color:#409eff}.el-tabs__item:hover{color:#409eff;cursor:pointer}.el-tabs__item.is-disabled{color:#c0c4cc;cursor:default}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid #e4e7ed}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid #e4e7ed;border-bottom:none;border-radius:4px 4px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close,.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid #e4e7ed;-webkit-transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1);transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:#fff}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--border-card{background:#fff;border:1px solid #dcdfe6;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04);box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:#f5f7fa;border-bottom:1px solid #e4e7ed;margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__item{-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);border:1px solid transparent;margin-top:-1px;color:#909399}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:#409eff;background-color:#fff;border-right-color:#dcdfe6;border-left-color:#dcdfe6}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:#409eff}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:#c0c4cc}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid #dcdfe6}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left:after{right:0;left:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left,.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid #e4e7ed;border-bottom:none;border-top:1px solid #e4e7ed;text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid #e4e7ed;border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid #e4e7ed;border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid #e4e7ed;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid #dfe4ed}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 transparent}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid #e4e7ed}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid #e4e7ed;border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid #e4e7ed;border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid #e4e7ed;border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid #dfe4ed}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 transparent}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{-webkit-animation:slideInRight-enter .3s;animation:slideInRight-enter .3s}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave .3s;animation:slideInRight-leave .3s}.slideInLeft-enter{-webkit-animation:slideInLeft-enter .3s;animation:slideInLeft-enter .3s}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave .3s;animation:slideInLeft-leave .3s}@-webkit-keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}.el-form--inline .el-form-item,.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form-item:after,.el-form-item__content:after{clear:both}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px}.el-form--inline .el-form-item{margin-right:10px}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item:after,.el-form-item:before{display:table;content:""}.el-form-item .el-form-item{margin-bottom:0}.el-form-item--mini.el-form-item,.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label-wrap{float:left}.el-form-item__label-wrap .el-form-item__label{display:inline-block;float:none}.el-form-item__label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:#606266;line-height:40px;padding:0 12px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__content:after,.el-form-item__content:before{display:table;content:""}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:#f56c6c;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{content:"*";color:#f56c6c;margin-right:4px}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{border-color:#f56c6c}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#f56c6c}.el-form-item--feedback .el-input__validateIcon{display:inline-block}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{display:table;content:""}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:#c0c4cc}.el-breadcrumb__separator[class*=icon]{margin:0 6px;font-weight:400}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner.is-link,.el-breadcrumb__inner a{font-weight:700;text-decoration:none;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1);color:#303133}.el-breadcrumb__inner.is-link:hover,.el-breadcrumb__inner a:hover{color:#409eff;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover{font-weight:400;color:#606266;cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-checkbox,.el-checkbox__input{white-space:nowrap}.el-checkbox-button__inner,.el-tag{-webkit-box-sizing:border-box;white-space:nowrap}.el-checkbox-button__inner{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:1px solid #ebeef5;border-radius:2px;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:2px 0}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:14px}.el-table-filter__list-item:hover{background-color:#ecf5ff;color:#66b1ff}.el-table-filter__list-item.is-active{background-color:#409eff;color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #ebeef5;padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:#606266;cursor:pointer;font-size:13px;padding:0 3px}.el-table-filter__bottom button:hover{color:#409eff}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-right:5px;margin-bottom:8px;margin-left:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-checkbox,.el-checkbox__input{display:inline-block;position:relative}.el-table,.el-table__append-wrapper{overflow:hidden}.el-table--hidden,.el-table td.is-hidden>*,.el-table th.is-hidden>*{visibility:hidden}.el-checkbox{color:#606266;font-weight:500;font-size:14px;cursor:pointer;user-select:none;margin-right:30px}.el-checkbox,.el-checkbox-button__inner,.el-table th{white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:normal;height:40px}.el-checkbox.is-bordered.is-checked{border-color:#409eff}.el-checkbox.is-bordered.is-disabled{border-color:#ebeef5;cursor:not-allowed}.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px;height:36px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:5px 15px 5px 10px;border-radius:3px;height:32px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{padding:3px 15px 3px 10px;border-radius:3px;height:28px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox__input{white-space:nowrap;cursor:pointer;outline:0;line-height:1;vertical-align:middle}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#dcdfe6;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:#c0c4cc}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:#c0c4cc}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:#c0c4cc;border-color:#c0c4cc}.el-checkbox__input.is-checked .el-checkbox__inner,.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#409eff;border-color:#409eff}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#c0c4cc;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner:after{-webkit-transform:rotate(45deg) scaleY(1);transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#409eff}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#409eff}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:#fff;height:2px;-webkit-transform:scale(.5);transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid #dcdfe6;border-radius:2px;-webkit-box-sizing:border-box;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;-webkit-transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#409eff}.el-checkbox__inner:after{-webkit-box-sizing:content-box;box-sizing:content-box;content:"";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;-webkit-transform:rotate(45deg) scaleY(0);transform:rotate(45deg) scaleY(0);width:3px;-webkit-transition:-webkit-transform .15s ease-in .05s;transition:-webkit-transform .15s ease-in .05s;transition:transform .15s ease-in .05s;transition:transform .15s ease-in .05s,-webkit-transform .15s ease-in .05s;-webkit-transform-origin:center;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox-button,.el-checkbox-button__inner{position:relative;display:inline-block}.el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.el-checkbox:last-of-type{margin-right:0}.el-checkbox-button__inner{line-height:1;font-weight:500;vertical-align:middle;cursor:pointer;background:#fff;border:1px solid #dcdfe6;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-checkbox-button__inner,.el-table,.el-tag{-webkit-box-sizing:border-box}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#409eff}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:#fff;background-color:#409eff;border-color:#409eff;-webkit-box-shadow:-1px 0 0 0 #8cc5ff;box-shadow:-1px 0 0 0 #8cc5ff}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:#409eff}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;-webkit-box-shadow:none;box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:#ebeef5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#409eff}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-tag{white-space:nowrap}.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing){outline-width:0}.el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2;min-width:10px;word-wrap:break-word}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow:after{content:" ";border-width:5px}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-5px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=right] .popper__arrow:after{bottom:-5px;left:1px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper.is-dark{background:#303133;color:#fff}.el-table,.el-table__expanded-cell{background-color:#fff}.el-tooltip__popper.is-light{background:#fff;border:1px solid #303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow:after{border-top-color:#fff}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#fff}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#303133}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow:after{border-left-color:#fff}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#303133}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow:after{border-right-color:#fff}.el-table{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%;max-width:100%;font-size:14px;color:#606266}.el-table--mini,.el-table--small,.el-table__expand-icon{font-size:12px}.el-table__empty-block{min-height:60px;text-align:center;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:#909399}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{position:relative;cursor:pointer;color:#666;-webkit-transition:-webkit-transform .2s ease-in-out;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .2s ease-in-out;height:20px}.el-table__expand-icon--expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-table__expand-icon>.el-icon{position:absolute;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit td.gutter,.el-table--fit th.gutter{border-right-width:1px}.el-table--scrollable-x .el-table__body-wrapper{overflow-x:auto}.el-table--scrollable-y .el-table__body-wrapper{overflow-y:auto}.el-table thead{color:#909399;font-weight:500}.el-table thead.is-group th{background:#f5f7fa}.el-table th,.el-table tr{background-color:#fff}.el-table td,.el-table th{padding:12px 0;min-width:0;-webkit-box-sizing:border-box;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left}.el-table td.is-center,.el-table th.is-center{text-align:center}.el-table td.is-right,.el-table th.is-right{text-align:right}.el-table td.gutter,.el-table th.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table--medium td,.el-table--medium th{padding:10px 0}.el-table--small td,.el-table--small th{padding:8px 0}.el-table--mini td,.el-table--mini th{padding:6px 0}.el-table .cell,.el-table th div{text-overflow:ellipsis;padding-right:10px;overflow:hidden}.el-table--border td:first-child .cell,.el-table--border th:first-child .cell,.el-table .cell,.el-table th div{padding-left:10px}.el-table tr input[type=checkbox]{margin:0}.el-table td,.el-table th.is-leaf{border-bottom:1px solid #ebeef5}.el-table th.is-sortable{cursor:pointer}.el-table th{overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-table th div{line-height:40px;white-space:nowrap}.el-table th>.cell,.el-table th div{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box}.el-table th>.cell{position:relative;word-wrap:normal;text-overflow:ellipsis;vertical-align:middle;width:100%}.el-table th>.cell.highlight{color:#409eff}.el-table th.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td div{-webkit-box-sizing:border-box;box-sizing:border-box}.el-table td.gutter{width:0}.el-table .cell{-webkit-box-sizing:border-box;box-sizing:border-box;white-space:normal;word-break:break-all;line-height:23px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--border,.el-table--group{border:1px solid #ebeef5}.el-table--border:after,.el-table--group:after,.el-table:before{content:"";position:absolute;background-color:#ebeef5;z-index:1}.el-table--border:after,.el-table--group:after{top:0;right:0;width:1px;height:100%}.el-table:before{left:0;bottom:0;width:100%;height:1px}.el-table--border{border-right:none;border-bottom:none}.el-table--border.el-loading-parent--relative{border-color:transparent}.el-table--border td,.el-table--border th,.el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:1px solid #ebeef5}.el-table--border th.gutter:last-of-type{border-bottom:1px solid #ebeef5;border-bottom-width:1px}.el-table--border th,.el-table__fixed-right-patch{border-bottom:1px solid #ebeef5}.el-table__fixed,.el-table__fixed-right{position:absolute;top:0;left:0;overflow-x:hidden;overflow-y:hidden;-webkit-box-shadow:0 0 10px rgba(0,0,0,.12);box-shadow:0 0 10px rgba(0,0,0,.12)}.el-table__fixed-right:before,.el-table__fixed:before{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background-color:#ebeef5;z-index:4}.el-table__fixed-right-patch{position:absolute;top:-1px;right:0;background-color:#fff}.el-table__fixed-right{top:0;left:auto;right:0}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.el-table__fixed-header-wrapper{position:absolute;left:0;top:0;z-index:3}.el-table__fixed-footer-wrapper{position:absolute;left:0;bottom:0;z-index:3}.el-table__fixed-footer-wrapper tbody td{border-top:1px solid #ebeef5;background-color:#f5f7fa;color:#606266}.el-table__fixed-body-wrapper{position:absolute;left:0;top:37px;overflow:hidden;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td{border-top:1px solid #ebeef5}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td,.el-table__header-wrapper tbody td{background-color:#f5f7fa;color:#606266}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper.is-scrolling-left~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right,.el-table__body-wrapper.is-scrolling-right~.el-table__fixed-right{-webkit-box-shadow:none;box-shadow:none}.el-table__body-wrapper .el-table--border.is-scrolling-right~.el-table__fixed-right{border-left:1px solid #ebeef5}.el-table .caret-wrapper{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:34px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:5px solid transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:#c0c4cc;top:5px}.el-table .sort-caret.descending{border-top-color:#c0c4cc;bottom:7px}.el-table .ascending .sort-caret.ascending{border-bottom-color:#409eff}.el-table .descending .sort-caret.descending{border-top-color:#409eff}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td{background:#fafafa}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td{background-color:#ecf5ff}.el-table__body tr.hover-row.current-row>td,.el-table__body tr.hover-row.el-table__row--striped.current-row>td,.el-table__body tr.hover-row.el-table__row--striped>td,.el-table__body tr.hover-row>td{background-color:#f5f7fa}.el-table__body tr.current-row>td{background-color:#ecf5ff}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:1px solid #ebeef5;z-index:10}.el-table__column-filter-trigger{display:inline-block;line-height:34px;cursor:pointer}.el-table__column-filter-trigger i{color:#909399;font-size:12px;-webkit-transform:scale(.75);transform:scale(.75)}.el-table--enable-row-transition .el-table__body td{-webkit-transition:background-color .25s ease;transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td{background-color:#f5f7fa}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:20px;line-height:20px;height:20px;text-align:center;margin-right:3px}.el-button-group>.el-button.is-active,.el-button-group>.el-button.is-disabled,.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;-webkit-transition:.1s;transition:.1s;font-weight:500;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:4px}.el-button+.el-button{margin-left:10px}.el-button:focus,.el-button:hover{color:#409eff;border-color:#c6e2ff;background-color:#ecf5ff}.el-button:active{color:#3a8ee6;border-color:#3a8ee6;outline:0}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#fff;border-color:#409eff;color:#409eff}.el-button.is-active,.el-button.is-plain:active{color:#3a8ee6;border-color:#3a8ee6}.el-button.is-plain:active{background:#fff;outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#fff;border-color:#ebeef5;color:#c0c4cc}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:hsla(0,0%,100%,.35)}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{color:#fff;background-color:#409eff;border-color:#409eff}.el-button--primary:focus,.el-button--primary:hover{background:#66b1ff;border-color:#66b1ff;color:#fff}.el-button--primary.is-active,.el-button--primary:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff}.el-button--primary:active{outline:0}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{color:#fff;background-color:#a0cfff;border-color:#a0cfff}.el-button--primary.is-plain{color:#409eff;background:#ecf5ff;border-color:#b3d8ff}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#409eff;border-color:#409eff;color:#fff}.el-button--primary.is-plain:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff;outline:0}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{color:#8cc5ff;background-color:#ecf5ff;border-color:#d9ecff}.el-button--success{color:#fff;background-color:#67c23a;border-color:#67c23a}.el-button--success:focus,.el-button--success:hover{background:#85ce61;border-color:#85ce61;color:#fff}.el-button--success.is-active,.el-button--success:active{background:#5daf34;border-color:#5daf34;color:#fff}.el-button--success:active{outline:0}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{color:#fff;background-color:#b3e19d;border-color:#b3e19d}.el-button--success.is-plain{color:#67c23a;background:#f0f9eb;border-color:#c2e7b0}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#67c23a;border-color:#67c23a;color:#fff}.el-button--success.is-plain:active{background:#5daf34;border-color:#5daf34;color:#fff;outline:0}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{color:#a4da89;background-color:#f0f9eb;border-color:#e1f3d8}.el-button--warning{color:#fff;background-color:#e6a23c;border-color:#e6a23c}.el-button--warning:focus,.el-button--warning:hover{background:#ebb563;border-color:#ebb563;color:#fff}.el-button--warning.is-active,.el-button--warning:active{background:#cf9236;border-color:#cf9236;color:#fff}.el-button--warning:active{outline:0}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{color:#fff;background-color:#f3d19e;border-color:#f3d19e}.el-button--warning.is-plain{color:#e6a23c;background:#fdf6ec;border-color:#f5dab1}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#e6a23c;border-color:#e6a23c;color:#fff}.el-button--warning.is-plain:active{background:#cf9236;border-color:#cf9236;color:#fff;outline:0}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{color:#f0c78a;background-color:#fdf6ec;border-color:#faecd8}.el-button--danger{color:#fff;background-color:#f56c6c;border-color:#f56c6c}.el-button--danger:focus,.el-button--danger:hover{background:#f78989;border-color:#f78989;color:#fff}.el-button--danger.is-active,.el-button--danger:active{background:#dd6161;border-color:#dd6161;color:#fff}.el-button--danger:active{outline:0}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{color:#fff;background-color:#fab6b6;border-color:#fab6b6}.el-button--danger.is-plain{color:#f56c6c;background:#fef0f0;border-color:#fbc4c4}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#f56c6c;border-color:#f56c6c;color:#fff}.el-button--danger.is-plain:active{background:#dd6161;border-color:#dd6161;color:#fff;outline:0}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{color:#f9a7a7;background-color:#fef0f0;border-color:#fde2e2}.el-button--info{color:#fff;background-color:#909399;border-color:#909399}.el-button--info:focus,.el-button--info:hover{background:#a6a9ad;border-color:#a6a9ad;color:#fff}.el-button--info.is-active,.el-button--info:active{background:#82848a;border-color:#82848a;color:#fff}.el-button--info:active{outline:0}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{color:#fff;background-color:#c8c9cc;border-color:#c8c9cc}.el-button--info.is-plain{color:#909399;background:#f4f4f5;border-color:#d3d4d6}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#909399;border-color:#909399;color:#fff}.el-button--info.is-plain:active{background:#82848a;border-color:#82848a;color:#fff;outline:0}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{color:#bcbec2;background-color:#f4f4f5;border-color:#e9e9eb}.el-button--text,.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover,.el-button--text:active{border-color:transparent}.el-button--medium{padding:10px 20px;font-size:14px;border-radius:4px}.el-button--mini,.el-button--small{font-size:12px;border-radius:3px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small,.el-button--small.is-round{padding:9px 15px}.el-button--small.is-circle{padding:9px}.el-button--mini,.el-button--mini.is-round{padding:7px 15px}.el-button--mini.is-circle{padding:7px}.el-button--text{color:#409eff;background:0 0;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{color:#66b1ff;border-color:transparent;background-color:transparent}.el-button--text:active{color:#3a8ee6;background-color:transparent}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{display:table;content:""}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-radius:4px}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-select-dropdown__item{white-space:nowrap}.el-popper .popper__arrow,.el-popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-popper .popper__arrow{border-width:6px;-webkit-filter:drop-shadow(0 2px 12px rgba(0,0,0,.03));filter:drop-shadow(0 2px 12px rgba(0,0,0,.03))}.el-popper .popper__arrow:after{content:" ";border-width:6px}.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#ebeef5;border-bottom-width:0}.el-popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#ebeef5}.el-popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.el-popper[x-placement^=right]{margin-left:12px}.el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#ebeef5;border-left-width:0}.el-popper[x-placement^=right] .popper__arrow:after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.el-popper[x-placement^=left]{margin-right:12px}.el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#ebeef5}.el-popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.el-select-dropdown{position:absolute;z-index:1001;border:1px solid #e4e7ed;border-radius:4px;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:5px 0}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#409eff;background-color:#fff}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#f5f7fa}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{position:absolute;right:20px;font-family:element-icons;content:"\E6DA";font-size:12px;font-weight:700;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-select-dropdown__item,.el-tag{white-space:nowrap;-webkit-box-sizing:border-box}.el-tag{background-color:#ecf5ff;border-color:#d9ecff;display:inline-block;height:32px;padding:0 10px;line-height:30px;font-size:12px;color:#409eff;border-width:1px;border-style:solid;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-tag.is-hit{border-color:#409eff}.el-tag .el-tag__close{color:#409eff}.el-tag .el-tag__close:hover{color:#fff;background-color:#409eff}.el-tag.el-tag--info{background-color:#f4f4f5;border-color:#e9e9eb;color:#909399}.el-tag.el-tag--info.is-hit{border-color:#909399}.el-tag.el-tag--info .el-tag__close{color:#909399}.el-tag.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag.el-tag--success{background-color:#f0f9eb;border-color:#e1f3d8;color:#67c23a}.el-tag.el-tag--success.is-hit{border-color:#67c23a}.el-tag.el-tag--success .el-tag__close{color:#67c23a}.el-tag.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag.el-tag--warning{background-color:#fdf6ec;border-color:#faecd8;color:#e6a23c}.el-tag.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag.el-tag--danger{background-color:#fef0f0;border-color:#fde2e2;color:#f56c6c}.el-tag.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;vertical-align:middle;top:-1px;right:-5px}.el-tag .el-icon-close:before{display:block}.el-tag--dark{background-color:#409eff;color:#fff}.el-tag--dark,.el-tag--dark.is-hit{border-color:#409eff}.el-tag--dark .el-tag__close{color:#fff}.el-tag--dark .el-tag__close:hover{color:#fff;background-color:#66b1ff}.el-tag--dark.el-tag--info{background-color:#909399;border-color:#909399;color:#fff}.el-tag--dark.el-tag--info.is-hit{border-color:#909399}.el-tag--dark.el-tag--info .el-tag__close{color:#fff}.el-tag--dark.el-tag--info .el-tag__close:hover{color:#fff;background-color:#a6a9ad}.el-tag--dark.el-tag--success{background-color:#67c23a;border-color:#67c23a;color:#fff}.el-tag--dark.el-tag--success.is-hit{border-color:#67c23a}.el-tag--dark.el-tag--success .el-tag__close{color:#fff}.el-tag--dark.el-tag--success .el-tag__close:hover{color:#fff;background-color:#85ce61}.el-tag--dark.el-tag--warning{background-color:#e6a23c;border-color:#e6a23c;color:#fff}.el-tag--dark.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--dark.el-tag--warning .el-tag__close{color:#fff}.el-tag--dark.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#ebb563}.el-tag--dark.el-tag--danger{background-color:#f56c6c;border-color:#f56c6c;color:#fff}.el-tag--dark.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--dark.el-tag--danger .el-tag__close{color:#fff}.el-tag--dark.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f78989}.el-tag--plain{background-color:#fff;border-color:#b3d8ff;color:#409eff}.el-tag--plain.is-hit{border-color:#409eff}.el-tag--plain .el-tag__close{color:#409eff}.el-tag--plain .el-tag__close:hover{color:#fff;background-color:#409eff}.el-tag--plain.el-tag--info{background-color:#fff;border-color:#d3d4d6;color:#909399}.el-tag--plain.el-tag--info.is-hit{border-color:#909399}.el-tag--plain.el-tag--info .el-tag__close{color:#909399}.el-tag--plain.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag--plain.el-tag--success{background-color:#fff;border-color:#c2e7b0;color:#67c23a}.el-tag--plain.el-tag--success.is-hit{border-color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close{color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag--plain.el-tag--warning{background-color:#fff;border-color:#f5dab1;color:#e6a23c}.el-tag--plain.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag--plain.el-tag--danger{background-color:#fff;border-color:#fbc4c4;color:#f56c6c}.el-tag--plain.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;-webkit-transform:scale(.7);transform:scale(.7)}.el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;overflow:hidden;text-overflow:ellipsis;color:#606266;height:34px;line-height:34px;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#fff}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#f5f7fa}.el-select-dropdown__item.selected{color:#409eff;font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:#e4e7ed}.el-select-group__title{padding-left:20px;font-size:12px;color:#909399;line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-scrollbar{overflow:hidden;position:relative}.el-scrollbar:active>.el-scrollbar__bar,.el-scrollbar:focus>.el-scrollbar__bar,.el-scrollbar:hover>.el-scrollbar__bar{opacity:1;-webkit-transition:opacity .34s ease-out;transition:opacity .34s ease-out}.el-scrollbar__wrap{overflow:scroll;height:100%}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(144,147,153,.3);-webkit-transition:background-color .3s;transition:background-color .3s}.el-scrollbar__thumb:hover{background-color:rgba(144,147,153,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;-webkit-transition:opacity .12s ease-out;transition:opacity .12s ease-out}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-select{display:inline-block;position:relative}.el-select .el-select__tags>span{display:contents}.el-select:hover .el-input__inner{border-color:#c0c4cc}.el-select .el-input__inner{cursor:pointer;padding-right:35px}.el-select .el-input__inner:focus{border-color:#409eff}.el-select .el-input .el-select__caret{color:#c0c4cc;font-size:14px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transform:rotate(180deg);transform:rotate(180deg);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{-webkit-transform:rotate(0);transform:rotate(0)}.el-select .el-input .el-select__caret.is-show-close{font-size:14px;text-align:center;-webkit-transform:rotate(180deg);transform:rotate(180deg);border-radius:100%;color:#c0c4cc;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-select .el-input .el-select__caret.is-show-close:hover{color:#909399}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__inner:hover{border-color:#e4e7ed}.el-select .el-input.is-focus .el-input__inner{border-color:#409eff}.el-select>.el-input{display:block}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:#666;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-mini{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:1000;right:25px;color:#c0c4cc;line-height:18px;font-size:14px}.el-select__close:hover{color:#909399}.el-select__tags{position:absolute;line-height:normal;white-space:normal;z-index:1;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-select .el-tag__close{margin-top:-2px}.el-select .el-tag{-webkit-box-sizing:border-box;box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:#f0f2f5}.el-select .el-tag__close.el-icon-close{background-color:#c0c4cc;right:-7px;top:0;color:#fff}.el-select .el-tag__close.el-icon-close:hover{background-color:#909399}.el-select .el-tag__close.el-icon-close:before{display:block;-webkit-transform:translateY(.5px);transform:translateY(.5px)}.el-switch{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;font-size:14px;line-height:20px;height:20px;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__core,.el-switch__label{display:inline-block;cursor:pointer;vertical-align:middle}.el-switch__label{-webkit-transition:.2s;transition:.2s;height:20px;font-size:14px;font-weight:500;color:#303133}.el-switch__label.is-active{color:#409eff}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__core{margin:0;position:relative;width:40px;height:20px;border:1px solid #dcdfe6;outline:0;border-radius:10px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#dcdfe6;-webkit-transition:border-color .3s,background-color .3s;transition:border-color .3s,background-color .3s}.el-switch__core:after{content:"";position:absolute;top:1px;left:1px;border-radius:100%;-webkit-transition:all .3s;transition:all .3s;width:16px;height:16px;background-color:#fff}.el-switch.is-checked .el-switch__core{border-color:#409eff;background-color:#409eff}.el-switch.is-checked .el-switch__core:after{left:100%;margin-left:-17px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:14px}.el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;font-size:inherit;color:#606266;background-color:#fff;background-image:none;border:1px solid #dcdfe6;border-radius:4px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea__inner:-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::-moz-placeholder{color:#c0c4cc}.el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea__inner:hover{border-color:#c0c4cc}.el-textarea__inner:focus{outline:0;border-color:#409eff}.el-textarea .el-input__count{color:#909399;background:#fff;position:absolute;font-size:12px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea.is-exceed .el-textarea__inner{border-color:#f56c6c}.el-textarea.is-exceed .el-input__count{color:#f56c6c}.el-input{position:relative;font-size:14px;display:inline-block;width:100%}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:#fff}.el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.el-input .el-input__clear{color:#c0c4cc;font-size:14px;cursor:pointer;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-input .el-input__clear:hover{color:#909399}.el-input .el-input__count{height:100%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#909399;font-size:12px}.el-input .el-input__count .el-input__count-inner{background:#fff;line-height:normal;display:inline-block;padding:0 5px}.el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;color:#606266;display:inline-block;font-size:inherit;height:40px;line-height:40px;outline:0;padding:0 15px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-input__prefix,.el-input__suffix{position:absolute;top:0;-webkit-transition:all .3s;text-align:center;height:100%;color:#c0c4cc}.el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input__inner:-ms-input-placeholder{color:#c0c4cc}.el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input__inner::-moz-placeholder{color:#c0c4cc}.el-input__inner::placeholder{color:#c0c4cc}.el-input__inner:hover{border-color:#c0c4cc}.el-input.is-active .el-input__inner,.el-input__inner:focus{border-color:#409eff;outline:0}.el-input__suffix{right:5px;-webkit-transition:all .3s;transition:all .3s;pointer-events:none}.el-input__suffix-inner{pointer-events:all}.el-input__prefix{left:5px}.el-input__icon,.el-input__prefix{-webkit-transition:all .3s;transition:all .3s}.el-input__icon{height:100%;width:25px;text-align:center;line-height:40px}.el-input__icon:after{content:"";height:100%;width:0;display:inline-block;vertical-align:middle}.el-input__validateIcon{pointer-events:none}.el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__inner{border-color:#f56c6c}.el-input.is-exceed .el-input__suffix .el-input__count{color:#f56c6c}.el-input--suffix .el-input__inner{padding-right:30px}.el-input--prefix .el-input__inner{padding-left:30px}.el-input--medium{font-size:14px}.el-input--medium .el-input__inner{height:36px;line-height:36px}.el-input--medium .el-input__icon{line-height:36px}.el-input--small{font-size:13px}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input--mini{font-size:12px}.el-input--mini .el-input__inner{height:28px;line-height:28px}.el-input--mini .el-input__icon{line-height:28px}.el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate;border-spacing:0}.el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.el-input-group__append,.el-input-group__prepend{background-color:#f5f7fa;color:#909399;vertical-align:middle;display:table-cell;position:relative;border:1px solid #dcdfe6;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.el-input-group--prepend .el-input__inner,.el-input-group__append{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--append .el-input__inner,.el-input-group__prepend{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:-10px -20px}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0}.el-input-group__append{border-left:0}.el-input-group--append .el-select .el-input.is-focus .el-input__inner,.el-input-group--prepend .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input__inner::-ms-clear{display:none;width:0;height:0}.el-fade-in-enter,.el-fade-in-leave-active,.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active,.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.el-menu--collapse .el-menu .el-submenu,.el-menu--popup{min-width:200px}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active,.fade-in-linear-enter-active,.fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.el-fade-in-enter-active,.el-fade-in-leave-active,.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center top;transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center bottom;transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;-webkit-transform:scale(1);transform:scale(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:top left;transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;-webkit-transform:scale(.45);transform:scale(.45)}.collapse-transition{-webkit-transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out;transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out}.horizontal-collapse-transition{-webkit-transition:width .3s ease-in-out,padding-left .3s ease-in-out,padding-right .3s ease-in-out;transition:width .3s ease-in-out,padding-left .3s ease-in-out,padding-right .3s ease-in-out}.el-list-enter-active,.el-list-leave-active{-webkit-transition:all 1s;transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;-webkit-transform:translateY(-30px);transform:translateY(-30px)}.el-opacity-transition{-webkit-transition:opacity .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-menu{border-right:1px solid #e6e6e6;list-style:none;position:relative;margin:0;padding-left:0}.el-menu,.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover,.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff}.el-menu:after,.el-menu:before{display:table;content:""}.el-menu:after{clear:both}.el-menu.el-menu--horizontal{border-bottom:1px solid #e6e6e6}.el-menu--horizontal{border-right:none}.el-menu--horizontal>.el-menu-item{float:left;height:60px;line-height:60px;margin:0;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-submenu{float:left}.el-menu--horizontal>.el-submenu:focus,.el-menu--horizontal>.el-submenu:hover{outline:0}.el-menu--horizontal>.el-submenu:focus .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{color:#303133}.el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #409eff;color:#303133}.el-menu--horizontal>.el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-submenu__title{background-color:#fff;float:none;height:36px;line-height:36px;padding:0 10px;color:#909399}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-submenu.is-active>.el-submenu__title{color:#303133}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:#303133}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid #409eff;color:#303133}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;vertical-align:middle;width:24px;text-align:center}.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-submenu{position:relative}.el-menu--collapse .el-submenu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;z-index:10;border:1px solid #e4e7ed;border-radius:2px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu-item,.el-submenu__title{height:56px;line-height:56px;list-style:none;position:relative;white-space:nowrap}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:none;transform:none}.el-menu--popup{z-index:100;border:none;padding:5px 0;border-radius:2px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--popup-bottom-start{margin-top:5px}.el-menu--popup-right-start{margin-left:5px;margin-right:5px}.el-menu-item{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;-webkit-box-sizing:border-box;box-sizing:border-box}.el-menu-item *{vertical-align:middle}.el-menu-item i{color:#909399}.el-menu-item:focus,.el-menu-item:hover{outline:0;background-color:#ecf5ff}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon-]{margin-right:5px;width:24px;text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:#409eff}.el-menu-item.is-active i{color:inherit}.el-submenu{list-style:none;margin:0;padding-left:0}.el-submenu__title{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;-webkit-box-sizing:border-box;box-sizing:border-box}.el-submenu__title *{vertical-align:middle}.el-submenu__title i{color:#909399}.el-submenu__title:focus,.el-submenu__title:hover{outline:0;background-color:#ecf5ff}.el-submenu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu__title:hover{background-color:#ecf5ff}.el-submenu .el-menu{border:none}.el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px;min-width:200px}.el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-size:12px}.el-submenu.is-active .el-submenu__title{border-bottom-color:#409eff}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.el-submenu.is-disabled .el-menu-item,.el-submenu.is-disabled .el-submenu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu [class^=el-icon-]{vertical-align:middle;margin-right:5px;width:24px;text-align:center;font-size:18px}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px 20px;line-height:normal;font-size:12px;color:#909399}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{-webkit-transition:.2s;transition:.2s;opacity:0}.v-modal-enter{-webkit-animation:v-modal-in .2s ease;animation:v-modal-in .2s ease}.v-modal-leave{-webkit-animation:v-modal-out .2s ease forwards;animation:v-modal-out .2s ease forwards}@-webkit-keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{to{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-popup-parent--hidden{overflow:hidden}.el-dialog{position:relative;margin:0 auto 50px;background:#fff;border-radius:2px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.3);box-shadow:0 1px 3px rgba(0,0,0,.3);-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.el-dialog.is-fullscreen{width:100%;margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog__header{padding:20px 20px 10px}.el-dialog__headerbtn{position:absolute;top:20px;right:20px;padding:0;background:0 0;border:none;outline:0;cursor:pointer;font-size:16px}.el-dialog__headerbtn .el-dialog__close{color:#909399}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#409eff}.el-dialog__title{line-height:24px;font-size:18px;color:#303133}.el-dialog__body{padding:30px 20px;color:#606266;font-size:14px;word-break:break-all}.el-dialog__footer{padding:10px 20px 20px;text-align:right;-webkit-box-sizing:border-box;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px 25px 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.dialog-fade-enter-active{-webkit-animation:dialog-fade-in .3s;animation:dialog-fade-in .3s}.dialog-fade-leave-active{-webkit-animation:dialog-fade-out .3s;animation:dialog-fade-out .3s}@-webkit-keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.hljs{display:block;overflow-x:auto;padding:.5em;color:#333;background:#f8f8f8}.hljs-comment,.hljs-quote{color:#998;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#333;font-weight:700}.hljs-literal,.hljs-number,.hljs-tag .hljs-attr,.hljs-template-variable,.hljs-variable{color:teal}.hljs-doctag,.hljs-string{color:#d14}.hljs-section,.hljs-selector-id,.hljs-title{color:#900;font-weight:700}.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type{color:#458;font-weight:700}.hljs-attribute,.hljs-name,.hljs-tag{color:navy;font-weight:400}.hljs-link,.hljs-regexp{color:#009926}.hljs-bullet,.hljs-symbol{color:#990073}.hljs-built_in,.hljs-builtin-name{color:#0086b3}.hljs-meta{color:#999;font-weight:700}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}@font-face{font-family:v-contextmenu-iconfont;src:url(data:application/vnd.ms-fontobject;base64,AAgAAFgHAAABAAIAAAAAAAIABQMAAAAAAAABAJABAAAAAExQAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAr5f4wwAAAAAAAAAAAAAAAAAAAAAAABAAaQBjAG8AbgBmAG8AbgB0AAAADgBSAGUAZwB1AGwAYQByAAAAFgBWAGUAcgBzAGkAbwBuACAAMQAuADAAAAAQAGkAYwBvAG4AZgBvAG4AdAAAAAAAAAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzJW7kgMAAABfAAAAFZjbWFwmcAGvgAAAeAAAAGGZ2x5ZodVRJIAAANwAAABPGhlYWQPY7HCAAAA4AAAADZoaGVhB94DhAAAALwAAAAkaG10eAvpAAAAAAHUAAAADGxvY2EAdgCeAAADaAAAAAhtYXhwARIAXQAAARgAAAAgbmFtZT5U/n0AAASsAAACbXBvc3RBG9LpAAAHHAAAADkAAQAAA4D/gABcBAAAAAAABAAAAQAAAAAAAAAAAAAAAAAAAAMAAQAAAAEAAMP4l69fDzz1AAsEAAAAAADWIjbmAAAAANYiNuYAAP/hBAADGAAAAAgAAgAAAAAAAAABAAAAAwBRAAUAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQP4AZAABQAIAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABAAHjmIgOA/4AAXAOAAIAAAAABAAAAAAAABAAAAAPpAAAEAAAAAAAABQAAAAMAAAAsAAAABAAAAV4AAQAAAAAAWAADAAEAAAAsAAMACgAAAV4ABAAsAAAABgAEAAEAAgB45iL//wAAAHjmIv//AAAAAAABAAYABgAAAAEAAgAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAKAAAAAAAAAACAAAAeAAAAHgAAAABAADmIgAA5iIAAAACAAAAAAAAAHYAngAFAAD/4QO8AxgAEwAoADEARABQAAABBisBIg4CHQEhJzQuAisBFSEFFRcUDgMnIychByMiLgM9ARciBhQWMjY0JhcGBwYPAQ4BHgEzITI2Jy4CJwE1ND4COwEyFh0BARkbGlMSJRwSA5ABChgnHoX+SgKiARUfIxwPPi3+SSw/FDIgEwh3DBISGRISjAgGBQUIAgIEDw4BbRcWCQUJCgb+pAUPGhW8HykCHwEMGScaTFkNIBsSYYg0bh0lFwkBAYCAARMbIA6nPxEaEREaEXwaFhMSGQcQDQgYGg0jJBQBd+QLGBMMHSbjAAAAAAEAAAAAAtYC8AARAAABFAcBBi4BNjcJAS4BPgEXARYC1Q3+qQ4hGAENATj+yA0BGCINAVcNAYASDP66CwEZIQ0BJwEnDSEZAQv+ugwAAAAAAAASAN4AAQAAAAAAAAAVAAAAAQAAAAAAAQAIABUAAQAAAAAAAgAHAB0AAQAAAAAAAwAIACQAAQAAAAAABAAIACwAAQAAAAAABQALADQAAQAAAAAABgAIAD8AAQAAAAAACgArAEcAAQAAAAAACwATAHIAAwABBAkAAAAqAIUAAwABBAkAAQAQAK8AAwABBAkAAgAOAL8AAwABBAkAAwAQAM0AAwABBAkABAAQAN0AAwABBAkABQAWAO0AAwABBAkABgAQAQMAAwABBAkACgBWARMAAwABBAkACwAmAWkKQ3JlYXRlZCBieSBpY29uZm9udAppY29uZm9udFJlZ3VsYXJpY29uZm9udGljb25mb250VmVyc2lvbiAxLjBpY29uZm9udEdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAAoAQwByAGUAYQB0AGUAZAAgAGIAeQAgAGkAYwBvAG4AZgBvAG4AdAAKAGkAYwBvAG4AZgBvAG4AdABSAGUAZwB1AGwAYQByAGkAYwBvAG4AZgBvAG4AdABpAGMAbwBuAGYAbwBuAHQAVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG4AZgBvAG4AdABHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAQIBAwEEAAF4C2Fycm93LXJpZ2h0AAAAAAA=);src:url(data:application/vnd.ms-fontobject;base64,AAgAAFgHAAABAAIAAAAAAAIABQMAAAAAAAABAJABAAAAAExQAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAr5f4wwAAAAAAAAAAAAAAAAAAAAAAABAAaQBjAG8AbgBmAG8AbgB0AAAADgBSAGUAZwB1AGwAYQByAAAAFgBWAGUAcgBzAGkAbwBuACAAMQAuADAAAAAQAGkAYwBvAG4AZgBvAG4AdAAAAAAAAAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzJW7kgMAAABfAAAAFZjbWFwmcAGvgAAAeAAAAGGZ2x5ZodVRJIAAANwAAABPGhlYWQPY7HCAAAA4AAAADZoaGVhB94DhAAAALwAAAAkaG10eAvpAAAAAAHUAAAADGxvY2EAdgCeAAADaAAAAAhtYXhwARIAXQAAARgAAAAgbmFtZT5U/n0AAASsAAACbXBvc3RBG9LpAAAHHAAAADkAAQAAA4D/gABcBAAAAAAABAAAAQAAAAAAAAAAAAAAAAAAAAMAAQAAAAEAAMP4l69fDzz1AAsEAAAAAADWIjbmAAAAANYiNuYAAP/hBAADGAAAAAgAAgAAAAAAAAABAAAAAwBRAAUAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQP4AZAABQAIAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABAAHjmIgOA/4AAXAOAAIAAAAABAAAAAAAABAAAAAPpAAAEAAAAAAAABQAAAAMAAAAsAAAABAAAAV4AAQAAAAAAWAADAAEAAAAsAAMACgAAAV4ABAAsAAAABgAEAAEAAgB45iL//wAAAHjmIv//AAAAAAABAAYABgAAAAEAAgAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAKAAAAAAAAAACAAAAeAAAAHgAAAABAADmIgAA5iIAAAACAAAAAAAAAHYAngAFAAD/4QO8AxgAEwAoADEARABQAAABBisBIg4CHQEhJzQuAisBFSEFFRcUDgMnIychByMiLgM9ARciBhQWMjY0JhcGBwYPAQ4BHgEzITI2Jy4CJwE1ND4COwEyFh0BARkbGlMSJRwSA5ABChgnHoX+SgKiARUfIxwPPi3+SSw/FDIgEwh3DBISGRISjAgGBQUIAgIEDw4BbRcWCQUJCgb+pAUPGhW8HykCHwEMGScaTFkNIBsSYYg0bh0lFwkBAYCAARMbIA6nPxEaEREaEXwaFhMSGQcQDQgYGg0jJBQBd+QLGBMMHSbjAAAAAAEAAAAAAtYC8AARAAABFAcBBi4BNjcJAS4BPgEXARYC1Q3+qQ4hGAENATj+yA0BGCINAVcNAYASDP66CwEZIQ0BJwEnDSEZAQv+ugwAAAAAAAASAN4AAQAAAAAAAAAVAAAAAQAAAAAAAQAIABUAAQAAAAAAAgAHAB0AAQAAAAAAAwAIACQAAQAAAAAABAAIACwAAQAAAAAABQALADQAAQAAAAAABgAIAD8AAQAAAAAACgArAEcAAQAAAAAACwATAHIAAwABBAkAAAAqAIUAAwABBAkAAQAQAK8AAwABBAkAAgAOAL8AAwABBAkAAwAQAM0AAwABBAkABAAQAN0AAwABBAkABQAWAO0AAwABBAkABgAQAQMAAwABBAkACgBWARMAAwABBAkACwAmAWkKQ3JlYXRlZCBieSBpY29uZm9udAppY29uZm9udFJlZ3VsYXJpY29uZm9udGljb25mb250VmVyc2lvbiAxLjBpY29uZm9udEdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAAoAQwByAGUAYQB0AGUAZAAgAGIAeQAgAGkAYwBvAG4AZgBvAG4AdAAKAGkAYwBvAG4AZgBvAG4AdABSAGUAZwB1AGwAYQByAGkAYwBvAG4AZgBvAG4AdABpAGMAbwBuAGYAbwBuAHQAVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG4AZgBvAG4AdABHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAQIBAwEEAAF4C2Fycm93LXJpZ2h0AAAAAAA=#iefix) format("embedded-opentype"),url(data:font/woff;base64,d09GRgABAAAAAAUAAAsAAAAAB1gAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADMAAABCsP6z7U9TLzIAAAE8AAAARAAAAFZW7kgMY21hcAAAAYAAAABeAAABhpnABr5nbHlmAAAB4AAAAS4AAAE8h1VEkmhlYWQAAAMQAAAALwAAADYPY7HCaGhlYQAAA0AAAAAcAAAAJAfeA4RobXR4AAADXAAAAAwAAAAMC+kAAGxvY2EAAANoAAAACAAAAAgAdgCebWF4cAAAA3AAAAAfAAAAIAESAF1uYW1lAAADkAAAAUUAAAJtPlT+fXBvc3QAAATYAAAAKAAAADlBG9LpeJxjYGRgYOBikGPQYWB0cfMJYeBgYGGAAJAMY05meiJQDMoDyrGAaQ4gZoOIAgCKIwNPAHicY2Bk/sE4gYGVgYOpk+kMAwNDP4RmfM1gxMjBwMDEwMrMgBUEpLmmMDgwVDxTYm7438AQw9zA0AAUZgTJAQAl4gyOeJzFkMENgDAMAy9t6QMxRV88GIgXc3TirlFMKA8mqCXHimMpUYAFiOIhJrAL48Ep19yPrO4nz2SpEait9K7+U0U0y65BJTMNNm/1H5vXfXT6CnVQJ7byknADpO8MFwAAeJwVjL1Kw1AARu93Y/7a3MTe/KdN2yS2V6kGjLEKYru4KA6Cgzj6ALp2cegiODj4DCKIr1D6AL6A7qIP4BNE48fhwFk+IhPy+yktpYDYZJ1skyNyRgiUEVKTxkhEmdMR3ER2fceURCYSNUtz6RB+qjheMS6HvqIqFkx0sZMUY5FTgd1yQg9QeDEQtqNzPuhw6RGNQHTvqhP6BLeXdazJVnW8OXWKvq3NDM5Dzh80RZY1SlcsE9e+p8t6Q6meZStyl70N2oMRiuj0kvXb/Oq+vIkHvg7M57DbffNl2opaNbeRZ/NQXWVaELFszcHsuxnYRjz8IvXwL/pBf0irDkeFkmO8pyPHBD48+s6qVzMJwLBfvTEEKcMFw5wb1aKJMGEQECwJ0awWRv30B+KIMJEAAHicY2BkYGAA4sM/urfH89t8ZeBmYQCBa0pmzxD0/4csDMwSQC4HAxNIFABNGgrfAHicY2BkYGBu+N/AEMPCAAJAkpEBFTADAEcJAmwEAAAAA+kAAAQAAAAAAAAAAHYAnnicY2BkYGBgZghkYGUAASYg5gJCBob/YD4DABD3AXAAeJxlj01OwzAQhV/6B6QSqqhgh+QFYgEo/RGrblhUavdddN+mTpsqiSPHrdQDcB6OwAk4AtyAO/BIJ5s2lsffvHljTwDc4Acejt8t95E9XDI7cg0XuBeuU38QbpBfhJto41W4Rf1N2MczpsJtdGF5g9e4YvaEd2EPHXwI13CNT+E69S/hBvlbuIk7/Aq30PHqwj7mXle4jUcv9sdWL5xeqeVBxaHJIpM5v4KZXu+Sha3S6pxrW8QmU4OgX0lTnWlb3VPs10PnIhVZk6oJqzpJjMqt2erQBRvn8lGvF4kehCblWGP+tsYCjnEFhSUOjDFCGGSIyujoO1Vm9K+xQ8Jee1Y9zed0WxTU/3OFAQL0z1xTurLSeTpPgT1fG1J1dCtuy56UNJFezUkSskJe1rZUQuoBNmVXjhF6XNGJPyhnSP8ACVpuyAAAAHicY2BigAAuBuyAmZGJkZmRhYGxgjuxqCi/XLcoMz2jhIEBAC8dBRY=) format("woff"),url(data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzJW7kgMAAABfAAAAFZjbWFwmcAGvgAAAeAAAAGGZ2x5ZodVRJIAAANwAAABPGhlYWQPY7HCAAAA4AAAADZoaGVhB94DhAAAALwAAAAkaG10eAvpAAAAAAHUAAAADGxvY2EAdgCeAAADaAAAAAhtYXhwARIAXQAAARgAAAAgbmFtZT5U/n0AAASsAAACbXBvc3RBG9LpAAAHHAAAADkAAQAAA4D/gABcBAAAAAAABAAAAQAAAAAAAAAAAAAAAAAAAAMAAQAAAAEAAMP4i7dfDzz1AAsEAAAAAADWIjbmAAAAANYiNuYAAP/hBAADGAAAAAgAAgAAAAAAAAABAAAAAwBRAAUAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQP4AZAABQAIAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABAAHjmIgOA/4AAXAOAAIAAAAABAAAAAAAABAAAAAPpAAAEAAAAAAAABQAAAAMAAAAsAAAABAAAAV4AAQAAAAAAWAADAAEAAAAsAAMACgAAAV4ABAAsAAAABgAEAAEAAgB45iL//wAAAHjmIv//AAAAAAABAAYABgAAAAEAAgAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAKAAAAAAAAAACAAAAeAAAAHgAAAABAADmIgAA5iIAAAACAAAAAAAAAHYAngAFAAD/4QO8AxgAEwAoADEARABQAAABBisBIg4CHQEhJzQuAisBFSEFFRcUDgMnIychByMiLgM9ARciBhQWMjY0JhcGBwYPAQ4BHgEzITI2Jy4CJwE1ND4COwEyFh0BARkbGlMSJRwSA5ABChgnHoX+SgKiARUfIxwPPi3+SSw/FDIgEwh3DBISGRISjAgGBQUIAgIEDw4BbRcWCQUJCgb+pAUPGhW8HykCHwEMGScaTFkNIBsSYYg0bh0lFwkBAYCAARMbIA6nPxEaEREaEXwaFhMSGQcQDQgYGg0jJBQBd+QLGBMMHSbjAAAAAAEAAAAAAtYC8AARAAABFAcBBi4BNjcJAS4BPgEXARYC1Q3+qQ4hGAENATj+yA0BGCINAVcNAYASDP66CwEZIQ0BJwEnDSEZAQv+ugwAAAAAAAASAN4AAQAAAAAAAAAVAAAAAQAAAAAAAQAIABUAAQAAAAAAAgAHAB0AAQAAAAAAAwAIACQAAQAAAAAABAAIACwAAQAAAAAABQALADQAAQAAAAAABgAIAD8AAQAAAAAACgArAEcAAQAAAAAACwATAHIAAwABBAkAAAAqAIUAAwABBAkAAQAQAK8AAwABBAkAAgAOAL8AAwABBAkAAwAQAM0AAwABBAkABAAQAN0AAwABBAkABQAWAO0AAwABBAkABgAQAQMAAwABBAkACgBWARMAAwABBAkACwAmAWkKQ3JlYXRlZCBieSBpY29uZm9udAppY29uZm9udFJlZ3VsYXJpY29uZm9udGljb25mb250VmVyc2lvbiAxLjBpY29uZm9udEdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAAoAQwByAGUAYQB0AGUAZAAgAGIAeQAgAGkAYwBvAG4AZgBvAG4AdAAKAGkAYwBvAG4AZgBvAG4AdABSAGUAZwB1AGwAYQByAGkAYwBvAG4AZgBvAG4AdABpAGMAbwBuAGYAbwBuAHQAVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG4AZgBvAG4AdABHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAQIBAwEEAAF4C2Fycm93LXJpZ2h0AAAAAAA=) format("truetype"),url(../img/iconfont.573255ce.svg) format("svg")}.v-contextmenu-iconfont{font-family:v-contextmenu-iconfont!important;font-size:inherit;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.v-contextmenu{position:absolute;padding:5px 0;margin:0;background-color:#fff;border:1px solid #e8e8e8;border-radius:4px;-webkit-box-shadow:2px 2px 8px 0 hsla(0,0%,58.8%,.2);box-shadow:2px 2px 8px 0 hsla(0,0%,58.8%,.2);list-style:none;font-size:14px;white-space:nowrap;cursor:pointer;z-index:2800;-webkit-tap-highlight-color:transparent}.v-contextmenu .v-contextmenu-item{padding:5px 14px;line-height:1;color:#333}.v-contextmenu .v-contextmenu-item.v-contextmenu-item--hover{color:#fff}.v-contextmenu .v-contextmenu-item.v-contextmenu-item--disabled{color:#ccc;cursor:not-allowed}.v-contextmenu .v-contextmenu-divider{height:0;margin:5px 0;border-bottom:1px solid #e8e8e8}.v-contextmenu .v-contextmenu-group__menus{padding:0 5px;margin:0;list-style:none}.v-contextmenu .v-contextmenu-group__menus .v-contextmenu-item{display:inline-block;padding:5px 9px}.v-contextmenu .v-contextmenu-submenu{position:relative}.v-contextmenu .v-contextmenu-submenu>.v-contextmenu{position:absolute}.v-contextmenu .v-contextmenu-submenu>.v-contextmenu.left{left:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.v-contextmenu .v-contextmenu-submenu>.v-contextmenu.right{right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.v-contextmenu .v-contextmenu-submenu>.v-contextmenu.top{top:-6px}.v-contextmenu .v-contextmenu-submenu>.v-contextmenu.bottom{bottom:-6px}.v-contextmenu .v-contextmenu-submenu .v-contextmenu-submenu__title{margin-right:10px}.v-contextmenu .v-contextmenu-submenu .v-contextmenu-submenu__icon{position:absolute;right:5px}.v-contextmenu .v-contextmenu-submenu .v-contextmenu-submenu__icon:before{content:"\E622"}.v-contextmenu--default .v-contextmenu-item--hover{background-color:#46a0fc}.v-contextmenu--bright .v-contextmenu-item--hover{background-color:#ef5350}.v-contextmenu--dark .v-contextmenu-item--hover{background-color:#2d3035} \ No newline at end of file +.el-message__closeBtn:focus,.el-message__content:focus{outline-width:0}.el-message{min-width:380px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;border-width:1px;border-style:solid;border-color:#ebeef5;position:fixed;left:50%;top:20px;-webkit-transform:translateX(-50%);transform:translateX(-50%);background-color:#edf2fc;-webkit-transition:opacity .3s,top .4s,-webkit-transform .4s;transition:opacity .3s,top .4s,-webkit-transform .4s;transition:opacity .3s,transform .4s,top .4s;transition:opacity .3s,transform .4s,top .4s,-webkit-transform .4s;overflow:hidden;padding:15px 15px 15px 20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-message.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#909399}.el-message--success{background-color:#f0f9eb;border-color:#e1f3d8}.el-message--success .el-message__content{color:#67c23a}.el-message--warning{background-color:#fdf6ec;border-color:#faecd8}.el-message--warning .el-message__content{color:#e6a23c}.el-message--error{background-color:#fef0f0;border-color:#fde2e2}.el-message--error .el-message__content{color:#f56c6c}.el-message__icon{margin-right:10px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__closeBtn{position:absolute;top:50%;right:15px;-webkit-transform:translateY(-50%);transform:translateY(-50%);cursor:pointer;color:#c0c4cc;font-size:16px}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#67c23a}.el-message .el-icon-error{color:#f56c6c}.el-message .el-icon-info{color:#909399}.el-message .el-icon-warning{color:#e6a23c}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;-webkit-transform:translate(-50%,-100%);transform:translate(-50%,-100%)}.el-notification{display:-webkit-box;display:-ms-flexbox;display:flex;width:330px;padding:14px 26px 14px 13px;border-radius:8px;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #ebeef5;position:fixed;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;overflow:hidden}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:13px;margin-right:8px}.el-notification__title{font-weight:700;font-size:16px;color:#303133;margin:0}.el-notification__content{font-size:14px;line-height:21px;margin:6px 0 0;color:#606266;text-align:justify}.el-notification__content p{margin:0}.el-notification__icon{height:24px;width:24px;font-size:24px}.el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:#909399;font-size:16px}.el-notification__closeBtn:hover{color:#606266}.el-notification .el-icon-success{color:#67c23a}.el-notification .el-icon-error{color:#f56c6c}.el-notification .el-icon-info{color:#909399}.el-notification .el-icon-warning{color:#e6a23c}.el-notification-fade-enter.right{right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.el-notification-fade-enter.left{left:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.el-notification-fade-leave-active{opacity:0}.el-button,.el-input__inner{-webkit-appearance:none;outline:0}.el-message-box,.el-popup-parent--hidden{overflow:hidden}.el-message-box{display:inline-block;width:420px;padding-bottom:10px;vertical-align:middle;background-color:#fff;border-radius:4px;border:1px solid #ebeef5;font-size:18px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);text-align:left;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box__wrapper{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center}.el-message-box__wrapper:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box__header{position:relative;padding:15px 15px 10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:18px;line-height:1;color:#303133}.el-message-box__headerbtn{position:absolute;top:15px;right:15px;padding:0;border:none;outline:0;background:0 0;font-size:16px;cursor:pointer}.el-message-box__headerbtn .el-message-box__close{color:#909399}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:#409eff}.el-message-box__content{position:relative;padding:10px 15px;color:#606266;font-size:14px}.el-message-box__input{padding-top:15px}.el-message-box__input input.invalid,.el-message-box__input input.invalid:focus{border-color:#f56c6c}.el-message-box__status{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px}.el-message-box__status.el-icon-success{color:#67c23a}.el-message-box__status.el-icon-info{color:#909399}.el-message-box__status.el-icon-warning{color:#e6a23c}.el-message-box__status.el-icon-error{color:#f56c6c}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:#f56c6c;font-size:12px;min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;text-align:right}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.el-message-box--center{padding-bottom:30px}.el-message-box--center .el-message-box__header{padding-top:30px}.el-message-box--center .el-message-box__title{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;-webkit-transform:translateY(-1px);transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__content{text-align:center}.el-message-box--center .el-message-box__content{padding-left:27px;padding-right:27px}.msgbox-fade-enter-active{-webkit-animation:msgbox-fade-in .3s;animation:msgbox-fade-in .3s}.msgbox-fade-leave-active{-webkit-animation:msgbox-fade-out .3s;animation:msgbox-fade-out .3s}@-webkit-keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@-webkit-keyframes msgbox-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes msgbox-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-radio,.el-radio--medium.is-bordered .el-radio__label{font-size:14px}.el-radio,.el-radio__input{white-space:nowrap;line-height:1;outline:0}.el-radio,.el-radio__inner,.el-radio__input{position:relative;display:inline-block}.el-radio{color:#606266;font-weight:500;cursor:pointer;margin-right:30px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.el-radio.is-bordered{padding:12px 20px 0 10px;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;height:40px}.el-radio.is-bordered.is-checked{border-color:#409eff}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:#ebeef5}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#f5f7fa;border-color:#e4e7ed}.el-radio.is-bordered+.el-radio.is-bordered{margin-left:10px}.el-radio--medium.is-bordered{padding:10px 20px 0 10px;border-radius:4px;height:36px}.el-radio--mini.is-bordered .el-radio__label,.el-radio--small.is-bordered .el-radio__label{font-size:12px}.el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.el-radio--small.is-bordered{padding:8px 15px 0 10px;border-radius:3px;height:32px}.el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio--mini.is-bordered{padding:6px 15px 0 10px;border-radius:3px;height:28px}.el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{cursor:pointer;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:#f5f7fa}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:#c0c4cc}.el-radio__input.is-disabled+span.el-radio__label{color:#c0c4cc;cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:#409eff;background:#409eff}.el-radio__input.is-checked .el-radio__inner:after{-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:#409eff}.el-radio__input.is-focus .el-radio__inner{border-color:#409eff}.el-radio__inner{border:1px solid #dcdfe6;border-radius:100%;width:14px;height:14px;background-color:#fff;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box}.el-radio__inner:hover{border-color:#409eff}.el-radio__inner:after{width:4px;height:4px;border-radius:100%;background-color:#fff;content:"";position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0);-webkit-transition:-webkit-transform .15s ease-in;transition:-webkit-transform .15s ease-in;transition:transform .15s ease-in;transition:transform .15s ease-in,-webkit-transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{-webkit-box-shadow:0 0 2px 2px #409eff;box-shadow:0 0 2px 2px #409eff}.el-radio__label{font-size:14px;padding-left:10px}.el-link{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;cursor:pointer;padding:0;font-size:14px;font-weight:500}.el-link.is-underline:hover:after{content:"";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid #409eff}.el-link.el-link--default:after,.el-link.el-link--primary.is-underline:hover:after,.el-link.el-link--primary:after{border-color:#409eff}.el-link.is-disabled{cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default{color:#606266}.el-link.el-link--default:hover{color:#409eff}.el-link.el-link--default.is-disabled{color:#c0c4cc}.el-link.el-link--primary{color:#409eff}.el-link.el-link--primary:hover{color:#66b1ff}.el-link.el-link--primary.is-disabled{color:#a0cfff}.el-link.el-link--danger.is-underline:hover:after,.el-link.el-link--danger:after{border-color:#f56c6c}.el-link.el-link--danger{color:#f56c6c}.el-link.el-link--danger:hover{color:#f78989}.el-link.el-link--danger.is-disabled{color:#fab6b6}.el-link.el-link--success.is-underline:hover:after,.el-link.el-link--success:after{border-color:#67c23a}.el-link.el-link--success{color:#67c23a}.el-link.el-link--success:hover{color:#85ce61}.el-link.el-link--success.is-disabled{color:#b3e19d}.el-link.el-link--warning.is-underline:hover:after,.el-link.el-link--warning:after{border-color:#e6a23c}.el-link.el-link--warning{color:#e6a23c}.el-link.el-link--warning:hover{color:#ebb563}.el-link.el-link--warning.is-disabled{color:#f3d19e}.el-link.el-link--info.is-underline:hover:after,.el-link.el-link--info:after{border-color:#909399}.el-link.el-link--info{color:#909399}.el-link.el-link--info:hover{color:#a6a9ad}.el-link.el-link--info.is-disabled{color:#c8c9cc}.el-badge{position:relative;vertical-align:middle;display:inline-block}.el-badge__content{background-color:#f56c6c;border-radius:10px;color:#fff;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap;border:1px solid #fff}.el-badge__content.is-fixed{position:absolute;top:0;right:10px;-webkit-transform:translateY(-50%) translateX(100%);transform:translateY(-50%) translateX(100%)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:#409eff}.el-badge__content--success{background-color:#67c23a}.el-badge__content--warning{background-color:#e6a23c}.el-badge__content--info{background-color:#909399}.el-badge__content--danger{background-color:#f56c6c}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:hsla(0,0%,100%,.9);margin:0;top:0;right:0;bottom:0;left:0;-webkit-transition:opacity .3s;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:#409eff;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#409eff;stroke-linecap:round}.el-loading-spinner i{color:#409eff}.el-loading-fade-enter,.el-loading-fade-leave-active{opacity:0}@-webkit-keyframes loading-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loading-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-popover{position:absolute;background:#fff;min-width:150px;border-radius:4px;border:1px solid #ebeef5;padding:12px;z-index:2000;color:#606266;line-height:1.4;text-align:justify;font-size:14px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);word-break:break-all}.el-popover--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1;margin-bottom:12px}.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.el-card{border-radius:4px;border:1px solid #ebeef5;background-color:#fff;overflow:hidden;color:#303133;-webkit-transition:.3s;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{padding:18px 20px;border-bottom:1px solid #ebeef5;-webkit-box-sizing:border-box;box-sizing:border-box}.el-card__body{padding:20px}.el-col-pull-0,.el-col-pull-1,.el-col-pull-2,.el-col-pull-3,.el-col-pull-4,.el-col-pull-5,.el-col-pull-6,.el-col-pull-7,.el-col-pull-8,.el-col-pull-9,.el-col-pull-10,.el-col-pull-11,.el-col-pull-13,.el-col-pull-14,.el-col-pull-15,.el-col-pull-16,.el-col-pull-17,.el-col-pull-18,.el-col-pull-19,.el-col-pull-20,.el-col-pull-21,.el-col-pull-22,.el-col-pull-23,.el-col-pull-24,.el-col-push-0,.el-col-push-1,.el-col-push-2,.el-col-push-3,.el-col-push-4,.el-col-push-5,.el-col-push-6,.el-col-push-7,.el-col-push-8,.el-col-push-9,.el-col-push-10,.el-col-push-11,.el-col-push-12,.el-col-push-13,.el-col-push-14,.el-col-push-15,.el-col-push-16,.el-col-push-17,.el-col-push-18,.el-col-push-19,.el-col-push-20,.el-col-push-21,.el-col-push-22,.el-col-push-23,.el-col-push-24{position:relative}[class*=el-col-]{float:left;-webkit-box-sizing:border-box;box-sizing:border-box}.el-col-0{display:none;width:0}.el-col-offset-0{margin-left:0}.el-col-pull-0{right:0}.el-col-push-0{left:0}.el-col-1{width:4.16667%}.el-col-offset-1{margin-left:4.16667%}.el-col-pull-1{right:4.16667%}.el-col-push-1{left:4.16667%}.el-col-2{width:8.33333%}.el-col-offset-2{margin-left:8.33333%}.el-col-pull-2{right:8.33333%}.el-col-push-2{left:8.33333%}.el-col-3{width:12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{right:12.5%}.el-col-push-3{left:12.5%}.el-col-4{width:16.66667%}.el-col-offset-4{margin-left:16.66667%}.el-col-pull-4{right:16.66667%}.el-col-push-4{left:16.66667%}.el-col-5{width:20.83333%}.el-col-offset-5{margin-left:20.83333%}.el-col-pull-5{right:20.83333%}.el-col-push-5{left:20.83333%}.el-col-6{width:25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{right:25%}.el-col-push-6{left:25%}.el-col-7{width:29.16667%}.el-col-offset-7{margin-left:29.16667%}.el-col-pull-7{right:29.16667%}.el-col-push-7{left:29.16667%}.el-col-8{width:33.33333%}.el-col-offset-8{margin-left:33.33333%}.el-col-pull-8{right:33.33333%}.el-col-push-8{left:33.33333%}.el-col-9{width:37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{right:37.5%}.el-col-push-9{left:37.5%}.el-col-10{width:41.66667%}.el-col-offset-10{margin-left:41.66667%}.el-col-pull-10{right:41.66667%}.el-col-push-10{left:41.66667%}.el-col-11{width:45.83333%}.el-col-offset-11{margin-left:45.83333%}.el-col-pull-11{right:45.83333%}.el-col-push-11{left:45.83333%}.el-col-12{width:50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{left:50%}.el-col-13{width:54.16667%}.el-col-offset-13{margin-left:54.16667%}.el-col-pull-13{right:54.16667%}.el-col-push-13{left:54.16667%}.el-col-14{width:58.33333%}.el-col-offset-14{margin-left:58.33333%}.el-col-pull-14{right:58.33333%}.el-col-push-14{left:58.33333%}.el-col-15{width:62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{right:62.5%}.el-col-push-15{left:62.5%}.el-col-16{width:66.66667%}.el-col-offset-16{margin-left:66.66667%}.el-col-pull-16{right:66.66667%}.el-col-push-16{left:66.66667%}.el-col-17{width:70.83333%}.el-col-offset-17{margin-left:70.83333%}.el-col-pull-17{right:70.83333%}.el-col-push-17{left:70.83333%}.el-col-18{width:75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{right:75%}.el-col-push-18{left:75%}.el-col-19{width:79.16667%}.el-col-offset-19{margin-left:79.16667%}.el-col-pull-19{right:79.16667%}.el-col-push-19{left:79.16667%}.el-col-20{width:83.33333%}.el-col-offset-20{margin-left:83.33333%}.el-col-pull-20{right:83.33333%}.el-col-push-20{left:83.33333%}.el-col-21{width:87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{right:87.5%}.el-col-push-21{left:87.5%}.el-col-22{width:91.66667%}.el-col-offset-22{margin-left:91.66667%}.el-col-pull-22{right:91.66667%}.el-col-push-22{left:91.66667%}.el-col-23{width:95.83333%}.el-col-offset-23{margin-left:95.83333%}.el-col-pull-23{right:95.83333%}.el-col-push-23{left:95.83333%}.el-col-24{width:100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{right:100%}.el-col-push-24{left:100%}@media only screen and (max-width:767px){.el-col-xs-0{display:none;width:0}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{width:4.16667%}.el-col-xs-offset-1{margin-left:4.16667%}.el-col-xs-pull-1{position:relative;right:4.16667%}.el-col-xs-push-1{position:relative;left:4.16667%}.el-col-xs-2{width:8.33333%}.el-col-xs-offset-2{margin-left:8.33333%}.el-col-xs-pull-2{position:relative;right:8.33333%}.el-col-xs-push-2{position:relative;left:8.33333%}.el-col-xs-3{width:12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{width:16.66667%}.el-col-xs-offset-4{margin-left:16.66667%}.el-col-xs-pull-4{position:relative;right:16.66667%}.el-col-xs-push-4{position:relative;left:16.66667%}.el-col-xs-5{width:20.83333%}.el-col-xs-offset-5{margin-left:20.83333%}.el-col-xs-pull-5{position:relative;right:20.83333%}.el-col-xs-push-5{position:relative;left:20.83333%}.el-col-xs-6{width:25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{width:29.16667%}.el-col-xs-offset-7{margin-left:29.16667%}.el-col-xs-pull-7{position:relative;right:29.16667%}.el-col-xs-push-7{position:relative;left:29.16667%}.el-col-xs-8{width:33.33333%}.el-col-xs-offset-8{margin-left:33.33333%}.el-col-xs-pull-8{position:relative;right:33.33333%}.el-col-xs-push-8{position:relative;left:33.33333%}.el-col-xs-9{width:37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{width:41.66667%}.el-col-xs-offset-10{margin-left:41.66667%}.el-col-xs-pull-10{position:relative;right:41.66667%}.el-col-xs-push-10{position:relative;left:41.66667%}.el-col-xs-11{width:45.83333%}.el-col-xs-offset-11{margin-left:45.83333%}.el-col-xs-pull-11{position:relative;right:45.83333%}.el-col-xs-push-11{position:relative;left:45.83333%}.el-col-xs-12{width:50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{width:54.16667%}.el-col-xs-offset-13{margin-left:54.16667%}.el-col-xs-pull-13{position:relative;right:54.16667%}.el-col-xs-push-13{position:relative;left:54.16667%}.el-col-xs-14{width:58.33333%}.el-col-xs-offset-14{margin-left:58.33333%}.el-col-xs-pull-14{position:relative;right:58.33333%}.el-col-xs-push-14{position:relative;left:58.33333%}.el-col-xs-15{width:62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{width:66.66667%}.el-col-xs-offset-16{margin-left:66.66667%}.el-col-xs-pull-16{position:relative;right:66.66667%}.el-col-xs-push-16{position:relative;left:66.66667%}.el-col-xs-17{width:70.83333%}.el-col-xs-offset-17{margin-left:70.83333%}.el-col-xs-pull-17{position:relative;right:70.83333%}.el-col-xs-push-17{position:relative;left:70.83333%}.el-col-xs-18{width:75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{width:79.16667%}.el-col-xs-offset-19{margin-left:79.16667%}.el-col-xs-pull-19{position:relative;right:79.16667%}.el-col-xs-push-19{position:relative;left:79.16667%}.el-col-xs-20{width:83.33333%}.el-col-xs-offset-20{margin-left:83.33333%}.el-col-xs-pull-20{position:relative;right:83.33333%}.el-col-xs-push-20{position:relative;left:83.33333%}.el-col-xs-21{width:87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{width:91.66667%}.el-col-xs-offset-22{margin-left:91.66667%}.el-col-xs-pull-22{position:relative;right:91.66667%}.el-col-xs-push-22{position:relative;left:91.66667%}.el-col-xs-23{width:95.83333%}.el-col-xs-offset-23{margin-left:95.83333%}.el-col-xs-pull-23{position:relative;right:95.83333%}.el-col-xs-push-23{position:relative;left:95.83333%}.el-col-xs-24{width:100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;width:0}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{width:4.16667%}.el-col-sm-offset-1{margin-left:4.16667%}.el-col-sm-pull-1{position:relative;right:4.16667%}.el-col-sm-push-1{position:relative;left:4.16667%}.el-col-sm-2{width:8.33333%}.el-col-sm-offset-2{margin-left:8.33333%}.el-col-sm-pull-2{position:relative;right:8.33333%}.el-col-sm-push-2{position:relative;left:8.33333%}.el-col-sm-3{width:12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{width:16.66667%}.el-col-sm-offset-4{margin-left:16.66667%}.el-col-sm-pull-4{position:relative;right:16.66667%}.el-col-sm-push-4{position:relative;left:16.66667%}.el-col-sm-5{width:20.83333%}.el-col-sm-offset-5{margin-left:20.83333%}.el-col-sm-pull-5{position:relative;right:20.83333%}.el-col-sm-push-5{position:relative;left:20.83333%}.el-col-sm-6{width:25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{width:29.16667%}.el-col-sm-offset-7{margin-left:29.16667%}.el-col-sm-pull-7{position:relative;right:29.16667%}.el-col-sm-push-7{position:relative;left:29.16667%}.el-col-sm-8{width:33.33333%}.el-col-sm-offset-8{margin-left:33.33333%}.el-col-sm-pull-8{position:relative;right:33.33333%}.el-col-sm-push-8{position:relative;left:33.33333%}.el-col-sm-9{width:37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{width:41.66667%}.el-col-sm-offset-10{margin-left:41.66667%}.el-col-sm-pull-10{position:relative;right:41.66667%}.el-col-sm-push-10{position:relative;left:41.66667%}.el-col-sm-11{width:45.83333%}.el-col-sm-offset-11{margin-left:45.83333%}.el-col-sm-pull-11{position:relative;right:45.83333%}.el-col-sm-push-11{position:relative;left:45.83333%}.el-col-sm-12{width:50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{width:54.16667%}.el-col-sm-offset-13{margin-left:54.16667%}.el-col-sm-pull-13{position:relative;right:54.16667%}.el-col-sm-push-13{position:relative;left:54.16667%}.el-col-sm-14{width:58.33333%}.el-col-sm-offset-14{margin-left:58.33333%}.el-col-sm-pull-14{position:relative;right:58.33333%}.el-col-sm-push-14{position:relative;left:58.33333%}.el-col-sm-15{width:62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{width:66.66667%}.el-col-sm-offset-16{margin-left:66.66667%}.el-col-sm-pull-16{position:relative;right:66.66667%}.el-col-sm-push-16{position:relative;left:66.66667%}.el-col-sm-17{width:70.83333%}.el-col-sm-offset-17{margin-left:70.83333%}.el-col-sm-pull-17{position:relative;right:70.83333%}.el-col-sm-push-17{position:relative;left:70.83333%}.el-col-sm-18{width:75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{width:79.16667%}.el-col-sm-offset-19{margin-left:79.16667%}.el-col-sm-pull-19{position:relative;right:79.16667%}.el-col-sm-push-19{position:relative;left:79.16667%}.el-col-sm-20{width:83.33333%}.el-col-sm-offset-20{margin-left:83.33333%}.el-col-sm-pull-20{position:relative;right:83.33333%}.el-col-sm-push-20{position:relative;left:83.33333%}.el-col-sm-21{width:87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{width:91.66667%}.el-col-sm-offset-22{margin-left:91.66667%}.el-col-sm-pull-22{position:relative;right:91.66667%}.el-col-sm-push-22{position:relative;left:91.66667%}.el-col-sm-23{width:95.83333%}.el-col-sm-offset-23{margin-left:95.83333%}.el-col-sm-pull-23{position:relative;right:95.83333%}.el-col-sm-push-23{position:relative;left:95.83333%}.el-col-sm-24{width:100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0{display:none;width:0}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{width:4.16667%}.el-col-md-offset-1{margin-left:4.16667%}.el-col-md-pull-1{position:relative;right:4.16667%}.el-col-md-push-1{position:relative;left:4.16667%}.el-col-md-2{width:8.33333%}.el-col-md-offset-2{margin-left:8.33333%}.el-col-md-pull-2{position:relative;right:8.33333%}.el-col-md-push-2{position:relative;left:8.33333%}.el-col-md-3{width:12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{width:16.66667%}.el-col-md-offset-4{margin-left:16.66667%}.el-col-md-pull-4{position:relative;right:16.66667%}.el-col-md-push-4{position:relative;left:16.66667%}.el-col-md-5{width:20.83333%}.el-col-md-offset-5{margin-left:20.83333%}.el-col-md-pull-5{position:relative;right:20.83333%}.el-col-md-push-5{position:relative;left:20.83333%}.el-col-md-6{width:25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{width:29.16667%}.el-col-md-offset-7{margin-left:29.16667%}.el-col-md-pull-7{position:relative;right:29.16667%}.el-col-md-push-7{position:relative;left:29.16667%}.el-col-md-8{width:33.33333%}.el-col-md-offset-8{margin-left:33.33333%}.el-col-md-pull-8{position:relative;right:33.33333%}.el-col-md-push-8{position:relative;left:33.33333%}.el-col-md-9{width:37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{width:41.66667%}.el-col-md-offset-10{margin-left:41.66667%}.el-col-md-pull-10{position:relative;right:41.66667%}.el-col-md-push-10{position:relative;left:41.66667%}.el-col-md-11{width:45.83333%}.el-col-md-offset-11{margin-left:45.83333%}.el-col-md-pull-11{position:relative;right:45.83333%}.el-col-md-push-11{position:relative;left:45.83333%}.el-col-md-12{width:50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{width:54.16667%}.el-col-md-offset-13{margin-left:54.16667%}.el-col-md-pull-13{position:relative;right:54.16667%}.el-col-md-push-13{position:relative;left:54.16667%}.el-col-md-14{width:58.33333%}.el-col-md-offset-14{margin-left:58.33333%}.el-col-md-pull-14{position:relative;right:58.33333%}.el-col-md-push-14{position:relative;left:58.33333%}.el-col-md-15{width:62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{width:66.66667%}.el-col-md-offset-16{margin-left:66.66667%}.el-col-md-pull-16{position:relative;right:66.66667%}.el-col-md-push-16{position:relative;left:66.66667%}.el-col-md-17{width:70.83333%}.el-col-md-offset-17{margin-left:70.83333%}.el-col-md-pull-17{position:relative;right:70.83333%}.el-col-md-push-17{position:relative;left:70.83333%}.el-col-md-18{width:75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{width:79.16667%}.el-col-md-offset-19{margin-left:79.16667%}.el-col-md-pull-19{position:relative;right:79.16667%}.el-col-md-push-19{position:relative;left:79.16667%}.el-col-md-20{width:83.33333%}.el-col-md-offset-20{margin-left:83.33333%}.el-col-md-pull-20{position:relative;right:83.33333%}.el-col-md-push-20{position:relative;left:83.33333%}.el-col-md-21{width:87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{width:91.66667%}.el-col-md-offset-22{margin-left:91.66667%}.el-col-md-pull-22{position:relative;right:91.66667%}.el-col-md-push-22{position:relative;left:91.66667%}.el-col-md-23{width:95.83333%}.el-col-md-offset-23{margin-left:95.83333%}.el-col-md-pull-23{position:relative;right:95.83333%}.el-col-md-push-23{position:relative;left:95.83333%}.el-col-md-24{width:100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;width:0}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{width:4.16667%}.el-col-lg-offset-1{margin-left:4.16667%}.el-col-lg-pull-1{position:relative;right:4.16667%}.el-col-lg-push-1{position:relative;left:4.16667%}.el-col-lg-2{width:8.33333%}.el-col-lg-offset-2{margin-left:8.33333%}.el-col-lg-pull-2{position:relative;right:8.33333%}.el-col-lg-push-2{position:relative;left:8.33333%}.el-col-lg-3{width:12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{width:16.66667%}.el-col-lg-offset-4{margin-left:16.66667%}.el-col-lg-pull-4{position:relative;right:16.66667%}.el-col-lg-push-4{position:relative;left:16.66667%}.el-col-lg-5{width:20.83333%}.el-col-lg-offset-5{margin-left:20.83333%}.el-col-lg-pull-5{position:relative;right:20.83333%}.el-col-lg-push-5{position:relative;left:20.83333%}.el-col-lg-6{width:25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{width:29.16667%}.el-col-lg-offset-7{margin-left:29.16667%}.el-col-lg-pull-7{position:relative;right:29.16667%}.el-col-lg-push-7{position:relative;left:29.16667%}.el-col-lg-8{width:33.33333%}.el-col-lg-offset-8{margin-left:33.33333%}.el-col-lg-pull-8{position:relative;right:33.33333%}.el-col-lg-push-8{position:relative;left:33.33333%}.el-col-lg-9{width:37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{width:41.66667%}.el-col-lg-offset-10{margin-left:41.66667%}.el-col-lg-pull-10{position:relative;right:41.66667%}.el-col-lg-push-10{position:relative;left:41.66667%}.el-col-lg-11{width:45.83333%}.el-col-lg-offset-11{margin-left:45.83333%}.el-col-lg-pull-11{position:relative;right:45.83333%}.el-col-lg-push-11{position:relative;left:45.83333%}.el-col-lg-12{width:50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{width:54.16667%}.el-col-lg-offset-13{margin-left:54.16667%}.el-col-lg-pull-13{position:relative;right:54.16667%}.el-col-lg-push-13{position:relative;left:54.16667%}.el-col-lg-14{width:58.33333%}.el-col-lg-offset-14{margin-left:58.33333%}.el-col-lg-pull-14{position:relative;right:58.33333%}.el-col-lg-push-14{position:relative;left:58.33333%}.el-col-lg-15{width:62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{width:66.66667%}.el-col-lg-offset-16{margin-left:66.66667%}.el-col-lg-pull-16{position:relative;right:66.66667%}.el-col-lg-push-16{position:relative;left:66.66667%}.el-col-lg-17{width:70.83333%}.el-col-lg-offset-17{margin-left:70.83333%}.el-col-lg-pull-17{position:relative;right:70.83333%}.el-col-lg-push-17{position:relative;left:70.83333%}.el-col-lg-18{width:75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{width:79.16667%}.el-col-lg-offset-19{margin-left:79.16667%}.el-col-lg-pull-19{position:relative;right:79.16667%}.el-col-lg-push-19{position:relative;left:79.16667%}.el-col-lg-20{width:83.33333%}.el-col-lg-offset-20{margin-left:83.33333%}.el-col-lg-pull-20{position:relative;right:83.33333%}.el-col-lg-push-20{position:relative;left:83.33333%}.el-col-lg-21{width:87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{width:91.66667%}.el-col-lg-offset-22{margin-left:91.66667%}.el-col-lg-pull-22{position:relative;right:91.66667%}.el-col-lg-push-22{position:relative;left:91.66667%}.el-col-lg-23{width:95.83333%}.el-col-lg-offset-23{margin-left:95.83333%}.el-col-lg-pull-23{position:relative;right:95.83333%}.el-col-lg-push-23{position:relative;left:95.83333%}.el-col-lg-24{width:100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;width:0}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{width:4.16667%}.el-col-xl-offset-1{margin-left:4.16667%}.el-col-xl-pull-1{position:relative;right:4.16667%}.el-col-xl-push-1{position:relative;left:4.16667%}.el-col-xl-2{width:8.33333%}.el-col-xl-offset-2{margin-left:8.33333%}.el-col-xl-pull-2{position:relative;right:8.33333%}.el-col-xl-push-2{position:relative;left:8.33333%}.el-col-xl-3{width:12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{width:16.66667%}.el-col-xl-offset-4{margin-left:16.66667%}.el-col-xl-pull-4{position:relative;right:16.66667%}.el-col-xl-push-4{position:relative;left:16.66667%}.el-col-xl-5{width:20.83333%}.el-col-xl-offset-5{margin-left:20.83333%}.el-col-xl-pull-5{position:relative;right:20.83333%}.el-col-xl-push-5{position:relative;left:20.83333%}.el-col-xl-6{width:25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{width:29.16667%}.el-col-xl-offset-7{margin-left:29.16667%}.el-col-xl-pull-7{position:relative;right:29.16667%}.el-col-xl-push-7{position:relative;left:29.16667%}.el-col-xl-8{width:33.33333%}.el-col-xl-offset-8{margin-left:33.33333%}.el-col-xl-pull-8{position:relative;right:33.33333%}.el-col-xl-push-8{position:relative;left:33.33333%}.el-col-xl-9{width:37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{width:41.66667%}.el-col-xl-offset-10{margin-left:41.66667%}.el-col-xl-pull-10{position:relative;right:41.66667%}.el-col-xl-push-10{position:relative;left:41.66667%}.el-col-xl-11{width:45.83333%}.el-col-xl-offset-11{margin-left:45.83333%}.el-col-xl-pull-11{position:relative;right:45.83333%}.el-col-xl-push-11{position:relative;left:45.83333%}.el-col-xl-12{width:50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{width:54.16667%}.el-col-xl-offset-13{margin-left:54.16667%}.el-col-xl-pull-13{position:relative;right:54.16667%}.el-col-xl-push-13{position:relative;left:54.16667%}.el-col-xl-14{width:58.33333%}.el-col-xl-offset-14{margin-left:58.33333%}.el-col-xl-pull-14{position:relative;right:58.33333%}.el-col-xl-push-14{position:relative;left:58.33333%}.el-col-xl-15{width:62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{width:66.66667%}.el-col-xl-offset-16{margin-left:66.66667%}.el-col-xl-pull-16{position:relative;right:66.66667%}.el-col-xl-push-16{position:relative;left:66.66667%}.el-col-xl-17{width:70.83333%}.el-col-xl-offset-17{margin-left:70.83333%}.el-col-xl-pull-17{position:relative;right:70.83333%}.el-col-xl-push-17{position:relative;left:70.83333%}.el-col-xl-18{width:75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{width:79.16667%}.el-col-xl-offset-19{margin-left:79.16667%}.el-col-xl-pull-19{position:relative;right:79.16667%}.el-col-xl-push-19{position:relative;left:79.16667%}.el-col-xl-20{width:83.33333%}.el-col-xl-offset-20{margin-left:83.33333%}.el-col-xl-pull-20{position:relative;right:83.33333%}.el-col-xl-push-20{position:relative;left:83.33333%}.el-col-xl-21{width:87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{width:91.66667%}.el-col-xl-offset-22{margin-left:91.66667%}.el-col-xl-pull-22{position:relative;right:91.66667%}.el-col-xl-push-22{position:relative;left:91.66667%}.el-col-xl-23{width:95.83333%}.el-col-xl-offset-23{margin-left:95.83333%}.el-col-xl-pull-23{position:relative;right:95.83333%}.el-col-xl-push-23{position:relative;left:95.83333%}.el-col-xl-24{width:100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}.el-row{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box}.el-row:after,.el-row:before{display:table;content:""}.el-row:after{clear:both}.el-row--flex{display:-webkit-box;display:-ms-flexbox;display:flex}.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-row--flex.is-justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.el-row--flex.is-justify-space-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.el-row--flex.is-justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.el-row--flex.is-align-middle{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-row--flex.is-align-bottom{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}@font-face{font-family:element-icons;src:url(../fonts/element-icons.535877f5.woff) format("woff"),url(../fonts/element-icons.732389de.ttf) format("truetype");font-weight:400;font-display:"auto";font-style:normal}[class*=" el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-ice-cream-round:before{content:"\E6A0"}.el-icon-ice-cream-square:before{content:"\E6A3"}.el-icon-lollipop:before{content:"\E6A4"}.el-icon-potato-strips:before{content:"\E6A5"}.el-icon-milk-tea:before{content:"\E6A6"}.el-icon-ice-drink:before{content:"\E6A7"}.el-icon-ice-tea:before{content:"\E6A9"}.el-icon-coffee:before{content:"\E6AA"}.el-icon-orange:before{content:"\E6AB"}.el-icon-pear:before{content:"\E6AC"}.el-icon-apple:before{content:"\E6AD"}.el-icon-cherry:before{content:"\E6AE"}.el-icon-watermelon:before{content:"\E6AF"}.el-icon-grape:before{content:"\E6B0"}.el-icon-refrigerator:before{content:"\E6B1"}.el-icon-goblet-square-full:before{content:"\E6B2"}.el-icon-goblet-square:before{content:"\E6B3"}.el-icon-goblet-full:before{content:"\E6B4"}.el-icon-goblet:before{content:"\E6B5"}.el-icon-cold-drink:before{content:"\E6B6"}.el-icon-coffee-cup:before{content:"\E6B8"}.el-icon-water-cup:before{content:"\E6B9"}.el-icon-hot-water:before{content:"\E6BA"}.el-icon-ice-cream:before{content:"\E6BB"}.el-icon-dessert:before{content:"\E6BC"}.el-icon-sugar:before{content:"\E6BD"}.el-icon-tableware:before{content:"\E6BE"}.el-icon-burger:before{content:"\E6BF"}.el-icon-knife-fork:before{content:"\E6C1"}.el-icon-fork-spoon:before{content:"\E6C2"}.el-icon-chicken:before{content:"\E6C3"}.el-icon-food:before{content:"\E6C4"}.el-icon-dish-1:before{content:"\E6C5"}.el-icon-dish:before{content:"\E6C6"}.el-icon-moon-night:before{content:"\E6EE"}.el-icon-moon:before{content:"\E6F0"}.el-icon-cloudy-and-sunny:before{content:"\E6F1"}.el-icon-partly-cloudy:before{content:"\E6F2"}.el-icon-cloudy:before{content:"\E6F3"}.el-icon-sunny:before{content:"\E6F6"}.el-icon-sunset:before{content:"\E6F7"}.el-icon-sunrise-1:before{content:"\E6F8"}.el-icon-sunrise:before{content:"\E6F9"}.el-icon-heavy-rain:before{content:"\E6FA"}.el-icon-lightning:before{content:"\E6FB"}.el-icon-light-rain:before{content:"\E6FC"}.el-icon-wind-power:before{content:"\E6FD"}.el-icon-baseball:before{content:"\E712"}.el-icon-soccer:before{content:"\E713"}.el-icon-football:before{content:"\E715"}.el-icon-basketball:before{content:"\E716"}.el-icon-ship:before{content:"\E73F"}.el-icon-truck:before{content:"\E740"}.el-icon-bicycle:before{content:"\E741"}.el-icon-mobile-phone:before{content:"\E6D3"}.el-icon-service:before{content:"\E6D4"}.el-icon-key:before{content:"\E6E2"}.el-icon-unlock:before{content:"\E6E4"}.el-icon-lock:before{content:"\E6E5"}.el-icon-watch:before{content:"\E6FE"}.el-icon-watch-1:before{content:"\E6FF"}.el-icon-timer:before{content:"\E702"}.el-icon-alarm-clock:before{content:"\E703"}.el-icon-map-location:before{content:"\E704"}.el-icon-delete-location:before{content:"\E705"}.el-icon-add-location:before{content:"\E706"}.el-icon-location-information:before{content:"\E707"}.el-icon-location-outline:before{content:"\E708"}.el-icon-location:before{content:"\E79E"}.el-icon-place:before{content:"\E709"}.el-icon-discover:before{content:"\E70A"}.el-icon-first-aid-kit:before{content:"\E70B"}.el-icon-trophy-1:before{content:"\E70C"}.el-icon-trophy:before{content:"\E70D"}.el-icon-medal:before{content:"\E70E"}.el-icon-medal-1:before{content:"\E70F"}.el-icon-stopwatch:before{content:"\E710"}.el-icon-mic:before{content:"\E711"}.el-icon-copy-document:before{content:"\E718"}.el-icon-full-screen:before{content:"\E719"}.el-icon-switch-button:before{content:"\E71B"}.el-icon-aim:before{content:"\E71C"}.el-icon-crop:before{content:"\E71D"}.el-icon-odometer:before{content:"\E71E"}.el-icon-time:before{content:"\E71F"}.el-icon-bangzhu:before{content:"\E724"}.el-icon-close-notification:before{content:"\E726"}.el-icon-microphone:before{content:"\E727"}.el-icon-turn-off-microphone:before{content:"\E728"}.el-icon-position:before{content:"\E729"}.el-icon-postcard:before{content:"\E72A"}.el-icon-message:before{content:"\E72B"}.el-icon-chat-line-square:before{content:"\E72D"}.el-icon-chat-dot-square:before{content:"\E72E"}.el-icon-chat-dot-round:before{content:"\E72F"}.el-icon-chat-square:before{content:"\E730"}.el-icon-chat-line-round:before{content:"\E731"}.el-icon-chat-round:before{content:"\E732"}.el-icon-set-up:before{content:"\E733"}.el-icon-turn-off:before{content:"\E734"}.el-icon-open:before{content:"\E735"}.el-icon-connection:before{content:"\E736"}.el-icon-link:before{content:"\E737"}.el-icon-cpu:before{content:"\E738"}.el-icon-thumb:before{content:"\E739"}.el-icon-female:before{content:"\E73A"}.el-icon-male:before{content:"\E73B"}.el-icon-guide:before{content:"\E73C"}.el-icon-news:before{content:"\E73E"}.el-icon-price-tag:before{content:"\E744"}.el-icon-discount:before{content:"\E745"}.el-icon-wallet:before{content:"\E747"}.el-icon-coin:before{content:"\E748"}.el-icon-money:before{content:"\E749"}.el-icon-bank-card:before{content:"\E74A"}.el-icon-box:before{content:"\E74B"}.el-icon-present:before{content:"\E74C"}.el-icon-sell:before{content:"\E6D5"}.el-icon-sold-out:before{content:"\E6D6"}.el-icon-shopping-bag-2:before{content:"\E74D"}.el-icon-shopping-bag-1:before{content:"\E74E"}.el-icon-shopping-cart-2:before{content:"\E74F"}.el-icon-shopping-cart-1:before{content:"\E750"}.el-icon-shopping-cart-full:before{content:"\E751"}.el-icon-smoking:before{content:"\E752"}.el-icon-no-smoking:before{content:"\E753"}.el-icon-house:before{content:"\E754"}.el-icon-table-lamp:before{content:"\E755"}.el-icon-school:before{content:"\E756"}.el-icon-office-building:before{content:"\E757"}.el-icon-toilet-paper:before{content:"\E758"}.el-icon-notebook-2:before{content:"\E759"}.el-icon-notebook-1:before{content:"\E75A"}.el-icon-files:before{content:"\E75B"}.el-icon-collection:before{content:"\E75C"}.el-icon-receiving:before{content:"\E75D"}.el-icon-suitcase-1:before{content:"\E760"}.el-icon-suitcase:before{content:"\E761"}.el-icon-film:before{content:"\E763"}.el-icon-collection-tag:before{content:"\E765"}.el-icon-data-analysis:before{content:"\E766"}.el-icon-pie-chart:before{content:"\E767"}.el-icon-data-board:before{content:"\E768"}.el-icon-data-line:before{content:"\E76D"}.el-icon-reading:before{content:"\E769"}.el-icon-magic-stick:before{content:"\E76A"}.el-icon-coordinate:before{content:"\E76B"}.el-icon-mouse:before{content:"\E76C"}.el-icon-brush:before{content:"\E76E"}.el-icon-headset:before{content:"\E76F"}.el-icon-umbrella:before{content:"\E770"}.el-icon-scissors:before{content:"\E771"}.el-icon-mobile:before{content:"\E773"}.el-icon-attract:before{content:"\E774"}.el-icon-monitor:before{content:"\E775"}.el-icon-search:before{content:"\E778"}.el-icon-takeaway-box:before{content:"\E77A"}.el-icon-paperclip:before{content:"\E77D"}.el-icon-printer:before{content:"\E77E"}.el-icon-document-add:before{content:"\E782"}.el-icon-document:before{content:"\E785"}.el-icon-document-checked:before{content:"\E786"}.el-icon-document-copy:before{content:"\E787"}.el-icon-document-delete:before{content:"\E788"}.el-icon-document-remove:before{content:"\E789"}.el-icon-tickets:before{content:"\E78B"}.el-icon-folder-checked:before{content:"\E77F"}.el-icon-folder-delete:before{content:"\E780"}.el-icon-folder-remove:before{content:"\E781"}.el-icon-folder-add:before{content:"\E783"}.el-icon-folder-opened:before{content:"\E784"}.el-icon-folder:before{content:"\E78A"}.el-icon-edit-outline:before{content:"\E764"}.el-icon-edit:before{content:"\E78C"}.el-icon-date:before{content:"\E78E"}.el-icon-c-scale-to-original:before{content:"\E7C6"}.el-icon-view:before{content:"\E6CE"}.el-icon-loading:before{content:"\E6CF"}.el-icon-rank:before{content:"\E6D1"}.el-icon-sort-down:before{content:"\E7C4"}.el-icon-sort-up:before{content:"\E7C5"}.el-icon-sort:before{content:"\E6D2"}.el-icon-finished:before{content:"\E6CD"}.el-icon-refresh-left:before{content:"\E6C7"}.el-icon-refresh-right:before{content:"\E6C8"}.el-icon-refresh:before{content:"\E6D0"}.el-icon-video-play:before{content:"\E7C0"}.el-icon-video-pause:before{content:"\E7C1"}.el-icon-d-arrow-right:before{content:"\E6DC"}.el-icon-d-arrow-left:before{content:"\E6DD"}.el-icon-arrow-up:before{content:"\E6E1"}.el-icon-arrow-down:before{content:"\E6DF"}.el-icon-arrow-right:before{content:"\E6E0"}.el-icon-arrow-left:before{content:"\E6DE"}.el-icon-top-right:before{content:"\E6E7"}.el-icon-top-left:before{content:"\E6E8"}.el-icon-top:before{content:"\E6E6"}.el-icon-bottom:before{content:"\E6EB"}.el-icon-right:before{content:"\E6E9"}.el-icon-back:before{content:"\E6EA"}.el-icon-bottom-right:before{content:"\E6EC"}.el-icon-bottom-left:before{content:"\E6ED"}.el-icon-caret-top:before{content:"\E78F"}.el-icon-caret-bottom:before{content:"\E790"}.el-icon-caret-right:before{content:"\E791"}.el-icon-caret-left:before{content:"\E792"}.el-icon-d-caret:before{content:"\E79A"}.el-icon-share:before{content:"\E793"}.el-icon-menu:before{content:"\E798"}.el-icon-s-grid:before{content:"\E7A6"}.el-icon-s-check:before{content:"\E7A7"}.el-icon-s-data:before{content:"\E7A8"}.el-icon-s-opportunity:before{content:"\E7AA"}.el-icon-s-custom:before{content:"\E7AB"}.el-icon-s-claim:before{content:"\E7AD"}.el-icon-s-finance:before{content:"\E7AE"}.el-icon-s-comment:before{content:"\E7AF"}.el-icon-s-flag:before{content:"\E7B0"}.el-icon-s-marketing:before{content:"\E7B1"}.el-icon-s-shop:before{content:"\E7B4"}.el-icon-s-open:before{content:"\E7B5"}.el-icon-s-management:before{content:"\E7B6"}.el-icon-s-ticket:before{content:"\E7B7"}.el-icon-s-release:before{content:"\E7B8"}.el-icon-s-home:before{content:"\E7B9"}.el-icon-s-promotion:before{content:"\E7BA"}.el-icon-s-operation:before{content:"\E7BB"}.el-icon-s-unfold:before{content:"\E7BC"}.el-icon-s-fold:before{content:"\E7A9"}.el-icon-s-platform:before{content:"\E7BD"}.el-icon-s-order:before{content:"\E7BE"}.el-icon-s-cooperation:before{content:"\E7BF"}.el-icon-bell:before{content:"\E725"}.el-icon-message-solid:before{content:"\E799"}.el-icon-video-camera:before{content:"\E772"}.el-icon-video-camera-solid:before{content:"\E796"}.el-icon-camera:before{content:"\E779"}.el-icon-camera-solid:before{content:"\E79B"}.el-icon-download:before{content:"\E77C"}.el-icon-upload2:before{content:"\E77B"}.el-icon-upload:before{content:"\E7C3"}.el-icon-picture-outline-round:before{content:"\E75F"}.el-icon-picture-outline:before{content:"\E75E"}.el-icon-picture:before{content:"\E79F"}.el-icon-close:before{content:"\E6DB"}.el-icon-check:before{content:"\E6DA"}.el-icon-plus:before{content:"\E6D9"}.el-icon-minus:before{content:"\E6D8"}.el-icon-help:before{content:"\E73D"}.el-icon-s-help:before{content:"\E7B3"}.el-icon-circle-close:before{content:"\E78D"}.el-icon-circle-check:before{content:"\E720"}.el-icon-circle-plus-outline:before{content:"\E723"}.el-icon-remove-outline:before{content:"\E722"}.el-icon-zoom-out:before{content:"\E776"}.el-icon-zoom-in:before{content:"\E777"}.el-icon-error:before{content:"\E79D"}.el-icon-success:before{content:"\E79C"}.el-icon-circle-plus:before{content:"\E7A0"}.el-icon-remove:before{content:"\E7A2"}.el-icon-info:before{content:"\E7A1"}.el-icon-question:before{content:"\E7A4"}.el-icon-warning-outline:before{content:"\E6C9"}.el-icon-warning:before{content:"\E7A3"}.el-icon-goods:before{content:"\E7C2"}.el-icon-s-goods:before{content:"\E7B2"}.el-icon-star-off:before{content:"\E717"}.el-icon-star-on:before{content:"\E797"}.el-icon-more-outline:before{content:"\E6CC"}.el-icon-more:before{content:"\E794"}.el-icon-phone-outline:before{content:"\E6CB"}.el-icon-phone:before{content:"\E795"}.el-icon-user:before{content:"\E6E3"}.el-icon-user-solid:before{content:"\E7A5"}.el-icon-setting:before{content:"\E6CA"}.el-icon-s-tools:before{content:"\E7AC"}.el-icon-delete:before{content:"\E6D7"}.el-icon-delete-solid:before{content:"\E7C9"}.el-icon-eleme:before{content:"\E7C7"}.el-icon-platform-eleme:before{content:"\E7CA"}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotating{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:#409eff;z-index:1;-webkit-transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.el-tabs__new-tab{float:right;border:1px solid #d3dce6;height:18px;width:18px;line-height:18px;margin:12px 0 9px 10px;border-radius:3px;text-align:center;font-size:12px;color:#d3dce6;cursor:pointer;-webkit-transition:all .15s;transition:all .15s}.el-tabs__new-tab .el-icon-plus{-webkit-transform:scale(.8);transform:scale(.8)}.el-tabs__new-tab:hover{color:#409eff}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#e4e7ed;z-index:1}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after,.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:#909399}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;float:left;z-index:2}.el-tabs__nav.is-stretch{min-width:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.el-tabs__nav.is-stretch>*{-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:40px;display:inline-block;list-style:none;font-size:14px;font-weight:500;color:#303133;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.el-tabs__item:focus.is-active.is-focus:not(:active){-webkit-box-shadow:0 0 2px 2px #409eff inset;box-shadow:inset 0 0 2px 2px #409eff;border-radius:3px}.el-tabs__item .el-icon-close{border-radius:50%;text-align:center;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);margin-left:5px}.el-tabs__item .el-icon-close:before{-webkit-transform:scale(.9);transform:scale(.9);display:inline-block}.el-tabs__item .el-icon-close:hover{background-color:#c0c4cc;color:#fff}.el-tabs__item.is-active{color:#409eff}.el-tabs__item:hover{color:#409eff;cursor:pointer}.el-tabs__item.is-disabled{color:#c0c4cc;cursor:default}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid #e4e7ed}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid #e4e7ed;border-bottom:none;border-radius:4px 4px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close,.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid #e4e7ed;-webkit-transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1);transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:#fff}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--border-card{background:#fff;border:1px solid #dcdfe6;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04);box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:#f5f7fa;border-bottom:1px solid #e4e7ed;margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__item{-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);border:1px solid transparent;margin-top:-1px;color:#909399}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:#409eff;background-color:#fff;border-right-color:#dcdfe6;border-left-color:#dcdfe6}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:#409eff}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:#c0c4cc}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid #dcdfe6}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left:after{right:0;left:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left,.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid #e4e7ed;border-bottom:none;border-top:1px solid #e4e7ed;text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid #e4e7ed;border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid #e4e7ed;border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid #e4e7ed;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid #dfe4ed}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 transparent}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid #e4e7ed}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid #e4e7ed;border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid #e4e7ed;border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid #e4e7ed;border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid #dfe4ed}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 transparent}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{-webkit-animation:slideInRight-enter .3s;animation:slideInRight-enter .3s}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave .3s;animation:slideInRight-leave .3s}.slideInLeft-enter{-webkit-animation:slideInLeft-enter .3s;animation:slideInLeft-enter .3s}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave .3s;animation:slideInLeft-leave .3s}@-webkit-keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}.el-form--inline .el-form-item,.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form-item:after,.el-form-item__content:after{clear:both}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px}.el-form--inline .el-form-item{margin-right:10px}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item:after,.el-form-item:before{display:table;content:""}.el-form-item .el-form-item{margin-bottom:0}.el-form-item--mini.el-form-item,.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label-wrap{float:left}.el-form-item__label-wrap .el-form-item__label{display:inline-block;float:none}.el-form-item__label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:#606266;line-height:40px;padding:0 12px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__content:after,.el-form-item__content:before{display:table;content:""}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:#f56c6c;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{content:"*";color:#f56c6c;margin-right:4px}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{border-color:#f56c6c}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#f56c6c}.el-form-item--feedback .el-input__validateIcon{display:inline-block}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{display:table;content:""}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:#c0c4cc}.el-breadcrumb__separator[class*=icon]{margin:0 6px;font-weight:400}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner.is-link,.el-breadcrumb__inner a{font-weight:700;text-decoration:none;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1);color:#303133}.el-breadcrumb__inner.is-link:hover,.el-breadcrumb__inner a:hover{color:#409eff;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover{font-weight:400;color:#606266;cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-checkbox,.el-checkbox__input{white-space:nowrap}.el-checkbox-button__inner,.el-tag{-webkit-box-sizing:border-box;white-space:nowrap}.el-checkbox-button__inner{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:1px solid #ebeef5;border-radius:2px;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:2px 0}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:14px}.el-table-filter__list-item:hover{background-color:#ecf5ff;color:#66b1ff}.el-table-filter__list-item.is-active{background-color:#409eff;color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #ebeef5;padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:#606266;cursor:pointer;font-size:13px;padding:0 3px}.el-table-filter__bottom button:hover{color:#409eff}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-right:5px;margin-bottom:8px;margin-left:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-divider{background-color:#dcdfe6;position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative}.el-divider__text{position:absolute;background-color:#fff;padding:0 20px;font-weight:500;color:#303133;font-size:14px}.el-divider__text.is-left{left:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-divider__text.is-center{left:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-checkbox,.el-checkbox__input{display:inline-block;position:relative}.el-table,.el-table__append-wrapper{overflow:hidden}.el-table--hidden,.el-table td.is-hidden>*,.el-table th.is-hidden>*{visibility:hidden}.el-checkbox{color:#606266;font-weight:500;font-size:14px;cursor:pointer;user-select:none;margin-right:30px}.el-checkbox,.el-checkbox-button__inner,.el-table th{white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:normal;height:40px}.el-checkbox.is-bordered.is-checked{border-color:#409eff}.el-checkbox.is-bordered.is-disabled{border-color:#ebeef5;cursor:not-allowed}.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px;height:36px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:5px 15px 5px 10px;border-radius:3px;height:32px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{padding:3px 15px 3px 10px;border-radius:3px;height:28px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox__input{white-space:nowrap;cursor:pointer;outline:0;line-height:1;vertical-align:middle}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#dcdfe6;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:#c0c4cc}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:#c0c4cc}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:#c0c4cc;border-color:#c0c4cc}.el-checkbox__input.is-checked .el-checkbox__inner,.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#409eff;border-color:#409eff}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#c0c4cc;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner:after{-webkit-transform:rotate(45deg) scaleY(1);transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#409eff}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#409eff}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:#fff;height:2px;-webkit-transform:scale(.5);transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid #dcdfe6;border-radius:2px;-webkit-box-sizing:border-box;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;-webkit-transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#409eff}.el-checkbox__inner:after{-webkit-box-sizing:content-box;box-sizing:content-box;content:"";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;-webkit-transform:rotate(45deg) scaleY(0);transform:rotate(45deg) scaleY(0);width:3px;-webkit-transition:-webkit-transform .15s ease-in .05s;transition:-webkit-transform .15s ease-in .05s;transition:transform .15s ease-in .05s;transition:transform .15s ease-in .05s,-webkit-transform .15s ease-in .05s;-webkit-transform-origin:center;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox-button,.el-checkbox-button__inner{position:relative;display:inline-block}.el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.el-checkbox:last-of-type{margin-right:0}.el-checkbox-button__inner{line-height:1;font-weight:500;vertical-align:middle;cursor:pointer;background:#fff;border:1px solid #dcdfe6;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-checkbox-button__inner,.el-table,.el-tag{-webkit-box-sizing:border-box}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#409eff}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:#fff;background-color:#409eff;border-color:#409eff;-webkit-box-shadow:-1px 0 0 0 #8cc5ff;box-shadow:-1px 0 0 0 #8cc5ff}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:#409eff}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;-webkit-box-shadow:none;box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:#ebeef5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#409eff}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-tag{white-space:nowrap}.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing){outline-width:0}.el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2;min-width:10px;word-wrap:break-word}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow:after{content:" ";border-width:5px}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-5px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=right] .popper__arrow:after{bottom:-5px;left:1px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper.is-dark{background:#303133;color:#fff}.el-table,.el-table__expanded-cell{background-color:#fff}.el-tooltip__popper.is-light{background:#fff;border:1px solid #303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow:after{border-top-color:#fff}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#fff}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#303133}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow:after{border-left-color:#fff}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#303133}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow:after{border-right-color:#fff}.el-table{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%;max-width:100%;font-size:14px;color:#606266}.el-table--mini,.el-table--small,.el-table__expand-icon{font-size:12px}.el-table__empty-block{min-height:60px;text-align:center;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:#909399}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{position:relative;cursor:pointer;color:#666;-webkit-transition:-webkit-transform .2s ease-in-out;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .2s ease-in-out;height:20px}.el-table__expand-icon--expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-table__expand-icon>.el-icon{position:absolute;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit td.gutter,.el-table--fit th.gutter{border-right-width:1px}.el-table--scrollable-x .el-table__body-wrapper{overflow-x:auto}.el-table--scrollable-y .el-table__body-wrapper{overflow-y:auto}.el-table thead{color:#909399;font-weight:500}.el-table thead.is-group th{background:#f5f7fa}.el-table th,.el-table tr{background-color:#fff}.el-table td,.el-table th{padding:12px 0;min-width:0;-webkit-box-sizing:border-box;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left}.el-table td.is-center,.el-table th.is-center{text-align:center}.el-table td.is-right,.el-table th.is-right{text-align:right}.el-table td.gutter,.el-table th.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table--medium td,.el-table--medium th{padding:10px 0}.el-table--small td,.el-table--small th{padding:8px 0}.el-table--mini td,.el-table--mini th{padding:6px 0}.el-table .cell,.el-table th div{text-overflow:ellipsis;padding-right:10px;overflow:hidden}.el-table--border td:first-child .cell,.el-table--border th:first-child .cell,.el-table .cell,.el-table th div{padding-left:10px}.el-table tr input[type=checkbox]{margin:0}.el-table td,.el-table th.is-leaf{border-bottom:1px solid #ebeef5}.el-table th.is-sortable{cursor:pointer}.el-table th{overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-table th div{line-height:40px;white-space:nowrap}.el-table th>.cell,.el-table th div{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box}.el-table th>.cell{position:relative;word-wrap:normal;text-overflow:ellipsis;vertical-align:middle;width:100%}.el-table th>.cell.highlight{color:#409eff}.el-table th.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td div{-webkit-box-sizing:border-box;box-sizing:border-box}.el-table td.gutter{width:0}.el-table .cell{-webkit-box-sizing:border-box;box-sizing:border-box;white-space:normal;word-break:break-all;line-height:23px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--border,.el-table--group{border:1px solid #ebeef5}.el-table--border:after,.el-table--group:after,.el-table:before{content:"";position:absolute;background-color:#ebeef5;z-index:1}.el-table--border:after,.el-table--group:after{top:0;right:0;width:1px;height:100%}.el-table:before{left:0;bottom:0;width:100%;height:1px}.el-table--border{border-right:none;border-bottom:none}.el-table--border.el-loading-parent--relative{border-color:transparent}.el-table--border td,.el-table--border th,.el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:1px solid #ebeef5}.el-table--border th.gutter:last-of-type{border-bottom:1px solid #ebeef5;border-bottom-width:1px}.el-table--border th,.el-table__fixed-right-patch{border-bottom:1px solid #ebeef5}.el-table__fixed,.el-table__fixed-right{position:absolute;top:0;left:0;overflow-x:hidden;overflow-y:hidden;-webkit-box-shadow:0 0 10px rgba(0,0,0,.12);box-shadow:0 0 10px rgba(0,0,0,.12)}.el-table__fixed-right:before,.el-table__fixed:before{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background-color:#ebeef5;z-index:4}.el-table__fixed-right-patch{position:absolute;top:-1px;right:0;background-color:#fff}.el-table__fixed-right{top:0;left:auto;right:0}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.el-table__fixed-header-wrapper{position:absolute;left:0;top:0;z-index:3}.el-table__fixed-footer-wrapper{position:absolute;left:0;bottom:0;z-index:3}.el-table__fixed-footer-wrapper tbody td{border-top:1px solid #ebeef5;background-color:#f5f7fa;color:#606266}.el-table__fixed-body-wrapper{position:absolute;left:0;top:37px;overflow:hidden;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td{border-top:1px solid #ebeef5}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td,.el-table__header-wrapper tbody td{background-color:#f5f7fa;color:#606266}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper.is-scrolling-left~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right,.el-table__body-wrapper.is-scrolling-right~.el-table__fixed-right{-webkit-box-shadow:none;box-shadow:none}.el-table__body-wrapper .el-table--border.is-scrolling-right~.el-table__fixed-right{border-left:1px solid #ebeef5}.el-table .caret-wrapper{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:34px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:5px solid transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:#c0c4cc;top:5px}.el-table .sort-caret.descending{border-top-color:#c0c4cc;bottom:7px}.el-table .ascending .sort-caret.ascending{border-bottom-color:#409eff}.el-table .descending .sort-caret.descending{border-top-color:#409eff}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td{background:#fafafa}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td{background-color:#ecf5ff}.el-table__body tr.hover-row.current-row>td,.el-table__body tr.hover-row.el-table__row--striped.current-row>td,.el-table__body tr.hover-row.el-table__row--striped>td,.el-table__body tr.hover-row>td{background-color:#f5f7fa}.el-table__body tr.current-row>td{background-color:#ecf5ff}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:1px solid #ebeef5;z-index:10}.el-table__column-filter-trigger{display:inline-block;line-height:34px;cursor:pointer}.el-table__column-filter-trigger i{color:#909399;font-size:12px;-webkit-transform:scale(.75);transform:scale(.75)}.el-table--enable-row-transition .el-table__body td{-webkit-transition:background-color .25s ease;transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td{background-color:#f5f7fa}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:20px;line-height:20px;height:20px;text-align:center;margin-right:3px}.el-button-group>.el-button.is-active,.el-button-group>.el-button.is-disabled,.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;-webkit-transition:.1s;transition:.1s;font-weight:500;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:4px}.el-button+.el-button{margin-left:10px}.el-button:focus,.el-button:hover{color:#409eff;border-color:#c6e2ff;background-color:#ecf5ff}.el-button:active{color:#3a8ee6;border-color:#3a8ee6;outline:0}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#fff;border-color:#409eff;color:#409eff}.el-button.is-active,.el-button.is-plain:active{color:#3a8ee6;border-color:#3a8ee6}.el-button.is-plain:active{background:#fff;outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#fff;border-color:#ebeef5;color:#c0c4cc}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:hsla(0,0%,100%,.35)}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{color:#fff;background-color:#409eff;border-color:#409eff}.el-button--primary:focus,.el-button--primary:hover{background:#66b1ff;border-color:#66b1ff;color:#fff}.el-button--primary.is-active,.el-button--primary:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff}.el-button--primary:active{outline:0}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{color:#fff;background-color:#a0cfff;border-color:#a0cfff}.el-button--primary.is-plain{color:#409eff;background:#ecf5ff;border-color:#b3d8ff}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#409eff;border-color:#409eff;color:#fff}.el-button--primary.is-plain:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff;outline:0}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{color:#8cc5ff;background-color:#ecf5ff;border-color:#d9ecff}.el-button--success{color:#fff;background-color:#67c23a;border-color:#67c23a}.el-button--success:focus,.el-button--success:hover{background:#85ce61;border-color:#85ce61;color:#fff}.el-button--success.is-active,.el-button--success:active{background:#5daf34;border-color:#5daf34;color:#fff}.el-button--success:active{outline:0}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{color:#fff;background-color:#b3e19d;border-color:#b3e19d}.el-button--success.is-plain{color:#67c23a;background:#f0f9eb;border-color:#c2e7b0}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#67c23a;border-color:#67c23a;color:#fff}.el-button--success.is-plain:active{background:#5daf34;border-color:#5daf34;color:#fff;outline:0}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{color:#a4da89;background-color:#f0f9eb;border-color:#e1f3d8}.el-button--warning{color:#fff;background-color:#e6a23c;border-color:#e6a23c}.el-button--warning:focus,.el-button--warning:hover{background:#ebb563;border-color:#ebb563;color:#fff}.el-button--warning.is-active,.el-button--warning:active{background:#cf9236;border-color:#cf9236;color:#fff}.el-button--warning:active{outline:0}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{color:#fff;background-color:#f3d19e;border-color:#f3d19e}.el-button--warning.is-plain{color:#e6a23c;background:#fdf6ec;border-color:#f5dab1}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#e6a23c;border-color:#e6a23c;color:#fff}.el-button--warning.is-plain:active{background:#cf9236;border-color:#cf9236;color:#fff;outline:0}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{color:#f0c78a;background-color:#fdf6ec;border-color:#faecd8}.el-button--danger{color:#fff;background-color:#f56c6c;border-color:#f56c6c}.el-button--danger:focus,.el-button--danger:hover{background:#f78989;border-color:#f78989;color:#fff}.el-button--danger.is-active,.el-button--danger:active{background:#dd6161;border-color:#dd6161;color:#fff}.el-button--danger:active{outline:0}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{color:#fff;background-color:#fab6b6;border-color:#fab6b6}.el-button--danger.is-plain{color:#f56c6c;background:#fef0f0;border-color:#fbc4c4}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#f56c6c;border-color:#f56c6c;color:#fff}.el-button--danger.is-plain:active{background:#dd6161;border-color:#dd6161;color:#fff;outline:0}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{color:#f9a7a7;background-color:#fef0f0;border-color:#fde2e2}.el-button--info{color:#fff;background-color:#909399;border-color:#909399}.el-button--info:focus,.el-button--info:hover{background:#a6a9ad;border-color:#a6a9ad;color:#fff}.el-button--info.is-active,.el-button--info:active{background:#82848a;border-color:#82848a;color:#fff}.el-button--info:active{outline:0}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{color:#fff;background-color:#c8c9cc;border-color:#c8c9cc}.el-button--info.is-plain{color:#909399;background:#f4f4f5;border-color:#d3d4d6}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#909399;border-color:#909399;color:#fff}.el-button--info.is-plain:active{background:#82848a;border-color:#82848a;color:#fff;outline:0}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{color:#bcbec2;background-color:#f4f4f5;border-color:#e9e9eb}.el-button--text,.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover,.el-button--text:active{border-color:transparent}.el-button--medium{padding:10px 20px;font-size:14px;border-radius:4px}.el-button--mini,.el-button--small{font-size:12px;border-radius:3px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small,.el-button--small.is-round{padding:9px 15px}.el-button--small.is-circle{padding:9px}.el-button--mini,.el-button--mini.is-round{padding:7px 15px}.el-button--mini.is-circle{padding:7px}.el-button--text{color:#409eff;background:0 0;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{color:#66b1ff;border-color:transparent;background-color:transparent}.el-button--text:active{color:#3a8ee6;background-color:transparent}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{display:table;content:""}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-radius:4px}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-select-dropdown__item{white-space:nowrap}.el-popper .popper__arrow,.el-popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-popper .popper__arrow{border-width:6px;-webkit-filter:drop-shadow(0 2px 12px rgba(0,0,0,.03));filter:drop-shadow(0 2px 12px rgba(0,0,0,.03))}.el-popper .popper__arrow:after{content:" ";border-width:6px}.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#ebeef5;border-bottom-width:0}.el-popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#ebeef5}.el-popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.el-popper[x-placement^=right]{margin-left:12px}.el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#ebeef5;border-left-width:0}.el-popper[x-placement^=right] .popper__arrow:after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.el-popper[x-placement^=left]{margin-right:12px}.el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#ebeef5}.el-popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.el-select-dropdown{position:absolute;z-index:1001;border:1px solid #e4e7ed;border-radius:4px;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:5px 0}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#409eff;background-color:#fff}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#f5f7fa}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{position:absolute;right:20px;font-family:element-icons;content:"\E6DA";font-size:12px;font-weight:700;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-select-dropdown__item,.el-tag{white-space:nowrap;-webkit-box-sizing:border-box}.el-tag{background-color:#ecf5ff;border-color:#d9ecff;display:inline-block;height:32px;padding:0 10px;line-height:30px;font-size:12px;color:#409eff;border-width:1px;border-style:solid;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-tag.is-hit{border-color:#409eff}.el-tag .el-tag__close{color:#409eff}.el-tag .el-tag__close:hover{color:#fff;background-color:#409eff}.el-tag.el-tag--info{background-color:#f4f4f5;border-color:#e9e9eb;color:#909399}.el-tag.el-tag--info.is-hit{border-color:#909399}.el-tag.el-tag--info .el-tag__close{color:#909399}.el-tag.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag.el-tag--success{background-color:#f0f9eb;border-color:#e1f3d8;color:#67c23a}.el-tag.el-tag--success.is-hit{border-color:#67c23a}.el-tag.el-tag--success .el-tag__close{color:#67c23a}.el-tag.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag.el-tag--warning{background-color:#fdf6ec;border-color:#faecd8;color:#e6a23c}.el-tag.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag.el-tag--danger{background-color:#fef0f0;border-color:#fde2e2;color:#f56c6c}.el-tag.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;vertical-align:middle;top:-1px;right:-5px}.el-tag .el-icon-close:before{display:block}.el-tag--dark{background-color:#409eff;color:#fff}.el-tag--dark,.el-tag--dark.is-hit{border-color:#409eff}.el-tag--dark .el-tag__close{color:#fff}.el-tag--dark .el-tag__close:hover{color:#fff;background-color:#66b1ff}.el-tag--dark.el-tag--info{background-color:#909399;border-color:#909399;color:#fff}.el-tag--dark.el-tag--info.is-hit{border-color:#909399}.el-tag--dark.el-tag--info .el-tag__close{color:#fff}.el-tag--dark.el-tag--info .el-tag__close:hover{color:#fff;background-color:#a6a9ad}.el-tag--dark.el-tag--success{background-color:#67c23a;border-color:#67c23a;color:#fff}.el-tag--dark.el-tag--success.is-hit{border-color:#67c23a}.el-tag--dark.el-tag--success .el-tag__close{color:#fff}.el-tag--dark.el-tag--success .el-tag__close:hover{color:#fff;background-color:#85ce61}.el-tag--dark.el-tag--warning{background-color:#e6a23c;border-color:#e6a23c;color:#fff}.el-tag--dark.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--dark.el-tag--warning .el-tag__close{color:#fff}.el-tag--dark.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#ebb563}.el-tag--dark.el-tag--danger{background-color:#f56c6c;border-color:#f56c6c;color:#fff}.el-tag--dark.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--dark.el-tag--danger .el-tag__close{color:#fff}.el-tag--dark.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f78989}.el-tag--plain{background-color:#fff;border-color:#b3d8ff;color:#409eff}.el-tag--plain.is-hit{border-color:#409eff}.el-tag--plain .el-tag__close{color:#409eff}.el-tag--plain .el-tag__close:hover{color:#fff;background-color:#409eff}.el-tag--plain.el-tag--info{background-color:#fff;border-color:#d3d4d6;color:#909399}.el-tag--plain.el-tag--info.is-hit{border-color:#909399}.el-tag--plain.el-tag--info .el-tag__close{color:#909399}.el-tag--plain.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag--plain.el-tag--success{background-color:#fff;border-color:#c2e7b0;color:#67c23a}.el-tag--plain.el-tag--success.is-hit{border-color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close{color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag--plain.el-tag--warning{background-color:#fff;border-color:#f5dab1;color:#e6a23c}.el-tag--plain.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag--plain.el-tag--danger{background-color:#fff;border-color:#fbc4c4;color:#f56c6c}.el-tag--plain.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;-webkit-transform:scale(.7);transform:scale(.7)}.el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;overflow:hidden;text-overflow:ellipsis;color:#606266;height:34px;line-height:34px;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#fff}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#f5f7fa}.el-select-dropdown__item.selected{color:#409eff;font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:#e4e7ed}.el-select-group__title{padding-left:20px;font-size:12px;color:#909399;line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-scrollbar{overflow:hidden;position:relative}.el-scrollbar:active>.el-scrollbar__bar,.el-scrollbar:focus>.el-scrollbar__bar,.el-scrollbar:hover>.el-scrollbar__bar{opacity:1;-webkit-transition:opacity .34s ease-out;transition:opacity .34s ease-out}.el-scrollbar__wrap{overflow:scroll;height:100%}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(144,147,153,.3);-webkit-transition:background-color .3s;transition:background-color .3s}.el-scrollbar__thumb:hover{background-color:rgba(144,147,153,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;-webkit-transition:opacity .12s ease-out;transition:opacity .12s ease-out}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-select{display:inline-block;position:relative}.el-select .el-select__tags>span{display:contents}.el-select:hover .el-input__inner{border-color:#c0c4cc}.el-select .el-input__inner{cursor:pointer;padding-right:35px}.el-select .el-input__inner:focus{border-color:#409eff}.el-select .el-input .el-select__caret{color:#c0c4cc;font-size:14px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transform:rotate(180deg);transform:rotate(180deg);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{-webkit-transform:rotate(0);transform:rotate(0)}.el-select .el-input .el-select__caret.is-show-close{font-size:14px;text-align:center;-webkit-transform:rotate(180deg);transform:rotate(180deg);border-radius:100%;color:#c0c4cc;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-select .el-input .el-select__caret.is-show-close:hover{color:#909399}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__inner:hover{border-color:#e4e7ed}.el-select .el-input.is-focus .el-input__inner{border-color:#409eff}.el-select>.el-input{display:block}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:#666;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-mini{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:1000;right:25px;color:#c0c4cc;line-height:18px;font-size:14px}.el-select__close:hover{color:#909399}.el-select__tags{position:absolute;line-height:normal;white-space:normal;z-index:1;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-select .el-tag__close{margin-top:-2px}.el-select .el-tag{-webkit-box-sizing:border-box;box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:#f0f2f5}.el-select .el-tag__close.el-icon-close{background-color:#c0c4cc;right:-7px;top:0;color:#fff}.el-select .el-tag__close.el-icon-close:hover{background-color:#909399}.el-select .el-tag__close.el-icon-close:before{display:block;-webkit-transform:translateY(.5px);transform:translateY(.5px)}.el-switch{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;font-size:14px;line-height:20px;height:20px;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__core,.el-switch__label{display:inline-block;cursor:pointer;vertical-align:middle}.el-switch__label{-webkit-transition:.2s;transition:.2s;height:20px;font-size:14px;font-weight:500;color:#303133}.el-switch__label.is-active{color:#409eff}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__core{margin:0;position:relative;width:40px;height:20px;border:1px solid #dcdfe6;outline:0;border-radius:10px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#dcdfe6;-webkit-transition:border-color .3s,background-color .3s;transition:border-color .3s,background-color .3s}.el-switch__core:after{content:"";position:absolute;top:1px;left:1px;border-radius:100%;-webkit-transition:all .3s;transition:all .3s;width:16px;height:16px;background-color:#fff}.el-switch.is-checked .el-switch__core{border-color:#409eff;background-color:#409eff}.el-switch.is-checked .el-switch__core:after{left:100%;margin-left:-17px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:14px}.el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;font-size:inherit;color:#606266;background-color:#fff;background-image:none;border:1px solid #dcdfe6;border-radius:4px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea__inner:-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::-moz-placeholder{color:#c0c4cc}.el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea__inner:hover{border-color:#c0c4cc}.el-textarea__inner:focus{outline:0;border-color:#409eff}.el-textarea .el-input__count{color:#909399;background:#fff;position:absolute;font-size:12px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea.is-exceed .el-textarea__inner{border-color:#f56c6c}.el-textarea.is-exceed .el-input__count{color:#f56c6c}.el-input{position:relative;font-size:14px;display:inline-block;width:100%}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:#fff}.el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.el-input .el-input__clear{color:#c0c4cc;font-size:14px;cursor:pointer;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-input .el-input__clear:hover{color:#909399}.el-input .el-input__count{height:100%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#909399;font-size:12px}.el-input .el-input__count .el-input__count-inner{background:#fff;line-height:normal;display:inline-block;padding:0 5px}.el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;color:#606266;display:inline-block;font-size:inherit;height:40px;line-height:40px;outline:0;padding:0 15px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-input__prefix,.el-input__suffix{position:absolute;top:0;-webkit-transition:all .3s;text-align:center;height:100%;color:#c0c4cc}.el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input__inner:-ms-input-placeholder{color:#c0c4cc}.el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input__inner::-moz-placeholder{color:#c0c4cc}.el-input__inner::placeholder{color:#c0c4cc}.el-input__inner:hover{border-color:#c0c4cc}.el-input.is-active .el-input__inner,.el-input__inner:focus{border-color:#409eff;outline:0}.el-input__suffix{right:5px;-webkit-transition:all .3s;transition:all .3s;pointer-events:none}.el-input__suffix-inner{pointer-events:all}.el-input__prefix{left:5px}.el-input__icon,.el-input__prefix{-webkit-transition:all .3s;transition:all .3s}.el-input__icon{height:100%;width:25px;text-align:center;line-height:40px}.el-input__icon:after{content:"";height:100%;width:0;display:inline-block;vertical-align:middle}.el-input__validateIcon{pointer-events:none}.el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__inner{border-color:#f56c6c}.el-input.is-exceed .el-input__suffix .el-input__count{color:#f56c6c}.el-input--suffix .el-input__inner{padding-right:30px}.el-input--prefix .el-input__inner{padding-left:30px}.el-input--medium{font-size:14px}.el-input--medium .el-input__inner{height:36px;line-height:36px}.el-input--medium .el-input__icon{line-height:36px}.el-input--small{font-size:13px}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input--mini{font-size:12px}.el-input--mini .el-input__inner{height:28px;line-height:28px}.el-input--mini .el-input__icon{line-height:28px}.el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate;border-spacing:0}.el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.el-input-group__append,.el-input-group__prepend{background-color:#f5f7fa;color:#909399;vertical-align:middle;display:table-cell;position:relative;border:1px solid #dcdfe6;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.el-input-group--prepend .el-input__inner,.el-input-group__append{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--append .el-input__inner,.el-input-group__prepend{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:-10px -20px}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0}.el-input-group__append{border-left:0}.el-input-group--append .el-select .el-input.is-focus .el-input__inner,.el-input-group--prepend .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input__inner::-ms-clear{display:none;width:0;height:0}.el-fade-in-enter,.el-fade-in-leave-active,.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active,.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.el-menu--collapse .el-menu .el-submenu,.el-menu--popup{min-width:200px}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active,.fade-in-linear-enter-active,.fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.el-fade-in-enter-active,.el-fade-in-leave-active,.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center top;transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center bottom;transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;-webkit-transform:scale(1);transform:scale(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:top left;transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;-webkit-transform:scale(.45);transform:scale(.45)}.collapse-transition{-webkit-transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out;transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out}.horizontal-collapse-transition{-webkit-transition:width .3s ease-in-out,padding-left .3s ease-in-out,padding-right .3s ease-in-out;transition:width .3s ease-in-out,padding-left .3s ease-in-out,padding-right .3s ease-in-out}.el-list-enter-active,.el-list-leave-active{-webkit-transition:all 1s;transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;-webkit-transform:translateY(-30px);transform:translateY(-30px)}.el-opacity-transition{-webkit-transition:opacity .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-menu{border-right:1px solid #e6e6e6;list-style:none;position:relative;margin:0;padding-left:0}.el-menu,.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover,.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff}.el-menu:after,.el-menu:before{display:table;content:""}.el-menu:after{clear:both}.el-menu.el-menu--horizontal{border-bottom:1px solid #e6e6e6}.el-menu--horizontal{border-right:none}.el-menu--horizontal>.el-menu-item{float:left;height:60px;line-height:60px;margin:0;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-submenu{float:left}.el-menu--horizontal>.el-submenu:focus,.el-menu--horizontal>.el-submenu:hover{outline:0}.el-menu--horizontal>.el-submenu:focus .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{color:#303133}.el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #409eff;color:#303133}.el-menu--horizontal>.el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-submenu__title{background-color:#fff;float:none;height:36px;line-height:36px;padding:0 10px;color:#909399}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-submenu.is-active>.el-submenu__title{color:#303133}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:#303133}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid #409eff;color:#303133}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;vertical-align:middle;width:24px;text-align:center}.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-submenu{position:relative}.el-menu--collapse .el-submenu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;z-index:10;border:1px solid #e4e7ed;border-radius:2px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu-item,.el-submenu__title{height:56px;line-height:56px;list-style:none;position:relative;white-space:nowrap}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:none;transform:none}.el-menu--popup{z-index:100;border:none;padding:5px 0;border-radius:2px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--popup-bottom-start{margin-top:5px}.el-menu--popup-right-start{margin-left:5px;margin-right:5px}.el-menu-item{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;-webkit-box-sizing:border-box;box-sizing:border-box}.el-menu-item *{vertical-align:middle}.el-menu-item i{color:#909399}.el-menu-item:focus,.el-menu-item:hover{outline:0;background-color:#ecf5ff}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon-]{margin-right:5px;width:24px;text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:#409eff}.el-menu-item.is-active i{color:inherit}.el-submenu{list-style:none;margin:0;padding-left:0}.el-submenu__title{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;-webkit-box-sizing:border-box;box-sizing:border-box}.el-submenu__title *{vertical-align:middle}.el-submenu__title i{color:#909399}.el-submenu__title:focus,.el-submenu__title:hover{outline:0;background-color:#ecf5ff}.el-submenu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu__title:hover{background-color:#ecf5ff}.el-submenu .el-menu{border:none}.el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px;min-width:200px}.el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-size:12px}.el-submenu.is-active .el-submenu__title{border-bottom-color:#409eff}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.el-submenu.is-disabled .el-menu-item,.el-submenu.is-disabled .el-submenu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu [class^=el-icon-]{vertical-align:middle;margin-right:5px;width:24px;text-align:center;font-size:18px}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px 20px;line-height:normal;font-size:12px;color:#909399}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{-webkit-transition:.2s;transition:.2s;opacity:0}.v-modal-enter{-webkit-animation:v-modal-in .2s ease;animation:v-modal-in .2s ease}.v-modal-leave{-webkit-animation:v-modal-out .2s ease forwards;animation:v-modal-out .2s ease forwards}@-webkit-keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{to{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-popup-parent--hidden{overflow:hidden}.el-dialog{position:relative;margin:0 auto 50px;background:#fff;border-radius:2px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.3);box-shadow:0 1px 3px rgba(0,0,0,.3);-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.el-dialog.is-fullscreen{width:100%;margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog__header{padding:20px 20px 10px}.el-dialog__headerbtn{position:absolute;top:20px;right:20px;padding:0;background:0 0;border:none;outline:0;cursor:pointer;font-size:16px}.el-dialog__headerbtn .el-dialog__close{color:#909399}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#409eff}.el-dialog__title{line-height:24px;font-size:18px;color:#303133}.el-dialog__body{padding:30px 20px;color:#606266;font-size:14px;word-break:break-all}.el-dialog__footer{padding:10px 20px 20px;text-align:right;-webkit-box-sizing:border-box;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px 25px 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.dialog-fade-enter-active{-webkit-animation:dialog-fade-in .3s;animation:dialog-fade-in .3s}.dialog-fade-leave-active{-webkit-animation:dialog-fade-out .3s;animation:dialog-fade-out .3s}@-webkit-keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.hljs{display:block;overflow-x:auto;padding:.5em;color:#333;background:#f8f8f8}.hljs-comment,.hljs-quote{color:#998;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#333;font-weight:700}.hljs-literal,.hljs-number,.hljs-tag .hljs-attr,.hljs-template-variable,.hljs-variable{color:teal}.hljs-doctag,.hljs-string{color:#d14}.hljs-section,.hljs-selector-id,.hljs-title{color:#900;font-weight:700}.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type{color:#458;font-weight:700}.hljs-attribute,.hljs-name,.hljs-tag{color:navy;font-weight:400}.hljs-link,.hljs-regexp{color:#009926}.hljs-bullet,.hljs-symbol{color:#990073}.hljs-built_in,.hljs-builtin-name{color:#0086b3}.hljs-meta{color:#999;font-weight:700}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}@font-face{font-family:v-contextmenu-iconfont;src:url(data:application/vnd.ms-fontobject;base64,AAgAAFgHAAABAAIAAAAAAAIABQMAAAAAAAABAJABAAAAAExQAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAr5f4wwAAAAAAAAAAAAAAAAAAAAAAABAAaQBjAG8AbgBmAG8AbgB0AAAADgBSAGUAZwB1AGwAYQByAAAAFgBWAGUAcgBzAGkAbwBuACAAMQAuADAAAAAQAGkAYwBvAG4AZgBvAG4AdAAAAAAAAAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzJW7kgMAAABfAAAAFZjbWFwmcAGvgAAAeAAAAGGZ2x5ZodVRJIAAANwAAABPGhlYWQPY7HCAAAA4AAAADZoaGVhB94DhAAAALwAAAAkaG10eAvpAAAAAAHUAAAADGxvY2EAdgCeAAADaAAAAAhtYXhwARIAXQAAARgAAAAgbmFtZT5U/n0AAASsAAACbXBvc3RBG9LpAAAHHAAAADkAAQAAA4D/gABcBAAAAAAABAAAAQAAAAAAAAAAAAAAAAAAAAMAAQAAAAEAAMP4l69fDzz1AAsEAAAAAADWIjbmAAAAANYiNuYAAP/hBAADGAAAAAgAAgAAAAAAAAABAAAAAwBRAAUAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQP4AZAABQAIAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABAAHjmIgOA/4AAXAOAAIAAAAABAAAAAAAABAAAAAPpAAAEAAAAAAAABQAAAAMAAAAsAAAABAAAAV4AAQAAAAAAWAADAAEAAAAsAAMACgAAAV4ABAAsAAAABgAEAAEAAgB45iL//wAAAHjmIv//AAAAAAABAAYABgAAAAEAAgAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAKAAAAAAAAAACAAAAeAAAAHgAAAABAADmIgAA5iIAAAACAAAAAAAAAHYAngAFAAD/4QO8AxgAEwAoADEARABQAAABBisBIg4CHQEhJzQuAisBFSEFFRcUDgMnIychByMiLgM9ARciBhQWMjY0JhcGBwYPAQ4BHgEzITI2Jy4CJwE1ND4COwEyFh0BARkbGlMSJRwSA5ABChgnHoX+SgKiARUfIxwPPi3+SSw/FDIgEwh3DBISGRISjAgGBQUIAgIEDw4BbRcWCQUJCgb+pAUPGhW8HykCHwEMGScaTFkNIBsSYYg0bh0lFwkBAYCAARMbIA6nPxEaEREaEXwaFhMSGQcQDQgYGg0jJBQBd+QLGBMMHSbjAAAAAAEAAAAAAtYC8AARAAABFAcBBi4BNjcJAS4BPgEXARYC1Q3+qQ4hGAENATj+yA0BGCINAVcNAYASDP66CwEZIQ0BJwEnDSEZAQv+ugwAAAAAAAASAN4AAQAAAAAAAAAVAAAAAQAAAAAAAQAIABUAAQAAAAAAAgAHAB0AAQAAAAAAAwAIACQAAQAAAAAABAAIACwAAQAAAAAABQALADQAAQAAAAAABgAIAD8AAQAAAAAACgArAEcAAQAAAAAACwATAHIAAwABBAkAAAAqAIUAAwABBAkAAQAQAK8AAwABBAkAAgAOAL8AAwABBAkAAwAQAM0AAwABBAkABAAQAN0AAwABBAkABQAWAO0AAwABBAkABgAQAQMAAwABBAkACgBWARMAAwABBAkACwAmAWkKQ3JlYXRlZCBieSBpY29uZm9udAppY29uZm9udFJlZ3VsYXJpY29uZm9udGljb25mb250VmVyc2lvbiAxLjBpY29uZm9udEdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAAoAQwByAGUAYQB0AGUAZAAgAGIAeQAgAGkAYwBvAG4AZgBvAG4AdAAKAGkAYwBvAG4AZgBvAG4AdABSAGUAZwB1AGwAYQByAGkAYwBvAG4AZgBvAG4AdABpAGMAbwBuAGYAbwBuAHQAVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG4AZgBvAG4AdABHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAQIBAwEEAAF4C2Fycm93LXJpZ2h0AAAAAAA=);src:url(data:application/vnd.ms-fontobject;base64,AAgAAFgHAAABAAIAAAAAAAIABQMAAAAAAAABAJABAAAAAExQAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAr5f4wwAAAAAAAAAAAAAAAAAAAAAAABAAaQBjAG8AbgBmAG8AbgB0AAAADgBSAGUAZwB1AGwAYQByAAAAFgBWAGUAcgBzAGkAbwBuACAAMQAuADAAAAAQAGkAYwBvAG4AZgBvAG4AdAAAAAAAAAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzJW7kgMAAABfAAAAFZjbWFwmcAGvgAAAeAAAAGGZ2x5ZodVRJIAAANwAAABPGhlYWQPY7HCAAAA4AAAADZoaGVhB94DhAAAALwAAAAkaG10eAvpAAAAAAHUAAAADGxvY2EAdgCeAAADaAAAAAhtYXhwARIAXQAAARgAAAAgbmFtZT5U/n0AAASsAAACbXBvc3RBG9LpAAAHHAAAADkAAQAAA4D/gABcBAAAAAAABAAAAQAAAAAAAAAAAAAAAAAAAAMAAQAAAAEAAMP4l69fDzz1AAsEAAAAAADWIjbmAAAAANYiNuYAAP/hBAADGAAAAAgAAgAAAAAAAAABAAAAAwBRAAUAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQP4AZAABQAIAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABAAHjmIgOA/4AAXAOAAIAAAAABAAAAAAAABAAAAAPpAAAEAAAAAAAABQAAAAMAAAAsAAAABAAAAV4AAQAAAAAAWAADAAEAAAAsAAMACgAAAV4ABAAsAAAABgAEAAEAAgB45iL//wAAAHjmIv//AAAAAAABAAYABgAAAAEAAgAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAKAAAAAAAAAACAAAAeAAAAHgAAAABAADmIgAA5iIAAAACAAAAAAAAAHYAngAFAAD/4QO8AxgAEwAoADEARABQAAABBisBIg4CHQEhJzQuAisBFSEFFRcUDgMnIychByMiLgM9ARciBhQWMjY0JhcGBwYPAQ4BHgEzITI2Jy4CJwE1ND4COwEyFh0BARkbGlMSJRwSA5ABChgnHoX+SgKiARUfIxwPPi3+SSw/FDIgEwh3DBISGRISjAgGBQUIAgIEDw4BbRcWCQUJCgb+pAUPGhW8HykCHwEMGScaTFkNIBsSYYg0bh0lFwkBAYCAARMbIA6nPxEaEREaEXwaFhMSGQcQDQgYGg0jJBQBd+QLGBMMHSbjAAAAAAEAAAAAAtYC8AARAAABFAcBBi4BNjcJAS4BPgEXARYC1Q3+qQ4hGAENATj+yA0BGCINAVcNAYASDP66CwEZIQ0BJwEnDSEZAQv+ugwAAAAAAAASAN4AAQAAAAAAAAAVAAAAAQAAAAAAAQAIABUAAQAAAAAAAgAHAB0AAQAAAAAAAwAIACQAAQAAAAAABAAIACwAAQAAAAAABQALADQAAQAAAAAABgAIAD8AAQAAAAAACgArAEcAAQAAAAAACwATAHIAAwABBAkAAAAqAIUAAwABBAkAAQAQAK8AAwABBAkAAgAOAL8AAwABBAkAAwAQAM0AAwABBAkABAAQAN0AAwABBAkABQAWAO0AAwABBAkABgAQAQMAAwABBAkACgBWARMAAwABBAkACwAmAWkKQ3JlYXRlZCBieSBpY29uZm9udAppY29uZm9udFJlZ3VsYXJpY29uZm9udGljb25mb250VmVyc2lvbiAxLjBpY29uZm9udEdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAAoAQwByAGUAYQB0AGUAZAAgAGIAeQAgAGkAYwBvAG4AZgBvAG4AdAAKAGkAYwBvAG4AZgBvAG4AdABSAGUAZwB1AGwAYQByAGkAYwBvAG4AZgBvAG4AdABpAGMAbwBuAGYAbwBuAHQAVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG4AZgBvAG4AdABHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAQIBAwEEAAF4C2Fycm93LXJpZ2h0AAAAAAA=#iefix) format("embedded-opentype"),url(data:font/woff;base64,d09GRgABAAAAAAUAAAsAAAAAB1gAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADMAAABCsP6z7U9TLzIAAAE8AAAARAAAAFZW7kgMY21hcAAAAYAAAABeAAABhpnABr5nbHlmAAAB4AAAAS4AAAE8h1VEkmhlYWQAAAMQAAAALwAAADYPY7HCaGhlYQAAA0AAAAAcAAAAJAfeA4RobXR4AAADXAAAAAwAAAAMC+kAAGxvY2EAAANoAAAACAAAAAgAdgCebWF4cAAAA3AAAAAfAAAAIAESAF1uYW1lAAADkAAAAUUAAAJtPlT+fXBvc3QAAATYAAAAKAAAADlBG9LpeJxjYGRgYOBikGPQYWB0cfMJYeBgYGGAAJAMY05meiJQDMoDyrGAaQ4gZoOIAgCKIwNPAHicY2Bk/sE4gYGVgYOpk+kMAwNDP4RmfM1gxMjBwMDEwMrMgBUEpLmmMDgwVDxTYm7438AQw9zA0AAUZgTJAQAl4gyOeJzFkMENgDAMAy9t6QMxRV88GIgXc3TirlFMKA8mqCXHimMpUYAFiOIhJrAL48Ep19yPrO4nz2SpEait9K7+U0U0y65BJTMNNm/1H5vXfXT6CnVQJ7byknADpO8MFwAAeJwVjL1Kw1AARu93Y/7a3MTe/KdN2yS2V6kGjLEKYru4KA6Cgzj6ALp2cegiODj4DCKIr1D6AL6A7qIP4BNE48fhwFk+IhPy+yktpYDYZJ1skyNyRgiUEVKTxkhEmdMR3ER2fceURCYSNUtz6RB+qjheMS6HvqIqFkx0sZMUY5FTgd1yQg9QeDEQtqNzPuhw6RGNQHTvqhP6BLeXdazJVnW8OXWKvq3NDM5Dzh80RZY1SlcsE9e+p8t6Q6meZStyl70N2oMRiuj0kvXb/Oq+vIkHvg7M57DbffNl2opaNbeRZ/NQXWVaELFszcHsuxnYRjz8IvXwL/pBf0irDkeFkmO8pyPHBD48+s6qVzMJwLBfvTEEKcMFw5wb1aKJMGEQECwJ0awWRv30B+KIMJEAAHicY2BkYGAA4sM/urfH89t8ZeBmYQCBa0pmzxD0/4csDMwSQC4HAxNIFABNGgrfAHicY2BkYGBu+N/AEMPCAAJAkpEBFTADAEcJAmwEAAAAA+kAAAQAAAAAAAAAAHYAnnicY2BkYGBgZghkYGUAASYg5gJCBob/YD4DABD3AXAAeJxlj01OwzAQhV/6B6QSqqhgh+QFYgEo/RGrblhUavdddN+mTpsqiSPHrdQDcB6OwAk4AtyAO/BIJ5s2lsffvHljTwDc4Acejt8t95E9XDI7cg0XuBeuU38QbpBfhJto41W4Rf1N2MczpsJtdGF5g9e4YvaEd2EPHXwI13CNT+E69S/hBvlbuIk7/Aq30PHqwj7mXle4jUcv9sdWL5xeqeVBxaHJIpM5v4KZXu+Sha3S6pxrW8QmU4OgX0lTnWlb3VPs10PnIhVZk6oJqzpJjMqt2erQBRvn8lGvF4kehCblWGP+tsYCjnEFhSUOjDFCGGSIyujoO1Vm9K+xQ8Jee1Y9zed0WxTU/3OFAQL0z1xTurLSeTpPgT1fG1J1dCtuy56UNJFezUkSskJe1rZUQuoBNmVXjhF6XNGJPyhnSP8ACVpuyAAAAHicY2BigAAuBuyAmZGJkZmRhYGxgjuxqCi/XLcoMz2jhIEBAC8dBRY=) format("woff"),url(data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzJW7kgMAAABfAAAAFZjbWFwmcAGvgAAAeAAAAGGZ2x5ZodVRJIAAANwAAABPGhlYWQPY7HCAAAA4AAAADZoaGVhB94DhAAAALwAAAAkaG10eAvpAAAAAAHUAAAADGxvY2EAdgCeAAADaAAAAAhtYXhwARIAXQAAARgAAAAgbmFtZT5U/n0AAASsAAACbXBvc3RBG9LpAAAHHAAAADkAAQAAA4D/gABcBAAAAAAABAAAAQAAAAAAAAAAAAAAAAAAAAMAAQAAAAEAAMP4i7dfDzz1AAsEAAAAAADWIjbmAAAAANYiNuYAAP/hBAADGAAAAAgAAgAAAAAAAAABAAAAAwBRAAUAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQP4AZAABQAIAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABAAHjmIgOA/4AAXAOAAIAAAAABAAAAAAAABAAAAAPpAAAEAAAAAAAABQAAAAMAAAAsAAAABAAAAV4AAQAAAAAAWAADAAEAAAAsAAMACgAAAV4ABAAsAAAABgAEAAEAAgB45iL//wAAAHjmIv//AAAAAAABAAYABgAAAAEAAgAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAKAAAAAAAAAACAAAAeAAAAHgAAAABAADmIgAA5iIAAAACAAAAAAAAAHYAngAFAAD/4QO8AxgAEwAoADEARABQAAABBisBIg4CHQEhJzQuAisBFSEFFRcUDgMnIychByMiLgM9ARciBhQWMjY0JhcGBwYPAQ4BHgEzITI2Jy4CJwE1ND4COwEyFh0BARkbGlMSJRwSA5ABChgnHoX+SgKiARUfIxwPPi3+SSw/FDIgEwh3DBISGRISjAgGBQUIAgIEDw4BbRcWCQUJCgb+pAUPGhW8HykCHwEMGScaTFkNIBsSYYg0bh0lFwkBAYCAARMbIA6nPxEaEREaEXwaFhMSGQcQDQgYGg0jJBQBd+QLGBMMHSbjAAAAAAEAAAAAAtYC8AARAAABFAcBBi4BNjcJAS4BPgEXARYC1Q3+qQ4hGAENATj+yA0BGCINAVcNAYASDP66CwEZIQ0BJwEnDSEZAQv+ugwAAAAAAAASAN4AAQAAAAAAAAAVAAAAAQAAAAAAAQAIABUAAQAAAAAAAgAHAB0AAQAAAAAAAwAIACQAAQAAAAAABAAIACwAAQAAAAAABQALADQAAQAAAAAABgAIAD8AAQAAAAAACgArAEcAAQAAAAAACwATAHIAAwABBAkAAAAqAIUAAwABBAkAAQAQAK8AAwABBAkAAgAOAL8AAwABBAkAAwAQAM0AAwABBAkABAAQAN0AAwABBAkABQAWAO0AAwABBAkABgAQAQMAAwABBAkACgBWARMAAwABBAkACwAmAWkKQ3JlYXRlZCBieSBpY29uZm9udAppY29uZm9udFJlZ3VsYXJpY29uZm9udGljb25mb250VmVyc2lvbiAxLjBpY29uZm9udEdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAAoAQwByAGUAYQB0AGUAZAAgAGIAeQAgAGkAYwBvAG4AZgBvAG4AdAAKAGkAYwBvAG4AZgBvAG4AdABSAGUAZwB1AGwAYQByAGkAYwBvAG4AZgBvAG4AdABpAGMAbwBuAGYAbwBuAHQAVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG4AZgBvAG4AdABHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAQIBAwEEAAF4C2Fycm93LXJpZ2h0AAAAAAA=) format("truetype"),url(../img/iconfont.573255ce.svg) format("svg")}.v-contextmenu-iconfont{font-family:v-contextmenu-iconfont!important;font-size:inherit;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.v-contextmenu{position:absolute;padding:5px 0;margin:0;background-color:#fff;border:1px solid #e8e8e8;border-radius:4px;-webkit-box-shadow:2px 2px 8px 0 hsla(0,0%,58.8%,.2);box-shadow:2px 2px 8px 0 hsla(0,0%,58.8%,.2);list-style:none;font-size:14px;white-space:nowrap;cursor:pointer;z-index:2800;-webkit-tap-highlight-color:transparent}.v-contextmenu .v-contextmenu-item{padding:5px 14px;line-height:1;color:#333}.v-contextmenu .v-contextmenu-item.v-contextmenu-item--hover{color:#fff}.v-contextmenu .v-contextmenu-item.v-contextmenu-item--disabled{color:#ccc;cursor:not-allowed}.v-contextmenu .v-contextmenu-divider{height:0;margin:5px 0;border-bottom:1px solid #e8e8e8}.v-contextmenu .v-contextmenu-group__menus{padding:0 5px;margin:0;list-style:none}.v-contextmenu .v-contextmenu-group__menus .v-contextmenu-item{display:inline-block;padding:5px 9px}.v-contextmenu .v-contextmenu-submenu{position:relative}.v-contextmenu .v-contextmenu-submenu>.v-contextmenu{position:absolute}.v-contextmenu .v-contextmenu-submenu>.v-contextmenu.left{left:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.v-contextmenu .v-contextmenu-submenu>.v-contextmenu.right{right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.v-contextmenu .v-contextmenu-submenu>.v-contextmenu.top{top:-6px}.v-contextmenu .v-contextmenu-submenu>.v-contextmenu.bottom{bottom:-6px}.v-contextmenu .v-contextmenu-submenu .v-contextmenu-submenu__title{margin-right:10px}.v-contextmenu .v-contextmenu-submenu .v-contextmenu-submenu__icon{position:absolute;right:5px}.v-contextmenu .v-contextmenu-submenu .v-contextmenu-submenu__icon:before{content:"\E622"}.v-contextmenu--default .v-contextmenu-item--hover{background-color:#46a0fc}.v-contextmenu--bright .v-contextmenu-item--hover{background-color:#ef5350}.v-contextmenu--dark .v-contextmenu-item--hover{background-color:#2d3035} \ No newline at end of file diff --git a/src/main/resources/static/index.html b/src/main/resources/static/index.html index 5bccb6a..78d44e3 100644 --- a/src/main/resources/static/index.html +++ b/src/main/resources/static/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/src/main/resources/static/js/app.4818ab14.js b/src/main/resources/static/js/app.4818ab14.js new file mode 100644 index 0000000..27f4705 --- /dev/null +++ b/src/main/resources/static/js/app.4818ab14.js @@ -0,0 +1 @@ +(function(e){function t(t){for(var i,r,l=t[0],s=t[1],c=t[2],u=0,f=[];u=0===n}))}function f(e){var t=qe.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function d(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function p(e,t){if(1===t.nodeType&&Z.hasData(e)){var n,i,r,o=Z._data(e),a=Z._data(t,o),l=o.events;if(l)for(n in delete a.handle,a.events={},l)for(i=0,r=l[n].length;i").appendTo(W.body),n=t.css("display");return t.remove(),"none"!==n&&""!==n||(ot=W.body.appendChild(ot||Z.extend(W.createElement("iframe"),{frameBorder:0,width:0,height:0})),at&&ot.createElement||(at=(ot.contentWindow||ot.contentDocument).document,at.write(""),at.close()),t=at.body.appendChild(at.createElement(e)),n=rt(t,"display"),W.body.removeChild(ot)),mt[e]=n,n}function C(e,t,n,i){var r;if(Z.isArray(t))Z.each(t,(function(t,r){n||Tt.test(e)?i(e,r):C(e+"["+("object"==Object(Ne["a"])(r)?t:"")+"]",r,n,i)}));else if(n||"object"!==Z.type(t))i(e,t);else for(r in t)C(e+"["+r+"]",t[r],n,i)}function E(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var i,r,o,a=t.toLowerCase().split(ne),l=0,s=a.length;if(Z.isFunction(n))for(;l)[^>]*$|#([\w\-]*)$)/,oe=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,ae=/^[\],:{}\s]*$/,le=/(?:^|:|,)(?:\s*\[)+/g,se=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,ce=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,ue=/^-ms-/,fe=/-([\da-z])/gi,de=function(e,t){return(t+"").toUpperCase()},pe=function e(){W.addEventListener?(W.removeEventListener("DOMContentLoaded",e,!1),Z.ready()):"complete"===W.readyState&&(W.detachEvent("onreadystatechange",e),Z.ready())},he={};Z.fn=Z.prototype={constructor:Z,init:function(e,n,i){var r,o,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if("string"==typeof e){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:re.exec(e),r&&(r[1]||!n)){if(r[1])return n=n instanceof Z?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:W,e=Z.parseHTML(r[1],a,!0),oe.test(r[1])&&Z.isPlainObject(n)&&this.attr.call(e,n,!0),Z.merge(this,e);if(o=W.getElementById(r[2]),o&&o.parentNode){if(o.id!==r[2])return i.find(e);this.length=1,this[0]=o}return this.context=W,this.selector=e,this}return!n||n.jquery?(n||i).find(e):this.constructor(n).find(e)}return Z.isFunction(e)?i.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),Z.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return Y.call(this)},get:function(e){return null==e?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var i=Z.merge(this.constructor(),e);return i.prevObject=this,i.context=this.context,"find"===t?i.selector=this.selector+(this.selector?" ":"")+n:t&&(i.selector=this.selector+"."+t+"("+n+")"),i},each:function(e,t){return Z.each(this,e,t)},ready:function(e){return Z.ready.promise().done(e),this},eq:function(e){return e=+e,-1===e?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(Y.apply(this,arguments),"slice",Y.call(arguments).join(","))},map:function(e){return this.pushStack(Z.map(this,(function(t,n){return e.call(t,n,t)})))},end:function(){return this.prevObject||this.constructor(null)},push:U,sort:[].sort,splice:[].splice},Z.fn.init.prototype=Z.fn,Z.extend=Z.fn.extend=function(){var e,n,i,r,o,a,l=arguments[0]||{},s=1,c=arguments.length,u=!1;for("boolean"==typeof l&&(u=l,l=arguments[1]||{},s=2),"object"!=Object(Ne["a"])(l)&&!Z.isFunction(l)&&(l={}),c===s&&(l=this,--s);s0||(q.resolveWith(W,[Z]),Z.fn.trigger&&Z(W).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===Z.type(e)},isArray:Array.isArray||function(e){return"array"===Z.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?String(e):he[G.call(e)]||"object"},isPlainObject:function(e){if(!e||"object"!==Z.type(e)||e.nodeType||Z.isWindow(e))return!1;try{if(e.constructor&&!Q.call(e,"constructor")&&!Q.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(I){return!1}var n;for(n in e);return n===t||Q.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var i;return e&&"string"==typeof e?("boolean"==typeof t&&(n=t,t=0),t=t||W,(i=oe.exec(e))?[t.createElement(i[1])]:(i=Z.buildFragment([e],t,n?null:[]),Z.merge([],(i.cacheable?Z.clone(i.fragment):i.fragment).childNodes))):null},parseJSON:function(t){return t&&"string"==typeof t?(t=Z.trim(t),e.JSON&&e.JSON.parse?e.JSON.parse(t):ae.test(t.replace(se,"@").replace(ce,"]").replace(le,""))?new Function("return "+t)():void Z.error("Invalid JSON: "+t)):null},parseXML:function(n){var i,r;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(r=new DOMParser,i=r.parseFromString(n,"text/xml")):(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(n))}catch($){i=t}return(!i||!i.documentElement||i.getElementsByTagName("parsererror").length)&&Z.error("Invalid XML: "+n),i},noop:function(){},globalEval:function(t){t&&te.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(ue,"ms-").replace(fe,de)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,i){var r,o=0,a=e.length,l=a===t||Z.isFunction(e);if(i){if(l){for(r in e)if(!1===n.apply(e[r],i))break}else for(;o0&&e[0]&&e[s-1]||0===s||Z.isArray(e));if(c)for(;l-1)c.splice(n,1),o&&(n<=l&&l--,n<=s&&s--)})),this},has:function(e){return Z.inArray(e,c)>-1},empty:function(){return c=[],this},disable:function(){return c=u=n=t,this},disabled:function(){return!c},lock:function(){return u=t,n||d.disable(),this},locked:function(){return!u},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],c&&(!r||u)&&(o?u.push(t):f(t)),this},fire:function(){return d.fireWith(this,arguments),this},fired:function(){return!!r}};return d},Z.extend({Deferred:function(e){var t=[["resolve","done",Z.Callbacks("once memory"),"resolved"],["reject","fail",Z.Callbacks("once memory"),"rejected"],["notify","progress",Z.Callbacks("memory")]],n="pending",i={state:function(){return n},always:function(){return r.done(arguments).fail(arguments),this},then:function(){var e=arguments;return Z.Deferred((function(n){Z.each(t,(function(t,i){var o=i[0],a=e[t];r[i[1]](Z.isFunction(a)?function(){var e=a.apply(this,arguments);e&&Z.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[o+"With"](this===r?n:this,[e])}:n[o])})),e=null})).promise()},promise:function(e){return null!=e?Z.extend(e,i):i}},r={};return i.pipe=i.then,Z.each(t,(function(e,o){var a=o[2],l=o[3];i[o[1]]=a.add,l&&a.add((function(){n=l}),t[1^e][2].disable,t[2][2].lock),r[o[0]]=a.fire,r[o[0]+"With"]=a.fireWith})),i.promise(r),e&&e.call(r,r),r},when:function(e){var t,n,i,r=0,o=Y.call(arguments),a=o.length,l=1!==a||e&&Z.isFunction(e.promise)?a:0,s=1===l?e:Z.Deferred(),c=function(e,n,i){return function(r){n[e]=this,i[e]=arguments.length>1?Y.call(arguments):r,i===t?s.notifyWith(n,i):--l||s.resolveWith(n,i)}};if(a>1)for(t=new Array(a),n=new Array(a),i=new Array(a);r
a",n=d.getElementsByTagName("*"),i=d.getElementsByTagName("a")[0],!n||!i||!n.length)return{};r=W.createElement("select"),o=r.appendChild(W.createElement("option")),a=d.getElementsByTagName("input")[0],i.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:3===d.firstChild.nodeType,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/top/.test(i.getAttribute("style")),hrefNormalized:"/a"===i.getAttribute("href"),opacity:/^0.5/.test(i.style.opacity),cssFloat:!!i.style.cssFloat,checkOn:"on"===a.value,optSelected:o.selected,getSetAttribute:"t"!==d.className,enctype:!!W.createElement("form").enctype,html5Clone:"<:nav>"!==W.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===W.compatMode,submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},a.checked=!0,t.noCloneChecked=a.cloneNode(!0).checked,r.disabled=!0,t.optDisabled=!o.disabled;try{delete d.test}catch(K){t.deleteExpando=!1}if(!d.addEventListener&&d.attachEvent&&d.fireEvent&&(d.attachEvent("onclick",f=function(){t.noCloneEvent=!1}),d.cloneNode(!0).fireEvent("onclick"),d.detachEvent("onclick",f)),a=W.createElement("input"),a.value="t",a.setAttribute("type","radio"),t.radioValue="t"===a.value,a.setAttribute("checked","checked"),a.setAttribute("name","t"),d.appendChild(a),l=W.createDocumentFragment(),l.appendChild(d.lastChild),t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=a.checked,l.removeChild(a),l.appendChild(d),d.attachEvent)for(c in{submit:!0,change:!0,focusin:!0})s="on"+c,u=s in d,u||(d.setAttribute(s,"return;"),u="function"==typeof d[s]),t[c+"Bubbles"]=u;return Z((function(){var n,i,r,o,a="padding:0;margin:0;border:0;display:block;overflow:hidden;",l=W.getElementsByTagName("body")[0];l&&(n=W.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",l.insertBefore(n,l.firstChild),i=W.createElement("div"),n.appendChild(i),i.innerHTML="
t
",r=i.getElementsByTagName("td"),r[0].style.cssText="padding:0;margin:0;border:0;display:none",u=0===r[0].offsetHeight,r[0].style.display="",r[1].style.display="none",t.reliableHiddenOffsets=u&&0===r[0].offsetHeight,i.innerHTML="",i.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=4===i.offsetWidth,t.doesNotIncludeMarginInBodyOffset=1!==l.offsetTop,e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(i,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(i,null)||{width:"4px"}).width,o=W.createElement("div"),o.style.cssText=i.style.cssText=a,o.style.marginRight=o.style.width="0",i.style.width="1px",i.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),"undefined"!=typeof i.style.zoom&&(i.innerHTML="",i.style.cssText=a+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===i.offsetWidth,i.style.display="block",i.style.overflow="visible",i.innerHTML="
",i.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==i.offsetWidth,n.style.zoom=1),l.removeChild(n),n=i=r=o=null)})),l.removeChild(d),n=i=r=o=a=l=d=null,t}();var ye=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,ge=/([A-Z])/g;Z.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(Z.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?Z.cache[e[Z.expando]]:e[Z.expando],!!e&&!o(e)},data:function(e,n,i,r){if(Z.acceptData(e)){var o,a,l=Z.expando,s="string"==typeof n,c=e.nodeType,u=c?Z.cache:e,f=c?e[l]:e[l]&&l;if(f&&u[f]&&(r||u[f].data)||!s||i!==t)return f||(c?e[l]=f=Z.deletedIds.pop()||Z.guid++:f=l),u[f]||(u[f]={},c||(u[f].toJSON=Z.noop)),"object"!=Object(Ne["a"])(n)&&"function"!=typeof n||(r?u[f]=Z.extend(u[f],n):u[f].data=Z.extend(u[f].data,n)),o=u[f],r||(o.data||(o.data={}),o=o.data),i!==t&&(o[Z.camelCase(n)]=i),s?(a=o[n],null==a&&(a=o[Z.camelCase(n)])):a=o,a}},removeData:function(e,t,n){if(Z.acceptData(e)){var i,r,a,l=e.nodeType,s=l?Z.cache:e,c=l?e[Z.expando]:Z.expando;if(s[c]){if(t&&(i=n?s[c]:s[c].data,i)){Z.isArray(t)||(t in i?t=[t]:(t=Z.camelCase(t),t=t in i?[t]:t.split(" ")));for(r=0,a=t.length;r1,null,!1))},removeData:function(e){return this.each((function(){Z.removeData(this,e)}))}}),Z.extend({queue:function(e,t,n){var i;if(e)return t=(t||"fx")+"queue",i=Z._data(e,t),n&&(!i||Z.isArray(n)?i=Z._data(e,t,Z.makeArray(n)):i.push(n)),i||[]},dequeue:function(e,t){t=t||"fx";var n=Z.queue(e,t),i=n.length,r=n.shift(),o=Z._queueHooks(e,t),a=function(){Z.dequeue(e,t)};"inprogress"===r&&(r=n.shift(),i--),r&&("fx"===t&&n.unshift("inprogress"),delete o.stop,r.call(e,a,o)),!i&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Z._data(e,n)||Z._data(e,n,{empty:Z.Callbacks("once memory").add((function(){Z.removeData(e,t+"queue",!0),Z.removeData(e,n,!0)}))})}}),Z.fn.extend({queue:function(e,n){var i=2;return"string"!=typeof e&&(n=e,e="fx",i--),arguments.length1)},removeAttr:function(e){return this.each((function(){Z.removeAttr(this,e)}))},prop:function(e,t){return Z.access(this,Z.prop,e,t,arguments.length>1)},removeProp:function(e){return e=Z.propFix[e]||e,this.each((function(){try{this[e]=t,delete this[e]}catch(I){}}))},addClass:function(e){var t,n,i,r,o,a,l;if(Z.isFunction(e))return this.each((function(t){Z(this).addClass(e.call(this,t,this.className))}));if(e&&"string"==typeof e)for(t=e.split(ne),n=0,i=this.length;n=0)i=i.replace(" "+n[o]+" "," ");r.className=e?Z.trim(i):""}return this},toggleClass:function(e,t){var n=Object(Ne["a"])(e),i="boolean"==typeof t;return Z.isFunction(e)?this.each((function(n){Z(this).toggleClass(e.call(this,n,this.className,t),t)})):this.each((function(){if("string"===n){var r,o=0,a=Z(this),l=t,s=e.split(ne);while(r=s[o++])l=i?l:!a.hasClass(r),a[l?"addClass":"removeClass"](r)}else"undefined"!==n&&"boolean"!==n||(this.className&&Z._data(this,"__className__",this.className),this.className=this.className||!1===e?"":Z._data(this,"__className__")||"")}))},hasClass:function(e){for(var t=" "+e+" ",n=0,i=this.length;n=0)return!0;return!1},val:function(e){var n,i,r,o=this[0];return arguments.length?(r=Z.isFunction(e),this.each((function(i){var o,a=Z(this);1===this.nodeType&&(o=r?e.call(this,i,a.val()):e,null==o?o="":"number"==typeof o?o+="":Z.isArray(o)&&(o=Z.map(o,(function(e){return null==e?"":e+""}))),n=Z.valHooks[this.type]||Z.valHooks[this.nodeName.toLowerCase()],n&&"set"in n&&n.set(this,o,"value")!==t||(this.value=o))}))):o?(n=Z.valHooks[o.type]||Z.valHooks[o.nodeName.toLowerCase()],n&&"get"in n&&(i=n.get(o,"value"))!==t?i:(i=o.value,"string"==typeof i?i.replace(Te,""):null==i?"":i)):void 0}}),Z.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){for(var t,n,i=e.options,r=e.selectedIndex,o="select-one"===e.type||r<0,a=o?null:[],l=o?r+1:i.length,s=r<0?l:o?r:0;s=0})),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,i,r){var o,a,l,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return r&&Z.isFunction(Z.fn[n])?Z(e)[n](i):"undefined"==typeof e.getAttribute?Z.prop(e,n,i):(l=1!==s||!Z.isXMLDoc(e),l&&(n=n.toLowerCase(),a=Z.attrHooks[n]||(ze.test(n)?be:ve)),i!==t?null===i?void Z.removeAttr(e,n):a&&"set"in a&&l&&(o=a.set(e,i,n))!==t?o:(e.setAttribute(n,i+""),i):a&&"get"in a&&l&&null!==(o=a.get(e,n))?o:(o=e.getAttribute(n),null===o?t:o))},removeAttr:function(e,t){var n,i,r,o,a=0;if(t&&1===e.nodeType)for(i=t.split(ne);a=0}})}));var Me=/^(?:textarea|input|select)$/i,Le=/^([^\.]*|)(?:\.(.+)|)$/,Se=/(?:^|\s)hover(\.\S+|)\b/,je=/^key/,Ae=/^(?:mouse|contextmenu)|click/,He=/^(?:focusinfocus|focusoutblur)$/,Be=function(e){return Z.event.special.hover?e:e.replace(Se,"mouseenter$1 mouseleave$1")};Z.event={add:function(e,n,i,r,o){var a,l,s,c,u,f,d,p,h,m,y;if(3!==e.nodeType&&8!==e.nodeType&&n&&i&&(a=Z._data(e))){for(i.handler&&(h=i,i=h.handler,o=h.selector),i.guid||(i.guid=Z.guid++),s=a.events,s||(a.events=s={}),l=a.handle,l||(a.handle=l=function(e){return"undefined"==typeof Z||e&&Z.event.triggered===e.type?t:Z.event.dispatch.apply(l.elem,arguments)},l.elem=e),n=Z.trim(Be(n)).split(" "),c=0;c=0&&(y=y.slice(0,-1),l=!0),y.indexOf(".")>=0&&(g=y.split("."),y=g.shift(),g.sort()),(!r||Z.event.customEvent[y])&&!Z.event.global[y])return;if(n="object"==Object(Ne["a"])(n)?n[Z.expando]?n:new Z.Event(y,n):new Z.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=l,n.namespace=g.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,f=y.indexOf(":")<0?"on"+y:"",!r){for(s in a=Z.cache,a)a[s].events&&a[s].events[y]&&Z.event.trigger(n,i,a[s].handle.elem,!0);return}if(n.result=t,n.target||(n.target=r),i=null!=i?Z.makeArray(i):[],i.unshift(n),d=Z.event.special[y]||{},d.trigger&&!1===d.trigger.apply(r,i))return;if(h=[[r,d.bindType||y]],!o&&!d.noBubble&&!Z.isWindow(r)){for(m=d.delegateType||y,c=He.test(m+y)?r:r.parentNode,u=r;c;c=c.parentNode)h.push([c,m]),u=c;u===(r.ownerDocument||W)&&h.push([u.defaultView||u.parentWindow||e,m])}for(s=0;s=0:Z.find(f,this,null,[o]).length),l[f]&&c.push(u);c.length&&g.push({elem:o,matches:c})}for(d.length>p&&g.push({elem:this,matches:d.slice(p)}),i=0;i0?this.on(t,null,e,n):this.trigger(t)},je.test(t)&&(Z.event.fixHooks[t]=Z.event.keyHooks),Ae.test(t)&&(Z.event.fixHooks[t]=Z.event.mouseHooks)})),function(e,t){function n(e,t,n,i){n=n||[],t=t||j;var r,o,a,l,s=t.nodeType;if(!e||"string"!=typeof e)return n;if(1!==s&&9!==s)return[];if(a=T(t),!a&&!i&&(r=ie.exec(e)))if(l=r[1]){if(9===s){if(o=t.getElementById(l),!o||!o.parentNode)return n;if(o.id===l)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(l))&&k(t,o)&&o.id===l)return n.push(o),n}else{if(r[2])return O.apply(n,_.call(t.getElementsByTagName(e),0)),n;if((l=r[3])&&pe&&t.getElementsByClassName)return O.apply(n,_.call(t.getElementsByClassName(l),0)),n}return y(e.replace(K,"$1"),t,n,i,a)}function i(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function r(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function o(e){return I((function(t){return t=+t,I((function(n,i){var r,o=e([],n.length,t),a=o.length;while(a--)n[r=o[a]]&&(n[r]=!(i[r]=n[r]))}))}))}function a(e,t,n){if(e===t)return n;var i=e.nextSibling;while(i){if(i===t)return-1;i=i.nextSibling}return 1}function s(e,t){var i,r,o,a,l,s,c,u=$[N][e+" "];if(u)return t?0:u.slice(0);l=e,s=[],c=x.preFilter;while(l){for(a in i&&!(r=ee.exec(l))||(r&&(l=l.slice(r[0].length)||l),s.push(o=[])),i=!1,(r=te.exec(l))&&(o.push(i=new S(r.shift())),l=l.slice(i.length),i.type=r[0].replace(K," ")),x.filter)(r=se[a].exec(l))&&(!c[a]||(r=c[a](r)))&&(o.push(i=new S(r.shift())),l=l.slice(i.length),i.type=a,i.matches=r);if(!i)break}return t?l.length:l?n.error(e):$(e,s).slice(0)}function c(e,t,n){var i=t.dir,r=n&&"parentNode"===t.dir,o=B++;return t.first?function(t,n,o){while(t=t[i])if(r||1===t.nodeType)return e(t,n,o)}:function(t,n,a){if(a){while(t=t[i])if((r||1===t.nodeType)&&e(t,n,a))return t}else{var l,s=H+" "+o+" ",c=s+v;while(t=t[i])if(r||1===t.nodeType){if((l=t[N])===c)return t.sizset;if("string"==typeof l&&0===l.indexOf(s)){if(t.sizset)return t}else{if(t[N]=c,e(t,n,a))return t.sizset=!0,t;t.sizset=!1}}}}}function u(e){return e.length>1?function(t,n,i){var r=e.length;while(r--)if(!e[r](t,n,i))return!1;return!0}:e[0]}function f(e,t,n,i,r){for(var o,a=[],l=0,s=e.length,c=null!=t;l-1&&(o[c]=!(a[c]=d))}}else b=f(b===a?b.splice(y,b.length):b),r?r(null,a,b,s):O.apply(a,b)}))}function p(e){for(var t,n,i,r=e.length,o=x.relative[e[0].type],a=o||x.relative[" "],l=o?1:0,s=c((function(e){return e===t}),a,!0),f=c((function(e){return P.call(t,e)>-1}),a,!0),h=[function(e,n,i){return!o&&(i||n!==F)||((t=n).nodeType?s(e,n,i):f(e,n,i))}];l1&&u(h),l>1&&e.slice(0,l-1).join("").replace(K,"$1"),n,l0,r=e.length>0,o=function o(a,l,s,c,u){var d,p,h,m=[],y=0,g="0",b=a&&[],w=null!=u,T=F,k=a||r&&x.find.TAG("*",u&&l.parentNode||l),C=H+=null==T?1:Math.E;for(w&&(F=l!==j&&l,v=o.el);null!=(d=k[g]);g++){if(r&&d){for(p=0;h=e[p];p++)if(h(d,l,s)){c.push(d);break}w&&(H=C,v=++o.el)}i&&((d=!h&&d)&&y--,a&&b.push(d))}if(y+=g,i&&g!==y){for(p=0;h=t[p];p++)h(b,m,l,s);if(a){if(y>0)while(g--)!b[g]&&!m[g]&&(m[g]=D.call(c));m=f(m)}O.apply(c,m),w&&!a&&m.length>0&&y+t.length>1&&n.uniqueSort(c)}return w&&(H=C,F=T),b};return o.el=0,i?I(o):o}function m(e,t,i){for(var r=0,o=t.length;r2&&"ID"===(l=a[0]).type&&9===t.nodeType&&!r&&x.relative[a[1].type]){if(t=x.find.ID(l.matches[0].replace(le,""),t,r)[0],!t)return n;e=e.slice(a.shift().length)}for(o=se.POS.test(e)?-1:a.length-1;o>=0;o--){if(l=a[o],x.relative[c=l.type])break;if((u=x.find[c])&&(i=u(l.matches[0].replace(le,""),re.test(a[0].type)&&t.parentNode||t,r))){if(a.splice(o,1),e=i.length&&a.join(""),!e)return O.apply(n,_.call(i,0)),n;break}}}return C(e,f)(i,t,r,n,re.test(e)),n}function g(){}var v,b,x,w,T,k,C,E,z,F,M=!0,L="undefined",N=("sizcache"+Math.random()).replace(".",""),S=String,j=e.document,A=j.documentElement,H=0,B=0,D=[].pop,O=[].push,_=[].slice,P=[].indexOf||function(e){for(var t=0,n=this.length;tx.cacheLength&&delete e[t.shift()],e[n+" "]=i}),e)},W=q(),$=q(),R=q(),V="[\\x20\\t\\r\\n\\f]",X="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",U=X.replace("w","w#"),Y="([*^$|!~]?=)",J="\\["+V+"*("+X+")"+V+"*(?:"+Y+V+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+U+")|)|)"+V+"*\\]",G=":("+X+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+J+")|[^:]|\\\\.)*|.*))\\)|)",Q=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+V+"*((?:-\\d)?\\d*)"+V+"*\\)|)(?=[^-]|$)",K=new RegExp("^"+V+"+|((?:^|[^\\\\])(?:\\\\.)*)"+V+"+$","g"),ee=new RegExp("^"+V+"*,"+V+"*"),te=new RegExp("^"+V+"*([\\x20\\t\\r\\n\\f>+~])"+V+"*"),ne=new RegExp(G),ie=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,re=/[\x20\t\r\n\f]*[+~]/,oe=/h\d/i,ae=/input|select|textarea|button/i,le=/\\(?!\\)/g,se={ID:new RegExp("^#("+X+")"),CLASS:new RegExp("^\\.("+X+")"),NAME:new RegExp("^\\[name=['\"]?("+X+")['\"]?\\]"),TAG:new RegExp("^("+X.replace("w","w*")+")"),ATTR:new RegExp("^"+J),PSEUDO:new RegExp("^"+G),POS:new RegExp(Q,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+V+"*(even|odd|(([+-]|)(\\d*)n|)"+V+"*(?:([+-]|)"+V+"*(\\d+)|))"+V+"*\\)|)","i"),needsContext:new RegExp("^"+V+"*[>+~]|"+Q,"i")},ce=function(e){var t=j.createElement("div");try{return e(t)}catch(v){return!1}finally{t=null}},ue=ce((function(e){return e.appendChild(j.createComment("")),!e.getElementsByTagName("*").length})),fe=ce((function(e){return e.innerHTML="",e.firstChild&&Object(Ne["a"])(e.firstChild.getAttribute)!==L&&"#"===e.firstChild.getAttribute("href")})),de=ce((function(e){e.innerHTML="";var t=Object(Ne["a"])(e.lastChild.getAttribute("multiple"));return"boolean"!==t&&"string"!==t})),pe=ce((function(e){return e.innerHTML="",!(!e.getElementsByClassName||!e.getElementsByClassName("e").length)&&(e.lastChild.className="e",2===e.getElementsByClassName("e").length)})),he=ce((function(e){e.id=N+0,e.innerHTML="
",A.insertBefore(e,A.firstChild);var t=j.getElementsByName&&j.getElementsByName(N).length===2+j.getElementsByName(N+0).length;return b=!j.getElementById(N),A.removeChild(e),t}));try{_.call(A.childNodes,0)[0].nodeType}catch(l){_=function(e){for(var t,n=[];t=this[e];e++)n.push(t);return n}}n.matches=function(e,t){return n(e,null,null,t)},n.matchesSelector=function(e,t){return n(t,null,null,[e]).length>0},w=n.getText=function(e){var t,n="",i=0,r=e.nodeType;if(r){if(1===r||9===r||11===r){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=w(e)}else if(3===r||4===r)return e.nodeValue}else for(;t=e[i];i++)n+=w(t);return n},T=n.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},k=n.contains=A.contains?function(e,t){var n=9===e.nodeType?e.documentElement:e,i=t&&t.parentNode;return e===i||!!(i&&1===i.nodeType&&n.contains&&n.contains(i))}:A.compareDocumentPosition?function(e,t){return t&&!!(16&e.compareDocumentPosition(t))}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},n.attr=function(e,t){var n,i=T(e);return i||(t=t.toLowerCase()),(n=x.attrHandle[t])?n(e):i||de?e.getAttribute(t):(n=e.getAttributeNode(t),n?"boolean"==typeof e[t]?e[t]?t:null:n.specified?n.value:null:null)},x=n.selectors={cacheLength:50,createPseudo:I,match:se,attrHandle:fe?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:b?function(e,t,n){if(Object(Ne["a"])(t.getElementById)!==L&&!n){var i=t.getElementById(e);return i&&i.parentNode?[i]:[]}}:function(e,n,i){if(Object(Ne["a"])(n.getElementById)!==L&&!i){var r=n.getElementById(e);return r?r.id===e||Object(Ne["a"])(r.getAttributeNode)!==L&&r.getAttributeNode("id").value===e?[r]:t:[]}},TAG:ue?function(e,t){if(Object(Ne["a"])(t.getElementsByTagName)!==L)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if("*"===e){for(var i,r=[],o=0;i=n[o];o++)1===i.nodeType&&r.push(i);return r}return n},NAME:he&&function(e,t){if(Object(Ne["a"])(t.getElementsByName)!==L)return t.getElementsByName(name)},CLASS:pe&&function(e,t,n){if(Object(Ne["a"])(t.getElementsByClassName)!==L&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(le,""),e[3]=(e[4]||e[5]||"").replace(le,""),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1]?(e[2]||n.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*("even"===e[2]||"odd"===e[2])),e[4]=+(e[6]+e[7]||"odd"===e[2])):e[2]&&n.error(e[0]),e},PSEUDO:function(e){var t,n;return se.CHILD.test(e[0])?null:(e[3]?e[2]=e[3]:(t=e[4])&&(ne.test(t)&&(n=s(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t),e.slice(0,3))}},filter:{ID:b?function(e){return e=e.replace(le,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace(le,""),function(t){var n=Object(Ne["a"])(t.getAttributeNode)!==L&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(le,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=W[N][e+" "];return t||(t=new RegExp("(^|"+V+")"+e+"("+V+"|$)"))&&W(e,(function(e){return t.test(e.className||Object(Ne["a"])(e.getAttribute)!==L&&e.getAttribute("class")||"")}))},ATTR:function(e,t,i){return function(r,o){var a=n.attr(r,e);return null==a?"!="===t:!t||(a+="","="===t?a===i:"!="===t?a!==i:"^="===t?i&&0===a.indexOf(i):"*="===t?i&&a.indexOf(i)>-1:"$="===t?i&&a.substr(a.length-i.length)===i:"~="===t?(" "+a+" ").indexOf(i)>-1:"|="===t&&(a===i||a.substr(0,i.length+1)===i+"-"))}},CHILD:function(e,t,n,i){return"nth"===e?function(e){var t,r,o=e.parentNode;if(1===n&&0===i)return!0;if(o)for(r=0,t=o.firstChild;t;t=t.nextSibling)if(1===t.nodeType&&(r++,e===t))break;return r-=i,r===n||r%n===0&&r/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(1===n.nodeType)return!1;if("first"===e)return!0;n=t;case"last":while(n=n.nextSibling)if(1===n.nodeType)return!1;return!0}}},PSEUDO:function(e,t){var i,r=x.pseudos[e]||x.setFilters[e.toLowerCase()]||n.error("unsupported pseudo: "+e);return r[N]?r(t):r.length>1?(i=[e,e,"",t],x.setFilters.hasOwnProperty(e.toLowerCase())?I((function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=P.call(e,o[a]),e[i]=!(n[i]=o[a])})):function(e){return r(e,0,i)}):r}},pseudos:{not:I((function(e){var t=[],n=[],i=C(e.replace(K,"$1"));return i[N]?I((function(e,t,n,r){var o,a=i(e,null,r,[]),l=e.length;while(l--)(o=a[l])&&(e[l]=!(t[l]=o))})):function(e,r,o){return t[0]=e,i(t,null,o,n),!n.pop()}})),has:I((function(e){return function(t){return n(e,t).length>0}})),contains:I((function(e){return function(t){return(t.textContent||t.innerText||w(t)).indexOf(e)>-1}})),enabled:function(e){return!1===e.disabled},disabled:function(e){return!0===e.disabled},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},parent:function(e){return!x.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||3===(t=e.nodeType)||4===t)return!1;e=e.nextSibling}return!0},header:function(e){return oe.test(e.nodeName)},text:function(e){var t,n;return"input"===e.nodeName.toLowerCase()&&"text"===(t=e.type)&&(null==(n=e.getAttribute("type"))||n.toLowerCase()===t)},radio:i("radio"),checkbox:i("checkbox"),file:i("file"),password:i("password"),image:i("image"),submit:r("submit"),reset:r("reset"),button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},input:function(e){return ae.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:o((function(){return[0]})),last:o((function(e,t){return[t-1]})),eq:o((function(e,t,n){return[n<0?n+t:n]})),even:o((function(e,t){for(var n=0;n=0;)e.push(i);return e})),gt:o((function(e,t,n){for(var i=n<0?n+t:n;++i",e.querySelectorAll("[selected]").length||o.push("\\["+V+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||o.push(":checked")})),ce((function(e){e.innerHTML="

",e.querySelectorAll("[test^='']").length&&o.push("[*^$]="+V+"*(?:\"\"|'')"),e.innerHTML="",e.querySelectorAll(":enabled").length||o.push(":enabled",":disabled")})),o=new RegExp(o.join("|")),y=function(e,n,r,a,l){if(!a&&!l&&!o.test(e)){var c,u,f=!0,d=N,p=n,h=9===n.nodeType&&e;if(1===n.nodeType&&"object"!==n.nodeName.toLowerCase()){c=s(e),(f=n.getAttribute("id"))?d=f.replace(i,"\\$&"):n.setAttribute("id",d),d="[id='"+d+"'] ",u=c.length;while(u--)c[u]=d+c[u].join("");p=re.test(e)&&n.parentNode||n,h=c.join(",")}if(h)try{return O.apply(r,_.call(p.querySelectorAll(h),0)),r}catch(Z){}finally{f||n.removeAttribute("id")}}return t(e,n,r,a,l)},l&&(ce((function(t){e=l.call(t,"div");try{l.call(t,"[test!='']:sizzle"),a.push("!=",G)}catch(i){}})),a=new RegExp(a.join("|")),n.matchesSelector=function(t,i){if(i=i.replace(r,"='$1']"),!T(t)&&!a.test(i)&&!o.test(i))try{var s=l.call(t,i);if(s||e||t.document&&11!==t.document.nodeType)return s}catch(E){}return n(i,null,null,[t]).length>0})}(),x.pseudos.nth=x.pseudos.eq,x.filters=g.prototype=x.pseudos,x.setFilters=new g,n.attr=Z.attr,Z.find=n,Z.expr=n.selectors,Z.expr[":"]=Z.expr.pseudos,Z.unique=n.uniqueSort,Z.text=n.getText,Z.isXMLDoc=n.isXML,Z.contains=n.contains}(e);var De=/Until$/,Oe=/^(?:parents|prev(?:Until|All))/,_e=/^.[^:#\[\.,]*$/,Pe=Z.expr.match.needsContext,Ie={children:!0,contents:!0,next:!0,prev:!0};Z.fn.extend({find:function(e){var t,n,i,r,o,a,l=this;if("string"!=typeof e)return Z(e).filter((function(){for(t=0,n=l.length;t0)for(r=i;r=0:Z.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){for(var n,i=0,r=this.length,o=[],a=Pe.test(e)||"string"!=typeof e?Z(e,t||this.context):0;i-1:Z.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}}return o=o.length>1?Z.unique(o):o,this.pushStack(o,"closest",e)},index:function(e){return e?"string"==typeof e?Z.inArray(this[0],Z(e)):Z.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n="string"==typeof e?Z(e,t):Z.makeArray(e&&e.nodeType?[e]:e),i=Z.merge(this.get(),n);return this.pushStack(s(n[0])||s(i[0])?i:Z.unique(i))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),Z.fn.andSelf=Z.fn.addBack,Z.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return Z.dir(e,"parentNode")},parentsUntil:function(e,t,n){return Z.dir(e,"parentNode",n)},next:function(e){return c(e,"nextSibling")},prev:function(e){return c(e,"previousSibling")},nextAll:function(e){return Z.dir(e,"nextSibling")},prevAll:function(e){return Z.dir(e,"previousSibling")},nextUntil:function(e,t,n){return Z.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return Z.dir(e,"previousSibling",n)},siblings:function(e){return Z.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return Z.sibling(e.firstChild)},contents:function(e){return Z.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:Z.merge([],e.childNodes)}},(function(e,t){Z.fn[e]=function(n,i){var r=Z.map(this,t,n);return De.test(e)||(i=n),i&&"string"==typeof i&&(r=Z.filter(i,r)),r=this.length>1&&!Ie[e]?Z.unique(r):r,this.length>1&&Oe.test(e)&&(r=r.reverse()),this.pushStack(r,e,Y.call(arguments).join(","))}})),Z.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?Z.find.matchesSelector(t[0],e)?[t[0]]:[]:Z.find.matches(e,t)},dir:function(e,n,i){var r=[],o=e[n];while(o&&9!==o.nodeType&&(i===t||1!==o.nodeType||!Z(o).is(i)))1===o.nodeType&&r.push(o),o=o[n];return r},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});var qe="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",We=/ jQuery\d+="(?:null|\d+)"/g,$e=/^\s+/,Re=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Ve=/<([\w:]+)/,Xe=/]","i"),Qe=/^(?:checkbox|radio)$/,Ke=/checked\s*(?:[^=]|=\s*.checked.)/i,Ze=/\/(java|ecma)script/i,et=/^\s*\s*$/g,tt={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},nt=f(W),it=nt.appendChild(W.createElement("div"));tt.optgroup=tt.option,tt.tbody=tt.tfoot=tt.colgroup=tt.caption=tt.thead,tt.th=tt.td,Z.support.htmlSerialize||(tt._default=[1,"X
","
"]),Z.fn.extend({text:function(e){return Z.access(this,(function(e){return e===t?Z.text(this):this.empty().append((this[0]&&this[0].ownerDocument||W).createTextNode(e))}),null,e,arguments.length)},wrapAll:function(e){if(Z.isFunction(e))return this.each((function(t){Z(this).wrapAll(e.call(this,t))}));if(this[0]){var t=Z(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e})).append(this)}return this},wrapInner:function(e){return Z.isFunction(e)?this.each((function(t){Z(this).wrapInner(e.call(this,t))})):this.each((function(){var t=Z(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=Z.isFunction(e);return this.each((function(n){Z(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(){return this.parent().each((function(){Z.nodeName(this,"body")||Z(this).replaceWith(this.childNodes)})).end()},append:function(){return this.domManip(arguments,!0,(function(e){(1===this.nodeType||11===this.nodeType)&&this.appendChild(e)}))},prepend:function(){return this.domManip(arguments,!0,(function(e){(1===this.nodeType||11===this.nodeType)&&this.insertBefore(e,this.firstChild)}))},before:function(){if(!s(this[0]))return this.domManip(arguments,!1,(function(e){this.parentNode.insertBefore(e,this)}));if(arguments.length){var e=Z.clean(arguments);return this.pushStack(Z.merge(e,this),"before",this.selector)}},after:function(){if(!s(this[0]))return this.domManip(arguments,!1,(function(e){this.parentNode.insertBefore(e,this.nextSibling)}));if(arguments.length){var e=Z.clean(arguments);return this.pushStack(Z.merge(this,e),"after",this.selector)}},remove:function(e,t){for(var n,i=0;null!=(n=this[i]);i++)e&&!Z.filter(e,[n]).length||(!t&&1===n.nodeType&&(Z.cleanData(n.getElementsByTagName("*")),Z.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){1===e.nodeType&&Z.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return Z.clone(this,e,t)}))},html:function(e){return Z.access(this,(function(e){var n=this[0]||{},i=0,r=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(We,""):t;if("string"==typeof e&&!Ye.test(e)&&(Z.support.htmlSerialize||!Ge.test(e))&&(Z.support.leadingWhitespace||!$e.test(e))&&!tt[(Ve.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(Re,"<$1>");try{for(;i1&&"string"==typeof c&&Ke.test(c))return this.each((function(){Z(this).domManip(e,n,i)}));if(Z.isFunction(c))return this.each((function(r){var o=Z(this);e[0]=c.call(this,r,n?o.html():t),o.domManip(e,n,i)}));if(this[0]){if(r=Z.buildFragment(e,this,u),a=r.fragment,o=a.firstChild,1===a.childNodes.length&&(a=o),o)for(n=n&&Z.nodeName(o,"tr"),l=r.cacheable||f-1;s0?this.clone(!0):this).get(),Z(a[r])[t](i),o=o.concat(i);return this.pushStack(o,e,a.selector)}})),Z.extend({clone:function(e,t,n){var i,r,o,a;if(Z.support.html5Clone||Z.isXMLDoc(e)||!Ge.test("<"+e.nodeName+">")?a=e.cloneNode(!0):(it.innerHTML=e.outerHTML,it.removeChild(a=it.firstChild)),(!Z.support.noCloneEvent||!Z.support.noCloneChecked)&&(1===e.nodeType||11===e.nodeType)&&!Z.isXMLDoc(e))for(h(e,a),i=m(e),r=m(a),o=0;i[o];++o)r[o]&&h(i[o],r[o]);if(t&&(p(e,a),n))for(i=m(e),r=m(a),o=0;i[o];++o)p(i[o],r[o]);return i=r=null,a},clean:function(e,t,n,i){var r,o,a,l,s,c,u,d,p,h,m,g=t===W&&nt,v=[];for(t&&"undefined"!=typeof t.createDocumentFragment||(t=W),r=0;null!=(a=e[r]);r++)if("number"==typeof a&&(a+=""),a){if("string"==typeof a)if(Ue.test(a)){g=g||f(t),u=t.createElement("div"),g.appendChild(u),a=a.replace(Re,"<$1>"),l=(Ve.exec(a)||["",""])[1].toLowerCase(),s=tt[l]||tt._default,c=s[0],u.innerHTML=s[1]+a+s[2];while(c--)u=u.lastChild;if(!Z.support.tbody)for(d=Xe.test(a),p="table"!==l||d?""!==s[1]||d?[]:u.childNodes:u.firstChild&&u.firstChild.childNodes,o=p.length-1;o>=0;--o)Z.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o]);!Z.support.leadingWhitespace&&$e.test(a)&&u.insertBefore(t.createTextNode($e.exec(a)[0]),u.firstChild),a=u.childNodes,u.parentNode.removeChild(u)}else a=t.createTextNode(a);a.nodeType?v.push(a):Z.merge(v,a)}if(u&&(a=u=g=null),!Z.support.appendChecked)for(r=0;null!=(a=v[r]);r++)Z.nodeName(a,"input")?y(a):"undefined"!=typeof a.getElementsByTagName&&Z.grep(a.getElementsByTagName("input"),y);if(n)for(h=function(e){if(!e.type||Ze.test(e.type))return i?i.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)},r=0;null!=(a=v[r]);r++)Z.nodeName(a,"script")&&h(a)||(n.appendChild(a),"undefined"!=typeof a.getElementsByTagName&&(m=Z.grep(Z.merge([],a.getElementsByTagName("script")),h),v.splice.apply(v,[r+1,0].concat(m)),r+=m.length));return v},cleanData:function(e,t){for(var n,i,r,o,a=0,l=Z.expando,s=Z.cache,c=Z.support.deleteExpando,u=Z.event.special;null!=(r=e[a]);a++)if((t||Z.acceptData(r))&&(i=r[l],n=i&&s[i],n)){if(n.events)for(o in n.events)u[o]?Z.event.remove(r,o):Z.removeEvent(r,o,n.handle);s[i]&&(delete s[i],c?delete r[l]:r.removeAttribute?r.removeAttribute(l):r[l]=null,Z.deletedIds.push(i))}}}),function(){var e,t;Z.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=Z.uaMatch(R.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),Z.browser=t,Z.sub=function(){function e(t,n){return new e.fn.init(t,n)}Z.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(n,i){return i&&i instanceof Z&&!(i instanceof e)&&(i=e(i)),Z.fn.init.call(this,n,i,t)},e.fn.init.prototype=e.fn;var t=e(W);return e}}();var rt,ot,at,lt=/alpha\([^)]*\)/i,st=/opacity=([^)]*)/,ct=/^(top|right|bottom|left)$/,ut=/^(none|table(?!-c[ea]).+)/,ft=/^margin/,dt=new RegExp("^("+ee+")(.*)$","i"),pt=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),ht=new RegExp("^([-+])=("+ee+")","i"),mt={BODY:"block"},yt={position:"absolute",visibility:"hidden",display:"block"},gt={letterSpacing:0,fontWeight:400},vt=["Top","Right","Bottom","Left"],bt=["Webkit","O","Moz","ms"],xt=Z.fn.toggle;Z.fn.extend({css:function(e,n){return Z.access(this,(function(e,n,i){return i!==t?Z.style(e,n,i):Z.css(e,n)}),e,n,arguments.length>1)},show:function(){return b(this,!0)},hide:function(){return b(this)},toggle:function(e,t){var n="boolean"==typeof e;return Z.isFunction(e)&&Z.isFunction(t)?xt.apply(this,arguments):this.each((function(){(n?e:v(this))?Z(this).show():Z(this).hide()}))}}),Z.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=rt(e,"opacity");return""===n?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{float:Z.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,i,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,l,s=Z.camelCase(n),c=e.style;if(n=Z.cssProps[s]||(Z.cssProps[s]=g(c,s)),l=Z.cssHooks[n]||Z.cssHooks[s],i===t)return l&&"get"in l&&(o=l.get(e,!1,r))!==t?o:c[n];if(a=Object(Ne["a"])(i),"string"===a&&(o=ht.exec(i))&&(i=(o[1]+1)*o[2]+parseFloat(Z.css(e,n)),a="number"),!(null==i||"number"===a&&isNaN(i))&&("number"===a&&!Z.cssNumber[s]&&(i+="px"),!l||!("set"in l)||(i=l.set(e,i,r))!==t))try{c[n]=i}catch(Y){}}},css:function(e,n,i,r){var o,a,l,s=Z.camelCase(n);return n=Z.cssProps[s]||(Z.cssProps[s]=g(e.style,s)),l=Z.cssHooks[n]||Z.cssHooks[s],l&&"get"in l&&(o=l.get(e,!0,r)),o===t&&(o=rt(e,n)),"normal"===o&&n in gt&&(o=gt[n]),i||r!==t?(a=parseFloat(o),i||Z.isNumeric(a)?a||0:o):o},swap:function(e,t,n){var i,r,o={};for(r in t)o[r]=e.style[r],e.style[r]=t[r];for(r in i=n.call(e),t)e.style[r]=o[r];return i}}),e.getComputedStyle?rt=function(t,n){var i,r,o,a,l=e.getComputedStyle(t,null),s=t.style;return l&&(i=l.getPropertyValue(n)||l[n],""===i&&!Z.contains(t.ownerDocument,t)&&(i=Z.style(t,n)),pt.test(i)&&ft.test(n)&&(r=s.width,o=s.minWidth,a=s.maxWidth,s.minWidth=s.maxWidth=s.width=i,i=l.width,s.width=r,s.minWidth=o,s.maxWidth=a)),i}:W.documentElement.currentStyle&&(rt=function(e,t){var n,i,r=e.currentStyle&&e.currentStyle[t],o=e.style;return null==r&&o&&o[t]&&(r=o[t]),pt.test(r)&&!ct.test(t)&&(n=o.left,i=e.runtimeStyle&&e.runtimeStyle.left,i&&(e.runtimeStyle.left=e.currentStyle.left),o.left="fontSize"===t?"1em":r,r=o.pixelLeft+"px",o.left=n,i&&(e.runtimeStyle.left=i)),""===r?"auto":r}),Z.each(["height","width"],(function(e,t){Z.cssHooks[t]={get:function(e,n,i){if(n)return 0===e.offsetWidth&&ut.test(rt(e,"display"))?Z.swap(e,yt,(function(){return T(e,t,i)})):T(e,t,i)},set:function(e,n,i){return x(e,n,i?w(e,t,i,Z.support.boxSizing&&"border-box"===Z.css(e,"boxSizing")):0)}}})),Z.support.opacity||(Z.cssHooks.opacity={get:function(e,t){return st.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,i=e.currentStyle,r=Z.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=i&&i.filter||n.filter||"";n.zoom=1,t>=1&&""===Z.trim(o.replace(lt,""))&&n.removeAttribute&&(n.removeAttribute("filter"),i&&!i.filter)||(n.filter=lt.test(o)?o.replace(lt,r):o+" "+r)}}),Z((function(){Z.support.reliableMarginRight||(Z.cssHooks.marginRight={get:function(e,t){return Z.swap(e,{display:"inline-block"},(function(){if(t)return rt(e,"marginRight")}))}}),!Z.support.pixelPosition&&Z.fn.position&&Z.each(["top","left"],(function(e,t){Z.cssHooks[t]={get:function(e,n){if(n){var i=rt(e,t);return pt.test(i)?Z(e).position()[t]+"px":i}}}}))})),Z.expr&&Z.expr.filters&&(Z.expr.filters.hidden=function(e){return 0===e.offsetWidth&&0===e.offsetHeight||!Z.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||rt(e,"display"))},Z.expr.filters.visible=function(e){return!Z.expr.filters.hidden(e)}),Z.each({margin:"",padding:"",border:"Width"},(function(e,t){Z.cssHooks[e+t]={expand:function(n){var i,r="string"==typeof n?n.split(" "):[n],o={};for(i=0;i<4;i++)o[e+vt[i]+t]=r[i]||r[i-2]||r[0];return o}},ft.test(e)||(Z.cssHooks[e+t].set=x)}));var wt=/%20/g,Tt=/\[\]$/,kt=/\r?\n/g,Ct=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,Et=/^(?:select|textarea)/i;Z.fn.extend({serialize:function(){return Z.param(this.serializeArray())},serializeArray:function(){return this.map((function(){return this.elements?Z.makeArray(this.elements):this})).filter((function(){return this.name&&!this.disabled&&(this.checked||Et.test(this.nodeName)||Ct.test(this.type))})).map((function(e,t){var n=Z(this).val();return null==n?null:Z.isArray(n)?Z.map(n,(function(e,n){return{name:t.name,value:e.replace(kt,"\r\n")}})):{name:t.name,value:n.replace(kt,"\r\n")}})).get()}}),Z.param=function(e,n){var i,r=[],o=function(e,t){t=Z.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=Z.ajaxSettings&&Z.ajaxSettings.traditional),Z.isArray(e)||e.jquery&&!Z.isPlainObject(e))Z.each(e,(function(){o(this.name,this.value)}));else for(i in e)C(i,e[i],n,o);return r.join("&").replace(wt,"+")};var zt,Ft,Mt=/#.*$/,Lt=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Nt=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,St=/^(?:GET|HEAD)$/,jt=/^\/\//,At=/\?/,Ht=/)<[^<]*)*<\/script>/gi,Bt=/([?&])_=[^&]*/,Dt=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Ot=Z.fn.load,_t={},Pt={},It=["*/"]+["*"];try{Ft=$.href}catch(nn){Ft=W.createElement("a"),Ft.href="",Ft=Ft.href}zt=Dt.exec(Ft.toLowerCase())||[],Z.fn.load=function(e,n,i){if("string"!=typeof e&&Ot)return Ot.apply(this,arguments);if(!this.length)return this;var r,o,a,l=this,s=e.indexOf(" ");return s>=0&&(r=e.slice(s,e.length),e=e.slice(0,s)),Z.isFunction(n)?(i=n,n=t):n&&"object"==Object(Ne["a"])(n)&&(o="POST"),Z.ajax({url:e,type:o,dataType:"html",data:n,complete:function(e,t){i&&l.each(i,a||[e.responseText,t,e])}}).done((function(e){a=arguments,l.html(r?Z("
").append(e.replace(Ht,"")).find(r):e)})),this},Z.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),(function(e,t){Z.fn[t]=function(e){return this.on(t,e)}})),Z.each(["get","post"],(function(e,n){Z[n]=function(e,i,r,o){return Z.isFunction(i)&&(o=o||r,r=i,i=t),Z.ajax({type:n,url:e,data:i,success:r,dataType:o})}})),Z.extend({getScript:function(e,n){return Z.get(e,t,n,"script")},getJSON:function(e,t,n){return Z.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?F(e,Z.ajaxSettings):(t=e,e=Z.ajaxSettings),F(e,t),e},ajaxSettings:{url:Ft,isLocal:Nt.test(zt[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":It},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":Z.parseJSON,"text xml":Z.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:E(_t),ajaxTransport:E(Pt),ajax:function(e,n){function i(e,n,i,a){var c,f,v,b,w,k=n;2!==x&&(x=2,s&&clearTimeout(s),l=t,o=a||"",T.readyState=e>0?4:0,i&&(b=M(d,T,i)),e>=200&&e<300||304===e?(d.ifModified&&(w=T.getResponseHeader("Last-Modified"),w&&(Z.lastModified[r]=w),w=T.getResponseHeader("Etag"),w&&(Z.etag[r]=w)),304===e?(k="notmodified",c=!0):(c=L(d,b),k=c.state,f=c.data,v=c.error,c=!v)):(v=k,k&&!e||(k="error",e<0&&(e=0))),T.status=e,T.statusText=(n||k)+"",c?m.resolveWith(p,[f,k,T]):m.rejectWith(p,[T,k,v]),T.statusCode(g),g=t,u&&h.trigger("ajax"+(c?"Success":"Error"),[T,d,c?f:v]),y.fireWith(p,[T,k]),u&&(h.trigger("ajaxComplete",[T,d]),--Z.active||Z.event.trigger("ajaxStop")))}"object"==Object(Ne["a"])(e)&&(n=e,e=t),n=n||{};var r,o,a,l,s,c,u,f,d=Z.ajaxSetup({},n),p=d.context||d,h=p!==d&&(p.nodeType||p instanceof Z)?Z(p):Z.event,m=Z.Deferred(),y=Z.Callbacks("once memory"),g=d.statusCode||{},v={},b={},x=0,w="canceled",T={readyState:0,setRequestHeader:function(e,t){if(!x){var n=e.toLowerCase();e=b[n]=b[n]||e,v[e]=t}return this},getAllResponseHeaders:function(){return 2===x?o:null},getResponseHeader:function(e){var n;if(2===x){if(!a){a={};while(n=Lt.exec(o))a[n[1].toLowerCase()]=n[2]}n=a[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return x||(d.mimeType=e),this},abort:function(e){return e=e||w,l&&l.abort(e),i(0,e),this}};if(m.promise(T),T.success=T.done,T.error=T.fail,T.complete=y.add,T.statusCode=function(e){var t;if(e)if(x<2)for(t in e)g[t]=[g[t],e[t]];else t=e[T.status],T.always(t);return this},d.url=((e||d.url)+"").replace(Mt,"").replace(jt,zt[1]+"//"),d.dataTypes=Z.trim(d.dataType||"*").toLowerCase().split(ne),null==d.crossDomain&&(c=Dt.exec(d.url.toLowerCase()),d.crossDomain=!(!c||c[1]===zt[1]&&c[2]===zt[2]&&(c[3]||("http:"===c[1]?80:443))==(zt[3]||("http:"===zt[1]?80:443)))),d.data&&d.processData&&"string"!=typeof d.data&&(d.data=Z.param(d.data,d.traditional)),z(_t,d,n,T),2===x)return T;if(u=d.global,d.type=d.type.toUpperCase(),d.hasContent=!St.test(d.type),u&&0===Z.active++&&Z.event.trigger("ajaxStart"),!d.hasContent&&(d.data&&(d.url+=(At.test(d.url)?"&":"?")+d.data,delete d.data),r=d.url,!1===d.cache)){var k=Z.now(),C=d.url.replace(Bt,"$1_="+k);d.url=C+(C===d.url?(At.test(d.url)?"&":"?")+"_="+k:"")}for(f in(d.data&&d.hasContent&&!1!==d.contentType||n.contentType)&&T.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(r=r||d.url,Z.lastModified[r]&&T.setRequestHeader("If-Modified-Since",Z.lastModified[r]),Z.etag[r]&&T.setRequestHeader("If-None-Match",Z.etag[r])),T.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+It+"; q=0.01":""):d.accepts["*"]),d.headers)T.setRequestHeader(f,d.headers[f]);if(!d.beforeSend||!1!==d.beforeSend.call(p,T,d)&&2!==x){for(f in w="abort",{success:1,error:1,complete:1})T[f](d[f]);if(l=z(Pt,d,n,T),l){T.readyState=1,u&&h.trigger("ajaxSend",[T,d]),d.async&&d.timeout>0&&(s=setTimeout((function(){T.abort("timeout")}),d.timeout));try{x=1,l.send(v,i)}catch(fe){if(!(x<2))throw fe;i(-1,fe)}}else i(-1,"No Transport");return T}return T.abort()},active:0,lastModified:{},etag:{}});var qt=[],Wt=/\?/,$t=/(=)\?(?=&|$)|\?\?/,Rt=Z.now();Z.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=qt.pop()||Z.expando+"_"+Rt++;return this[e]=!0,e}}),Z.ajaxPrefilter("json jsonp",(function(n,i,r){var o,a,l,s=n.data,c=n.url,u=!1!==n.jsonp,f=u&&$t.test(c),d=u&&!f&&"string"==typeof s&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&$t.test(s);if("jsonp"===n.dataTypes[0]||f||d)return o=n.jsonpCallback=Z.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,a=e[o],f?n.url=c.replace($t,"$1"+o):d?n.data=s.replace($t,"$1"+o):u&&(n.url+=(Wt.test(c)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return l||Z.error(o+" was not called"),l[0]},n.dataTypes[0]="json",e[o]=function(){l=arguments},r.always((function(){e[o]=a,n[o]&&(n.jsonpCallback=i.jsonpCallback,qt.push(o)),l&&Z.isFunction(a)&&a(l[0]),l=a=t})),"script"})),Z.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return Z.globalEval(e),e}}}),Z.ajaxPrefilter("script",(function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)})),Z.ajaxTransport("script",(function(e){if(e.crossDomain){var n,i=W.head||W.getElementsByTagName("head")[0]||W.documentElement;return{send:function(r,o){n=W.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,r){(r||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,i&&n.parentNode&&i.removeChild(n),n=t,r||o(200,"success"))},i.insertBefore(n,i.firstChild)},abort:function(){n&&n.onload(0,1)}}}}));var Vt,Xt=!!e.ActiveXObject&&function(){for(var e in Vt)Vt[e](0,1)},Ut=0;Z.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&N()||S()}:N,function(e){Z.extend(Z.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(Z.ajaxSettings.xhr()),Z.support.ajax&&Z.ajaxTransport((function(n){var i;if(!n.crossDomain||Z.support.cors)return{send:function(r,o){var a,l,s=n.xhr();if(n.username?s.open(n.type,n.url,n.async,n.username,n.password):s.open(n.type,n.url,n.async),n.xhrFields)for(l in n.xhrFields)s[l]=n.xhrFields[l];n.mimeType&&s.overrideMimeType&&s.overrideMimeType(n.mimeType),!n.crossDomain&&!r["X-Requested-With"]&&(r["X-Requested-With"]="XMLHttpRequest");try{for(l in r)s.setRequestHeader(l,r[l])}catch(U){}s.send(n.hasContent&&n.data||null),i=function(e,r){var l,c,u,f,d;try{if(i&&(r||4===s.readyState))if(i=t,a&&(s.onreadystatechange=Z.noop,Xt&&delete Vt[a]),r)4!==s.readyState&&s.abort();else{l=s.status,u=s.getAllResponseHeaders(),f={},d=s.responseXML,d&&d.documentElement&&(f.xml=d);try{f.text=s.responseText}catch(Q){}try{c=s.statusText}catch(Q){c=""}l||!n.isLocal||n.crossDomain?1223===l&&(l=204):l=f.text?200:404}}catch(K){r||o(-1,K)}f&&o(l,c,f,u)},n.async?4===s.readyState?setTimeout(i,0):(a=++Ut,Xt&&(Vt||(Vt={},Z(e).unload(Xt)),Vt[a]=i),s.onreadystatechange=i):i()},abort:function(){i&&i(0,1)}}}));var Yt,Jt,Gt=/^(?:toggle|show|hide)$/,Qt=new RegExp("^(?:([-+])=|)("+ee+")([a-z%]*)$","i"),Kt=/queueHooks$/,Zt=[D],en={"*":[function(e,t){var n,i,r=this.createTween(e,t),o=Qt.exec(t),a=r.cur(),l=+a||0,s=1,c=20;if(o){if(n=+o[2],i=o[3]||(Z.cssNumber[e]?"":"px"),"px"!==i&&l){l=Z.css(r.elem,e,!0)||n||1;do{s=s||".5",l/=s,Z.style(r.elem,e,l+i)}while(s!==(s=r.cur()/a)&&1!==s&&--c)}r.unit=i,r.start=l,r.end=o[1]?l+(o[1]+1)*n:n}return r}]};Z.Animation=Z.extend(H,{tweener:function(e,t){Z.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,i=0,r=e.length;i-1,f={},d={};u?(d=a.position(),r=d.top,o=d.left):(r=parseFloat(s)||0,o=parseFloat(c)||0),Z.isFunction(t)&&(t=t.call(e,n,l)),null!=t.top&&(f.top=t.top-l.top+r),null!=t.left&&(f.left=t.left-l.left+o),"using"in t?t.using.call(e,f):a.css(f)}},Z.fn.extend({position:function(){if(this[0]){var e=this[0],t=this.offsetParent(),n=this.offset(),i=tn.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(Z.css(e,"marginTop"))||0,n.left-=parseFloat(Z.css(e,"marginLeft"))||0,i.top+=parseFloat(Z.css(t[0],"borderTopWidth"))||0,i.left+=parseFloat(Z.css(t[0],"borderLeftWidth"))||0,{top:n.top-i.top,left:n.left-i.left}}},offsetParent:function(){return this.map((function(){var e=this.offsetParent||W.body;while(e&&!tn.test(e.nodeName)&&"static"===Z.css(e,"position"))e=e.offsetParent;return e||W.body}))}}),Z.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},(function(e,n){var i=/Y/.test(n);Z.fn[e]=function(r){return Z.access(this,(function(e,r,o){var a=P(e);if(o===t)return a?n in a?a[n]:a.document.documentElement[r]:e[r];a?a.scrollTo(i?Z(a).scrollLeft():o,i?o:Z(a).scrollTop()):e[r]=o}),e,r,arguments.length,null)}})),Z.each({Height:"height",Width:"width"},(function(e,n){Z.each({padding:"inner"+e,content:n,"":"outer"+e},(function(i,r){Z.fn[r]=function(r,o){var a=arguments.length&&(i||"boolean"!=typeof r),l=i||(!0===r||!0===o?"margin":"border");return Z.access(this,(function(n,i,r){var o;return Z.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):r===t?Z.css(n,i,r,l):Z.style(n,i,r,l)}),n,a?r:t,a,null)}}))})),e.jQuery=e.$=Z,"function"==typeof define&&n("3c35")&&n("3c35").jQuery&&define("jquery",[],(function(){return Z}))})(window),function(e,t){var i,r,o=e.layui&&layui.define,a={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,n=t.length-1,i=n;i>0;i--)if("interactive"===t[i].readyState){e=t[i].src;break}return e||t[n].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),config:{},end:{},minIndex:0,minLeft:[],btn:["确定","取消"],type:["dialog","page","iframe","loading","tips"],getStyle:function(t,n){var i=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return i[i.getPropertyValue?"getPropertyValue":"getAttribute"](n)},link:function(t,n,i){if(l.path){var r=document.getElementsByTagName("head")[0],o=document.createElement("link");"string"===typeof n&&(i=n);var s=(i||t).replace(/\.|\//g,""),c="layuicss-"+s,u=0;o.rel="stylesheet",o.href=l.path+t,o.id=c,document.getElementById(c)||r.appendChild(o),"function"===typeof n&&function t(){if(++u>80)return e.console&&console.error("layer.css: Invalid");1989===parseInt(a.getStyle(document.getElementById(c),"width"))?n():setTimeout(t,100)}()}}},l={v:"3.1.1",ie:function(){var t=navigator.userAgent.toLowerCase();return!!(e.ActiveXObject||"ActiveXObject"in e)&&((t.match(/msie\s(\d+)/)||[])[1]||"11")}(),index:e.layer&&e.layer.v?1e5:0,path:a.getPath,config:function(e,t){return e=e||{},l.cache=a.config=i.extend({},a.config,e),l.path=a.config.path||l.path,"string"===typeof e.extend&&(e.extend=[e.extend]),a.config.path&&l.ready(),e.extend?(o?layui.addcss("modules/layer/"+e.extend):a.link("theme/"+e.extend),this):this},ready:function(e){return this},alert:function(e,t,n){var r="function"===typeof t;return r&&(n=t),l.open(i.extend({content:e,yes:n},r?{}:t))},confirm:function(e,t,n,r){var o="function"===typeof t;return o&&(r=n,n=t),l.open(i.extend({content:e,btn:a.btn,yes:n,btn2:r},o?{}:t))},msg:function(e,n,r){var o="function"===typeof n,s=a.config.skin,u=(s?s+" "+s+"-msg":"")||"layui-layer-msg",f=c.anim.length-1;return o&&(r=n),l.open(i.extend({content:e,time:3e3,shade:!1,skin:u,title:!1,closeBtn:!1,btn:!1,resize:!1,end:r},o&&!a.config.skin?{skin:u+" layui-layer-hui",anim:f}:function(){return n=n||{},(-1===n.icon||n.icon===t&&!a.config.skin)&&(n.skin=u+" "+(n.skin||"layui-layer-hui")),n}()))},load:function(e,t){return l.open(i.extend({type:3,icon:e||0,resize:!1,shade:.01},t))},tips:function(e,t,n){return l.open(i.extend({type:4,content:[e,t],closeBtn:!1,time:3e3,shade:!1,resize:!1,fixed:!1,maxWidth:210},n))}},s=function(e){var t=this;t.index=++l.index,t.config=i.extend({},t.config,a.config,e),document.body?t.creat():setTimeout((function(){t.creat()}),30)};s.pt=s.prototype;var c=["layui-layer",".layui-layer-title",".layui-layer-main",".layui-layer-dialog","layui-layer-iframe","layui-layer-content","layui-layer-btn","layui-layer-close"];c.anim=["layer-anim-00","layer-anim-01","layer-anim-02","layer-anim-03","layer-anim-04","layer-anim-05","layer-anim-06"],s.pt.config={type:0,shade:.3,fixed:!0,move:c[1],title:"信息",offset:"auto",area:"auto",closeBtn:1,time:0,zIndex:19891014,maxWidth:360,anim:0,isOutAnim:!0,icon:-1,moveType:1,resize:!0,scrollbar:!0,tips:2},s.pt.vessel=function(e,t){var n=this,r=n.index,o=n.config,l=o.zIndex+r,s="object"===Object(Ne["a"])(o.title),u=o.maxmin&&(1===o.type||2===o.type),f=o.title?'
'+(s?o.title[0]:o.title)+"
":"";return o.zIndex=l,t([o.shade?'
':"",'
'+(e&&2!=o.type?"":f)+'
'+(0==o.type&&-1!==o.icon?'':"")+(1==o.type&&e?"":o.content||"")+'
'+function(){var e=u?'':"";return o.closeBtn&&(e+=''),e}()+""+(o.btn?function(){var e="";"string"===typeof o.btn&&(o.btn=[o.btn]);for(var t=0,n=o.btn.length;t'+o.btn[t]+"";return'
'+e+"
"}():"")+(o.resize?'':"")+"
"],f,i('
')),n},s.pt.creat=function(){var e=this,t=e.config,n=e.index,o=t.content,s="object"===Object(Ne["a"])(o),u=i("body");if(!t.id||!i("#"+t.id)[0]){switch("string"===typeof t.area&&(t.area="auto"===t.area?["",""]:[t.area,""]),t.shift&&(t.anim=t.shift),6==l.ie&&(t.fixed=!1),t.type){case 0:t.btn="btn"in t?t.btn:a.btn[0],l.closeAll("dialog");break;case 2:o=t.content=s?t.content:[t.content||"http://layer.layui.com","auto"];t.content='';break;case 3:delete t.title,delete t.closeBtn,-1===t.icon&&t.icon,l.closeAll("loading");break;case 4:s||(t.content=[t.content,"body"]),t.follow=t.content[1],t.content=t.content[0]+'',delete t.title,t.tips="object"===Object(Ne["a"])(t.tips)?t.tips:[t.tips,!0],t.tipsMore||l.closeAll("tips");break}if(e.vessel(s,(function(r,l,f){u.append(r[0]),s?function(){2==t.type||4==t.type?function(){i("body").append(r[1])}():function(){o.parents("."+c[0])[0]||(o.data("display",o.css("display")).show().addClass("layui-layer-wrap").wrap(r[1]),i("#"+c[0]+n).find("."+c[5]).before(l))}()}():u.append(r[1]),i(".layui-layer-move")[0]||u.append(a.moveElem=f),e.layero=i("#"+c[0]+n),t.scrollbar||c.html.css("overflow","hidden").attr("layer-full",n)})).auto(n),i("#layui-layer-shade"+e.index).css({"background-color":t.shade[1]||"#000",opacity:t.shade[0]||t.shade}),2==t.type&&6==l.ie&&e.layero.find("iframe").attr("src",o[0]),4==t.type?e.tips():e.offset(),t.fixed&&r.on("resize",(function(){e.offset(),(/^\d+%$/.test(t.area[0])||/^\d+%$/.test(t.area[1]))&&e.auto(n),4==t.type&&e.tips()})),t.time<=0||setTimeout((function(){l.close(e.index)}),t.time),e.move().callback(),c.anim[t.anim]){var f="layer-anim "+c.anim[t.anim];e.layero.addClass(f).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",(function(){i(this).removeClass(f)}))}t.isOutAnim&&e.layero.data("isOutAnim",!0)}},s.pt.auto=function(e){var t=this,n=t.config,o=i("#"+c[0]+e);""===n.area[0]&&n.maxWidth>0&&(l.ie&&l.ie<8&&n.btn&&o.width(o.innerWidth()),o.outerWidth()>n.maxWidth&&o.width(n.maxWidth));var a=[o.innerWidth(),o.innerHeight()],s=o.find(c[1]).outerHeight()||0,u=o.find("."+c[6]).outerHeight()||0,f=function(e){e=o.find(e),e.height(a[1]-s-u-2*(0|parseFloat(e.css("padding-top"))))};switch(n.type){case 2:f("iframe");break;default:""===n.area[1]?n.maxHeight>0&&o.outerHeight()>n.maxHeight?(a[1]=n.maxHeight,f("."+c[5])):n.fixed&&a[1]>=r.height()&&(a[1]=r.height(),f("."+c[5])):f("."+c[5]);break}return t},s.pt.offset=function(){var e=this,t=e.config,n=e.layero,i=[n.outerWidth(),n.outerHeight()],o="object"===Object(Ne["a"])(t.offset);e.offsetTop=(r.height()-i[1])/2,e.offsetLeft=(r.width()-i[0])/2,o?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):"auto"!==t.offset&&("t"===t.offset?e.offsetTop=0:"r"===t.offset?e.offsetLeft=r.width()-i[0]:"b"===t.offset?e.offsetTop=r.height()-i[1]:"l"===t.offset?e.offsetLeft=0:"lt"===t.offset?(e.offsetTop=0,e.offsetLeft=0):"lb"===t.offset?(e.offsetTop=r.height()-i[1],e.offsetLeft=0):"rt"===t.offset?(e.offsetTop=0,e.offsetLeft=r.width()-i[0]):"rb"===t.offset?(e.offsetTop=r.height()-i[1],e.offsetLeft=r.width()-i[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?r.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?r.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=r.scrollTop(),e.offsetLeft+=r.scrollLeft()),n.attr("minLeft")&&(e.offsetTop=r.height()-(n.find(c[1]).outerHeight()||0),e.offsetLeft=n.css("left")),n.css({top:e.offsetTop,left:e.offsetLeft})},s.pt.tips=function(){var e=this,t=e.config,n=e.layero,o=[n.outerWidth(),n.outerHeight()],a=i(t.follow);a[0]||(a=i("body"));var l={width:a.outerWidth(),height:a.outerHeight(),top:a.offset().top,left:a.offset().left},s=n.find(".layui-layer-TipsG"),u=t.tips[0];t.tips[1]||s.remove(),l.autoLeft=function(){l.left+o[0]-r.width()>0?(l.tipLeft=l.left+l.width-o[0],s.css({right:12,left:"auto"})):l.tipLeft=l.left},l.where=[function(){l.autoLeft(),l.tipTop=l.top-o[1]-10,s.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",t.tips[1])},function(){l.tipLeft=l.left+l.width+10,l.tipTop=l.top,s.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",t.tips[1])},function(){l.autoLeft(),l.tipTop=l.top+l.height+10,s.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",t.tips[1])},function(){l.tipLeft=l.left-o[0]-10,l.tipTop=l.top,s.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",t.tips[1])}],l.where[u-1](),1===u?l.top-(r.scrollTop()+o[1]+16)<0&&l.where[2]():2===u?r.width()-(l.left+l.width+o[0]+16)>0||l.where[3]():3===u?l.top-r.scrollTop()+l.height+o[1]+16-r.height()>0&&l.where[0]():4===u&&o[0]+16-l.left>0&&l.where[1](),n.find("."+c[5]).css({"background-color":t.tips[1],"padding-right":t.closeBtn?"30px":""}),n.css({left:l.tipLeft-(t.fixed?r.scrollLeft():0),top:l.tipTop-(t.fixed?r.scrollTop():0)})},s.pt.move=function(){var e=this,t=e.config,n=i(document),o=e.layero,s=o.find(t.move),c=o.find(".layui-layer-resize"),u={};return t.move&&s.css("cursor","move"),s.on("mousedown",(function(e){e.preventDefault(),t.move&&(u.moveStart=!0,u.offset=[e.clientX-parseFloat(o.css("left")),e.clientY-parseFloat(o.css("top"))],a.moveElem.css("cursor","move").show())})),c.on("mousedown",(function(e){e.preventDefault(),u.resizeStart=!0,u.offset=[e.clientX,e.clientY],u.area=[o.outerWidth(),o.outerHeight()],a.moveElem.css("cursor","se-resize").show()})),n.on("mousemove",(function(n){if(u.moveStart){var i=n.clientX-u.offset[0],a=n.clientY-u.offset[1],s="fixed"===o.css("position");if(n.preventDefault(),u.stX=s?0:r.scrollLeft(),u.stY=s?0:r.scrollTop(),!t.moveOut){var c=r.width()-o.outerWidth()+u.stX,f=r.height()-o.outerHeight()+u.stY;ic&&(i=c),af&&(a=f)}o.css({left:i,top:a})}if(t.resize&&u.resizeStart){i=n.clientX-u.offset[0],a=n.clientY-u.offset[1];n.preventDefault(),l.style(e.index,{width:u.area[0]+i,height:u.area[1]+a}),u.isResize=!0,t.resizing&&t.resizing(o)}})).on("mouseup",(function(e){u.moveStart&&(delete u.moveStart,a.moveElem.hide(),t.moveEnd&&t.moveEnd(o)),u.resizeStart&&(delete u.resizeStart,a.moveElem.hide())})),e},s.pt.callback=function(){var e=this,t=e.layero,n=e.config;function r(){var i=n.cancel&&n.cancel(e.index,t);!1===i||l.close(e.index)}e.openLayer(),n.success&&(2==n.type?t.find("iframe").on("load",(function(){n.success(t,e.index)})):n.success(t,e.index)),6==l.ie&&e.IE6(t),t.find("."+c[6]).children("a").on("click",(function(){var r=i(this).index();if(0===r)n.yes?n.yes(e.index,t):n["btn1"]?n["btn1"](e.index,t):l.close(e.index);else{var o=n["btn"+(r+1)]&&n["btn"+(r+1)](e.index,t);!1===o||l.close(e.index)}})),t.find("."+c[7]).on("click",r),n.shadeClose&&i("#layui-layer-shade"+e.index).on("click",(function(){l.close(e.index)})),t.find(".layui-layer-min").on("click",(function(){var i=n.min&&n.min(t);!1===i||l.min(e.index,n)})),t.find(".layui-layer-max").on("click",(function(){i(this).hasClass("layui-layer-maxmin")?(l.restore(e.index),n.restore&&n.restore(t)):(l.full(e.index,n),setTimeout((function(){n.full&&n.full(t)}),100))})),n.end&&(a.end[e.index]=n.end)},a.reselect=function(){i.each(i("select"),(function(e,t){var n=i(this);n.parents("."+c[0])[0]||1==n.attr("layer")&&i("."+c[0]).length<1&&n.removeAttr("layer").show(),n=null}))},s.pt.IE6=function(e){i("select").each((function(e,t){var n=i(this);n.parents("."+c[0])[0]||"none"===n.css("display")||n.attr({layer:"1"}).hide(),n=null}))},s.pt.openLayer=function(){var e=this;l.zIndex=e.config.zIndex,l.setTop=function(e){var t=function(){l.zIndex++,e.css("z-index",l.zIndex+1)};return l.zIndex=parseInt(e[0].style.zIndex),e.on("mousedown",t),l.zIndex}},a.record=function(e){var t=[e.width(),e.height(),e.position().top,e.position().left+parseFloat(e.css("margin-left"))];e.find(".layui-layer-max").addClass("layui-layer-maxmin"),e.attr({area:t})},a.rescollbar=function(e){c.html.attr("layer-full")==e&&(c.html[0].style.removeProperty?c.html[0].style.removeProperty("overflow"):c.html[0].style.removeAttribute("overflow"),c.html.removeAttr("layer-full"))},e.layer=l,l.getChildFrame=function(e,t){return t=t||i("."+c[4]).attr("times"),i("#"+c[0]+t).find("iframe").contents().find(e)},l.getFrameIndex=function(e){return i("#"+e).parents("."+c[4]).attr("times")},l.iframeAuto=function(e){if(e){var t=l.getChildFrame("html",e).outerHeight(),n=i("#"+c[0]+e),r=n.find(c[1]).outerHeight()||0,o=n.find("."+c[6]).outerHeight()||0;n.css({height:t+r+o}),n.find("iframe").css({height:t})}},l.iframeSrc=function(e,t){i("#"+c[0]+e).find("iframe").attr("src",t)},l.style=function(e,t,n){var r=i("#"+c[0]+e),o=r.find(".layui-layer-content"),l=r.attr("type"),s=r.find(c[1]).outerHeight()||0,u=r.find("."+c[6]).outerHeight()||0;r.attr("minLeft");l!==a.type[3]&&l!==a.type[4]&&(n||(parseFloat(t.width)<=260&&(t.width=260),parseFloat(t.height)-s-u<=64&&(t.height=64+s+u)),r.css(t),u=r.find("."+c[6]).outerHeight(),l===a.type[2]?r.find("iframe").css({height:parseFloat(t.height)-s-u}):o.css({height:parseFloat(t.height)-s-u-parseFloat(o.css("padding-top"))-parseFloat(o.css("padding-bottom"))}))},l.min=function(e,t){var n=i("#"+c[0]+e),o=n.find(c[1]).outerHeight()||0,s=n.attr("minLeft")||181*a.minIndex+"px",u=n.css("position");a.record(n),a.minLeft[0]&&(s=a.minLeft[0],a.minLeft.shift()),n.attr("position",u),l.style(e,{width:180,height:o,left:s,top:r.height()-o,position:"fixed",overflow:"hidden"},!0),n.find(".layui-layer-min").hide(),"page"===n.attr("type")&&n.find(c[4]).hide(),a.rescollbar(e),n.attr("minLeft")||a.minIndex++,n.attr("minLeft",s)},l.restore=function(e){var t=i("#"+c[0]+e),n=t.attr("area").split(",");t.attr("type");l.style(e,{width:parseFloat(n[0]),height:parseFloat(n[1]),top:parseFloat(n[2]),left:parseFloat(n[3]),position:t.attr("position"),overflow:"visible"},!0),t.find(".layui-layer-max").removeClass("layui-layer-maxmin"),t.find(".layui-layer-min").show(),"page"===t.attr("type")&&t.find(c[4]).show(),a.rescollbar(e)},l.full=function(e){var t,n=i("#"+c[0]+e);a.record(n),c.html.attr("layer-full")||c.html.css("overflow","hidden").attr("layer-full",e),clearTimeout(t),t=setTimeout((function(){var t="fixed"===n.css("position");l.style(e,{top:t?0:r.scrollTop(),left:t?0:r.scrollLeft(),width:r.width(),height:r.height()},!0),n.find(".layui-layer-min").hide()}),100)},l.title=function(e,t){var n=i("#"+c[0]+(t||l.index)).find(c[1]);n.html(e)},l.close=function(e){var t=i("#"+c[0]+e),n=t.attr("type"),r="layer-anim-close";if(t[0]){var o="layui-layer-wrap",s=function(){if(n===a.type[1]&&"object"===t.attr("conType")){t.children(":not(."+c[5]+")").remove();for(var r=t.find("."+o),l=0;l<2;l++)r.unwrap();r.css("display",r.data("display")).removeClass(o)}else{if(n===a.type[2])try{var s=i("#"+c[4]+e)[0];s.contentWindow.document.write(""),s.contentWindow.close(),t.find("."+c[5])[0].removeChild(s)}catch(u){}t[0].innerHTML="",t.remove()}"function"===typeof a.end[e]&&a.end[e](),delete a.end[e]};t.data("isOutAnim")&&t.addClass("layer-anim "+r),i("#layui-layer-moves, #layui-layer-shade"+e).remove(),6==l.ie&&a.reselect(),a.rescollbar(e),t.attr("minLeft")&&(a.minIndex--,a.minLeft.push(t.attr("minLeft"))),l.ie&&l.ie<10||!t.data("isOutAnim")?s():setTimeout((function(){s()}),200)}},l.closeAll=function(e){i.each(i("."+c[0]),(function(){var t=i(this),n=e?t.attr("type")===e:1;n&&l.close(t.attr("times")),n=null}))};var u=l.cache||{},f=function(e){return u.skin?" "+u.skin+" "+u.skin+"-"+e:""};l.prompt=function(e,t){var n="";if(e=e||{},"function"===typeof e&&(t=e),e.area){var o=e.area;n='style="width: '+o[0]+"; height: "+o[1]+';"',delete e.area}var a,s=2==e.formType?'":function(){return''}(),c=e.success;return delete e.success,l.open(i.extend({type:1,btn:["确定","取消"],content:s,skin:"layui-layer-prompt"+f("prompt"),maxWidth:r.width(),success:function(e){a=e.find(".layui-layer-input"),a.focus(),"function"===typeof c&&c(e)},resize:!1,yes:function(n){var i=a.val();""===i?a.focus():i.length>(e.maxlength||500)?l.tips("最多输入"+(e.maxlength||500)+"个字数",a,{tips:1}):t&&t(i,n,a)}},e))},l.tab=function(e){e=e||{};var t=e.tab||{},n="layui-this",r=e.success;return delete e.success,l.open(i.extend({type:1,skin:"layui-layer-tab"+f("tab"),resize:!1,title:function(){var e=t.length,i=1,r="";if(e>0)for(r=''+t[0].title+"";i"+t[i].title+"";return r}(),content:'
    '+function(){var e=t.length,i=1,r="";if(e>0)for(r='
  • '+(t[0].content||"no content")+"
  • ";i'+(t[i].content||"no content")+"";return r}()+"
",success:function(t){var o=t.find(".layui-layer-title").children(),a=t.find(".layui-layer-tabmain").children();o.on("mousedown",(function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0;var r=i(this),o=r.index();r.addClass(n).siblings().removeClass(n),a.eq(o).show().siblings().hide(),"function"===typeof e.change&&e.change(o)})),"function"===typeof r&&r(t)}},e))},l.photos=function(t,n,r){var o={};if(t=t||{},t.photos){var a=t.photos.constructor===Object,s=a?t.photos:{},c=s.data||[],u=s.start||0;o.imgIndex=1+(0|u),t.img=t.img||"img";var d=t.success;if(delete t.success,a){if(0===c.length)return l.msg("没有图片")}else{var p=i(t.photos),h=function(){c=[],p.find(t.img).each((function(e){var t=i(this);t.attr("layer-index",e),c.push({alt:t.attr("alt"),pid:t.attr("layer-pid"),src:t.attr("layer-src")||t.attr("src"),thumb:t.attr("src")})}))};if(h(),0===c.length)return;if(n||p.on("click",t.img,(function(){var e=i(this),n=e.attr("layer-index");l.photos(i.extend(t,{photos:{start:n,data:c,tab:t.tab},full:t.full}),!0),h()})),!n)return}o.imgprev=function(e){o.imgIndex--,o.imgIndex<1&&(o.imgIndex=c.length),o.tabimg(e)},o.imgnext=function(e,t){o.imgIndex++,o.imgIndex>c.length&&(o.imgIndex=1,t)||o.tabimg(e)},o.keyup=function(e){if(!o.end){var t=e.keyCode;e.preventDefault(),37===t?o.imgprev(!0):39===t?o.imgnext(!0):27===t&&l.close(o.index)}},o.tabimg=function(e){if(!(c.length<=1))return s.start=o.imgIndex-1,l.close(o.index),l.photos(t,!0,e)},o.event=function(){o.bigimg.hover((function(){o.imgsee.show()}),(function(){o.imgsee.hide()})),o.bigimg.find(".layui-layer-imgprev").on("click",(function(e){e.preventDefault(),o.imgprev()})),o.bigimg.find(".layui-layer-imgnext").on("click",(function(e){e.preventDefault(),o.imgnext()})),i(document).on("keyup",o.keyup)},o.loadi=l.load(1,{shade:!("shade"in t)&&.9,scrollbar:!1}),m(c[u].src,(function(n){l.close(o.loadi),o.index=l.open(i.extend({type:1,id:"layui-layer-photos",area:function(){var r=[n.width,n.height],o=[i(e).width()-100,i(e).height()-100];if(!t.full&&(r[0]>o[0]||r[1]>o[1])){var a=[r[0]/o[0],r[1]/o[1]];a[0]>a[1]?(r[0]=r[0]/a[0],r[1]=r[1]/a[0]):a[0]'+(c[u].alt||
'+(c.length>1?'':"")+'
'+(c[u].alt||"")+""+o.imgIndex+"/"+c.length+"
",success:function(e,n){o.bigimg=e.find(".layui-layer-phimg"),o.imgsee=e.find(".layui-layer-imguide,.layui-layer-imgbar"),o.event(e),t.tab&&t.tab(c[u],e),"function"===typeof d&&d(e)},end:function(){o.end=!0,i(document).off("keyup",o.keyup)}},t))}),(function(){l.close(o.loadi),l.msg("当前图片地址异常
是否继续查看下一张?",{time:3e4,btn:["下一张","不看了"],yes:function(){c.length>1&&o.imgnext(!0,!0)}})}))}function m(e,t,n){var i=new Image;if(i.src=e,i.complete)return t(i);i.onload=function(){i.onload=null,t(i)},i.onerror=function(e){i.onerror=null,n(e)}}},a.run=function(t){i=t,r=i(e),c.html=i("html"),l.open=function(e){var t=new s(e);return t.index}},e.layui&&layui.define?(l.ready(),layui.define("jquery",(function(t){l.path=layui.cache.dir,a.run(layui.$),e.layer=l,t("layer",l)}))):"function"===typeof define&&n("3c35")?define(["jquery"],(function(){return a.run(e.jQuery),l})):function(){a.run(e.jQuery),l.ready()}()}(window);var Se=layer,je=$,Ae=(n("9114"),n("bc3a")),He=n.n(Ae),Be=n("69d9"),De=n("4eb5"),Oe=n.n(De),_e=n("e166"),Pe=n.n(_e),Ie=(n("35a1"),n("2c43"),n("9aba")),qe=n.n(Ie),We=(n("64d2"),n("cf0d")),$e=n.n(We);i["default"].prototype.layer=Se,i["default"].prototype.$=je,i["default"].config.productionTip=!1,i["default"].prototype.common=Be["a"],Oe.a.config.autoSetContainer=!0,i["default"].use(Oe.a),i["default"].use(Pe.a,{}),He.a.defaults.withCredentials=!0,He.a.interceptors.request.use((function(e){var t=e.url;if("get"===e.method&&e.params){t+="?";for(var n=Object.keys(e.params),i=0,r=n;i.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}")}catch(t){console&&console.log(t)}}!function(t){if(document.addEventListener)if(~["complete","loaded","interactive"].indexOf(document.readyState))setTimeout(t,0);else{var n=function e(){document.removeEventListener("DOMContentLoaded",e,!1),t()};document.addEventListener("DOMContentLoaded",n,!1)}else document.attachEvent&&(r=t,o=e.document,a=!1,(l=function(){try{o.documentElement.doScroll("left")}catch(t){return void setTimeout(l,50)}i()})(),o.onreadystatechange=function(){"complete"==o.readyState&&(o.onreadystatechange=null,i())});function i(){a||(a=!0,r())}var r,o,a,l}((function(){var e,t,i,r,o,a;(e=document.createElement("div")).innerHTML=n,n=null,(t=e.getElementsByTagName("svg")[0])&&(t.setAttribute("aria-hidden","true"),t.style.position="absolute",t.style.width=0,t.style.height=0,t.style.overflow="hidden",i=t,(r=document.body).firstChild?(o=i,(a=r.firstChild).parentNode.insertBefore(o,a)):r.appendChild(i))}))}(window)}}); \ No newline at end of file diff --git a/src/main/resources/static/js/app.a82d704b.js b/src/main/resources/static/js/app.a82d704b.js deleted file mode 100644 index aa4e1bd..0000000 --- a/src/main/resources/static/js/app.a82d704b.js +++ /dev/null @@ -1 +0,0 @@ -(function(e){function t(t){for(var i,r,l=t[0],s=t[1],c=t[2],u=0,f=[];u=0===n}))}function f(e){var t=qe.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function d(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function p(e,t){if(1===t.nodeType&&Z.hasData(e)){var n,i,r,o=Z._data(e),a=Z._data(t,o),l=o.events;if(l)for(n in delete a.handle,a.events={},l)for(i=0,r=l[n].length;i").appendTo(W.body),n=t.css("display");return t.remove(),"none"!==n&&""!==n||(ot=W.body.appendChild(ot||Z.extend(W.createElement("iframe"),{frameBorder:0,width:0,height:0})),at&&ot.createElement||(at=(ot.contentWindow||ot.contentDocument).document,at.write(""),at.close()),t=at.body.appendChild(at.createElement(e)),n=rt(t,"display"),W.body.removeChild(ot)),mt[e]=n,n}function C(e,t,n,i){var r;if(Z.isArray(t))Z.each(t,(function(t,r){n||Tt.test(e)?i(e,r):C(e+"["+("object"==Object(Me["a"])(r)?t:"")+"]",r,n,i)}));else if(n||"object"!==Z.type(t))i(e,t);else for(r in t)C(e+"["+r+"]",t[r],n,i)}function E(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var i,r,o,a=t.toLowerCase().split(ne),l=0,s=a.length;if(Z.isFunction(n))for(;l)[^>]*$|#([\w\-]*)$)/,oe=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,ae=/^[\],:{}\s]*$/,le=/(?:^|:|,)(?:\s*\[)+/g,se=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,ce=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,ue=/^-ms-/,fe=/-([\da-z])/gi,de=function(e,t){return(t+"").toUpperCase()},pe=function e(){W.addEventListener?(W.removeEventListener("DOMContentLoaded",e,!1),Z.ready()):"complete"===W.readyState&&(W.detachEvent("onreadystatechange",e),Z.ready())},he={};Z.fn=Z.prototype={constructor:Z,init:function(e,n,i){var r,o,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if("string"==typeof e){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:re.exec(e),r&&(r[1]||!n)){if(r[1])return n=n instanceof Z?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:W,e=Z.parseHTML(r[1],a,!0),oe.test(r[1])&&Z.isPlainObject(n)&&this.attr.call(e,n,!0),Z.merge(this,e);if(o=W.getElementById(r[2]),o&&o.parentNode){if(o.id!==r[2])return i.find(e);this.length=1,this[0]=o}return this.context=W,this.selector=e,this}return!n||n.jquery?(n||i).find(e):this.constructor(n).find(e)}return Z.isFunction(e)?i.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),Z.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return Y.call(this)},get:function(e){return null==e?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var i=Z.merge(this.constructor(),e);return i.prevObject=this,i.context=this.context,"find"===t?i.selector=this.selector+(this.selector?" ":"")+n:t&&(i.selector=this.selector+"."+t+"("+n+")"),i},each:function(e,t){return Z.each(this,e,t)},ready:function(e){return Z.ready.promise().done(e),this},eq:function(e){return e=+e,-1===e?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(Y.apply(this,arguments),"slice",Y.call(arguments).join(","))},map:function(e){return this.pushStack(Z.map(this,(function(t,n){return e.call(t,n,t)})))},end:function(){return this.prevObject||this.constructor(null)},push:U,sort:[].sort,splice:[].splice},Z.fn.init.prototype=Z.fn,Z.extend=Z.fn.extend=function(){var e,n,i,r,o,a,l=arguments[0]||{},s=1,c=arguments.length,u=!1;for("boolean"==typeof l&&(u=l,l=arguments[1]||{},s=2),"object"!=Object(Me["a"])(l)&&!Z.isFunction(l)&&(l={}),c===s&&(l=this,--s);s0||(q.resolveWith(W,[Z]),Z.fn.trigger&&Z(W).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===Z.type(e)},isArray:Array.isArray||function(e){return"array"===Z.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?String(e):he[G.call(e)]||"object"},isPlainObject:function(e){if(!e||"object"!==Z.type(e)||e.nodeType||Z.isWindow(e))return!1;try{if(e.constructor&&!Q.call(e,"constructor")&&!Q.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(I){return!1}var n;for(n in e);return n===t||Q.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var i;return e&&"string"==typeof e?("boolean"==typeof t&&(n=t,t=0),t=t||W,(i=oe.exec(e))?[t.createElement(i[1])]:(i=Z.buildFragment([e],t,n?null:[]),Z.merge([],(i.cacheable?Z.clone(i.fragment):i.fragment).childNodes))):null},parseJSON:function(t){return t&&"string"==typeof t?(t=Z.trim(t),e.JSON&&e.JSON.parse?e.JSON.parse(t):ae.test(t.replace(se,"@").replace(ce,"]").replace(le,""))?new Function("return "+t)():void Z.error("Invalid JSON: "+t)):null},parseXML:function(n){var i,r;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(r=new DOMParser,i=r.parseFromString(n,"text/xml")):(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(n))}catch($){i=t}return(!i||!i.documentElement||i.getElementsByTagName("parsererror").length)&&Z.error("Invalid XML: "+n),i},noop:function(){},globalEval:function(t){t&&te.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(ue,"ms-").replace(fe,de)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,i){var r,o=0,a=e.length,l=a===t||Z.isFunction(e);if(i){if(l){for(r in e)if(!1===n.apply(e[r],i))break}else for(;o0&&e[0]&&e[s-1]||0===s||Z.isArray(e));if(c)for(;l-1)c.splice(n,1),o&&(n<=l&&l--,n<=s&&s--)})),this},has:function(e){return Z.inArray(e,c)>-1},empty:function(){return c=[],this},disable:function(){return c=u=n=t,this},disabled:function(){return!c},lock:function(){return u=t,n||d.disable(),this},locked:function(){return!u},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],c&&(!r||u)&&(o?u.push(t):f(t)),this},fire:function(){return d.fireWith(this,arguments),this},fired:function(){return!!r}};return d},Z.extend({Deferred:function(e){var t=[["resolve","done",Z.Callbacks("once memory"),"resolved"],["reject","fail",Z.Callbacks("once memory"),"rejected"],["notify","progress",Z.Callbacks("memory")]],n="pending",i={state:function(){return n},always:function(){return r.done(arguments).fail(arguments),this},then:function(){var e=arguments;return Z.Deferred((function(n){Z.each(t,(function(t,i){var o=i[0],a=e[t];r[i[1]](Z.isFunction(a)?function(){var e=a.apply(this,arguments);e&&Z.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[o+"With"](this===r?n:this,[e])}:n[o])})),e=null})).promise()},promise:function(e){return null!=e?Z.extend(e,i):i}},r={};return i.pipe=i.then,Z.each(t,(function(e,o){var a=o[2],l=o[3];i[o[1]]=a.add,l&&a.add((function(){n=l}),t[1^e][2].disable,t[2][2].lock),r[o[0]]=a.fire,r[o[0]+"With"]=a.fireWith})),i.promise(r),e&&e.call(r,r),r},when:function(e){var t,n,i,r=0,o=Y.call(arguments),a=o.length,l=1!==a||e&&Z.isFunction(e.promise)?a:0,s=1===l?e:Z.Deferred(),c=function(e,n,i){return function(r){n[e]=this,i[e]=arguments.length>1?Y.call(arguments):r,i===t?s.notifyWith(n,i):--l||s.resolveWith(n,i)}};if(a>1)for(t=new Array(a),n=new Array(a),i=new Array(a);r
a",n=d.getElementsByTagName("*"),i=d.getElementsByTagName("a")[0],!n||!i||!n.length)return{};r=W.createElement("select"),o=r.appendChild(W.createElement("option")),a=d.getElementsByTagName("input")[0],i.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:3===d.firstChild.nodeType,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/top/.test(i.getAttribute("style")),hrefNormalized:"/a"===i.getAttribute("href"),opacity:/^0.5/.test(i.style.opacity),cssFloat:!!i.style.cssFloat,checkOn:"on"===a.value,optSelected:o.selected,getSetAttribute:"t"!==d.className,enctype:!!W.createElement("form").enctype,html5Clone:"<:nav>"!==W.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===W.compatMode,submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},a.checked=!0,t.noCloneChecked=a.cloneNode(!0).checked,r.disabled=!0,t.optDisabled=!o.disabled;try{delete d.test}catch(K){t.deleteExpando=!1}if(!d.addEventListener&&d.attachEvent&&d.fireEvent&&(d.attachEvent("onclick",f=function(){t.noCloneEvent=!1}),d.cloneNode(!0).fireEvent("onclick"),d.detachEvent("onclick",f)),a=W.createElement("input"),a.value="t",a.setAttribute("type","radio"),t.radioValue="t"===a.value,a.setAttribute("checked","checked"),a.setAttribute("name","t"),d.appendChild(a),l=W.createDocumentFragment(),l.appendChild(d.lastChild),t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=a.checked,l.removeChild(a),l.appendChild(d),d.attachEvent)for(c in{submit:!0,change:!0,focusin:!0})s="on"+c,u=s in d,u||(d.setAttribute(s,"return;"),u="function"==typeof d[s]),t[c+"Bubbles"]=u;return Z((function(){var n,i,r,o,a="padding:0;margin:0;border:0;display:block;overflow:hidden;",l=W.getElementsByTagName("body")[0];l&&(n=W.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",l.insertBefore(n,l.firstChild),i=W.createElement("div"),n.appendChild(i),i.innerHTML="
t
",r=i.getElementsByTagName("td"),r[0].style.cssText="padding:0;margin:0;border:0;display:none",u=0===r[0].offsetHeight,r[0].style.display="",r[1].style.display="none",t.reliableHiddenOffsets=u&&0===r[0].offsetHeight,i.innerHTML="",i.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=4===i.offsetWidth,t.doesNotIncludeMarginInBodyOffset=1!==l.offsetTop,e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(i,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(i,null)||{width:"4px"}).width,o=W.createElement("div"),o.style.cssText=i.style.cssText=a,o.style.marginRight=o.style.width="0",i.style.width="1px",i.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),"undefined"!=typeof i.style.zoom&&(i.innerHTML="",i.style.cssText=a+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===i.offsetWidth,i.style.display="block",i.style.overflow="visible",i.innerHTML="
",i.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==i.offsetWidth,n.style.zoom=1),l.removeChild(n),n=i=r=o=null)})),l.removeChild(d),n=i=r=o=a=l=d=null,t}();var ye=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,ge=/([A-Z])/g;Z.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(Z.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?Z.cache[e[Z.expando]]:e[Z.expando],!!e&&!o(e)},data:function(e,n,i,r){if(Z.acceptData(e)){var o,a,l=Z.expando,s="string"==typeof n,c=e.nodeType,u=c?Z.cache:e,f=c?e[l]:e[l]&&l;if(f&&u[f]&&(r||u[f].data)||!s||i!==t)return f||(c?e[l]=f=Z.deletedIds.pop()||Z.guid++:f=l),u[f]||(u[f]={},c||(u[f].toJSON=Z.noop)),"object"!=Object(Me["a"])(n)&&"function"!=typeof n||(r?u[f]=Z.extend(u[f],n):u[f].data=Z.extend(u[f].data,n)),o=u[f],r||(o.data||(o.data={}),o=o.data),i!==t&&(o[Z.camelCase(n)]=i),s?(a=o[n],null==a&&(a=o[Z.camelCase(n)])):a=o,a}},removeData:function(e,t,n){if(Z.acceptData(e)){var i,r,a,l=e.nodeType,s=l?Z.cache:e,c=l?e[Z.expando]:Z.expando;if(s[c]){if(t&&(i=n?s[c]:s[c].data,i)){Z.isArray(t)||(t in i?t=[t]:(t=Z.camelCase(t),t=t in i?[t]:t.split(" ")));for(r=0,a=t.length;r1,null,!1))},removeData:function(e){return this.each((function(){Z.removeData(this,e)}))}}),Z.extend({queue:function(e,t,n){var i;if(e)return t=(t||"fx")+"queue",i=Z._data(e,t),n&&(!i||Z.isArray(n)?i=Z._data(e,t,Z.makeArray(n)):i.push(n)),i||[]},dequeue:function(e,t){t=t||"fx";var n=Z.queue(e,t),i=n.length,r=n.shift(),o=Z._queueHooks(e,t),a=function(){Z.dequeue(e,t)};"inprogress"===r&&(r=n.shift(),i--),r&&("fx"===t&&n.unshift("inprogress"),delete o.stop,r.call(e,a,o)),!i&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Z._data(e,n)||Z._data(e,n,{empty:Z.Callbacks("once memory").add((function(){Z.removeData(e,t+"queue",!0),Z.removeData(e,n,!0)}))})}}),Z.fn.extend({queue:function(e,n){var i=2;return"string"!=typeof e&&(n=e,e="fx",i--),arguments.length1)},removeAttr:function(e){return this.each((function(){Z.removeAttr(this,e)}))},prop:function(e,t){return Z.access(this,Z.prop,e,t,arguments.length>1)},removeProp:function(e){return e=Z.propFix[e]||e,this.each((function(){try{this[e]=t,delete this[e]}catch(I){}}))},addClass:function(e){var t,n,i,r,o,a,l;if(Z.isFunction(e))return this.each((function(t){Z(this).addClass(e.call(this,t,this.className))}));if(e&&"string"==typeof e)for(t=e.split(ne),n=0,i=this.length;n=0)i=i.replace(" "+n[o]+" "," ");r.className=e?Z.trim(i):""}return this},toggleClass:function(e,t){var n=Object(Me["a"])(e),i="boolean"==typeof t;return Z.isFunction(e)?this.each((function(n){Z(this).toggleClass(e.call(this,n,this.className,t),t)})):this.each((function(){if("string"===n){var r,o=0,a=Z(this),l=t,s=e.split(ne);while(r=s[o++])l=i?l:!a.hasClass(r),a[l?"addClass":"removeClass"](r)}else"undefined"!==n&&"boolean"!==n||(this.className&&Z._data(this,"__className__",this.className),this.className=this.className||!1===e?"":Z._data(this,"__className__")||"")}))},hasClass:function(e){for(var t=" "+e+" ",n=0,i=this.length;n=0)return!0;return!1},val:function(e){var n,i,r,o=this[0];return arguments.length?(r=Z.isFunction(e),this.each((function(i){var o,a=Z(this);1===this.nodeType&&(o=r?e.call(this,i,a.val()):e,null==o?o="":"number"==typeof o?o+="":Z.isArray(o)&&(o=Z.map(o,(function(e){return null==e?"":e+""}))),n=Z.valHooks[this.type]||Z.valHooks[this.nodeName.toLowerCase()],n&&"set"in n&&n.set(this,o,"value")!==t||(this.value=o))}))):o?(n=Z.valHooks[o.type]||Z.valHooks[o.nodeName.toLowerCase()],n&&"get"in n&&(i=n.get(o,"value"))!==t?i:(i=o.value,"string"==typeof i?i.replace(Te,""):null==i?"":i)):void 0}}),Z.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){for(var t,n,i=e.options,r=e.selectedIndex,o="select-one"===e.type||r<0,a=o?null:[],l=o?r+1:i.length,s=r<0?l:o?r:0;s=0})),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,i,r){var o,a,l,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return r&&Z.isFunction(Z.fn[n])?Z(e)[n](i):"undefined"==typeof e.getAttribute?Z.prop(e,n,i):(l=1!==s||!Z.isXMLDoc(e),l&&(n=n.toLowerCase(),a=Z.attrHooks[n]||(ze.test(n)?be:ve)),i!==t?null===i?void Z.removeAttr(e,n):a&&"set"in a&&l&&(o=a.set(e,i,n))!==t?o:(e.setAttribute(n,i+""),i):a&&"get"in a&&l&&null!==(o=a.get(e,n))?o:(o=e.getAttribute(n),null===o?t:o))},removeAttr:function(e,t){var n,i,r,o,a=0;if(t&&1===e.nodeType)for(i=t.split(ne);a=0}})}));var Ne=/^(?:textarea|input|select)$/i,Le=/^([^\.]*|)(?:\.(.+)|)$/,Se=/(?:^|\s)hover(\.\S+|)\b/,je=/^key/,Ae=/^(?:mouse|contextmenu)|click/,He=/^(?:focusinfocus|focusoutblur)$/,Be=function(e){return Z.event.special.hover?e:e.replace(Se,"mouseenter$1 mouseleave$1")};Z.event={add:function(e,n,i,r,o){var a,l,s,c,u,f,d,p,h,m,y;if(3!==e.nodeType&&8!==e.nodeType&&n&&i&&(a=Z._data(e))){for(i.handler&&(h=i,i=h.handler,o=h.selector),i.guid||(i.guid=Z.guid++),s=a.events,s||(a.events=s={}),l=a.handle,l||(a.handle=l=function(e){return"undefined"==typeof Z||e&&Z.event.triggered===e.type?t:Z.event.dispatch.apply(l.elem,arguments)},l.elem=e),n=Z.trim(Be(n)).split(" "),c=0;c=0&&(y=y.slice(0,-1),l=!0),y.indexOf(".")>=0&&(g=y.split("."),y=g.shift(),g.sort()),(!r||Z.event.customEvent[y])&&!Z.event.global[y])return;if(n="object"==Object(Me["a"])(n)?n[Z.expando]?n:new Z.Event(y,n):new Z.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=l,n.namespace=g.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,f=y.indexOf(":")<0?"on"+y:"",!r){for(s in a=Z.cache,a)a[s].events&&a[s].events[y]&&Z.event.trigger(n,i,a[s].handle.elem,!0);return}if(n.result=t,n.target||(n.target=r),i=null!=i?Z.makeArray(i):[],i.unshift(n),d=Z.event.special[y]||{},d.trigger&&!1===d.trigger.apply(r,i))return;if(h=[[r,d.bindType||y]],!o&&!d.noBubble&&!Z.isWindow(r)){for(m=d.delegateType||y,c=He.test(m+y)?r:r.parentNode,u=r;c;c=c.parentNode)h.push([c,m]),u=c;u===(r.ownerDocument||W)&&h.push([u.defaultView||u.parentWindow||e,m])}for(s=0;s=0:Z.find(f,this,null,[o]).length),l[f]&&c.push(u);c.length&&g.push({elem:o,matches:c})}for(d.length>p&&g.push({elem:this,matches:d.slice(p)}),i=0;i0?this.on(t,null,e,n):this.trigger(t)},je.test(t)&&(Z.event.fixHooks[t]=Z.event.keyHooks),Ae.test(t)&&(Z.event.fixHooks[t]=Z.event.mouseHooks)})),function(e,t){function n(e,t,n,i){n=n||[],t=t||j;var r,o,a,l,s=t.nodeType;if(!e||"string"!=typeof e)return n;if(1!==s&&9!==s)return[];if(a=T(t),!a&&!i&&(r=ie.exec(e)))if(l=r[1]){if(9===s){if(o=t.getElementById(l),!o||!o.parentNode)return n;if(o.id===l)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(l))&&k(t,o)&&o.id===l)return n.push(o),n}else{if(r[2])return O.apply(n,_.call(t.getElementsByTagName(e),0)),n;if((l=r[3])&&pe&&t.getElementsByClassName)return O.apply(n,_.call(t.getElementsByClassName(l),0)),n}return y(e.replace(K,"$1"),t,n,i,a)}function i(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function r(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function o(e){return I((function(t){return t=+t,I((function(n,i){var r,o=e([],n.length,t),a=o.length;while(a--)n[r=o[a]]&&(n[r]=!(i[r]=n[r]))}))}))}function a(e,t,n){if(e===t)return n;var i=e.nextSibling;while(i){if(i===t)return-1;i=i.nextSibling}return 1}function s(e,t){var i,r,o,a,l,s,c,u=$[L][e+" "];if(u)return t?0:u.slice(0);l=e,s=[],c=x.preFilter;while(l){for(a in i&&!(r=ee.exec(l))||(r&&(l=l.slice(r[0].length)||l),s.push(o=[])),i=!1,(r=te.exec(l))&&(o.push(i=new S(r.shift())),l=l.slice(i.length),i.type=r[0].replace(K," ")),x.filter)(r=se[a].exec(l))&&(!c[a]||(r=c[a](r)))&&(o.push(i=new S(r.shift())),l=l.slice(i.length),i.type=a,i.matches=r);if(!i)break}return t?l.length:l?n.error(e):$(e,s).slice(0)}function c(e,t,n){var i=t.dir,r=n&&"parentNode"===t.dir,o=B++;return t.first?function(t,n,o){while(t=t[i])if(r||1===t.nodeType)return e(t,n,o)}:function(t,n,a){if(a){while(t=t[i])if((r||1===t.nodeType)&&e(t,n,a))return t}else{var l,s=H+" "+o+" ",c=s+v;while(t=t[i])if(r||1===t.nodeType){if((l=t[L])===c)return t.sizset;if("string"==typeof l&&0===l.indexOf(s)){if(t.sizset)return t}else{if(t[L]=c,e(t,n,a))return t.sizset=!0,t;t.sizset=!1}}}}}function u(e){return e.length>1?function(t,n,i){var r=e.length;while(r--)if(!e[r](t,n,i))return!1;return!0}:e[0]}function f(e,t,n,i,r){for(var o,a=[],l=0,s=e.length,c=null!=t;l-1&&(o[c]=!(a[c]=d))}}else b=f(b===a?b.splice(y,b.length):b),r?r(null,a,b,s):O.apply(a,b)}))}function p(e){for(var t,n,i,r=e.length,o=x.relative[e[0].type],a=o||x.relative[" "],l=o?1:0,s=c((function(e){return e===t}),a,!0),f=c((function(e){return P.call(t,e)>-1}),a,!0),h=[function(e,n,i){return!o&&(i||n!==F)||((t=n).nodeType?s(e,n,i):f(e,n,i))}];l1&&u(h),l>1&&e.slice(0,l-1).join("").replace(K,"$1"),n,l0,r=e.length>0,o=function o(a,l,s,c,u){var d,p,h,m=[],y=0,g="0",b=a&&[],w=null!=u,T=F,k=a||r&&x.find.TAG("*",u&&l.parentNode||l),C=H+=null==T?1:Math.E;for(w&&(F=l!==j&&l,v=o.el);null!=(d=k[g]);g++){if(r&&d){for(p=0;h=e[p];p++)if(h(d,l,s)){c.push(d);break}w&&(H=C,v=++o.el)}i&&((d=!h&&d)&&y--,a&&b.push(d))}if(y+=g,i&&g!==y){for(p=0;h=t[p];p++)h(b,m,l,s);if(a){if(y>0)while(g--)!b[g]&&!m[g]&&(m[g]=D.call(c));m=f(m)}O.apply(c,m),w&&!a&&m.length>0&&y+t.length>1&&n.uniqueSort(c)}return w&&(H=C,F=T),b};return o.el=0,i?I(o):o}function m(e,t,i){for(var r=0,o=t.length;r2&&"ID"===(l=a[0]).type&&9===t.nodeType&&!r&&x.relative[a[1].type]){if(t=x.find.ID(l.matches[0].replace(le,""),t,r)[0],!t)return n;e=e.slice(a.shift().length)}for(o=se.POS.test(e)?-1:a.length-1;o>=0;o--){if(l=a[o],x.relative[c=l.type])break;if((u=x.find[c])&&(i=u(l.matches[0].replace(le,""),re.test(a[0].type)&&t.parentNode||t,r))){if(a.splice(o,1),e=i.length&&a.join(""),!e)return O.apply(n,_.call(i,0)),n;break}}}return C(e,f)(i,t,r,n,re.test(e)),n}function g(){}var v,b,x,w,T,k,C,E,z,F,M=!0,N="undefined",L=("sizcache"+Math.random()).replace(".",""),S=String,j=e.document,A=j.documentElement,H=0,B=0,D=[].pop,O=[].push,_=[].slice,P=[].indexOf||function(e){for(var t=0,n=this.length;tx.cacheLength&&delete e[t.shift()],e[n+" "]=i}),e)},W=q(),$=q(),R=q(),V="[\\x20\\t\\r\\n\\f]",X="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",U=X.replace("w","w#"),Y="([*^$|!~]?=)",J="\\["+V+"*("+X+")"+V+"*(?:"+Y+V+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+U+")|)|)"+V+"*\\]",G=":("+X+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+J+")|[^:]|\\\\.)*|.*))\\)|)",Q=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+V+"*((?:-\\d)?\\d*)"+V+"*\\)|)(?=[^-]|$)",K=new RegExp("^"+V+"+|((?:^|[^\\\\])(?:\\\\.)*)"+V+"+$","g"),ee=new RegExp("^"+V+"*,"+V+"*"),te=new RegExp("^"+V+"*([\\x20\\t\\r\\n\\f>+~])"+V+"*"),ne=new RegExp(G),ie=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,re=/[\x20\t\r\n\f]*[+~]/,oe=/h\d/i,ae=/input|select|textarea|button/i,le=/\\(?!\\)/g,se={ID:new RegExp("^#("+X+")"),CLASS:new RegExp("^\\.("+X+")"),NAME:new RegExp("^\\[name=['\"]?("+X+")['\"]?\\]"),TAG:new RegExp("^("+X.replace("w","w*")+")"),ATTR:new RegExp("^"+J),PSEUDO:new RegExp("^"+G),POS:new RegExp(Q,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+V+"*(even|odd|(([+-]|)(\\d*)n|)"+V+"*(?:([+-]|)"+V+"*(\\d+)|))"+V+"*\\)|)","i"),needsContext:new RegExp("^"+V+"*[>+~]|"+Q,"i")},ce=function(e){var t=j.createElement("div");try{return e(t)}catch(v){return!1}finally{t=null}},ue=ce((function(e){return e.appendChild(j.createComment("")),!e.getElementsByTagName("*").length})),fe=ce((function(e){return e.innerHTML="",e.firstChild&&Object(Me["a"])(e.firstChild.getAttribute)!==N&&"#"===e.firstChild.getAttribute("href")})),de=ce((function(e){e.innerHTML="";var t=Object(Me["a"])(e.lastChild.getAttribute("multiple"));return"boolean"!==t&&"string"!==t})),pe=ce((function(e){return e.innerHTML="",!(!e.getElementsByClassName||!e.getElementsByClassName("e").length)&&(e.lastChild.className="e",2===e.getElementsByClassName("e").length)})),he=ce((function(e){e.id=L+0,e.innerHTML="
",A.insertBefore(e,A.firstChild);var t=j.getElementsByName&&j.getElementsByName(L).length===2+j.getElementsByName(L+0).length;return b=!j.getElementById(L),A.removeChild(e),t}));try{_.call(A.childNodes,0)[0].nodeType}catch(l){_=function(e){for(var t,n=[];t=this[e];e++)n.push(t);return n}}n.matches=function(e,t){return n(e,null,null,t)},n.matchesSelector=function(e,t){return n(t,null,null,[e]).length>0},w=n.getText=function(e){var t,n="",i=0,r=e.nodeType;if(r){if(1===r||9===r||11===r){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=w(e)}else if(3===r||4===r)return e.nodeValue}else for(;t=e[i];i++)n+=w(t);return n},T=n.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},k=n.contains=A.contains?function(e,t){var n=9===e.nodeType?e.documentElement:e,i=t&&t.parentNode;return e===i||!!(i&&1===i.nodeType&&n.contains&&n.contains(i))}:A.compareDocumentPosition?function(e,t){return t&&!!(16&e.compareDocumentPosition(t))}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},n.attr=function(e,t){var n,i=T(e);return i||(t=t.toLowerCase()),(n=x.attrHandle[t])?n(e):i||de?e.getAttribute(t):(n=e.getAttributeNode(t),n?"boolean"==typeof e[t]?e[t]?t:null:n.specified?n.value:null:null)},x=n.selectors={cacheLength:50,createPseudo:I,match:se,attrHandle:fe?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:b?function(e,t,n){if(Object(Me["a"])(t.getElementById)!==N&&!n){var i=t.getElementById(e);return i&&i.parentNode?[i]:[]}}:function(e,n,i){if(Object(Me["a"])(n.getElementById)!==N&&!i){var r=n.getElementById(e);return r?r.id===e||Object(Me["a"])(r.getAttributeNode)!==N&&r.getAttributeNode("id").value===e?[r]:t:[]}},TAG:ue?function(e,t){if(Object(Me["a"])(t.getElementsByTagName)!==N)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if("*"===e){for(var i,r=[],o=0;i=n[o];o++)1===i.nodeType&&r.push(i);return r}return n},NAME:he&&function(e,t){if(Object(Me["a"])(t.getElementsByName)!==N)return t.getElementsByName(name)},CLASS:pe&&function(e,t,n){if(Object(Me["a"])(t.getElementsByClassName)!==N&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(le,""),e[3]=(e[4]||e[5]||"").replace(le,""),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1]?(e[2]||n.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*("even"===e[2]||"odd"===e[2])),e[4]=+(e[6]+e[7]||"odd"===e[2])):e[2]&&n.error(e[0]),e},PSEUDO:function(e){var t,n;return se.CHILD.test(e[0])?null:(e[3]?e[2]=e[3]:(t=e[4])&&(ne.test(t)&&(n=s(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t),e.slice(0,3))}},filter:{ID:b?function(e){return e=e.replace(le,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace(le,""),function(t){var n=Object(Me["a"])(t.getAttributeNode)!==N&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(le,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=W[L][e+" "];return t||(t=new RegExp("(^|"+V+")"+e+"("+V+"|$)"))&&W(e,(function(e){return t.test(e.className||Object(Me["a"])(e.getAttribute)!==N&&e.getAttribute("class")||"")}))},ATTR:function(e,t,i){return function(r,o){var a=n.attr(r,e);return null==a?"!="===t:!t||(a+="","="===t?a===i:"!="===t?a!==i:"^="===t?i&&0===a.indexOf(i):"*="===t?i&&a.indexOf(i)>-1:"$="===t?i&&a.substr(a.length-i.length)===i:"~="===t?(" "+a+" ").indexOf(i)>-1:"|="===t&&(a===i||a.substr(0,i.length+1)===i+"-"))}},CHILD:function(e,t,n,i){return"nth"===e?function(e){var t,r,o=e.parentNode;if(1===n&&0===i)return!0;if(o)for(r=0,t=o.firstChild;t;t=t.nextSibling)if(1===t.nodeType&&(r++,e===t))break;return r-=i,r===n||r%n===0&&r/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(1===n.nodeType)return!1;if("first"===e)return!0;n=t;case"last":while(n=n.nextSibling)if(1===n.nodeType)return!1;return!0}}},PSEUDO:function(e,t){var i,r=x.pseudos[e]||x.setFilters[e.toLowerCase()]||n.error("unsupported pseudo: "+e);return r[L]?r(t):r.length>1?(i=[e,e,"",t],x.setFilters.hasOwnProperty(e.toLowerCase())?I((function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=P.call(e,o[a]),e[i]=!(n[i]=o[a])})):function(e){return r(e,0,i)}):r}},pseudos:{not:I((function(e){var t=[],n=[],i=C(e.replace(K,"$1"));return i[L]?I((function(e,t,n,r){var o,a=i(e,null,r,[]),l=e.length;while(l--)(o=a[l])&&(e[l]=!(t[l]=o))})):function(e,r,o){return t[0]=e,i(t,null,o,n),!n.pop()}})),has:I((function(e){return function(t){return n(e,t).length>0}})),contains:I((function(e){return function(t){return(t.textContent||t.innerText||w(t)).indexOf(e)>-1}})),enabled:function(e){return!1===e.disabled},disabled:function(e){return!0===e.disabled},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},parent:function(e){return!x.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||3===(t=e.nodeType)||4===t)return!1;e=e.nextSibling}return!0},header:function(e){return oe.test(e.nodeName)},text:function(e){var t,n;return"input"===e.nodeName.toLowerCase()&&"text"===(t=e.type)&&(null==(n=e.getAttribute("type"))||n.toLowerCase()===t)},radio:i("radio"),checkbox:i("checkbox"),file:i("file"),password:i("password"),image:i("image"),submit:r("submit"),reset:r("reset"),button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},input:function(e){return ae.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:o((function(){return[0]})),last:o((function(e,t){return[t-1]})),eq:o((function(e,t,n){return[n<0?n+t:n]})),even:o((function(e,t){for(var n=0;n=0;)e.push(i);return e})),gt:o((function(e,t,n){for(var i=n<0?n+t:n;++i",e.querySelectorAll("[selected]").length||o.push("\\["+V+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||o.push(":checked")})),ce((function(e){e.innerHTML="

",e.querySelectorAll("[test^='']").length&&o.push("[*^$]="+V+"*(?:\"\"|'')"),e.innerHTML="",e.querySelectorAll(":enabled").length||o.push(":enabled",":disabled")})),o=new RegExp(o.join("|")),y=function(e,n,r,a,l){if(!a&&!l&&!o.test(e)){var c,u,f=!0,d=L,p=n,h=9===n.nodeType&&e;if(1===n.nodeType&&"object"!==n.nodeName.toLowerCase()){c=s(e),(f=n.getAttribute("id"))?d=f.replace(i,"\\$&"):n.setAttribute("id",d),d="[id='"+d+"'] ",u=c.length;while(u--)c[u]=d+c[u].join("");p=re.test(e)&&n.parentNode||n,h=c.join(",")}if(h)try{return O.apply(r,_.call(p.querySelectorAll(h),0)),r}catch(Z){}finally{f||n.removeAttribute("id")}}return t(e,n,r,a,l)},l&&(ce((function(t){e=l.call(t,"div");try{l.call(t,"[test!='']:sizzle"),a.push("!=",G)}catch(i){}})),a=new RegExp(a.join("|")),n.matchesSelector=function(t,i){if(i=i.replace(r,"='$1']"),!T(t)&&!a.test(i)&&!o.test(i))try{var s=l.call(t,i);if(s||e||t.document&&11!==t.document.nodeType)return s}catch(E){}return n(i,null,null,[t]).length>0})}(),x.pseudos.nth=x.pseudos.eq,x.filters=g.prototype=x.pseudos,x.setFilters=new g,n.attr=Z.attr,Z.find=n,Z.expr=n.selectors,Z.expr[":"]=Z.expr.pseudos,Z.unique=n.uniqueSort,Z.text=n.getText,Z.isXMLDoc=n.isXML,Z.contains=n.contains}(e);var De=/Until$/,Oe=/^(?:parents|prev(?:Until|All))/,_e=/^.[^:#\[\.,]*$/,Pe=Z.expr.match.needsContext,Ie={children:!0,contents:!0,next:!0,prev:!0};Z.fn.extend({find:function(e){var t,n,i,r,o,a,l=this;if("string"!=typeof e)return Z(e).filter((function(){for(t=0,n=l.length;t0)for(r=i;r=0:Z.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){for(var n,i=0,r=this.length,o=[],a=Pe.test(e)||"string"!=typeof e?Z(e,t||this.context):0;i-1:Z.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}}return o=o.length>1?Z.unique(o):o,this.pushStack(o,"closest",e)},index:function(e){return e?"string"==typeof e?Z.inArray(this[0],Z(e)):Z.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n="string"==typeof e?Z(e,t):Z.makeArray(e&&e.nodeType?[e]:e),i=Z.merge(this.get(),n);return this.pushStack(s(n[0])||s(i[0])?i:Z.unique(i))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),Z.fn.andSelf=Z.fn.addBack,Z.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return Z.dir(e,"parentNode")},parentsUntil:function(e,t,n){return Z.dir(e,"parentNode",n)},next:function(e){return c(e,"nextSibling")},prev:function(e){return c(e,"previousSibling")},nextAll:function(e){return Z.dir(e,"nextSibling")},prevAll:function(e){return Z.dir(e,"previousSibling")},nextUntil:function(e,t,n){return Z.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return Z.dir(e,"previousSibling",n)},siblings:function(e){return Z.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return Z.sibling(e.firstChild)},contents:function(e){return Z.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:Z.merge([],e.childNodes)}},(function(e,t){Z.fn[e]=function(n,i){var r=Z.map(this,t,n);return De.test(e)||(i=n),i&&"string"==typeof i&&(r=Z.filter(i,r)),r=this.length>1&&!Ie[e]?Z.unique(r):r,this.length>1&&Oe.test(e)&&(r=r.reverse()),this.pushStack(r,e,Y.call(arguments).join(","))}})),Z.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?Z.find.matchesSelector(t[0],e)?[t[0]]:[]:Z.find.matches(e,t)},dir:function(e,n,i){var r=[],o=e[n];while(o&&9!==o.nodeType&&(i===t||1!==o.nodeType||!Z(o).is(i)))1===o.nodeType&&r.push(o),o=o[n];return r},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});var qe="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",We=/ jQuery\d+="(?:null|\d+)"/g,$e=/^\s+/,Re=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Ve=/<([\w:]+)/,Xe=/]","i"),Qe=/^(?:checkbox|radio)$/,Ke=/checked\s*(?:[^=]|=\s*.checked.)/i,Ze=/\/(java|ecma)script/i,et=/^\s*\s*$/g,tt={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},nt=f(W),it=nt.appendChild(W.createElement("div"));tt.optgroup=tt.option,tt.tbody=tt.tfoot=tt.colgroup=tt.caption=tt.thead,tt.th=tt.td,Z.support.htmlSerialize||(tt._default=[1,"X
","
"]),Z.fn.extend({text:function(e){return Z.access(this,(function(e){return e===t?Z.text(this):this.empty().append((this[0]&&this[0].ownerDocument||W).createTextNode(e))}),null,e,arguments.length)},wrapAll:function(e){if(Z.isFunction(e))return this.each((function(t){Z(this).wrapAll(e.call(this,t))}));if(this[0]){var t=Z(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e})).append(this)}return this},wrapInner:function(e){return Z.isFunction(e)?this.each((function(t){Z(this).wrapInner(e.call(this,t))})):this.each((function(){var t=Z(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=Z.isFunction(e);return this.each((function(n){Z(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(){return this.parent().each((function(){Z.nodeName(this,"body")||Z(this).replaceWith(this.childNodes)})).end()},append:function(){return this.domManip(arguments,!0,(function(e){(1===this.nodeType||11===this.nodeType)&&this.appendChild(e)}))},prepend:function(){return this.domManip(arguments,!0,(function(e){(1===this.nodeType||11===this.nodeType)&&this.insertBefore(e,this.firstChild)}))},before:function(){if(!s(this[0]))return this.domManip(arguments,!1,(function(e){this.parentNode.insertBefore(e,this)}));if(arguments.length){var e=Z.clean(arguments);return this.pushStack(Z.merge(e,this),"before",this.selector)}},after:function(){if(!s(this[0]))return this.domManip(arguments,!1,(function(e){this.parentNode.insertBefore(e,this.nextSibling)}));if(arguments.length){var e=Z.clean(arguments);return this.pushStack(Z.merge(this,e),"after",this.selector)}},remove:function(e,t){for(var n,i=0;null!=(n=this[i]);i++)e&&!Z.filter(e,[n]).length||(!t&&1===n.nodeType&&(Z.cleanData(n.getElementsByTagName("*")),Z.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){1===e.nodeType&&Z.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return Z.clone(this,e,t)}))},html:function(e){return Z.access(this,(function(e){var n=this[0]||{},i=0,r=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(We,""):t;if("string"==typeof e&&!Ye.test(e)&&(Z.support.htmlSerialize||!Ge.test(e))&&(Z.support.leadingWhitespace||!$e.test(e))&&!tt[(Ve.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(Re,"<$1>");try{for(;i1&&"string"==typeof c&&Ke.test(c))return this.each((function(){Z(this).domManip(e,n,i)}));if(Z.isFunction(c))return this.each((function(r){var o=Z(this);e[0]=c.call(this,r,n?o.html():t),o.domManip(e,n,i)}));if(this[0]){if(r=Z.buildFragment(e,this,u),a=r.fragment,o=a.firstChild,1===a.childNodes.length&&(a=o),o)for(n=n&&Z.nodeName(o,"tr"),l=r.cacheable||f-1;s0?this.clone(!0):this).get(),Z(a[r])[t](i),o=o.concat(i);return this.pushStack(o,e,a.selector)}})),Z.extend({clone:function(e,t,n){var i,r,o,a;if(Z.support.html5Clone||Z.isXMLDoc(e)||!Ge.test("<"+e.nodeName+">")?a=e.cloneNode(!0):(it.innerHTML=e.outerHTML,it.removeChild(a=it.firstChild)),(!Z.support.noCloneEvent||!Z.support.noCloneChecked)&&(1===e.nodeType||11===e.nodeType)&&!Z.isXMLDoc(e))for(h(e,a),i=m(e),r=m(a),o=0;i[o];++o)r[o]&&h(i[o],r[o]);if(t&&(p(e,a),n))for(i=m(e),r=m(a),o=0;i[o];++o)p(i[o],r[o]);return i=r=null,a},clean:function(e,t,n,i){var r,o,a,l,s,c,u,d,p,h,m,g=t===W&&nt,v=[];for(t&&"undefined"!=typeof t.createDocumentFragment||(t=W),r=0;null!=(a=e[r]);r++)if("number"==typeof a&&(a+=""),a){if("string"==typeof a)if(Ue.test(a)){g=g||f(t),u=t.createElement("div"),g.appendChild(u),a=a.replace(Re,"<$1>"),l=(Ve.exec(a)||["",""])[1].toLowerCase(),s=tt[l]||tt._default,c=s[0],u.innerHTML=s[1]+a+s[2];while(c--)u=u.lastChild;if(!Z.support.tbody)for(d=Xe.test(a),p="table"!==l||d?""!==s[1]||d?[]:u.childNodes:u.firstChild&&u.firstChild.childNodes,o=p.length-1;o>=0;--o)Z.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o]);!Z.support.leadingWhitespace&&$e.test(a)&&u.insertBefore(t.createTextNode($e.exec(a)[0]),u.firstChild),a=u.childNodes,u.parentNode.removeChild(u)}else a=t.createTextNode(a);a.nodeType?v.push(a):Z.merge(v,a)}if(u&&(a=u=g=null),!Z.support.appendChecked)for(r=0;null!=(a=v[r]);r++)Z.nodeName(a,"input")?y(a):"undefined"!=typeof a.getElementsByTagName&&Z.grep(a.getElementsByTagName("input"),y);if(n)for(h=function(e){if(!e.type||Ze.test(e.type))return i?i.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)},r=0;null!=(a=v[r]);r++)Z.nodeName(a,"script")&&h(a)||(n.appendChild(a),"undefined"!=typeof a.getElementsByTagName&&(m=Z.grep(Z.merge([],a.getElementsByTagName("script")),h),v.splice.apply(v,[r+1,0].concat(m)),r+=m.length));return v},cleanData:function(e,t){for(var n,i,r,o,a=0,l=Z.expando,s=Z.cache,c=Z.support.deleteExpando,u=Z.event.special;null!=(r=e[a]);a++)if((t||Z.acceptData(r))&&(i=r[l],n=i&&s[i],n)){if(n.events)for(o in n.events)u[o]?Z.event.remove(r,o):Z.removeEvent(r,o,n.handle);s[i]&&(delete s[i],c?delete r[l]:r.removeAttribute?r.removeAttribute(l):r[l]=null,Z.deletedIds.push(i))}}}),function(){var e,t;Z.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=Z.uaMatch(R.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),Z.browser=t,Z.sub=function(){function e(t,n){return new e.fn.init(t,n)}Z.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(n,i){return i&&i instanceof Z&&!(i instanceof e)&&(i=e(i)),Z.fn.init.call(this,n,i,t)},e.fn.init.prototype=e.fn;var t=e(W);return e}}();var rt,ot,at,lt=/alpha\([^)]*\)/i,st=/opacity=([^)]*)/,ct=/^(top|right|bottom|left)$/,ut=/^(none|table(?!-c[ea]).+)/,ft=/^margin/,dt=new RegExp("^("+ee+")(.*)$","i"),pt=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),ht=new RegExp("^([-+])=("+ee+")","i"),mt={BODY:"block"},yt={position:"absolute",visibility:"hidden",display:"block"},gt={letterSpacing:0,fontWeight:400},vt=["Top","Right","Bottom","Left"],bt=["Webkit","O","Moz","ms"],xt=Z.fn.toggle;Z.fn.extend({css:function(e,n){return Z.access(this,(function(e,n,i){return i!==t?Z.style(e,n,i):Z.css(e,n)}),e,n,arguments.length>1)},show:function(){return b(this,!0)},hide:function(){return b(this)},toggle:function(e,t){var n="boolean"==typeof e;return Z.isFunction(e)&&Z.isFunction(t)?xt.apply(this,arguments):this.each((function(){(n?e:v(this))?Z(this).show():Z(this).hide()}))}}),Z.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=rt(e,"opacity");return""===n?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{float:Z.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,i,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,l,s=Z.camelCase(n),c=e.style;if(n=Z.cssProps[s]||(Z.cssProps[s]=g(c,s)),l=Z.cssHooks[n]||Z.cssHooks[s],i===t)return l&&"get"in l&&(o=l.get(e,!1,r))!==t?o:c[n];if(a=Object(Me["a"])(i),"string"===a&&(o=ht.exec(i))&&(i=(o[1]+1)*o[2]+parseFloat(Z.css(e,n)),a="number"),!(null==i||"number"===a&&isNaN(i))&&("number"===a&&!Z.cssNumber[s]&&(i+="px"),!l||!("set"in l)||(i=l.set(e,i,r))!==t))try{c[n]=i}catch(Y){}}},css:function(e,n,i,r){var o,a,l,s=Z.camelCase(n);return n=Z.cssProps[s]||(Z.cssProps[s]=g(e.style,s)),l=Z.cssHooks[n]||Z.cssHooks[s],l&&"get"in l&&(o=l.get(e,!0,r)),o===t&&(o=rt(e,n)),"normal"===o&&n in gt&&(o=gt[n]),i||r!==t?(a=parseFloat(o),i||Z.isNumeric(a)?a||0:o):o},swap:function(e,t,n){var i,r,o={};for(r in t)o[r]=e.style[r],e.style[r]=t[r];for(r in i=n.call(e),t)e.style[r]=o[r];return i}}),e.getComputedStyle?rt=function(t,n){var i,r,o,a,l=e.getComputedStyle(t,null),s=t.style;return l&&(i=l.getPropertyValue(n)||l[n],""===i&&!Z.contains(t.ownerDocument,t)&&(i=Z.style(t,n)),pt.test(i)&&ft.test(n)&&(r=s.width,o=s.minWidth,a=s.maxWidth,s.minWidth=s.maxWidth=s.width=i,i=l.width,s.width=r,s.minWidth=o,s.maxWidth=a)),i}:W.documentElement.currentStyle&&(rt=function(e,t){var n,i,r=e.currentStyle&&e.currentStyle[t],o=e.style;return null==r&&o&&o[t]&&(r=o[t]),pt.test(r)&&!ct.test(t)&&(n=o.left,i=e.runtimeStyle&&e.runtimeStyle.left,i&&(e.runtimeStyle.left=e.currentStyle.left),o.left="fontSize"===t?"1em":r,r=o.pixelLeft+"px",o.left=n,i&&(e.runtimeStyle.left=i)),""===r?"auto":r}),Z.each(["height","width"],(function(e,t){Z.cssHooks[t]={get:function(e,n,i){if(n)return 0===e.offsetWidth&&ut.test(rt(e,"display"))?Z.swap(e,yt,(function(){return T(e,t,i)})):T(e,t,i)},set:function(e,n,i){return x(e,n,i?w(e,t,i,Z.support.boxSizing&&"border-box"===Z.css(e,"boxSizing")):0)}}})),Z.support.opacity||(Z.cssHooks.opacity={get:function(e,t){return st.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,i=e.currentStyle,r=Z.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=i&&i.filter||n.filter||"";n.zoom=1,t>=1&&""===Z.trim(o.replace(lt,""))&&n.removeAttribute&&(n.removeAttribute("filter"),i&&!i.filter)||(n.filter=lt.test(o)?o.replace(lt,r):o+" "+r)}}),Z((function(){Z.support.reliableMarginRight||(Z.cssHooks.marginRight={get:function(e,t){return Z.swap(e,{display:"inline-block"},(function(){if(t)return rt(e,"marginRight")}))}}),!Z.support.pixelPosition&&Z.fn.position&&Z.each(["top","left"],(function(e,t){Z.cssHooks[t]={get:function(e,n){if(n){var i=rt(e,t);return pt.test(i)?Z(e).position()[t]+"px":i}}}}))})),Z.expr&&Z.expr.filters&&(Z.expr.filters.hidden=function(e){return 0===e.offsetWidth&&0===e.offsetHeight||!Z.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||rt(e,"display"))},Z.expr.filters.visible=function(e){return!Z.expr.filters.hidden(e)}),Z.each({margin:"",padding:"",border:"Width"},(function(e,t){Z.cssHooks[e+t]={expand:function(n){var i,r="string"==typeof n?n.split(" "):[n],o={};for(i=0;i<4;i++)o[e+vt[i]+t]=r[i]||r[i-2]||r[0];return o}},ft.test(e)||(Z.cssHooks[e+t].set=x)}));var wt=/%20/g,Tt=/\[\]$/,kt=/\r?\n/g,Ct=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,Et=/^(?:select|textarea)/i;Z.fn.extend({serialize:function(){return Z.param(this.serializeArray())},serializeArray:function(){return this.map((function(){return this.elements?Z.makeArray(this.elements):this})).filter((function(){return this.name&&!this.disabled&&(this.checked||Et.test(this.nodeName)||Ct.test(this.type))})).map((function(e,t){var n=Z(this).val();return null==n?null:Z.isArray(n)?Z.map(n,(function(e,n){return{name:t.name,value:e.replace(kt,"\r\n")}})):{name:t.name,value:n.replace(kt,"\r\n")}})).get()}}),Z.param=function(e,n){var i,r=[],o=function(e,t){t=Z.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=Z.ajaxSettings&&Z.ajaxSettings.traditional),Z.isArray(e)||e.jquery&&!Z.isPlainObject(e))Z.each(e,(function(){o(this.name,this.value)}));else for(i in e)C(i,e[i],n,o);return r.join("&").replace(wt,"+")};var zt,Ft,Mt=/#.*$/,Nt=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Lt=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,St=/^(?:GET|HEAD)$/,jt=/^\/\//,At=/\?/,Ht=/)<[^<]*)*<\/script>/gi,Bt=/([?&])_=[^&]*/,Dt=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Ot=Z.fn.load,_t={},Pt={},It=["*/"]+["*"];try{Ft=$.href}catch(nn){Ft=W.createElement("a"),Ft.href="",Ft=Ft.href}zt=Dt.exec(Ft.toLowerCase())||[],Z.fn.load=function(e,n,i){if("string"!=typeof e&&Ot)return Ot.apply(this,arguments);if(!this.length)return this;var r,o,a,l=this,s=e.indexOf(" ");return s>=0&&(r=e.slice(s,e.length),e=e.slice(0,s)),Z.isFunction(n)?(i=n,n=t):n&&"object"==Object(Me["a"])(n)&&(o="POST"),Z.ajax({url:e,type:o,dataType:"html",data:n,complete:function(e,t){i&&l.each(i,a||[e.responseText,t,e])}}).done((function(e){a=arguments,l.html(r?Z("
").append(e.replace(Ht,"")).find(r):e)})),this},Z.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),(function(e,t){Z.fn[t]=function(e){return this.on(t,e)}})),Z.each(["get","post"],(function(e,n){Z[n]=function(e,i,r,o){return Z.isFunction(i)&&(o=o||r,r=i,i=t),Z.ajax({type:n,url:e,data:i,success:r,dataType:o})}})),Z.extend({getScript:function(e,n){return Z.get(e,t,n,"script")},getJSON:function(e,t,n){return Z.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?F(e,Z.ajaxSettings):(t=e,e=Z.ajaxSettings),F(e,t),e},ajaxSettings:{url:Ft,isLocal:Lt.test(zt[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":It},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":Z.parseJSON,"text xml":Z.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:E(_t),ajaxTransport:E(Pt),ajax:function(e,n){function i(e,n,i,a){var c,f,v,b,w,k=n;2!==x&&(x=2,s&&clearTimeout(s),l=t,o=a||"",T.readyState=e>0?4:0,i&&(b=M(d,T,i)),e>=200&&e<300||304===e?(d.ifModified&&(w=T.getResponseHeader("Last-Modified"),w&&(Z.lastModified[r]=w),w=T.getResponseHeader("Etag"),w&&(Z.etag[r]=w)),304===e?(k="notmodified",c=!0):(c=N(d,b),k=c.state,f=c.data,v=c.error,c=!v)):(v=k,k&&!e||(k="error",e<0&&(e=0))),T.status=e,T.statusText=(n||k)+"",c?m.resolveWith(p,[f,k,T]):m.rejectWith(p,[T,k,v]),T.statusCode(g),g=t,u&&h.trigger("ajax"+(c?"Success":"Error"),[T,d,c?f:v]),y.fireWith(p,[T,k]),u&&(h.trigger("ajaxComplete",[T,d]),--Z.active||Z.event.trigger("ajaxStop")))}"object"==Object(Me["a"])(e)&&(n=e,e=t),n=n||{};var r,o,a,l,s,c,u,f,d=Z.ajaxSetup({},n),p=d.context||d,h=p!==d&&(p.nodeType||p instanceof Z)?Z(p):Z.event,m=Z.Deferred(),y=Z.Callbacks("once memory"),g=d.statusCode||{},v={},b={},x=0,w="canceled",T={readyState:0,setRequestHeader:function(e,t){if(!x){var n=e.toLowerCase();e=b[n]=b[n]||e,v[e]=t}return this},getAllResponseHeaders:function(){return 2===x?o:null},getResponseHeader:function(e){var n;if(2===x){if(!a){a={};while(n=Nt.exec(o))a[n[1].toLowerCase()]=n[2]}n=a[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return x||(d.mimeType=e),this},abort:function(e){return e=e||w,l&&l.abort(e),i(0,e),this}};if(m.promise(T),T.success=T.done,T.error=T.fail,T.complete=y.add,T.statusCode=function(e){var t;if(e)if(x<2)for(t in e)g[t]=[g[t],e[t]];else t=e[T.status],T.always(t);return this},d.url=((e||d.url)+"").replace(Mt,"").replace(jt,zt[1]+"//"),d.dataTypes=Z.trim(d.dataType||"*").toLowerCase().split(ne),null==d.crossDomain&&(c=Dt.exec(d.url.toLowerCase()),d.crossDomain=!(!c||c[1]===zt[1]&&c[2]===zt[2]&&(c[3]||("http:"===c[1]?80:443))==(zt[3]||("http:"===zt[1]?80:443)))),d.data&&d.processData&&"string"!=typeof d.data&&(d.data=Z.param(d.data,d.traditional)),z(_t,d,n,T),2===x)return T;if(u=d.global,d.type=d.type.toUpperCase(),d.hasContent=!St.test(d.type),u&&0===Z.active++&&Z.event.trigger("ajaxStart"),!d.hasContent&&(d.data&&(d.url+=(At.test(d.url)?"&":"?")+d.data,delete d.data),r=d.url,!1===d.cache)){var k=Z.now(),C=d.url.replace(Bt,"$1_="+k);d.url=C+(C===d.url?(At.test(d.url)?"&":"?")+"_="+k:"")}for(f in(d.data&&d.hasContent&&!1!==d.contentType||n.contentType)&&T.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(r=r||d.url,Z.lastModified[r]&&T.setRequestHeader("If-Modified-Since",Z.lastModified[r]),Z.etag[r]&&T.setRequestHeader("If-None-Match",Z.etag[r])),T.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+It+"; q=0.01":""):d.accepts["*"]),d.headers)T.setRequestHeader(f,d.headers[f]);if(!d.beforeSend||!1!==d.beforeSend.call(p,T,d)&&2!==x){for(f in w="abort",{success:1,error:1,complete:1})T[f](d[f]);if(l=z(Pt,d,n,T),l){T.readyState=1,u&&h.trigger("ajaxSend",[T,d]),d.async&&d.timeout>0&&(s=setTimeout((function(){T.abort("timeout")}),d.timeout));try{x=1,l.send(v,i)}catch(fe){if(!(x<2))throw fe;i(-1,fe)}}else i(-1,"No Transport");return T}return T.abort()},active:0,lastModified:{},etag:{}});var qt=[],Wt=/\?/,$t=/(=)\?(?=&|$)|\?\?/,Rt=Z.now();Z.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=qt.pop()||Z.expando+"_"+Rt++;return this[e]=!0,e}}),Z.ajaxPrefilter("json jsonp",(function(n,i,r){var o,a,l,s=n.data,c=n.url,u=!1!==n.jsonp,f=u&&$t.test(c),d=u&&!f&&"string"==typeof s&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&$t.test(s);if("jsonp"===n.dataTypes[0]||f||d)return o=n.jsonpCallback=Z.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,a=e[o],f?n.url=c.replace($t,"$1"+o):d?n.data=s.replace($t,"$1"+o):u&&(n.url+=(Wt.test(c)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return l||Z.error(o+" was not called"),l[0]},n.dataTypes[0]="json",e[o]=function(){l=arguments},r.always((function(){e[o]=a,n[o]&&(n.jsonpCallback=i.jsonpCallback,qt.push(o)),l&&Z.isFunction(a)&&a(l[0]),l=a=t})),"script"})),Z.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return Z.globalEval(e),e}}}),Z.ajaxPrefilter("script",(function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)})),Z.ajaxTransport("script",(function(e){if(e.crossDomain){var n,i=W.head||W.getElementsByTagName("head")[0]||W.documentElement;return{send:function(r,o){n=W.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,r){(r||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,i&&n.parentNode&&i.removeChild(n),n=t,r||o(200,"success"))},i.insertBefore(n,i.firstChild)},abort:function(){n&&n.onload(0,1)}}}}));var Vt,Xt=!!e.ActiveXObject&&function(){for(var e in Vt)Vt[e](0,1)},Ut=0;Z.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&L()||S()}:L,function(e){Z.extend(Z.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(Z.ajaxSettings.xhr()),Z.support.ajax&&Z.ajaxTransport((function(n){var i;if(!n.crossDomain||Z.support.cors)return{send:function(r,o){var a,l,s=n.xhr();if(n.username?s.open(n.type,n.url,n.async,n.username,n.password):s.open(n.type,n.url,n.async),n.xhrFields)for(l in n.xhrFields)s[l]=n.xhrFields[l];n.mimeType&&s.overrideMimeType&&s.overrideMimeType(n.mimeType),!n.crossDomain&&!r["X-Requested-With"]&&(r["X-Requested-With"]="XMLHttpRequest");try{for(l in r)s.setRequestHeader(l,r[l])}catch(U){}s.send(n.hasContent&&n.data||null),i=function(e,r){var l,c,u,f,d;try{if(i&&(r||4===s.readyState))if(i=t,a&&(s.onreadystatechange=Z.noop,Xt&&delete Vt[a]),r)4!==s.readyState&&s.abort();else{l=s.status,u=s.getAllResponseHeaders(),f={},d=s.responseXML,d&&d.documentElement&&(f.xml=d);try{f.text=s.responseText}catch(Q){}try{c=s.statusText}catch(Q){c=""}l||!n.isLocal||n.crossDomain?1223===l&&(l=204):l=f.text?200:404}}catch(K){r||o(-1,K)}f&&o(l,c,f,u)},n.async?4===s.readyState?setTimeout(i,0):(a=++Ut,Xt&&(Vt||(Vt={},Z(e).unload(Xt)),Vt[a]=i),s.onreadystatechange=i):i()},abort:function(){i&&i(0,1)}}}));var Yt,Jt,Gt=/^(?:toggle|show|hide)$/,Qt=new RegExp("^(?:([-+])=|)("+ee+")([a-z%]*)$","i"),Kt=/queueHooks$/,Zt=[D],en={"*":[function(e,t){var n,i,r=this.createTween(e,t),o=Qt.exec(t),a=r.cur(),l=+a||0,s=1,c=20;if(o){if(n=+o[2],i=o[3]||(Z.cssNumber[e]?"":"px"),"px"!==i&&l){l=Z.css(r.elem,e,!0)||n||1;do{s=s||".5",l/=s,Z.style(r.elem,e,l+i)}while(s!==(s=r.cur()/a)&&1!==s&&--c)}r.unit=i,r.start=l,r.end=o[1]?l+(o[1]+1)*n:n}return r}]};Z.Animation=Z.extend(H,{tweener:function(e,t){Z.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,i=0,r=e.length;i-1,f={},d={};u?(d=a.position(),r=d.top,o=d.left):(r=parseFloat(s)||0,o=parseFloat(c)||0),Z.isFunction(t)&&(t=t.call(e,n,l)),null!=t.top&&(f.top=t.top-l.top+r),null!=t.left&&(f.left=t.left-l.left+o),"using"in t?t.using.call(e,f):a.css(f)}},Z.fn.extend({position:function(){if(this[0]){var e=this[0],t=this.offsetParent(),n=this.offset(),i=tn.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(Z.css(e,"marginTop"))||0,n.left-=parseFloat(Z.css(e,"marginLeft"))||0,i.top+=parseFloat(Z.css(t[0],"borderTopWidth"))||0,i.left+=parseFloat(Z.css(t[0],"borderLeftWidth"))||0,{top:n.top-i.top,left:n.left-i.left}}},offsetParent:function(){return this.map((function(){var e=this.offsetParent||W.body;while(e&&!tn.test(e.nodeName)&&"static"===Z.css(e,"position"))e=e.offsetParent;return e||W.body}))}}),Z.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},(function(e,n){var i=/Y/.test(n);Z.fn[e]=function(r){return Z.access(this,(function(e,r,o){var a=P(e);if(o===t)return a?n in a?a[n]:a.document.documentElement[r]:e[r];a?a.scrollTo(i?Z(a).scrollLeft():o,i?o:Z(a).scrollTop()):e[r]=o}),e,r,arguments.length,null)}})),Z.each({Height:"height",Width:"width"},(function(e,n){Z.each({padding:"inner"+e,content:n,"":"outer"+e},(function(i,r){Z.fn[r]=function(r,o){var a=arguments.length&&(i||"boolean"!=typeof r),l=i||(!0===r||!0===o?"margin":"border");return Z.access(this,(function(n,i,r){var o;return Z.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):r===t?Z.css(n,i,r,l):Z.style(n,i,r,l)}),n,a?r:t,a,null)}}))})),e.jQuery=e.$=Z,"function"==typeof define&&n("3c35")&&n("3c35").jQuery&&define("jquery",[],(function(){return Z}))})(window),function(e,t){var i,r,o=e.layui&&layui.define,a={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,n=t.length-1,i=n;i>0;i--)if("interactive"===t[i].readyState){e=t[i].src;break}return e||t[n].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),config:{},end:{},minIndex:0,minLeft:[],btn:["确定","取消"],type:["dialog","page","iframe","loading","tips"],getStyle:function(t,n){var i=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return i[i.getPropertyValue?"getPropertyValue":"getAttribute"](n)},link:function(t,n,i){if(l.path){var r=document.getElementsByTagName("head")[0],o=document.createElement("link");"string"===typeof n&&(i=n);var s=(i||t).replace(/\.|\//g,""),c="layuicss-"+s,u=0;o.rel="stylesheet",o.href=l.path+t,o.id=c,document.getElementById(c)||r.appendChild(o),"function"===typeof n&&function t(){if(++u>80)return e.console&&console.error("layer.css: Invalid");1989===parseInt(a.getStyle(document.getElementById(c),"width"))?n():setTimeout(t,100)}()}}},l={v:"3.1.1",ie:function(){var t=navigator.userAgent.toLowerCase();return!!(e.ActiveXObject||"ActiveXObject"in e)&&((t.match(/msie\s(\d+)/)||[])[1]||"11")}(),index:e.layer&&e.layer.v?1e5:0,path:a.getPath,config:function(e,t){return e=e||{},l.cache=a.config=i.extend({},a.config,e),l.path=a.config.path||l.path,"string"===typeof e.extend&&(e.extend=[e.extend]),a.config.path&&l.ready(),e.extend?(o?layui.addcss("modules/layer/"+e.extend):a.link("theme/"+e.extend),this):this},ready:function(e){return this},alert:function(e,t,n){var r="function"===typeof t;return r&&(n=t),l.open(i.extend({content:e,yes:n},r?{}:t))},confirm:function(e,t,n,r){var o="function"===typeof t;return o&&(r=n,n=t),l.open(i.extend({content:e,btn:a.btn,yes:n,btn2:r},o?{}:t))},msg:function(e,n,r){var o="function"===typeof n,s=a.config.skin,u=(s?s+" "+s+"-msg":"")||"layui-layer-msg",f=c.anim.length-1;return o&&(r=n),l.open(i.extend({content:e,time:3e3,shade:!1,skin:u,title:!1,closeBtn:!1,btn:!1,resize:!1,end:r},o&&!a.config.skin?{skin:u+" layui-layer-hui",anim:f}:function(){return n=n||{},(-1===n.icon||n.icon===t&&!a.config.skin)&&(n.skin=u+" "+(n.skin||"layui-layer-hui")),n}()))},load:function(e,t){return l.open(i.extend({type:3,icon:e||0,resize:!1,shade:.01},t))},tips:function(e,t,n){return l.open(i.extend({type:4,content:[e,t],closeBtn:!1,time:3e3,shade:!1,resize:!1,fixed:!1,maxWidth:210},n))}},s=function(e){var t=this;t.index=++l.index,t.config=i.extend({},t.config,a.config,e),document.body?t.creat():setTimeout((function(){t.creat()}),30)};s.pt=s.prototype;var c=["layui-layer",".layui-layer-title",".layui-layer-main",".layui-layer-dialog","layui-layer-iframe","layui-layer-content","layui-layer-btn","layui-layer-close"];c.anim=["layer-anim-00","layer-anim-01","layer-anim-02","layer-anim-03","layer-anim-04","layer-anim-05","layer-anim-06"],s.pt.config={type:0,shade:.3,fixed:!0,move:c[1],title:"信息",offset:"auto",area:"auto",closeBtn:1,time:0,zIndex:19891014,maxWidth:360,anim:0,isOutAnim:!0,icon:-1,moveType:1,resize:!0,scrollbar:!0,tips:2},s.pt.vessel=function(e,t){var n=this,r=n.index,o=n.config,l=o.zIndex+r,s="object"===Object(Me["a"])(o.title),u=o.maxmin&&(1===o.type||2===o.type),f=o.title?'
'+(s?o.title[0]:o.title)+"
":"";return o.zIndex=l,t([o.shade?'
':"",'
'+(e&&2!=o.type?"":f)+'
'+(0==o.type&&-1!==o.icon?'':"")+(1==o.type&&e?"":o.content||"")+'
'+function(){var e=u?'':"";return o.closeBtn&&(e+=''),e}()+""+(o.btn?function(){var e="";"string"===typeof o.btn&&(o.btn=[o.btn]);for(var t=0,n=o.btn.length;t'+o.btn[t]+"";return'
'+e+"
"}():"")+(o.resize?'':"")+"
"],f,i('
')),n},s.pt.creat=function(){var e=this,t=e.config,n=e.index,o=t.content,s="object"===Object(Me["a"])(o),u=i("body");if(!t.id||!i("#"+t.id)[0]){switch("string"===typeof t.area&&(t.area="auto"===t.area?["",""]:[t.area,""]),t.shift&&(t.anim=t.shift),6==l.ie&&(t.fixed=!1),t.type){case 0:t.btn="btn"in t?t.btn:a.btn[0],l.closeAll("dialog");break;case 2:o=t.content=s?t.content:[t.content||"http://layer.layui.com","auto"];t.content='';break;case 3:delete t.title,delete t.closeBtn,-1===t.icon&&t.icon,l.closeAll("loading");break;case 4:s||(t.content=[t.content,"body"]),t.follow=t.content[1],t.content=t.content[0]+'',delete t.title,t.tips="object"===Object(Me["a"])(t.tips)?t.tips:[t.tips,!0],t.tipsMore||l.closeAll("tips");break}if(e.vessel(s,(function(r,l,f){u.append(r[0]),s?function(){2==t.type||4==t.type?function(){i("body").append(r[1])}():function(){o.parents("."+c[0])[0]||(o.data("display",o.css("display")).show().addClass("layui-layer-wrap").wrap(r[1]),i("#"+c[0]+n).find("."+c[5]).before(l))}()}():u.append(r[1]),i(".layui-layer-move")[0]||u.append(a.moveElem=f),e.layero=i("#"+c[0]+n),t.scrollbar||c.html.css("overflow","hidden").attr("layer-full",n)})).auto(n),i("#layui-layer-shade"+e.index).css({"background-color":t.shade[1]||"#000",opacity:t.shade[0]||t.shade}),2==t.type&&6==l.ie&&e.layero.find("iframe").attr("src",o[0]),4==t.type?e.tips():e.offset(),t.fixed&&r.on("resize",(function(){e.offset(),(/^\d+%$/.test(t.area[0])||/^\d+%$/.test(t.area[1]))&&e.auto(n),4==t.type&&e.tips()})),t.time<=0||setTimeout((function(){l.close(e.index)}),t.time),e.move().callback(),c.anim[t.anim]){var f="layer-anim "+c.anim[t.anim];e.layero.addClass(f).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",(function(){i(this).removeClass(f)}))}t.isOutAnim&&e.layero.data("isOutAnim",!0)}},s.pt.auto=function(e){var t=this,n=t.config,o=i("#"+c[0]+e);""===n.area[0]&&n.maxWidth>0&&(l.ie&&l.ie<8&&n.btn&&o.width(o.innerWidth()),o.outerWidth()>n.maxWidth&&o.width(n.maxWidth));var a=[o.innerWidth(),o.innerHeight()],s=o.find(c[1]).outerHeight()||0,u=o.find("."+c[6]).outerHeight()||0,f=function(e){e=o.find(e),e.height(a[1]-s-u-2*(0|parseFloat(e.css("padding-top"))))};switch(n.type){case 2:f("iframe");break;default:""===n.area[1]?n.maxHeight>0&&o.outerHeight()>n.maxHeight?(a[1]=n.maxHeight,f("."+c[5])):n.fixed&&a[1]>=r.height()&&(a[1]=r.height(),f("."+c[5])):f("."+c[5]);break}return t},s.pt.offset=function(){var e=this,t=e.config,n=e.layero,i=[n.outerWidth(),n.outerHeight()],o="object"===Object(Me["a"])(t.offset);e.offsetTop=(r.height()-i[1])/2,e.offsetLeft=(r.width()-i[0])/2,o?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):"auto"!==t.offset&&("t"===t.offset?e.offsetTop=0:"r"===t.offset?e.offsetLeft=r.width()-i[0]:"b"===t.offset?e.offsetTop=r.height()-i[1]:"l"===t.offset?e.offsetLeft=0:"lt"===t.offset?(e.offsetTop=0,e.offsetLeft=0):"lb"===t.offset?(e.offsetTop=r.height()-i[1],e.offsetLeft=0):"rt"===t.offset?(e.offsetTop=0,e.offsetLeft=r.width()-i[0]):"rb"===t.offset?(e.offsetTop=r.height()-i[1],e.offsetLeft=r.width()-i[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?r.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?r.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=r.scrollTop(),e.offsetLeft+=r.scrollLeft()),n.attr("minLeft")&&(e.offsetTop=r.height()-(n.find(c[1]).outerHeight()||0),e.offsetLeft=n.css("left")),n.css({top:e.offsetTop,left:e.offsetLeft})},s.pt.tips=function(){var e=this,t=e.config,n=e.layero,o=[n.outerWidth(),n.outerHeight()],a=i(t.follow);a[0]||(a=i("body"));var l={width:a.outerWidth(),height:a.outerHeight(),top:a.offset().top,left:a.offset().left},s=n.find(".layui-layer-TipsG"),u=t.tips[0];t.tips[1]||s.remove(),l.autoLeft=function(){l.left+o[0]-r.width()>0?(l.tipLeft=l.left+l.width-o[0],s.css({right:12,left:"auto"})):l.tipLeft=l.left},l.where=[function(){l.autoLeft(),l.tipTop=l.top-o[1]-10,s.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",t.tips[1])},function(){l.tipLeft=l.left+l.width+10,l.tipTop=l.top,s.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",t.tips[1])},function(){l.autoLeft(),l.tipTop=l.top+l.height+10,s.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",t.tips[1])},function(){l.tipLeft=l.left-o[0]-10,l.tipTop=l.top,s.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",t.tips[1])}],l.where[u-1](),1===u?l.top-(r.scrollTop()+o[1]+16)<0&&l.where[2]():2===u?r.width()-(l.left+l.width+o[0]+16)>0||l.where[3]():3===u?l.top-r.scrollTop()+l.height+o[1]+16-r.height()>0&&l.where[0]():4===u&&o[0]+16-l.left>0&&l.where[1](),n.find("."+c[5]).css({"background-color":t.tips[1],"padding-right":t.closeBtn?"30px":""}),n.css({left:l.tipLeft-(t.fixed?r.scrollLeft():0),top:l.tipTop-(t.fixed?r.scrollTop():0)})},s.pt.move=function(){var e=this,t=e.config,n=i(document),o=e.layero,s=o.find(t.move),c=o.find(".layui-layer-resize"),u={};return t.move&&s.css("cursor","move"),s.on("mousedown",(function(e){e.preventDefault(),t.move&&(u.moveStart=!0,u.offset=[e.clientX-parseFloat(o.css("left")),e.clientY-parseFloat(o.css("top"))],a.moveElem.css("cursor","move").show())})),c.on("mousedown",(function(e){e.preventDefault(),u.resizeStart=!0,u.offset=[e.clientX,e.clientY],u.area=[o.outerWidth(),o.outerHeight()],a.moveElem.css("cursor","se-resize").show()})),n.on("mousemove",(function(n){if(u.moveStart){var i=n.clientX-u.offset[0],a=n.clientY-u.offset[1],s="fixed"===o.css("position");if(n.preventDefault(),u.stX=s?0:r.scrollLeft(),u.stY=s?0:r.scrollTop(),!t.moveOut){var c=r.width()-o.outerWidth()+u.stX,f=r.height()-o.outerHeight()+u.stY;ic&&(i=c),af&&(a=f)}o.css({left:i,top:a})}if(t.resize&&u.resizeStart){i=n.clientX-u.offset[0],a=n.clientY-u.offset[1];n.preventDefault(),l.style(e.index,{width:u.area[0]+i,height:u.area[1]+a}),u.isResize=!0,t.resizing&&t.resizing(o)}})).on("mouseup",(function(e){u.moveStart&&(delete u.moveStart,a.moveElem.hide(),t.moveEnd&&t.moveEnd(o)),u.resizeStart&&(delete u.resizeStart,a.moveElem.hide())})),e},s.pt.callback=function(){var e=this,t=e.layero,n=e.config;function r(){var i=n.cancel&&n.cancel(e.index,t);!1===i||l.close(e.index)}e.openLayer(),n.success&&(2==n.type?t.find("iframe").on("load",(function(){n.success(t,e.index)})):n.success(t,e.index)),6==l.ie&&e.IE6(t),t.find("."+c[6]).children("a").on("click",(function(){var r=i(this).index();if(0===r)n.yes?n.yes(e.index,t):n["btn1"]?n["btn1"](e.index,t):l.close(e.index);else{var o=n["btn"+(r+1)]&&n["btn"+(r+1)](e.index,t);!1===o||l.close(e.index)}})),t.find("."+c[7]).on("click",r),n.shadeClose&&i("#layui-layer-shade"+e.index).on("click",(function(){l.close(e.index)})),t.find(".layui-layer-min").on("click",(function(){var i=n.min&&n.min(t);!1===i||l.min(e.index,n)})),t.find(".layui-layer-max").on("click",(function(){i(this).hasClass("layui-layer-maxmin")?(l.restore(e.index),n.restore&&n.restore(t)):(l.full(e.index,n),setTimeout((function(){n.full&&n.full(t)}),100))})),n.end&&(a.end[e.index]=n.end)},a.reselect=function(){i.each(i("select"),(function(e,t){var n=i(this);n.parents("."+c[0])[0]||1==n.attr("layer")&&i("."+c[0]).length<1&&n.removeAttr("layer").show(),n=null}))},s.pt.IE6=function(e){i("select").each((function(e,t){var n=i(this);n.parents("."+c[0])[0]||"none"===n.css("display")||n.attr({layer:"1"}).hide(),n=null}))},s.pt.openLayer=function(){var e=this;l.zIndex=e.config.zIndex,l.setTop=function(e){var t=function(){l.zIndex++,e.css("z-index",l.zIndex+1)};return l.zIndex=parseInt(e[0].style.zIndex),e.on("mousedown",t),l.zIndex}},a.record=function(e){var t=[e.width(),e.height(),e.position().top,e.position().left+parseFloat(e.css("margin-left"))];e.find(".layui-layer-max").addClass("layui-layer-maxmin"),e.attr({area:t})},a.rescollbar=function(e){c.html.attr("layer-full")==e&&(c.html[0].style.removeProperty?c.html[0].style.removeProperty("overflow"):c.html[0].style.removeAttribute("overflow"),c.html.removeAttr("layer-full"))},e.layer=l,l.getChildFrame=function(e,t){return t=t||i("."+c[4]).attr("times"),i("#"+c[0]+t).find("iframe").contents().find(e)},l.getFrameIndex=function(e){return i("#"+e).parents("."+c[4]).attr("times")},l.iframeAuto=function(e){if(e){var t=l.getChildFrame("html",e).outerHeight(),n=i("#"+c[0]+e),r=n.find(c[1]).outerHeight()||0,o=n.find("."+c[6]).outerHeight()||0;n.css({height:t+r+o}),n.find("iframe").css({height:t})}},l.iframeSrc=function(e,t){i("#"+c[0]+e).find("iframe").attr("src",t)},l.style=function(e,t,n){var r=i("#"+c[0]+e),o=r.find(".layui-layer-content"),l=r.attr("type"),s=r.find(c[1]).outerHeight()||0,u=r.find("."+c[6]).outerHeight()||0;r.attr("minLeft");l!==a.type[3]&&l!==a.type[4]&&(n||(parseFloat(t.width)<=260&&(t.width=260),parseFloat(t.height)-s-u<=64&&(t.height=64+s+u)),r.css(t),u=r.find("."+c[6]).outerHeight(),l===a.type[2]?r.find("iframe").css({height:parseFloat(t.height)-s-u}):o.css({height:parseFloat(t.height)-s-u-parseFloat(o.css("padding-top"))-parseFloat(o.css("padding-bottom"))}))},l.min=function(e,t){var n=i("#"+c[0]+e),o=n.find(c[1]).outerHeight()||0,s=n.attr("minLeft")||181*a.minIndex+"px",u=n.css("position");a.record(n),a.minLeft[0]&&(s=a.minLeft[0],a.minLeft.shift()),n.attr("position",u),l.style(e,{width:180,height:o,left:s,top:r.height()-o,position:"fixed",overflow:"hidden"},!0),n.find(".layui-layer-min").hide(),"page"===n.attr("type")&&n.find(c[4]).hide(),a.rescollbar(e),n.attr("minLeft")||a.minIndex++,n.attr("minLeft",s)},l.restore=function(e){var t=i("#"+c[0]+e),n=t.attr("area").split(",");t.attr("type");l.style(e,{width:parseFloat(n[0]),height:parseFloat(n[1]),top:parseFloat(n[2]),left:parseFloat(n[3]),position:t.attr("position"),overflow:"visible"},!0),t.find(".layui-layer-max").removeClass("layui-layer-maxmin"),t.find(".layui-layer-min").show(),"page"===t.attr("type")&&t.find(c[4]).show(),a.rescollbar(e)},l.full=function(e){var t,n=i("#"+c[0]+e);a.record(n),c.html.attr("layer-full")||c.html.css("overflow","hidden").attr("layer-full",e),clearTimeout(t),t=setTimeout((function(){var t="fixed"===n.css("position");l.style(e,{top:t?0:r.scrollTop(),left:t?0:r.scrollLeft(),width:r.width(),height:r.height()},!0),n.find(".layui-layer-min").hide()}),100)},l.title=function(e,t){var n=i("#"+c[0]+(t||l.index)).find(c[1]);n.html(e)},l.close=function(e){var t=i("#"+c[0]+e),n=t.attr("type"),r="layer-anim-close";if(t[0]){var o="layui-layer-wrap",s=function(){if(n===a.type[1]&&"object"===t.attr("conType")){t.children(":not(."+c[5]+")").remove();for(var r=t.find("."+o),l=0;l<2;l++)r.unwrap();r.css("display",r.data("display")).removeClass(o)}else{if(n===a.type[2])try{var s=i("#"+c[4]+e)[0];s.contentWindow.document.write(""),s.contentWindow.close(),t.find("."+c[5])[0].removeChild(s)}catch(u){}t[0].innerHTML="",t.remove()}"function"===typeof a.end[e]&&a.end[e](),delete a.end[e]};t.data("isOutAnim")&&t.addClass("layer-anim "+r),i("#layui-layer-moves, #layui-layer-shade"+e).remove(),6==l.ie&&a.reselect(),a.rescollbar(e),t.attr("minLeft")&&(a.minIndex--,a.minLeft.push(t.attr("minLeft"))),l.ie&&l.ie<10||!t.data("isOutAnim")?s():setTimeout((function(){s()}),200)}},l.closeAll=function(e){i.each(i("."+c[0]),(function(){var t=i(this),n=e?t.attr("type")===e:1;n&&l.close(t.attr("times")),n=null}))};var u=l.cache||{},f=function(e){return u.skin?" "+u.skin+" "+u.skin+"-"+e:""};l.prompt=function(e,t){var n="";if(e=e||{},"function"===typeof e&&(t=e),e.area){var o=e.area;n='style="width: '+o[0]+"; height: "+o[1]+';"',delete e.area}var a,s=2==e.formType?'":function(){return''}(),c=e.success;return delete e.success,l.open(i.extend({type:1,btn:["确定","取消"],content:s,skin:"layui-layer-prompt"+f("prompt"),maxWidth:r.width(),success:function(e){a=e.find(".layui-layer-input"),a.focus(),"function"===typeof c&&c(e)},resize:!1,yes:function(n){var i=a.val();""===i?a.focus():i.length>(e.maxlength||500)?l.tips("最多输入"+(e.maxlength||500)+"个字数",a,{tips:1}):t&&t(i,n,a)}},e))},l.tab=function(e){e=e||{};var t=e.tab||{},n="layui-this",r=e.success;return delete e.success,l.open(i.extend({type:1,skin:"layui-layer-tab"+f("tab"),resize:!1,title:function(){var e=t.length,i=1,r="";if(e>0)for(r=''+t[0].title+"";i"+t[i].title+"";return r}(),content:'
    '+function(){var e=t.length,i=1,r="";if(e>0)for(r='
  • '+(t[0].content||"no content")+"
  • ";i'+(t[i].content||"no content")+"";return r}()+"
",success:function(t){var o=t.find(".layui-layer-title").children(),a=t.find(".layui-layer-tabmain").children();o.on("mousedown",(function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0;var r=i(this),o=r.index();r.addClass(n).siblings().removeClass(n),a.eq(o).show().siblings().hide(),"function"===typeof e.change&&e.change(o)})),"function"===typeof r&&r(t)}},e))},l.photos=function(t,n,r){var o={};if(t=t||{},t.photos){var a=t.photos.constructor===Object,s=a?t.photos:{},c=s.data||[],u=s.start||0;o.imgIndex=1+(0|u),t.img=t.img||"img";var d=t.success;if(delete t.success,a){if(0===c.length)return l.msg("没有图片")}else{var p=i(t.photos),h=function(){c=[],p.find(t.img).each((function(e){var t=i(this);t.attr("layer-index",e),c.push({alt:t.attr("alt"),pid:t.attr("layer-pid"),src:t.attr("layer-src")||t.attr("src"),thumb:t.attr("src")})}))};if(h(),0===c.length)return;if(n||p.on("click",t.img,(function(){var e=i(this),n=e.attr("layer-index");l.photos(i.extend(t,{photos:{start:n,data:c,tab:t.tab},full:t.full}),!0),h()})),!n)return}o.imgprev=function(e){o.imgIndex--,o.imgIndex<1&&(o.imgIndex=c.length),o.tabimg(e)},o.imgnext=function(e,t){o.imgIndex++,o.imgIndex>c.length&&(o.imgIndex=1,t)||o.tabimg(e)},o.keyup=function(e){if(!o.end){var t=e.keyCode;e.preventDefault(),37===t?o.imgprev(!0):39===t?o.imgnext(!0):27===t&&l.close(o.index)}},o.tabimg=function(e){if(!(c.length<=1))return s.start=o.imgIndex-1,l.close(o.index),l.photos(t,!0,e)},o.event=function(){o.bigimg.hover((function(){o.imgsee.show()}),(function(){o.imgsee.hide()})),o.bigimg.find(".layui-layer-imgprev").on("click",(function(e){e.preventDefault(),o.imgprev()})),o.bigimg.find(".layui-layer-imgnext").on("click",(function(e){e.preventDefault(),o.imgnext()})),i(document).on("keyup",o.keyup)},o.loadi=l.load(1,{shade:!("shade"in t)&&.9,scrollbar:!1}),m(c[u].src,(function(n){l.close(o.loadi),o.index=l.open(i.extend({type:1,id:"layui-layer-photos",area:function(){var r=[n.width,n.height],o=[i(e).width()-100,i(e).height()-100];if(!t.full&&(r[0]>o[0]||r[1]>o[1])){var a=[r[0]/o[0],r[1]/o[1]];a[0]>a[1]?(r[0]=r[0]/a[0],r[1]=r[1]/a[0]):a[0]'+(c[u].alt||
'+(c.length>1?'':"")+'
'+(c[u].alt||"")+""+o.imgIndex+"/"+c.length+"
",success:function(e,n){o.bigimg=e.find(".layui-layer-phimg"),o.imgsee=e.find(".layui-layer-imguide,.layui-layer-imgbar"),o.event(e),t.tab&&t.tab(c[u],e),"function"===typeof d&&d(e)},end:function(){o.end=!0,i(document).off("keyup",o.keyup)}},t))}),(function(){l.close(o.loadi),l.msg("当前图片地址异常
是否继续查看下一张?",{time:3e4,btn:["下一张","不看了"],yes:function(){c.length>1&&o.imgnext(!0,!0)}})}))}function m(e,t,n){var i=new Image;if(i.src=e,i.complete)return t(i);i.onload=function(){i.onload=null,t(i)},i.onerror=function(e){i.onerror=null,n(e)}}},a.run=function(t){i=t,r=i(e),c.html=i("html"),l.open=function(e){var t=new s(e);return t.index}},e.layui&&layui.define?(l.ready(),layui.define("jquery",(function(t){l.path=layui.cache.dir,a.run(layui.$),e.layer=l,t("layer",l)}))):"function"===typeof define&&n("3c35")?define(["jquery"],(function(){return a.run(e.jQuery),l})):function(){a.run(e.jQuery),l.ready()}()}(window);var Ne=layer,Le=$,Se=(n("9114"),n("bc3a")),je=n.n(Se),Ae=n("69d9"),He=n("4eb5"),Be=n.n(He),De=n("e166"),Oe=n.n(De),_e=(n("35a1"),n("2c43"),n("9aba")),Pe=n.n(_e),Ie=(n("64d2"),n("cf0d")),qe=n.n(Ie);i["default"].prototype.layer=Ne,i["default"].prototype.$=Le,i["default"].config.productionTip=!1,i["default"].prototype.common=Ae["a"],Be.a.config.autoSetContainer=!0,i["default"].use(Be.a),i["default"].use(Oe.a,{}),je.a.defaults.withCredentials=!0,je.a.interceptors.request.use((function(e){var t=e.url;if("get"===e.method&&e.params){t+="?";for(var n=Object.keys(e.params),i=0,r=n;i.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}")}catch(t){console&&console.log(t)}}!function(t){if(document.addEventListener)if(~["complete","loaded","interactive"].indexOf(document.readyState))setTimeout(t,0);else{var n=function e(){document.removeEventListener("DOMContentLoaded",e,!1),t()};document.addEventListener("DOMContentLoaded",n,!1)}else document.attachEvent&&(r=t,o=e.document,a=!1,(l=function(){try{o.documentElement.doScroll("left")}catch(t){return void setTimeout(l,50)}i()})(),o.onreadystatechange=function(){"complete"==o.readyState&&(o.onreadystatechange=null,i())});function i(){a||(a=!0,r())}var r,o,a,l}((function(){var e,t,i,r,o,a;(e=document.createElement("div")).innerHTML=n,n=null,(t=e.getElementsByTagName("svg")[0])&&(t.setAttribute("aria-hidden","true"),t.style.position="absolute",t.style.width=0,t.style.height=0,t.style.overflow="hidden",i=t,(r=document.body).firstChild?(o=i,(a=r.firstChild).parentNode.insertBefore(o,a)):r.appendChild(i))}))}(window)}}); \ No newline at end of file diff --git a/src/main/resources/static/js/chunk-07a35882.781f33fb.js b/src/main/resources/static/js/chunk-07a35882.781f33fb.js new file mode 100644 index 0000000..3b91c39 --- /dev/null +++ b/src/main/resources/static/js/chunk-07a35882.781f33fb.js @@ -0,0 +1,92 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-07a35882"],{1368:function(e,t,i){(function(t,i){ +/*! + * @overview es6-promise - a tiny implementation of Promises/A+. + * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) + * @license Licensed under MIT license + * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE + * @version v4.2.8+1e68dce6 + */ +(function(t,i){e.exports=i()})(0,(function(){"use strict";function e(e){var t=typeof e;return null!==e&&("object"===t||"function"===t)}function r(e){return"function"===typeof e}var n=void 0;n=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)};var a=n,s=0,o=void 0,l=void 0,d=function(e,t){S[s]=e,S[s+1]=t,s+=2,2===s&&(l?l(T):A())};function u(e){l=e}function h(e){d=e}var c="undefined"!==typeof window?window:void 0,f=c||{},p=f.MutationObserver||f.WebKitMutationObserver,m="undefined"===typeof self&&"undefined"!==typeof t&&"[object process]"==={}.toString.call(t),g="undefined"!==typeof Uint8ClampedArray&&"undefined"!==typeof importScripts&&"undefined"!==typeof MessageChannel;function v(){return function(){return t.nextTick(T)}}function y(){return"undefined"!==typeof o?function(){o(T)}:b()}function _(){var e=0,t=new p(T),i=document.createTextNode("");return t.observe(i,{characterData:!0}),function(){i.data=e=++e%2}}function E(){var e=new MessageChannel;return e.port1.onmessage=T,function(){return e.port2.postMessage(0)}}function b(){var e=setTimeout;return function(){return e(T,1)}}var S=new Array(1e3);function T(){for(var e=0;e ${t}`;u.ENABLE_CALLBACK&&u.emitter.emit("log","error",i),u.ENABLE_ERROR&&(console.error?console.error(i):console.warn?console.warn(i):console.log(i))}static i(e,t){e&&!u.FORCE_GLOBAL_TAG||(e=u.GLOBAL_TAG);let i=`[${e}] > ${t}`;u.ENABLE_CALLBACK&&u.emitter.emit("log","info",i),u.ENABLE_INFO&&(console.info?console.info(i):console.log(i))}static w(e,t){e&&!u.FORCE_GLOBAL_TAG||(e=u.GLOBAL_TAG);let i=`[${e}] > ${t}`;u.ENABLE_CALLBACK&&u.emitter.emit("log","warn",i),u.ENABLE_WARN&&(console.warn?console.warn(i):console.log(i))}static d(e,t){e&&!u.FORCE_GLOBAL_TAG||(e=u.GLOBAL_TAG);let i=`[${e}] > ${t}`;u.ENABLE_CALLBACK&&u.emitter.emit("log","debug",i),u.ENABLE_DEBUG&&(console.debug?console.debug(i):console.log(i))}static v(e,t){e&&!u.FORCE_GLOBAL_TAG||(e=u.GLOBAL_TAG);let i=`[${e}] > ${t}`;u.ENABLE_CALLBACK&&u.emitter.emit("log","verbose",i),u.ENABLE_VERBOSE&&console.log(i)}}u.GLOBAL_TAG="flv.js",u.FORCE_GLOBAL_TAG=!1,u.ENABLE_ERROR=!0,u.ENABLE_INFO=!0,u.ENABLE_WARN=!0,u.ENABLE_DEBUG=!0,u.ENABLE_VERBOSE=!0,u.ENABLE_CALLBACK=!1,u.emitter=new d.a;var h=u;class c{constructor(){this._firstCheckpoint=0,this._lastCheckpoint=0,this._intervalBytes=0,this._totalBytes=0,this._lastSecondBytes=0,self.performance&&self.performance.now?this._now=self.performance.now.bind(self.performance):this._now=Date.now}reset(){this._firstCheckpoint=this._lastCheckpoint=0,this._totalBytes=this._intervalBytes=0,this._lastSecondBytes=0}addBytes(e){0===this._firstCheckpoint?(this._firstCheckpoint=this._now(),this._lastCheckpoint=this._firstCheckpoint,this._intervalBytes+=e,this._totalBytes+=e):this._now()-this._lastCheckpoint<1e3?(this._intervalBytes+=e,this._totalBytes+=e):(this._lastSecondBytes=this._intervalBytes,this._intervalBytes=e,this._totalBytes+=e,this._lastCheckpoint=this._now())}get currentKBps(){this.addBytes(0);let e=(this._now()-this._lastCheckpoint)/1e3;return 0==e&&(e=1),this._intervalBytes/e/1024}get lastSecondKBps(){return this.addBytes(0),0!==this._lastSecondBytes?this._lastSecondBytes/1024:this._now()-this._lastCheckpoint>=500?this.currentKBps:0}get averageKBps(){let e=(this._now()-this._firstCheckpoint)/1e3;return this._totalBytes/e/1024}}var f=c;class p{constructor(e){this._message=e}get name(){return"RuntimeException"}get message(){return this._message}toString(){return this.name+": "+this.message}}class m extends p{constructor(e){super(e)}get name(){return"IllegalStateException"}}class g extends p{constructor(e){super(e)}get name(){return"InvalidArgumentException"}}class v extends p{constructor(e){super(e)}get name(){return"NotImplementedException"}}const y={kIdle:0,kConnecting:1,kBuffering:2,kError:3,kComplete:4},_={OK:"OK",EXCEPTION:"Exception",HTTP_STATUS_CODE_INVALID:"HttpStatusCodeInvalid",CONNECTING_TIMEOUT:"ConnectingTimeout",EARLY_EOF:"EarlyEof",UNRECOVERABLE_EARLY_EOF:"UnrecoverableEarlyEof"};class E{constructor(e){this._type=e||"undefined",this._status=y.kIdle,this._needStash=!1,this._onContentLengthKnown=null,this._onURLRedirect=null,this._onDataArrival=null,this._onError=null,this._onComplete=null}destroy(){this._status=y.kIdle,this._onContentLengthKnown=null,this._onURLRedirect=null,this._onDataArrival=null,this._onError=null,this._onComplete=null}isWorking(){return this._status===y.kConnecting||this._status===y.kBuffering}get type(){return this._type}get status(){return this._status}get needStashBuffer(){return this._needStash}get onContentLengthKnown(){return this._onContentLengthKnown}set onContentLengthKnown(e){this._onContentLengthKnown=e}get onURLRedirect(){return this._onURLRedirect}set onURLRedirect(e){this._onURLRedirect=e}get onDataArrival(){return this._onDataArrival}set onDataArrival(e){this._onDataArrival=e}get onError(){return this._onError}set onError(e){this._onError=e}get onComplete(){return this._onComplete}set onComplete(e){this._onComplete=e}open(e,t){throw new v("Unimplemented abstract function!")}abort(){throw new v("Unimplemented abstract function!")}}let b={};function S(){let e=self.navigator.userAgent.toLowerCase(),t=/(edge)\/([\w.]+)/.exec(e)||/(opr)[\/]([\w.]+)/.exec(e)||/(chrome)[ \/]([\w.]+)/.exec(e)||/(iemobile)[\/]([\w.]+)/.exec(e)||/(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(firefox)[ \/]([\w.]+)/.exec(e)||[],i=/(ipad)/.exec(e)||/(ipod)/.exec(e)||/(windows phone)/.exec(e)||/(iphone)/.exec(e)||/(kindle)/.exec(e)||/(android)/.exec(e)||/(windows)/.exec(e)||/(mac)/.exec(e)||/(linux)/.exec(e)||/(cros)/.exec(e)||[],r={browser:t[5]||t[3]||t[1]||"",version:t[2]||t[4]||"0",majorVersion:t[4]||t[2]||"0",platform:i[0]||""},n={};if(r.browser){n[r.browser]=!0;let e=r.majorVersion.split(".");n.version={major:parseInt(r.majorVersion,10),string:r.version},e.length>1&&(n.version.minor=parseInt(e[1],10)),e.length>2&&(n.version.build=parseInt(e[2],10))}if(r.platform&&(n[r.platform]=!0),(n.chrome||n.opr||n.safari)&&(n.webkit=!0),n.rv||n.iemobile){n.rv&&delete n.rv;let e="msie";r.browser=e,n[e]=!0}if(n.edge){delete n.edge;let e="msedge";r.browser=e,n[e]=!0}if(n.opr){let e="opera";r.browser=e,n[e]=!0}if(n.safari&&n.android){let e="android";r.browser=e,n[e]=!0}n.name=r.browser,n.platform=r.platform;for(let a in b)b.hasOwnProperty(a)&&delete b[a];Object.assign(b,n)}S();var T=b;class w extends E{static isSupported(){try{let e=T.msedge&&T.version.minor>=15048,t=!T.msedge||e;return self.fetch&&self.ReadableStream&&t}catch(e){return!1}}constructor(e,t){super("fetch-stream-loader"),this.TAG="FetchStreamLoader",this._seekHandler=e,this._config=t,this._needStash=!0,this._requestAbort=!1,this._contentLength=null,this._receivedLength=0}destroy(){this.isWorking()&&this.abort(),super.destroy()}open(e,t){this._dataSource=e,this._range=t;let i=e.url;this._config.reuseRedirectedURL&&void 0!=e.redirectedURL&&(i=e.redirectedURL);let r=this._seekHandler.getConfig(i,t),n=new self.Headers;if("object"===typeof r.headers){let e=r.headers;for(let t in e)e.hasOwnProperty(t)&&n.append(t,e[t])}let a={method:"GET",headers:n,mode:"cors",cache:"default",referrerPolicy:"no-referrer-when-downgrade"};if("object"===typeof this._config.headers)for(let s in this._config.headers)n.append(s,this._config.headers[s]);!1===e.cors&&(a.mode="same-origin"),e.withCredentials&&(a.credentials="include"),e.referrerPolicy&&(a.referrerPolicy=e.referrerPolicy),this._status=y.kConnecting,self.fetch(r.url,a).then(e=>{if(this._requestAbort)return this._requestAbort=!1,void(this._status=y.kIdle);if(e.ok&&e.status>=200&&e.status<=299){if(e.url!==r.url&&this._onURLRedirect){let t=this._seekHandler.removeURLParameters(e.url);this._onURLRedirect(t)}let t=e.headers.get("Content-Length");return null!=t&&(this._contentLength=parseInt(t),0!==this._contentLength&&this._onContentLengthKnown&&this._onContentLengthKnown(this._contentLength)),this._pump.call(this,e.body.getReader())}if(this._status=y.kError,!this._onError)throw new p("FetchStreamLoader: Http code invalid, "+e.status+" "+e.statusText);this._onError(_.HTTP_STATUS_CODE_INVALID,{code:e.status,msg:e.statusText})}).catch(e=>{if(this._status=y.kError,!this._onError)throw e;this._onError(_.EXCEPTION,{code:-1,msg:e.message})})}abort(){this._requestAbort=!0}_pump(e){return e.read().then(t=>{if(t.done)if(null!==this._contentLength&&this._receivedLength{if(11===e.code&&T.msedge)return;this._status=y.kError;let t=0,i=null;if(19!==e.code&&"network error"!==e.message||!(null===this._contentLength||null!==this._contentLength&&this._receivedLength299)){if(this._status=y.kError,!this._onError)throw new p("MozChunkedLoader: Http code invalid, "+t.status+" "+t.statusText);this._onError(_.HTTP_STATUS_CODE_INVALID,{code:t.status,msg:t.statusText})}else this._status=y.kBuffering}}_onProgress(e){if(this._status===y.kError)return;null===this._contentLength&&null!==e.total&&0!==e.total&&(this._contentLength=e.total,this._onContentLengthKnown&&this._onContentLengthKnown(this._contentLength));let t=e.target.response,i=this._range.from+this._receivedLength;this._receivedLength+=t.byteLength,this._onDataArrival&&this._onDataArrival(t,i,this._receivedLength)}_onLoadEnd(e){!0!==this._requestAbort?this._status!==y.kError&&(this._status=y.kComplete,this._onComplete&&this._onComplete(this._range.from,this._range.from+this._receivedLength-1)):this._requestAbort=!1}_onXhrError(e){this._status=y.kError;let t=0,i=null;if(this._contentLength&&e.loaded=this._contentLength&&(i=this._range.from+this._contentLength-1),this._currentRequestRange={from:t,to:i},this._internalOpen(this._dataSource,this._currentRequestRange)}_internalOpen(e,t){this._lastTimeLoaded=0;let i=e.url;this._config.reuseRedirectedURL&&(void 0!=this._currentRedirectedURL?i=this._currentRedirectedURL:void 0!=e.redirectedURL&&(i=e.redirectedURL));let r=this._seekHandler.getConfig(i,t);this._currentRequestURL=r.url;let n=this._xhr=new XMLHttpRequest;if(n.open("GET",r.url,!0),n.responseType="arraybuffer",n.onreadystatechange=this._onReadyStateChange.bind(this),n.onprogress=this._onProgress.bind(this),n.onload=this._onLoad.bind(this),n.onerror=this._onXhrError.bind(this),e.withCredentials&&(n.withCredentials=!0),"object"===typeof r.headers){let e=r.headers;for(let t in e)e.hasOwnProperty(t)&&n.setRequestHeader(t,e[t])}if("object"===typeof this._config.headers){let e=this._config.headers;for(let t in e)e.hasOwnProperty(t)&&n.setRequestHeader(t,e[t])}n.send()}abort(){this._requestAbort=!0,this._internalAbort(),this._status=y.kComplete}_internalAbort(){this._xhr&&(this._xhr.onreadystatechange=null,this._xhr.onprogress=null,this._xhr.onload=null,this._xhr.onerror=null,this._xhr.abort(),this._xhr=null)}_onReadyStateChange(e){let t=e.target;if(2===t.readyState){if(void 0!=t.responseURL){let e=this._seekHandler.removeURLParameters(t.responseURL);t.responseURL!==this._currentRequestURL&&e!==this._currentRedirectedURL&&(this._currentRedirectedURL=e,this._onURLRedirect&&this._onURLRedirect(e))}if(t.status>=200&&t.status<=299){if(this._waitForTotalLength)return;this._status=y.kBuffering}else{if(this._status=y.kError,!this._onError)throw new p("RangeLoader: Http code invalid, "+t.status+" "+t.statusText);this._onError(_.HTTP_STATUS_CODE_INVALID,{code:t.status,msg:t.statusText})}}}_onProgress(e){if(this._status===y.kError)return;if(null===this._contentLength){let t=!1;if(this._waitForTotalLength){this._waitForTotalLength=!1,this._totalLengthReceived=!0,t=!0;let i=e.total;this._internalAbort(),null!=i&0!==i&&(this._totalLength=i)}if(-1===this._range.to?this._contentLength=this._totalLength-this._range.from:this._contentLength=this._range.to-this._range.from+1,t)return void this._openSubRange();this._onContentLengthKnown&&this._onContentLengthKnown(this._contentLength)}let t=e.loaded-this._lastTimeLoaded;this._lastTimeLoaded=e.loaded,this._speedSampler.addBytes(t)}_normalizeSpeed(e){let t=this._chunkSizeKBList,i=t.length-1,r=0,n=0,a=i;if(e=t[r]&&e=3&&(t=this._speedSampler.currentKBps)),0!==t){let e=this._normalizeSpeed(t);this._currentSpeedNormalized!==e&&(this._currentSpeedNormalized=e,this._currentChunkSizeKB=e)}let i=e.target.response,r=this._range.from+this._receivedLength;this._receivedLength+=i.byteLength;let n=!1;null!=this._contentLength&&this._receivedLength0&&this._receivedLength{this._dispatchArrayBuffer(t.result)},t.readAsArrayBuffer(e.data)}else{this._status=y.kError;let t={code:-1,msg:"Unsupported WebSocket message type: "+e.data.constructor.name};if(!this._onError)throw new p(t.msg);this._onError(_.EXCEPTION,t)}}_dispatchArrayBuffer(e){let t=e,i=this._receivedLength;this._receivedLength+=t.byteLength,this._onDataArrival&&this._onDataArrival(t,i,this._receivedLength)}_onWebSocketError(e){this._status=y.kError;let t={code:e.code,msg:e.message};if(!this._onError)throw new p(t.msg);this._onError(_.EXCEPTION,t)}}var C=I;class O{constructor(e){this._zeroStart=e||!1}getConfig(e,t){let i={};if(0!==t.from||-1!==t.to){let e;e=-1!==t.to?`bytes=${t.from.toString()}-${t.to.toString()}`:`bytes=${t.from.toString()}-`,i["Range"]=e}else this._zeroStart&&(i["Range"]="bytes=0-");return{url:e,headers:i}}removeURLParameters(e){return e}}var x=O;class M{constructor(e,t){this._startName=e,this._endName=t}getConfig(e,t){let i=e;if(0!==t.from||-1!==t.to){let e=!0;-1===i.indexOf("?")&&(i+="?",e=!1),e&&(i+="&"),i+=`${this._startName}=${t.from.toString()}`,-1!==t.to&&(i+=`&${this._endName}=${t.to.toString()}`)}return{url:i,headers:{}}}removeURLParameters(e){let t=e.split("?")[0],i=void 0,r=e.indexOf("?");-1!==r&&(i=e.substring(r+1));let n="";if(void 0!=i&&i.length>0){let e=i.split("&");for(let t=0;t0;i[0]!==this._startName&&i[0]!==this._endName&&(r&&(n+="&"),n+=e[t])}}return 0===n.length?t:t+"?"+n}}var P=M;class F{constructor(e,t,i){this.TAG="IOController",this._config=t,this._extraData=i,this._stashInitialSize=393216,void 0!=t.stashInitialSize&&t.stashInitialSize>0&&(this._stashInitialSize=t.stashInitialSize),this._stashUsed=0,this._stashSize=this._stashInitialSize,this._bufferSize=3145728,this._stashBuffer=new ArrayBuffer(this._bufferSize),this._stashByteStart=0,this._enableStash=!0,!1===t.enableStashBuffer&&(this._enableStash=!1),this._loader=null,this._loaderClass=null,this._seekHandler=null,this._dataSource=e,this._isWebSocketURL=/wss?:\/\/(.+?)/.test(e.url),this._refTotalLength=e.filesize?e.filesize:null,this._totalLength=this._refTotalLength,this._fullRequestFlag=!1,this._currentRange=null,this._redirectedURL=null,this._speedNormalized=0,this._speedSampler=new f,this._speedNormalizeList=[64,128,256,384,512,768,1024,1536,2048,3072,4096],this._isEarlyEofReconnecting=!1,this._paused=!1,this._resumeFrom=0,this._onDataArrival=null,this._onSeeked=null,this._onError=null,this._onComplete=null,this._onRedirect=null,this._onRecoveredEarlyEof=null,this._selectSeekHandler(),this._selectLoader(),this._createLoader()}destroy(){this._loader.isWorking()&&this._loader.abort(),this._loader.destroy(),this._loader=null,this._loaderClass=null,this._dataSource=null,this._stashBuffer=null,this._stashUsed=this._stashSize=this._bufferSize=this._stashByteStart=0,this._currentRange=null,this._speedSampler=null,this._isEarlyEofReconnecting=!1,this._onDataArrival=null,this._onSeeked=null,this._onError=null,this._onComplete=null,this._onRedirect=null,this._onRecoveredEarlyEof=null,this._extraData=null}isWorking(){return this._loader&&this._loader.isWorking()&&!this._paused}isPaused(){return this._paused}get status(){return this._loader.status}get extraData(){return this._extraData}set extraData(e){this._extraData=e}get onDataArrival(){return this._onDataArrival}set onDataArrival(e){this._onDataArrival=e}get onSeeked(){return this._onSeeked}set onSeeked(e){this._onSeeked=e}get onError(){return this._onError}set onError(e){this._onError=e}get onComplete(){return this._onComplete}set onComplete(e){this._onComplete=e}get onRedirect(){return this._onRedirect}set onRedirect(e){this._onRedirect=e}get onRecoveredEarlyEof(){return this._onRecoveredEarlyEof}set onRecoveredEarlyEof(e){this._onRecoveredEarlyEof=e}get currentURL(){return this._dataSource.url}get hasRedirect(){return null!=this._redirectedURL||void 0!=this._dataSource.redirectedURL}get currentRedirectedURL(){return this._redirectedURL||this._dataSource.redirectedURL}get currentSpeed(){return this._loaderClass===D?this._loader.currentSpeed:this._speedSampler.lastSecondKBps}get loaderType(){return this._loader.type}_selectSeekHandler(){let e=this._config;if("range"===e.seekType)this._seekHandler=new x(this._config.rangeLoadZeroStart);else if("param"===e.seekType){let t=e.seekParamStart||"bstart",i=e.seekParamEnd||"bend";this._seekHandler=new P(t,i)}else{if("custom"!==e.seekType)throw new g(`Invalid seekType in config: ${e.seekType}`);if("function"!==typeof e.customSeekHandler)throw new g("Custom seekType specified in config but invalid customSeekHandler!");this._seekHandler=new e.customSeekHandler}}_selectLoader(){if(null!=this._config.customLoader)this._loaderClass=this._config.customLoader;else if(this._isWebSocketURL)this._loaderClass=C;else if(A.isSupported())this._loaderClass=A;else if(R.isSupported())this._loaderClass=R;else{if(!D.isSupported())throw new p("Your browser doesn't support xhr with arraybuffer responseType!");this._loaderClass=D}}_createLoader(){this._loader=new this._loaderClass(this._seekHandler,this._config),!1===this._loader.needStashBuffer&&(this._enableStash=!1),this._loader.onContentLengthKnown=this._onContentLengthKnown.bind(this),this._loader.onURLRedirect=this._onURLRedirect.bind(this),this._loader.onDataArrival=this._onLoaderChunkArrival.bind(this),this._loader.onComplete=this._onLoaderComplete.bind(this),this._loader.onError=this._onLoaderError.bind(this)}open(e){this._currentRange={from:0,to:-1},e&&(this._currentRange.from=e),this._speedSampler.reset(),e||(this._fullRequestFlag=!0),this._loader.open(this._dataSource,Object.assign({},this._currentRange))}abort(){this._loader.abort(),this._paused&&(this._paused=!1,this._resumeFrom=0)}pause(){this.isWorking()&&(this._loader.abort(),0!==this._stashUsed?(this._resumeFrom=this._stashByteStart,this._currentRange.to=this._stashByteStart-1):this._resumeFrom=this._currentRange.to+1,this._stashUsed=0,this._stashByteStart=0,this._paused=!0)}resume(){if(this._paused){this._paused=!1;let e=this._resumeFrom;this._resumeFrom=0,this._internalSeek(e,!0)}}seek(e){this._paused=!1,this._stashUsed=0,this._stashByteStart=0,this._internalSeek(e,!0)}_internalSeek(e,t){this._loader.isWorking()&&this._loader.abort(),this._flushStashBuffer(t),this._loader.destroy(),this._loader=null;let i={from:e,to:-1};this._currentRange={from:i.from,to:-1},this._speedSampler.reset(),this._stashSize=this._stashInitialSize,this._createLoader(),this._loader.open(this._dataSource,i),this._onSeeked&&this._onSeeked()}updateUrl(e){if(!e||"string"!==typeof e||0===e.length)throw new g("Url must be a non-empty string!");this._dataSource.url=e}_expandBuffer(e){let t=this._stashSize;while(t+10485760){let e=new Uint8Array(this._stashBuffer,0,this._stashUsed),r=new Uint8Array(i,0,t);r.set(e,0)}this._stashBuffer=i,this._bufferSize=t}_normalizeSpeed(e){let t=this._speedNormalizeList,i=t.length-1,r=0,n=0,a=i;if(e=t[r]&&e=512&&e<=1024?Math.floor(1.5*e):2*e,t>8192&&(t=8192);let i=1024*t+1048576;this._bufferSize0){let t=this._stashBuffer.slice(0,this._stashUsed),r=this._dispatchChunks(t,this._stashByteStart);if(r0){let e=new Uint8Array(t,r);i.set(e,0),this._stashUsed=e.byteLength,this._stashByteStart+=r}}else this._stashUsed=0,this._stashByteStart+=r;this._stashUsed+e.byteLength>this._bufferSize&&(this._expandBuffer(this._stashUsed+e.byteLength),i=new Uint8Array(this._stashBuffer,0,this._bufferSize)),i.set(new Uint8Array(e),this._stashUsed),this._stashUsed+=e.byteLength}else{let r=this._dispatchChunks(e,t);if(rthis._bufferSize&&(this._expandBuffer(n),i=new Uint8Array(this._stashBuffer,0,this._bufferSize)),i.set(new Uint8Array(e,r),0),this._stashUsed+=n,this._stashByteStart=t+r}}}else if(0===this._stashUsed){let i=this._dispatchChunks(e,t);if(ithis._bufferSize&&this._expandBuffer(r);let n=new Uint8Array(this._stashBuffer,0,this._bufferSize);n.set(new Uint8Array(e,i),0),this._stashUsed+=r,this._stashByteStart=t+i}}else{this._stashUsed+e.byteLength>this._bufferSize&&this._expandBuffer(this._stashUsed+e.byteLength);let t=new Uint8Array(this._stashBuffer,0,this._bufferSize);t.set(new Uint8Array(e),this._stashUsed),this._stashUsed+=e.byteLength;let i=this._dispatchChunks(this._stashBuffer.slice(0,this._stashUsed),this._stashByteStart);if(i0){let e=new Uint8Array(this._stashBuffer,i);t.set(e,0)}this._stashUsed-=i,this._stashByteStart+=i}}_flushStashBuffer(e){if(this._stashUsed>0){let t=this._stashBuffer.slice(0,this._stashUsed),i=this._dispatchChunks(t,this._stashByteStart),r=t.byteLength-i;if(i0){let e=new Uint8Array(this._stashBuffer,0,this._bufferSize),r=new Uint8Array(t,i);e.set(r,0),this._stashUsed=r.byteLength,this._stashByteStart+=i}return 0}h.w(this.TAG,`${r} bytes unconsumed data remain when flush buffer, dropped`)}return this._stashUsed=0,this._stashByteStart=0,r}return 0}_onLoaderComplete(e,t){this._flushStashBuffer(!0),this._onComplete&&this._onComplete(this._extraData)}_onLoaderError(e,t){switch(h.e(this.TAG,`Loader error, code = ${t.code}, msg = ${t.msg}`),this._flushStashBuffer(!1),this._isEarlyEofReconnecting&&(this._isEarlyEofReconnecting=!1,e=_.UNRECOVERABLE_EARLY_EOF),e){case _.EARLY_EOF:if(!this._config.isLive&&this._totalLength){let e=this._currentRange.to+1;return void(e0){let t=K.getConfig();e.emit("change",t)}}static registerListener(e){K.emitter.addListener("change",e)}static removeListener(e){K.emitter.removeListener("change",e)}static addLogListener(e){h.emitter.addListener("log",e),h.emitter.listenerCount("log")>0&&(h.ENABLE_CALLBACK=!0,K._notifyChange())}static removeLogListener(e){h.emitter.removeListener("log",e),0===h.emitter.listenerCount("log")&&(h.ENABLE_CALLBACK=!1,K._notifyChange())}}K.emitter=new d.a;var H=K;class z{constructor(){this.mimeType=null,this.duration=null,this.hasAudio=null,this.hasVideo=null,this.audioCodec=null,this.videoCodec=null,this.audioDataRate=null,this.videoDataRate=null,this.audioSampleRate=null,this.audioChannelCount=null,this.width=null,this.height=null,this.fps=null,this.profile=null,this.level=null,this.refFrames=null,this.chromaFormat=null,this.sarNum=null,this.sarDen=null,this.metadata=null,this.segments=null,this.segmentCount=null,this.hasKeyframesIndex=null,this.keyframesIndex=null}isComplete(){let e=!1===this.hasAudio||!0===this.hasAudio&&null!=this.audioCodec&&null!=this.audioSampleRate&&null!=this.audioChannelCount,t=!1===this.hasVideo||!0===this.hasVideo&&null!=this.videoCodec&&null!=this.width&&null!=this.height&&null!=this.fps&&null!=this.profile&&null!=this.level&&null!=this.refFrames&&null!=this.chromaFormat&&null!=this.sarNum&&null!=this.sarDen;return null!=this.mimeType&&null!=this.duration&&null!=this.metadata&&null!=this.hasKeyframesIndex&&e&&t}isSeekable(){return!0===this.hasKeyframesIndex}getNearestKeyframe(e){if(null==this.keyframesIndex)return null;let t=this.keyframesIndex,i=this._search(t.times,e);return{index:i,milliseconds:t.times[i],fileposition:t.filepositions[i]}}_search(e,t){let i=0,r=e.length-1,n=0,a=0,s=r;t=e[n]&&t=128){t.push(String.fromCharCode(65535&e)),r+=2;continue}}}else if(i[r]<240){if(Y(i,r,2)){let e=(15&i[r])<<12|(63&i[r+1])<<6|63&i[r+2];if(e>=2048&&55296!==(63488&e)){t.push(String.fromCharCode(65535&e)),r+=3;continue}}}else if(i[r]<248&&Y(i,r,3)){let e=(7&i[r])<<18|(63&i[r+1])<<12|(63&i[r+2])<<6|63&i[r+3];if(e>65536&&e<1114112){e-=65536,t.push(String.fromCharCode(e>>>10|55296)),t.push(String.fromCharCode(1023&e|56320)),r+=4;continue}}t.push(String.fromCharCode(65533)),++r}return t.join("")}var $=X;let Q=function(){let e=new ArrayBuffer(2);return new DataView(e).setInt16(0,256,!0),256===new Int16Array(e)[0]}();class J{static parseScriptData(e,t,i){let r={};try{let n=J.parseValue(e,t,i),a=J.parseValue(e,t+n.size,i-n.size);r[n.data]=a.data}catch(n){h.e("AMF",n.toString())}return r}static parseObject(e,t,i){if(i<3)throw new m("Data not enough when parse ScriptDataObject");let r=J.parseString(e,t,i),n=J.parseValue(e,t+r.size,i-r.size),a=n.objectEnd;return{data:{name:r.data,value:n.data},size:r.size+n.size,objectEnd:a}}static parseVariable(e,t,i){return J.parseObject(e,t,i)}static parseString(e,t,i){if(i<2)throw new m("Data not enough when parse String");let r,n=new DataView(e,t,i),a=n.getUint16(0,!Q);return r=a>0?$(new Uint8Array(e,t+2,a)):"",{data:r,size:2+a}}static parseLongString(e,t,i){if(i<4)throw new m("Data not enough when parse LongString");let r,n=new DataView(e,t,i),a=n.getUint32(0,!Q);return r=a>0?$(new Uint8Array(e,t+4,a)):"",{data:r,size:4+a}}static parseDate(e,t,i){if(i<10)throw new m("Data size invalid when parse Date");let r=new DataView(e,t,i),n=r.getFloat64(0,!Q),a=r.getInt16(8,!Q);return n+=60*a*1e3,{data:new Date(n),size:10}}static parseValue(e,t,i){if(i<1)throw new m("Data not enough when parse Value");let r,n=new DataView(e,t,i),a=1,s=n.getUint8(0),o=!1;try{switch(s){case 0:r=n.getFloat64(1,!Q),a+=8;break;case 1:{let e=n.getUint8(1);r=!!e,a+=1;break}case 2:{let n=J.parseString(e,t+1,i-1);r=n.data,a+=n.size;break}case 3:{r={};let s=0;9===(16777215&n.getUint32(i-4,!Q))&&(s=3);while(a32)throw new g("ExpGolomb: readBits() bits exceeded max 32bits!");if(e<=this._current_word_bits_left){let t=this._current_word>>>32-e;return this._current_word<<=e,this._current_word_bits_left-=e,t}let t=this._current_word_bits_left?this._current_word:0;t>>>=32-this._current_word_bits_left;let i=e-this._current_word_bits_left;this._fillCurrentWord();let r=Math.min(i,this._current_word_bits_left),n=this._current_word>>>32-r;return this._current_word<<=r,this._current_word_bits_left-=r,t=t<>>e))return this._current_word<<=e,this._current_word_bits_left-=e,e;return this._fillCurrentWord(),e+this._skipLeadingZero()}readUEG(){let e=this._skipLeadingZero();return this.readBits(e+1)-1}readSEG(){let e=this.readUEG();return 1&e?e+1>>>1:-1*(e>>>1)}}var te=ee;class ie{static _ebsp2rbsp(e){let t=e,i=t.byteLength,r=new Uint8Array(i),n=0;for(let a=0;a=2&&3===t[a]&&0===t[a-1]&&0===t[a-2]||(r[n]=t[a],n++);return new Uint8Array(r.buffer,0,n)}static parseSPS(e){let t=ie._ebsp2rbsp(e),i=new te(t);i.readByte();let r=i.readByte();i.readByte();let n=i.readByte();i.readUEG();let a=ie.getProfileString(r),s=ie.getLevelString(n),o=1,l=420,d=[0,420,422,444],u=8;if((100===r||110===r||122===r||244===r||44===r||83===r||86===r||118===r||128===r||138===r||144===r)&&(o=i.readUEG(),3===o&&i.readBits(1),o<=3&&(l=d[o]),u=i.readUEG()+8,i.readUEG(),i.readBits(1),i.readBool())){let e=3!==o?8:12;for(let t=0;t0&&e<16?(b=t[e-1],S=r[e-1]):255===e&&(b=i.readByte()<<8|i.readByte(),S=i.readByte()<<8|i.readByte())}if(i.readBool()&&i.readBool(),i.readBool()&&(i.readBits(4),i.readBool()&&i.readBits(24)),i.readBool()&&(i.readUEG(),i.readUEG()),i.readBool()){let e=i.readBits(32),t=i.readBits(32);w=i.readBool(),A=t,k=2*e,T=A/k}}let L=1;1===b&&1===S||(L=b/S);let D=0,I=0;if(0===o)D=1,I=2-m;else{let e=3===o?1:2,t=1===o?2:1;D=e,I=t*(2-m)}let C=16*(f+1),O=16*(p+1)*(2-m);C-=(g+v)*D,O-=(y+_)*I;let x=Math.ceil(C*L);return i.destroy(),i=null,{profile_string:a,level_string:s,bit_depth:u,ref_frames:c,chroma_format:l,chroma_format_string:ie.getChromaFormatString(l),frame_rate:{fixed:w,fps:T,fps_den:k,fps_num:A},sar_ratio:{width:b,height:S},codec_size:{width:C,height:O},present_size:{width:x,height:O}}}static _skipScalingList(e,t){let i=8,r=8,n=0;for(let a=0;a>>2!==0,n=0!==(1&t[4]),a=se(t,5);return a<9?i:{match:!0,consumed:a,dataOffset:a,hasAudioTrack:r,hasVideoTrack:n}}bindDataSource(e){return e.onDataArrival=this.parseChunks.bind(this),this}get onTrackMetadata(){return this._onTrackMetadata}set onTrackMetadata(e){this._onTrackMetadata=e}get onMediaInfo(){return this._onMediaInfo}set onMediaInfo(e){this._onMediaInfo=e}get onMetaDataArrived(){return this._onMetaDataArrived}set onMetaDataArrived(e){this._onMetaDataArrived=e}get onScriptDataArrived(){return this._onScriptDataArrived}set onScriptDataArrived(e){this._onScriptDataArrived=e}get onError(){return this._onError}set onError(e){this._onError=e}get onDataAvailable(){return this._onDataAvailable}set onDataAvailable(e){this._onDataAvailable=e}get timestampBase(){return this._timestampBase}set timestampBase(e){this._timestampBase=e}get overridedDuration(){return this._duration}set overridedDuration(e){this._durationOverrided=!0,this._duration=e,this._mediaInfo.duration=e}set overridedHasAudio(e){this._hasAudioFlagOverrided=!0,this._hasAudio=e,this._mediaInfo.hasAudio=e}set overridedHasVideo(e){this._hasVideoFlagOverrided=!0,this._hasVideo=e,this._mediaInfo.hasVideo=e}resetMediaInfo(){this._mediaInfo=new W}_isInitialMetadataDispatched(){return this._hasAudio&&this._hasVideo?this._audioInitialMetadataDispatched&&this._videoInitialMetadataDispatched:this._hasAudio&&!this._hasVideo?this._audioInitialMetadataDispatched:!(this._hasAudio||!this._hasVideo)&&this._videoInitialMetadataDispatched}parseChunks(e,t){if(!this._onError||!this._onMediaInfo||!this._onTrackMetadata||!this._onDataAvailable)throw new m("Flv: onError & onMediaInfo & onTrackMetadata & onDataAvailable callback must be specified");let i=0,r=this._littleEndian;if(0===t){if(!(e.byteLength>13))return 0;{let t=oe.probe(e);i=t.dataOffset}}if(this._firstParse){this._firstParse=!1,t+i!==this._dataOffset&&h.w(this.TAG,"First time parsing but chunk byteStart invalid!");let n=new DataView(e,i),a=n.getUint32(0,!r);0!==a&&h.w(this.TAG,"PrevTagSize0 !== 0 !!!"),i+=4}while(ie.byteLength)break;let a=n.getUint8(0),s=16777215&n.getUint32(0,!r);if(i+11+s+4>e.byteLength)break;if(8!==a&&9!==a&&18!==a){h.w(this.TAG,`Unsupported tag type ${a}, skipped`),i+=11+s+4;continue}let o=n.getUint8(4),l=n.getUint8(5),d=n.getUint8(6),u=n.getUint8(7),c=d|l<<8|o<<16|u<<24,f=16777215&n.getUint32(7,!r);0!==f&&h.w(this.TAG,"Meet tag which has StreamID != 0!");let p=i+11;switch(a){case 8:this._parseAudioData(e,p,s,c);break;case 9:this._parseVideoData(e,p,s,c,t+i);break;case 18:this._parseScriptData(e,p,s);break}let m=n.getUint32(11+s,!r);m!==11+s&&h.w(this.TAG,`Invalid PrevTagSize ${m}`),i+=11+s+4}return this._isInitialMetadataDispatched()&&this._dispatch&&(this._audioTrack.length||this._videoTrack.length)&&this._onDataAvailable(this._audioTrack,this._videoTrack),i}_parseScriptData(e,t,i){let r=Z.parseScriptData(e,t,i);if(r.hasOwnProperty("onMetaData")){if(null==r.onMetaData||"object"!==typeof r.onMetaData)return void h.w(this.TAG,"Invalid onMetaData structure!");this._metadata&&h.w(this.TAG,"Found another onMetaData tag!"),this._metadata=r;let e=this._metadata.onMetaData;if(this._onMetaDataArrived&&this._onMetaDataArrived(Object.assign({},e)),"boolean"===typeof e.hasAudio&&!1===this._hasAudioFlagOverrided&&(this._hasAudio=e.hasAudio,this._mediaInfo.hasAudio=this._hasAudio),"boolean"===typeof e.hasVideo&&!1===this._hasVideoFlagOverrided&&(this._hasVideo=e.hasVideo,this._mediaInfo.hasVideo=this._hasVideo),"number"===typeof e.audiodatarate&&(this._mediaInfo.audioDataRate=e.audiodatarate),"number"===typeof e.videodatarate&&(this._mediaInfo.videoDataRate=e.videodatarate),"number"===typeof e.width&&(this._mediaInfo.width=e.width),"number"===typeof e.height&&(this._mediaInfo.height=e.height),"number"===typeof e.duration){if(!this._durationOverrided){let t=Math.floor(e.duration*this._timescale);this._duration=t,this._mediaInfo.duration=t}}else this._mediaInfo.duration=0;if("number"===typeof e.framerate){let t=Math.floor(1e3*e.framerate);if(t>0){let e=t/1e3;this._referenceFrameRate.fixed=!0,this._referenceFrameRate.fps=e,this._referenceFrameRate.fps_num=t,this._referenceFrameRate.fps_den=1e3,this._mediaInfo.fps=e}}if("object"===typeof e.keyframes){this._mediaInfo.hasKeyframesIndex=!0;let t=e.keyframes;this._mediaInfo.keyframesIndex=this._parseKeyframesIndex(t),e.keyframes=null}else this._mediaInfo.hasKeyframesIndex=!1;this._dispatch=!1,this._mediaInfo.metadata=e,h.v(this.TAG,"Parsed onMetaData"),this._mediaInfo.isComplete()&&this._onMediaInfo(this._mediaInfo)}Object.keys(r).length>0&&this._onScriptDataArrived&&this._onScriptDataArrived(Object.assign({},r))}_parseKeyframesIndex(e){let t=[],i=[];for(let r=1;r>>4;if(2!==s&&10!==s)return void this._onError(ae.CODEC_UNSUPPORTED,"Flv: Unsupported audio codec idx: "+s);let o=0,l=(12&a)>>>2;if(!(l>=0&&l<=4))return void this._onError(ae.FORMAT_ERROR,"Flv: Invalid audio sample rate idx: "+l);o=this._flvSoundRateTable[l];let d=1&a,u=this._audioMetadata,c=this._audioTrack;if(u||(!1===this._hasAudio&&!1===this._hasAudioFlagOverrided&&(this._hasAudio=!0,this._mediaInfo.hasAudio=!0),u=this._audioMetadata={},u.type="audio",u.id=c.id,u.timescale=this._timescale,u.duration=this._duration,u.audioSampleRate=o,u.channelCount=0===d?1:2),10===s){let n=this._parseAACAudioData(e,t+1,i-1);if(void 0==n)return;if(0===n.packetType){u.config&&h.w(this.TAG,"Found another AudioSpecificConfig!");let e=n.data;u.audioSampleRate=e.samplingRate,u.channelCount=e.channelCount,u.codec=e.codec,u.originalCodec=e.originalCodec,u.config=e.config,u.refSampleDuration=1024/u.audioSampleRate*u.timescale,h.v(this.TAG,"Parsed AudioSpecificConfig"),this._isInitialMetadataDispatched()?this._dispatch&&(this._audioTrack.length||this._videoTrack.length)&&this._onDataAvailable(this._audioTrack,this._videoTrack):this._audioInitialMetadataDispatched=!0,this._dispatch=!1,this._onTrackMetadata("audio",u);let t=this._mediaInfo;t.audioCodec=u.originalCodec,t.audioSampleRate=u.audioSampleRate,t.audioChannelCount=u.channelCount,t.hasVideo?null!=t.videoCodec&&(t.mimeType='video/x-flv; codecs="'+t.videoCodec+","+t.audioCodec+'"'):t.mimeType='video/x-flv; codecs="'+t.audioCodec+'"',t.isComplete()&&this._onMediaInfo(t)}else if(1===n.packetType){let e=this._timestampBase+r,t={unit:n.data,length:n.data.byteLength,dts:e,pts:e};c.samples.push(t),c.length+=n.data.length}else h.e(this.TAG,`Flv: Unsupported AAC data type ${n.packetType}`)}else if(2===s){if(!u.codec){let r=this._parseMP3AudioData(e,t+1,i-1,!0);if(void 0==r)return;u.audioSampleRate=r.samplingRate,u.channelCount=r.channelCount,u.codec=r.codec,u.originalCodec=r.originalCodec,u.refSampleDuration=1152/u.audioSampleRate*u.timescale,h.v(this.TAG,"Parsed MPEG Audio Frame Header"),this._audioInitialMetadataDispatched=!0,this._onTrackMetadata("audio",u);let n=this._mediaInfo;n.audioCodec=u.codec,n.audioSampleRate=u.audioSampleRate,n.audioChannelCount=u.channelCount,n.audioDataRate=r.bitRate,n.hasVideo?null!=n.videoCodec&&(n.mimeType='video/x-flv; codecs="'+n.videoCodec+","+n.audioCodec+'"'):n.mimeType='video/x-flv; codecs="'+n.audioCodec+'"',n.isComplete()&&this._onMediaInfo(n)}let n=this._parseMP3AudioData(e,t+1,i-1,!1);if(void 0==n)return;let a=this._timestampBase+r,s={unit:n,length:n.byteLength,dts:a,pts:a};c.samples.push(s),c.length+=n.length}}_parseAACAudioData(e,t,i){if(i<=1)return void h.w(this.TAG,"Flv: Invalid AAC packet, missing AACPacketType or/and Data!");let r={},n=new Uint8Array(e,t,i);return r.packetType=n[0],0===n[0]?r.data=this._parseAACAudioSpecificConfig(e,t+1,i-1):r.data=n.subarray(1),r}_parseAACAudioSpecificConfig(e,t,i){let r=new Uint8Array(e,t,i),n=null,a=0,s=0,o=null,l=0,d=null;if(a=s=r[0]>>>3,l=(7&r[0])<<1|r[1]>>>7,l<0||l>=this._mpegSamplingRates.length)return void this._onError(ae.FORMAT_ERROR,"Flv: AAC invalid sampling frequency index!");let u=this._mpegSamplingRates[l],h=(120&r[1])>>>3;if(h<0||h>=8)return void this._onError(ae.FORMAT_ERROR,"Flv: AAC invalid channel configuration");5===a&&(d=(7&r[1])<<1|r[2]>>>7,o=(124&r[2])>>>2);let c=self.navigator.userAgent.toLowerCase();return-1!==c.indexOf("firefox")?l>=6?(a=5,n=new Array(4),d=l-3):(a=2,n=new Array(2),d=l):-1!==c.indexOf("android")?(a=2,n=new Array(2),d=l):(a=5,d=l,n=new Array(4),l>=6?d=l-3:1===h&&(a=2,n=new Array(2),d=l)),n[0]=a<<3,n[0]|=(15&l)>>>1,n[1]=(15&l)<<7,n[1]|=(15&h)<<3,5===a&&(n[1]|=(15&d)>>>1,n[2]=(1&d)<<7,n[2]|=8,n[3]=0),{config:n,samplingRate:u,channelCount:h,codec:"mp4a.40."+a,originalCodec:"mp4a.40."+s}}_parseMP3AudioData(e,t,i,r){if(i<4)return void h.w(this.TAG,"Flv: Invalid MP3 packet, header missing!");this._littleEndian;let n=new Uint8Array(e,t,i),a=null;if(r){if(255!==n[0])return;let e=n[1]>>>3&3,t=(6&n[1])>>1,i=(240&n[2])>>>4,r=(12&n[2])>>>2,s=n[3]>>>6&3,o=3!==s?2:1,l=0,d=0,u=34,h="mp3";switch(e){case 0:l=this._mpegAudioV25SampleRateTable[r];break;case 2:l=this._mpegAudioV20SampleRateTable[r];break;case 3:l=this._mpegAudioV10SampleRateTable[r];break}switch(t){case 1:u=34,i>>4,o=15&a;7===o?this._parseAVCVideoPacket(e,t+1,i-1,r,n,s):this._onError(ae.CODEC_UNSUPPORTED,`Flv: Unsupported codec in video frame: ${o}`)}_parseAVCVideoPacket(e,t,i,r,n,a){if(i<4)return void h.w(this.TAG,"Flv: Invalid AVC packet, missing AVCPacketType or/and CompositionTime");let s=this._littleEndian,o=new DataView(e,t,i),l=o.getUint8(0),d=16777215&o.getUint32(0,!s),u=d<<8>>8;if(0===l)this._parseAVCDecoderConfigurationRecord(e,t+4,i-4);else if(1===l)this._parseAVCVideoData(e,t+4,i-4,r,n,a,u);else if(2!==l)return void this._onError(ae.FORMAT_ERROR,`Flv: Invalid video packet type ${l}`)}_parseAVCDecoderConfigurationRecord(e,t,i){if(i<7)return void h.w(this.TAG,"Flv: Invalid AVCDecoderConfigurationRecord, lack of data!");let r=this._videoMetadata,n=this._videoTrack,a=this._littleEndian,s=new DataView(e,t,i);r?"undefined"!==typeof r.avcc&&h.w(this.TAG,"Found another AVCDecoderConfigurationRecord!"):(!1===this._hasVideo&&!1===this._hasVideoFlagOverrided&&(this._hasVideo=!0,this._mediaInfo.hasVideo=!0),r=this._videoMetadata={},r.type="video",r.id=n.id,r.timescale=this._timescale,r.duration=this._duration);let o=s.getUint8(0),l=s.getUint8(1);s.getUint8(2),s.getUint8(3);if(1!==o||0===l)return void this._onError(ae.FORMAT_ERROR,"Flv: Invalid AVCDecoderConfigurationRecord");if(this._naluLengthSize=1+(3&s.getUint8(4)),3!==this._naluLengthSize&&4!==this._naluLengthSize)return void this._onError(ae.FORMAT_ERROR,`Flv: Strange NaluLengthSizeMinusOne: ${this._naluLengthSize-1}`);let d=31&s.getUint8(5);if(0===d)return void this._onError(ae.FORMAT_ERROR,"Flv: Invalid AVCDecoderConfigurationRecord: No SPS");d>1&&h.w(this.TAG,`Flv: Strange AVCDecoderConfigurationRecord: SPS Count = ${d}`);let u=6;for(let h=0;h1&&h.w(this.TAG,`Flv: Strange AVCDecoderConfigurationRecord: PPS Count = ${c}`),u++;for(let e=0;e=i){h.w(this.TAG,`Malformed Nalu near timestamp ${p}, offset = ${c}, dataSize = ${i}`);break}let r=l.getUint32(c,!o);if(3===f&&(r>>>=8),r>i-f)return void h.w(this.TAG,`Malformed Nalus near timestamp ${p}, NaluSize > DataSize!`);let n=31&l.getUint8(c+f);5===n&&(m=!0);let a=new Uint8Array(e,t+c,f+r),s={type:n,data:a};d.push(s),u+=a.byteLength,c+=f+r}if(d.length){let e=this._videoTrack,t={units:d,length:u,isKeyframe:m,dts:p,cts:s,pts:p+s};m&&(t.fileposition=n),e.samples.push(t),e.length+=u}}}var le=oe;class de{static init(){de.types={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[],".mp3":[]};for(let t in de.types)de.types.hasOwnProperty(t)&&(de.types[t]=[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)]);let e=de.constants={};e.FTYP=new Uint8Array([105,115,111,109,0,0,0,1,105,115,111,109,97,118,99,49]),e.STSD_PREFIX=new Uint8Array([0,0,0,0,0,0,0,1]),e.STTS=new Uint8Array([0,0,0,0,0,0,0,0]),e.STSC=e.STCO=e.STTS,e.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),e.HDLR_VIDEO=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),e.HDLR_AUDIO=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),e.DREF=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),e.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),e.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0])}static box(e){let t=8,i=null,r=Array.prototype.slice.call(arguments,1),n=r.length;for(let s=0;s>>24&255,i[1]=t>>>16&255,i[2]=t>>>8&255,i[3]=255&t,i.set(e,4);let a=8;for(let s=0;s>>24&255,e>>>16&255,e>>>8&255,255&e,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]))}static trak(e){return de.box(de.types.trak,de.tkhd(e),de.mdia(e))}static tkhd(e){let t=e.id,i=e.duration,r=e.presentWidth,n=e.presentHeight;return de.box(de.types.tkhd,new Uint8Array([0,0,0,7,0,0,0,0,0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,r>>>8&255,255&r,0,0,n>>>8&255,255&n,0,0]))}static mdia(e){return de.box(de.types.mdia,de.mdhd(e),de.hdlr(e),de.minf(e))}static mdhd(e){let t=e.timescale,i=e.duration;return de.box(de.types.mdhd,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,i>>>24&255,i>>>16&255,i>>>8&255,255&i,85,196,0,0]))}static hdlr(e){let t=null;return t="audio"===e.type?de.constants.HDLR_AUDIO:de.constants.HDLR_VIDEO,de.box(de.types.hdlr,t)}static minf(e){let t=null;return t="audio"===e.type?de.box(de.types.smhd,de.constants.SMHD):de.box(de.types.vmhd,de.constants.VMHD),de.box(de.types.minf,t,de.dinf(),de.stbl(e))}static dinf(){let e=de.box(de.types.dinf,de.box(de.types.dref,de.constants.DREF));return e}static stbl(e){let t=de.box(de.types.stbl,de.stsd(e),de.box(de.types.stts,de.constants.STTS),de.box(de.types.stsc,de.constants.STSC),de.box(de.types.stsz,de.constants.STSZ),de.box(de.types.stco,de.constants.STCO));return t}static stsd(e){return"audio"===e.type?"mp3"===e.codec?de.box(de.types.stsd,de.constants.STSD_PREFIX,de.mp3(e)):de.box(de.types.stsd,de.constants.STSD_PREFIX,de.mp4a(e)):de.box(de.types.stsd,de.constants.STSD_PREFIX,de.avc1(e))}static mp3(e){let t=e.channelCount,i=e.audioSampleRate,r=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t,0,16,0,0,0,0,i>>>8&255,255&i,0,0]);return de.box(de.types[".mp3"],r)}static mp4a(e){let t=e.channelCount,i=e.audioSampleRate,r=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t,0,16,0,0,0,0,i>>>8&255,255&i,0,0]);return de.box(de.types.mp4a,r,de.esds(e))}static esds(e){let t=e.config||[],i=t.length,r=new Uint8Array([0,0,0,0,3,23+i,0,1,0,4,15+i,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([i]).concat(t).concat([6,1,2]));return de.box(de.types.esds,r)}static avc1(e){let t=e.avcc,i=e.codecWidth,r=e.codecHeight,n=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,i>>>8&255,255&i,r>>>8&255,255&r,0,72,0,0,0,72,0,0,0,0,0,0,0,1,10,120,113,113,47,102,108,118,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return de.box(de.types.avc1,n,de.box(de.types.avcC,t))}static mvex(e){return de.box(de.types.mvex,de.trex(e))}static trex(e){let t=e.id,i=new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]);return de.box(de.types.trex,i)}static moof(e,t){return de.box(de.types.moof,de.mfhd(e.sequenceNumber),de.traf(e,t))}static mfhd(e){let t=new Uint8Array([0,0,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e]);return de.box(de.types.mfhd,t)}static traf(e,t){let i=e.id,r=de.box(de.types.tfhd,new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i])),n=de.box(de.types.tfdt,new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t])),a=de.sdtp(e),s=de.trun(e,a.byteLength+16+16+8+16+8+8);return de.box(de.types.traf,r,n,s,a)}static sdtp(e){let t=e.samples||[],i=t.length,r=new Uint8Array(4+i);for(let n=0;n>>24&255,r>>>16&255,r>>>8&255,255&r,t>>>24&255,t>>>16&255,t>>>8&255,255&t],0);for(let s=0;s>>24&255,e>>>16&255,e>>>8&255,255&e,t>>>24&255,t>>>16&255,t>>>8&255,255&t,r.isLeading<<2|r.dependsOn,r.isDependedOn<<6|r.hasRedundancy<<4|r.isNonSync,0,0,n>>>24&255,n>>>16&255,n>>>8&255,255&n],12+16*s)}return de.box(de.types.trun,a)}static mdat(e){return de.box(de.types.mdat,e)}}de.init();var ue=de;class he{static getSilentFrame(e,t){if("mp4a.40.2"===e){if(1===t)return new Uint8Array([0,200,0,128,35,128]);if(2===t)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(6===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224])}else{if(1===t)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(2===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(3===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}return null}}var ce=he;class fe{constructor(e,t,i,r,n){this.dts=e,this.pts=t,this.duration=i,this.originalDts=r,this.isSyncPoint=n,this.fileposition=null}}class pe{constructor(){this.beginDts=0,this.endDts=0,this.beginPts=0,this.endPts=0,this.originalBeginDts=0,this.originalEndDts=0,this.syncPoints=[],this.firstSample=null,this.lastSample=null}appendSyncPoint(e){e.isSyncPoint=!0,this.syncPoints.push(e)}}class me{constructor(){this._list=[]}clear(){this._list=[]}appendArray(e){let t=this._list;0!==e.length&&(t.length>0&&e[0].originalDts=t[n].dts&&et[r].lastSample.originalDts&&e=t[r].lastSample.originalDts&&(r===t.length-1||r0&&(n=this._searchNearestSegmentBefore(i.originalBeginDts)+1),this._lastAppendLocation=n,this._list.splice(n,0,i)}getLastSegmentBefore(e){let t=this._searchNearestSegmentBefore(e);return t>=0?this._list[t]:null}getLastSampleBefore(e){let t=this.getLastSegmentBefore(e);return null!=t?t.lastSample:null}getLastSyncPointBefore(e){let t=this._searchNearestSegmentBefore(e),i=this._list[t].syncPoints;while(0===i.length&&t>0)t--,i=this._list[t].syncPoints;return i.length>0?i[i.length-1]:null}}class ve{constructor(e){this.TAG="MP4Remuxer",this._config=e,this._isLive=!0===e.isLive,this._dtsBase=-1,this._dtsBaseInited=!1,this._audioDtsBase=1/0,this._videoDtsBase=1/0,this._audioNextDts=void 0,this._videoNextDts=void 0,this._audioStashedLastSample=null,this._videoStashedLastSample=null,this._audioMeta=null,this._videoMeta=null,this._audioSegmentInfoList=new ge("audio"),this._videoSegmentInfoList=new ge("video"),this._onInitSegment=null,this._onMediaSegment=null,this._forceFirstIDR=!(!T.chrome||!(T.version.major<50||50===T.version.major&&T.version.build<2661)),this._fillSilentAfterSeek=T.msedge||T.msie,this._mp3UseMpegAudio=!T.firefox,this._fillAudioTimestampGap=this._config.fixAudioTimestampGap}destroy(){this._dtsBase=-1,this._dtsBaseInited=!1,this._audioMeta=null,this._videoMeta=null,this._audioSegmentInfoList.clear(),this._audioSegmentInfoList=null,this._videoSegmentInfoList.clear(),this._videoSegmentInfoList=null,this._onInitSegment=null,this._onMediaSegment=null}bindDataSource(e){return e.onDataAvailable=this.remux.bind(this),e.onTrackMetadata=this._onTrackMetadataReceived.bind(this),this}get onInitSegment(){return this._onInitSegment}set onInitSegment(e){this._onInitSegment=e}get onMediaSegment(){return this._onMediaSegment}set onMediaSegment(e){this._onMediaSegment=e}insertDiscontinuity(){this._audioNextDts=this._videoNextDts=void 0}seek(e){this._audioStashedLastSample=null,this._videoStashedLastSample=null,this._videoSegmentInfoList.clear(),this._audioSegmentInfoList.clear()}remux(e,t){if(!this._onMediaSegment)throw new m("MP4Remuxer: onMediaSegment callback must be specificed!");this._dtsBaseInited||this._calculateDtsBase(e,t),this._remuxVideo(t),this._remuxAudio(e)}_onTrackMetadataReceived(e,t){let i=null,r="mp4",n=t.codec;if("audio"===e)this._audioMeta=t,"mp3"===t.codec&&this._mp3UseMpegAudio?(r="mpeg",n="",i=new Uint8Array):i=ue.generateInitSegment(t);else{if("video"!==e)return;this._videoMeta=t,i=ue.generateInitSegment(t)}if(!this._onInitSegment)throw new m("MP4Remuxer: onInitSegment callback must be specified!");this._onInitSegment(e,{type:e,data:i.buffer,codec:n,container:`${e}/${r}`,mediaDuration:t.duration})}_calculateDtsBase(e,t){this._dtsBaseInited||(e.samples&&e.samples.length&&(this._audioDtsBase=e.samples[0].dts),t.samples&&t.samples.length&&(this._videoDtsBase=t.samples[0].dts),this._dtsBase=Math.min(this._audioDtsBase,this._videoDtsBase),this._dtsBaseInited=!0)}flushStashedSamples(){let e=this._videoStashedLastSample,t=this._audioStashedLastSample,i={type:"video",id:1,sequenceNumber:0,samples:[],length:0};null!=e&&(i.samples.push(e),i.length=e.length);let r={type:"audio",id:2,sequenceNumber:0,samples:[],length:0};null!=t&&(r.samples.push(t),r.length=t.length),this._videoStashedLastSample=null,this._audioStashedLastSample=null,this._remuxVideo(i,!0),this._remuxAudio(r,!0)}_remuxAudio(e,t){if(null==this._audioMeta)return;let i=e,r=i.samples,n=void 0,a=-1,s=-1,o=this._audioMeta.refSampleDuration,l="mp3"===this._audioMeta.codec&&this._mp3UseMpegAudio,d=this._dtsBaseInited&&void 0===this._audioNextDts,u=!1;if(!r||0===r.length)return;if(1===r.length&&!t)return;let c=0,f=null,p=0;l?(c=0,p=i.length):(c=8,p=8+i.length);let m=null;if(r.length>1&&(m=r.pop(),p-=m.length),null!=this._audioStashedLastSample){let e=this._audioStashedLastSample;this._audioStashedLastSample=null,r.unshift(e),p+=e.length}null!=m&&(this._audioStashedLastSample=m);let g=r[0].dts-this._dtsBase;if(this._audioNextDts)n=g-this._audioNextDts;else if(this._audioSegmentInfoList.isEmpty())n=0,this._fillSilentAfterSeek&&!this._videoSegmentInfoList.isEmpty()&&"mp3"!==this._audioMeta.originalCodec&&(u=!0);else{let e=this._audioSegmentInfoList.getLastSampleBefore(g);if(null!=e){let t=g-(e.originalDts+e.duration);t<=3&&(t=0);let i=e.dts+e.duration+t;n=g-i}else n=0}if(u){let e=g-n,t=this._videoSegmentInfoList.getLastSegmentBefore(g);if(null!=t&&t.beginDts=1?v[v.length-1].duration:Math.floor(o);let d=!1,u=null;if(l>1.5*o&&"mp3"!==this._audioMeta.codec&&this._fillAudioTimestampGap&&!T.safari){d=!0;let e=Math.abs(l-o),r=Math.ceil(e/o),n=s+o;h.w(this.TAG,"Large audio timestamp gap detected, may cause AV sync to drift. Silent frames will be generated to avoid unsync.\n"+`dts: ${s+l} ms, expected: ${s+Math.round(o)} ms, `+`delta: ${Math.round(e)} ms, generate: ${r} frames`);let a=ce.getSilentFrame(this._audioMeta.originalCodec,this._audioMeta.channelCount);null==a&&(h.w(this.TAG,"Unable to generate silent frame for "+`${this._audioMeta.originalCodec} with ${this._audioMeta.channelCount} channels, repeat last frame`),a=t),u=[];for(let t=0;t0){let t=u[u.length-1];t.duration=e-t.dts}let t={dts:e,pts:e,cts:0,unit:a,size:a.byteLength,duration:0,originalDts:i,flags:{isLeading:0,dependsOn:1,isDependedOn:0,hasRedundancy:0}};u.push(t),p+=t.size,n+=o}let c=u[u.length-1];c.duration=s+l-c.dts,l=Math.round(o)}v.push({dts:s,pts:s,cts:0,unit:e.unit,size:e.unit.byteLength,duration:l,originalDts:i,flags:{isLeading:0,dependsOn:1,isDependedOn:0,hasRedundancy:0}}),d&&v.push.apply(v,u)}l?f=new Uint8Array(p):(f=new Uint8Array(p),f[0]=p>>>24&255,f[1]=p>>>16&255,f[2]=p>>>8&255,f[3]=255&p,f.set(ue.types.mdat,4));for(let h=0;h1&&(c=r.pop(),h-=c.length),null!=this._videoStashedLastSample){let e=this._videoStashedLastSample;this._videoStashedLastSample=null,r.unshift(e),h+=e.length}null!=c&&(this._videoStashedLastSample=c);let f=r[0].dts-this._dtsBase;if(this._videoNextDts)n=f-this._videoNextDts;else if(this._videoSegmentInfoList.isEmpty())n=0;else{let e=this._videoSegmentInfoList.getLastSampleBefore(f);if(null!=e){let t=f-(e.originalDts+e.duration);t<=3&&(t=0);let i=e.dts+e.duration+t;n=f-i}else n=0}let p=new pe,m=[];for(let y=0;y=1?m[m.length-1].duration:Math.floor(this._videoMeta.refSampleDuration);if(i){let t=new fe(s,d,u,e.dts,!0);t.fileposition=e.fileposition,p.appendSyncPoint(t)}m.push({dts:s,pts:d,cts:l,units:e.units,size:e.length,isKeyframe:i,duration:u,originalDts:t,flags:{isLeading:0,dependsOn:i?2:1,isDependedOn:i?1:0,hasRedundancy:0,isNonSync:i?0:1}})}u=new Uint8Array(h),u[0]=h>>>24&255,u[1]=h>>>16&255,u[2]=h>>>8&255,u[3]=255&h,u.set(ue.types.mdat,4);for(let y=0;y{r.timestampBase=i,i+=r.duration,r.cors=e.cors,r.withCredentials=e.withCredentials,t.referrerPolicy&&(r.referrerPolicy=t.referrerPolicy)}),isNaN(i)||this._mediaDataSource.duration===i||(this._mediaDataSource.duration=i),this._mediaInfo=null,this._demuxer=null,this._remuxer=null,this._ioctl=null,this._pendingSeekTime=null,this._pendingResolveSeekPoint=null,this._statisticsReporter=null}destroy(){this._mediaInfo=null,this._mediaDataSource=null,this._statisticsReporter&&this._disableStatisticsReporter(),this._ioctl&&(this._ioctl.destroy(),this._ioctl=null),this._demuxer&&(this._demuxer.destroy(),this._demuxer=null),this._remuxer&&(this._remuxer.destroy(),this._remuxer=null),this._emitter.removeAllListeners(),this._emitter=null}on(e,t){this._emitter.addListener(e,t)}off(e,t){this._emitter.removeListener(e,t)}start(){this._loadSegment(0),this._enableStatisticsReporter()}_loadSegment(e,t){this._currentSegmentIndex=e;let i=this._mediaDataSource.segments[e],r=this._ioctl=new B(i,this._config,e);r.onError=this._onIOException.bind(this),r.onSeeked=this._onIOSeeked.bind(this),r.onComplete=this._onIOComplete.bind(this),r.onRedirect=this._onIORedirect.bind(this),r.onRecoveredEarlyEof=this._onIORecoveredEarlyEof.bind(this),t?this._demuxer.bindDataSource(this._ioctl):r.onDataArrival=this._onInitChunkArrival.bind(this),r.open(t)}stop(){this._internalAbort(),this._disableStatisticsReporter()}_internalAbort(){this._ioctl&&(this._ioctl.destroy(),this._ioctl=null)}pause(){this._ioctl&&this._ioctl.isWorking()&&(this._ioctl.pause(),this._disableStatisticsReporter())}resume(){this._ioctl&&this._ioctl.isPaused()&&(this._ioctl.resume(),this._enableStatisticsReporter())}seek(e){if(null==this._mediaInfo||!this._mediaInfo.isSeekable())return;let t=this._searchSegmentIndexContains(e);if(t===this._currentSegmentIndex){let i=this._mediaInfo.segments[t];if(void 0==i)this._pendingSeekTime=e;else{let t=i.getNearestKeyframe(e);this._remuxer.seek(t.milliseconds),this._ioctl.seek(t.fileposition),this._pendingResolveSeekPoint=t.milliseconds}}else{let i=this._mediaInfo.segments[t];if(void 0==i)this._pendingSeekTime=e,this._internalAbort(),this._remuxer.seek(),this._remuxer.insertDiscontinuity(),this._loadSegment(t);else{let r=i.getNearestKeyframe(e);this._internalAbort(),this._remuxer.seek(e),this._remuxer.insertDiscontinuity(),this._demuxer.resetMediaInfo(),this._demuxer.timestampBase=this._mediaDataSource.segments[t].timestampBase,this._loadSegment(t,r.fileposition),this._pendingResolveSeekPoint=r.milliseconds,this._reportSegmentMediaInfo(t)}}this._enableStatisticsReporter()}_searchSegmentIndexContains(e){let t=this._mediaDataSource.segments,i=t.length-1;for(let r=0;r0)this._demuxer.bindDataSource(this._ioctl),this._demuxer.timestampBase=this._mediaDataSource.segments[this._currentSegmentIndex].timestampBase,r=this._demuxer.parseChunks(e,t);else if((i=le.probe(e)).match){this._demuxer=new le(i,this._config),this._remuxer||(this._remuxer=new ye(this._config));let n=this._mediaDataSource;void 0==n.duration||isNaN(n.duration)||(this._demuxer.overridedDuration=n.duration),"boolean"===typeof n.hasAudio&&(this._demuxer.overridedHasAudio=n.hasAudio),"boolean"===typeof n.hasVideo&&(this._demuxer.overridedHasVideo=n.hasVideo),this._demuxer.timestampBase=n.segments[this._currentSegmentIndex].timestampBase,this._demuxer.onError=this._onDemuxException.bind(this),this._demuxer.onMediaInfo=this._onMediaInfo.bind(this),this._demuxer.onMetaDataArrived=this._onMetaDataArrived.bind(this),this._demuxer.onScriptDataArrived=this._onScriptDataArrived.bind(this),this._remuxer.bindDataSource(this._demuxer.bindDataSource(this._ioctl)),this._remuxer.onInitSegment=this._onRemuxerInitSegmentArrival.bind(this),this._remuxer.onMediaSegment=this._onRemuxerMediaSegmentArrival.bind(this),r=this._demuxer.parseChunks(e,t)}else i=null,h.e(this.TAG,"Non-FLV, Unsupported media type!"),Promise.resolve().then(()=>{this._internalAbort()}),this._emitter.emit(Ee.DEMUX_ERROR,ae.FORMAT_UNSUPPORTED,"Non-FLV, Unsupported media type"),r=0;return r}_onMediaInfo(e){null==this._mediaInfo&&(this._mediaInfo=Object.assign({},e),this._mediaInfo.keyframesIndex=null,this._mediaInfo.segments=[],this._mediaInfo.segmentCount=this._mediaDataSource.segments.length,Object.setPrototypeOf(this._mediaInfo,W.prototype));let t=Object.assign({},e);Object.setPrototypeOf(t,W.prototype),this._mediaInfo.segments[this._currentSegmentIndex]=t,this._reportSegmentMediaInfo(this._currentSegmentIndex),null!=this._pendingSeekTime&&Promise.resolve().then(()=>{let e=this._pendingSeekTime;this._pendingSeekTime=null,this.seek(e)})}_onMetaDataArrived(e){this._emitter.emit(Ee.METADATA_ARRIVED,e)}_onScriptDataArrived(e){this._emitter.emit(Ee.SCRIPTDATA_ARRIVED,e)}_onIOSeeked(){this._remuxer.insertDiscontinuity()}_onIOComplete(e){let t=e,i=t+1;i0&&e[0].originalDts===i&&(i=e[0].pts),this._emitter.emit(Ee.RECOMMEND_SEEKPOINT,i)}}_enableStatisticsReporter(){null==this._statisticsReporter&&(this._statisticsReporter=self.setInterval(this._reportStatisticsInfo.bind(this),this._config.statisticsInfoReportInterval))}_disableStatisticsReporter(){this._statisticsReporter&&(self.clearInterval(this._statisticsReporter),this._statisticsReporter=null)}_reportSegmentMediaInfo(e){let t=this._mediaInfo.segments[e],i=Object.assign({},t);i.duration=this._mediaInfo.duration,i.segmentCount=this._mediaInfo.segmentCount,delete i.segments,delete i.keyframesIndex,this._emitter.emit(Ee.MEDIA_INFO,i)}_reportStatisticsInfo(){let e={};e.url=this._ioctl.currentURL,e.hasRedirect=this._ioctl.hasRedirect,e.hasRedirect&&(e.redirectedURL=this._ioctl.currentRedirectedURL),e.speed=this._ioctl.currentSpeed,e.loaderType=this._ioctl.loaderType,e.currentSegmentIndex=this._currentSegmentIndex,e.totalSegmentCount=this._mediaDataSource.segments.length,this._emitter.emit(Ee.STATISTICS_INFO,e)}}var Se=be;let Te=function(e){let t=null,i=m.bind(this);function r(t,i){let r={msg:Ee.INIT_SEGMENT,data:{type:t,data:i}};e.postMessage(r,[i.data])}function n(t,i){let r={msg:Ee.MEDIA_SEGMENT,data:{type:t,data:i}};e.postMessage(r,[i.data])}function a(){let t={msg:Ee.LOADING_COMPLETE};e.postMessage(t)}function s(){let t={msg:Ee.RECOVERED_EARLY_EOF};e.postMessage(t)}function l(t){let i={msg:Ee.MEDIA_INFO,data:t};e.postMessage(i)}function d(t){let i={msg:Ee.METADATA_ARRIVED,data:t};e.postMessage(i)}function u(t){let i={msg:Ee.SCRIPTDATA_ARRIVED,data:t};e.postMessage(i)}function h(t){let i={msg:Ee.STATISTICS_INFO,data:t};e.postMessage(i)}function c(t,i){e.postMessage({msg:Ee.IO_ERROR,data:{type:t,info:i}})}function f(t,i){e.postMessage({msg:Ee.DEMUX_ERROR,data:{type:t,info:i}})}function p(t){e.postMessage({msg:Ee.RECOMMEND_SEEKPOINT,data:t})}function m(t,i){e.postMessage({msg:"logcat_callback",data:{type:t,logcat:i}})}o.install(),e.addEventListener("message",(function(o){switch(o.data.cmd){case"init":t=new Se(o.data.param[0],o.data.param[1]),t.on(Ee.IO_ERROR,c.bind(this)),t.on(Ee.DEMUX_ERROR,f.bind(this)),t.on(Ee.INIT_SEGMENT,r.bind(this)),t.on(Ee.MEDIA_SEGMENT,n.bind(this)),t.on(Ee.LOADING_COMPLETE,a.bind(this)),t.on(Ee.RECOVERED_EARLY_EOF,s.bind(this)),t.on(Ee.MEDIA_INFO,l.bind(this)),t.on(Ee.METADATA_ARRIVED,d.bind(this)),t.on(Ee.SCRIPTDATA_ARRIVED,u.bind(this)),t.on(Ee.STATISTICS_INFO,h.bind(this)),t.on(Ee.RECOMMEND_SEEKPOINT,p.bind(this));break;case"destroy":t&&(t.destroy(),t=null),e.postMessage({msg:"destroyed"});break;case"start":t.start();break;case"stop":t.stop();break;case"seek":t.seek(o.data.param);break;case"pause":t.pause();break;case"resume":t.resume();break;case"logging_config":{let e=o.data.param;H.applyConfig(e),!0===e.enableCallback?H.addLogListener(i):H.removeLogListener(i);break}}}))};var we=Te;class Ae{constructor(e,t){if(this.TAG="Transmuxer",this._emitter=new d.a,t.enableWorker&&"undefined"!==typeof Worker)try{let r=i("d2be");this._worker=r(we),this._workerDestroying=!1,this._worker.addEventListener("message",this._onWorkerMessage.bind(this)),this._worker.postMessage({cmd:"init",param:[e,t]}),this.e={onLoggingConfigChanged:this._onLoggingConfigChanged.bind(this)},H.registerListener(this.e.onLoggingConfigChanged),this._worker.postMessage({cmd:"logging_config",param:H.getConfig()})}catch(r){h.e(this.TAG,"Error while initialize transmuxing worker, fallback to inline transmuxing"),this._worker=null,this._controller=new Se(e,t)}else this._controller=new Se(e,t);if(this._controller){let e=this._controller;e.on(Ee.IO_ERROR,this._onIOError.bind(this)),e.on(Ee.DEMUX_ERROR,this._onDemuxError.bind(this)),e.on(Ee.INIT_SEGMENT,this._onInitSegment.bind(this)),e.on(Ee.MEDIA_SEGMENT,this._onMediaSegment.bind(this)),e.on(Ee.LOADING_COMPLETE,this._onLoadingComplete.bind(this)),e.on(Ee.RECOVERED_EARLY_EOF,this._onRecoveredEarlyEof.bind(this)),e.on(Ee.MEDIA_INFO,this._onMediaInfo.bind(this)),e.on(Ee.METADATA_ARRIVED,this._onMetaDataArrived.bind(this)),e.on(Ee.SCRIPTDATA_ARRIVED,this._onScriptDataArrived.bind(this)),e.on(Ee.STATISTICS_INFO,this._onStatisticsInfo.bind(this)),e.on(Ee.RECOMMEND_SEEKPOINT,this._onRecommendSeekpoint.bind(this))}}destroy(){this._worker?this._workerDestroying||(this._workerDestroying=!0,this._worker.postMessage({cmd:"destroy"}),H.removeListener(this.e.onLoggingConfigChanged),this.e=null):(this._controller.destroy(),this._controller=null),this._emitter.removeAllListeners(),this._emitter=null}on(e,t){this._emitter.addListener(e,t)}off(e,t){this._emitter.removeListener(e,t)}hasWorker(){return null!=this._worker}open(){this._worker?this._worker.postMessage({cmd:"start"}):this._controller.start()}close(){this._worker?this._worker.postMessage({cmd:"stop"}):this._controller.stop()}seek(e){this._worker?this._worker.postMessage({cmd:"seek",param:e}):this._controller.seek(e)}pause(){this._worker?this._worker.postMessage({cmd:"pause"}):this._controller.pause()}resume(){this._worker?this._worker.postMessage({cmd:"resume"}):this._controller.resume()}_onInitSegment(e,t){Promise.resolve().then(()=>{this._emitter.emit(Ee.INIT_SEGMENT,e,t)})}_onMediaSegment(e,t){Promise.resolve().then(()=>{this._emitter.emit(Ee.MEDIA_SEGMENT,e,t)})}_onLoadingComplete(){Promise.resolve().then(()=>{this._emitter.emit(Ee.LOADING_COMPLETE)})}_onRecoveredEarlyEof(){Promise.resolve().then(()=>{this._emitter.emit(Ee.RECOVERED_EARLY_EOF)})}_onMediaInfo(e){Promise.resolve().then(()=>{this._emitter.emit(Ee.MEDIA_INFO,e)})}_onMetaDataArrived(e){Promise.resolve().then(()=>{this._emitter.emit(Ee.METADATA_ARRIVED,e)})}_onScriptDataArrived(e){Promise.resolve().then(()=>{this._emitter.emit(Ee.SCRIPTDATA_ARRIVED,e)})}_onStatisticsInfo(e){Promise.resolve().then(()=>{this._emitter.emit(Ee.STATISTICS_INFO,e)})}_onIOError(e,t){Promise.resolve().then(()=>{this._emitter.emit(Ee.IO_ERROR,e,t)})}_onDemuxError(e,t){Promise.resolve().then(()=>{this._emitter.emit(Ee.DEMUX_ERROR,e,t)})}_onRecommendSeekpoint(e){Promise.resolve().then(()=>{this._emitter.emit(Ee.RECOMMEND_SEEKPOINT,e)})}_onLoggingConfigChanged(e){this._worker&&this._worker.postMessage({cmd:"logging_config",param:e})}_onWorkerMessage(e){let t=e.data,i=t.data;if("destroyed"===t.msg||this._workerDestroying)return this._workerDestroying=!1,this._worker.terminate(),void(this._worker=null);switch(t.msg){case Ee.INIT_SEGMENT:case Ee.MEDIA_SEGMENT:this._emitter.emit(t.msg,i.type,i.data);break;case Ee.LOADING_COMPLETE:case Ee.RECOVERED_EARLY_EOF:this._emitter.emit(t.msg);break;case Ee.MEDIA_INFO:Object.setPrototypeOf(i,W.prototype),this._emitter.emit(t.msg,i);break;case Ee.METADATA_ARRIVED:case Ee.SCRIPTDATA_ARRIVED:case Ee.STATISTICS_INFO:this._emitter.emit(t.msg,i);break;case Ee.IO_ERROR:case Ee.DEMUX_ERROR:this._emitter.emit(t.msg,i.type,i.info);break;case Ee.RECOMMEND_SEEKPOINT:this._emitter.emit(t.msg,i);break;case"logcat_callback":h.emitter.emit("log",i.type,i.logcat);break;default:break}}}var ke=Ae;const Re={ERROR:"error",SOURCE_OPEN:"source_open",UPDATE_END:"update_end",BUFFER_FULL:"buffer_full"};var Le=Re;class De{constructor(e){this.TAG="MSEController",this._config=e,this._emitter=new d.a,this._config.isLive&&void 0==this._config.autoCleanupSourceBuffer&&(this._config.autoCleanupSourceBuffer=!0),this.e={onSourceOpen:this._onSourceOpen.bind(this),onSourceEnded:this._onSourceEnded.bind(this),onSourceClose:this._onSourceClose.bind(this),onSourceBufferError:this._onSourceBufferError.bind(this),onSourceBufferUpdateEnd:this._onSourceBufferUpdateEnd.bind(this)},this._mediaSource=null,this._mediaSourceObjectURL=null,this._mediaElement=null,this._isBufferFull=!1,this._hasPendingEos=!1,this._requireSetMediaDuration=!1,this._pendingMediaDuration=0,this._pendingSourceBufferInit=[],this._mimeTypes={video:null,audio:null},this._sourceBuffers={video:null,audio:null},this._lastInitSegments={video:null,audio:null},this._pendingSegments={video:[],audio:[]},this._pendingRemoveRanges={video:[],audio:[]},this._idrList=new me}destroy(){(this._mediaElement||this._mediaSource)&&this.detachMediaElement(),this.e=null,this._emitter.removeAllListeners(),this._emitter=null}on(e,t){this._emitter.addListener(e,t)}off(e,t){this._emitter.removeListener(e,t)}attachMediaElement(e){if(this._mediaSource)throw new m("MediaSource has been attached to an HTMLMediaElement!");let t=this._mediaSource=new window.MediaSource;t.addEventListener("sourceopen",this.e.onSourceOpen),t.addEventListener("sourceended",this.e.onSourceEnded),t.addEventListener("sourceclose",this.e.onSourceClose),this._mediaElement=e,this._mediaSourceObjectURL=window.URL.createObjectURL(this._mediaSource),e.src=this._mediaSourceObjectURL}detachMediaElement(){if(this._mediaSource){let t=this._mediaSource;for(let i in this._sourceBuffers){let r=this._pendingSegments[i];r.splice(0,r.length),this._pendingSegments[i]=null,this._pendingRemoveRanges[i]=null,this._lastInitSegments[i]=null;let n=this._sourceBuffers[i];if(n){if("closed"!==t.readyState){try{t.removeSourceBuffer(n)}catch(e){h.e(this.TAG,e.message)}n.removeEventListener("error",this.e.onSourceBufferError),n.removeEventListener("updateend",this.e.onSourceBufferUpdateEnd)}this._mimeTypes[i]=null,this._sourceBuffers[i]=null}}if("open"===t.readyState)try{t.endOfStream()}catch(e){h.e(this.TAG,e.message)}t.removeEventListener("sourceopen",this.e.onSourceOpen),t.removeEventListener("sourceended",this.e.onSourceEnded),t.removeEventListener("sourceclose",this.e.onSourceClose),this._pendingSourceBufferInit=[],this._isBufferFull=!1,this._idrList.clear(),this._mediaSource=null}this._mediaElement&&(this._mediaElement.src="",this._mediaElement.removeAttribute("src"),this._mediaElement=null),this._mediaSourceObjectURL&&(window.URL.revokeObjectURL(this._mediaSourceObjectURL),this._mediaSourceObjectURL=null)}appendInitSegment(e,t){if(!this._mediaSource||"open"!==this._mediaSource.readyState)return this._pendingSourceBufferInit.push(e),void this._pendingSegments[e.type].push(e);let i=e,r=`${i.container}`;i.codec&&i.codec.length>0&&(r+=`;codecs=${i.codec}`);let n=!1;if(h.v(this.TAG,"Received Initialization Segment, mimeType: "+r),this._lastInitSegments[i.type]=i,r!==this._mimeTypes[i.type]){if(this._mimeTypes[i.type])h.v(this.TAG,`Notice: ${i.type} mimeType changed, origin: ${this._mimeTypes[i.type]}, target: ${r}`);else{n=!0;try{let e=this._sourceBuffers[i.type]=this._mediaSource.addSourceBuffer(r);e.addEventListener("error",this.e.onSourceBufferError),e.addEventListener("updateend",this.e.onSourceBufferUpdateEnd)}catch(a){return h.e(this.TAG,a.message),void this._emitter.emit(Le.ERROR,{code:a.code,msg:a.message})}}this._mimeTypes[i.type]=r}t||this._pendingSegments[i.type].push(i),n||this._sourceBuffers[i.type]&&!this._sourceBuffers[i.type].updating&&this._doAppendSegments(),T.safari&&"audio/mpeg"===i.container&&i.mediaDuration>0&&(this._requireSetMediaDuration=!0,this._pendingMediaDuration=i.mediaDuration/1e3,this._updateMediaSourceDuration())}appendMediaSegment(e){let t=e;this._pendingSegments[t.type].push(t),this._config.autoCleanupSourceBuffer&&this._needCleanupSourceBuffer()&&this._doCleanupSourceBuffer();let i=this._sourceBuffers[t.type];!i||i.updating||this._hasPendingRemoveRanges()||this._doAppendSegments()}seek(e){for(let i in this._sourceBuffers){if(!this._sourceBuffers[i])continue;let e=this._sourceBuffers[i];if("open"===this._mediaSource.readyState)try{e.abort()}catch(t){h.e(this.TAG,t.message)}this._idrList.clear();let r=this._pendingSegments[i];if(r.splice(0,r.length),"closed"!==this._mediaSource.readyState){for(let t=0;t=1&&e-t.start(0)>=this._config.autoCleanupMaxBackwardDuration)return!0}}return!1}_doCleanupSourceBuffer(){let e=this._mediaElement.currentTime;for(let t in this._sourceBuffers){let i=this._sourceBuffers[t];if(i){let r=i.buffered,n=!1;for(let i=0;i=this._config.autoCleanupMaxBackwardDuration){n=!0;let i=e-this._config.autoCleanupMinBackwardDuration;this._pendingRemoveRanges[t].push({start:a,end:i})}}else s0&&(isNaN(t)||i>t)&&(h.v(this.TAG,`Update MediaSource duration from ${t} to ${i}`),this._mediaSource.duration=i),this._requireSetMediaDuration=!1,this._pendingMediaDuration=0}_doRemoveRanges(){for(let e in this._pendingRemoveRanges){if(!this._sourceBuffers[e]||this._sourceBuffers[e].updating)continue;let t=this._sourceBuffers[e],i=this._pendingRemoveRanges[e];while(i.length&&!t.updating){let e=i.shift();t.remove(e.start,e.end)}}}_doAppendSegments(){let e=this._pendingSegments;for(let i in e)if(this._sourceBuffers[i]&&!this._sourceBuffers[i].updating&&e[i].length>0){let r=e[i].shift();if(r.timestampOffset){let e=this._sourceBuffers[i].timestampOffset,t=r.timestampOffset/1e3,n=Math.abs(e-t);n>.1&&(h.v(this.TAG,`Update MPEG audio timestampOffset from ${e} to ${t}`),this._sourceBuffers[i].timestampOffset=t),delete r.timestampOffset}if(!r.data||0===r.data.byteLength)continue;try{this._sourceBuffers[i].appendBuffer(r.data),this._isBufferFull=!1,"video"===i&&r.hasOwnProperty("info")&&this._idrList.appendArray(r.info.syncPoints)}catch(t){this._pendingSegments[i].unshift(r),22===t.code?(this._isBufferFull||this._emitter.emit(Le.BUFFER_FULL),this._isBufferFull=!0):(h.e(this.TAG,t.message),this._emitter.emit(Le.ERROR,{code:t.code,msg:t.message}))}}}_onSourceOpen(){if(h.v(this.TAG,"MediaSource onSourceOpen"),this._mediaSource.removeEventListener("sourceopen",this.e.onSourceOpen),this._pendingSourceBufferInit.length>0){let e=this._pendingSourceBufferInit;while(e.length){let t=e.shift();this.appendInitSegment(t,!0)}}this._hasPendingSegments()&&this._doAppendSegments(),this._emitter.emit(Le.SOURCE_OPEN)}_onSourceEnded(){h.v(this.TAG,"MediaSource onSourceEnded")}_onSourceClose(){h.v(this.TAG,"MediaSource onSourceClose"),this._mediaSource&&null!=this.e&&(this._mediaSource.removeEventListener("sourceopen",this.e.onSourceOpen),this._mediaSource.removeEventListener("sourceended",this.e.onSourceEnded),this._mediaSource.removeEventListener("sourceclose",this.e.onSourceClose))}_hasPendingSegments(){let e=this._pendingSegments;return e.video.length>0||e.audio.length>0}_hasPendingRemoveRanges(){let e=this._pendingRemoveRanges;return e.video.length>0||e.audio.length>0}_onSourceBufferUpdateEnd(){this._requireSetMediaDuration?this._updateMediaSourceDuration():this._hasPendingRemoveRanges()?this._doRemoveRanges():this._hasPendingSegments()?this._doAppendSegments():this._hasPendingEos&&this.endOfStream(),this._emitter.emit(Le.UPDATE_END)}_onSourceBufferError(e){h.e(this.TAG,`SourceBuffer Error: ${e}`)}}var Ie=De;const Ce={NETWORK_ERROR:"NetworkError",MEDIA_ERROR:"MediaError",OTHER_ERROR:"OtherError"},Oe={NETWORK_EXCEPTION:_.EXCEPTION,NETWORK_STATUS_CODE_INVALID:_.HTTP_STATUS_CODE_INVALID,NETWORK_TIMEOUT:_.CONNECTING_TIMEOUT,NETWORK_UNRECOVERABLE_EARLY_EOF:_.UNRECOVERABLE_EARLY_EOF,MEDIA_MSE_ERROR:"MediaMSEError",MEDIA_FORMAT_ERROR:ae.FORMAT_ERROR,MEDIA_FORMAT_UNSUPPORTED:ae.FORMAT_UNSUPPORTED,MEDIA_CODEC_UNSUPPORTED:ae.CODEC_UNSUPPORTED};class xe{constructor(e,t){if(this.TAG="FlvPlayer",this._type="FlvPlayer",this._emitter=new d.a,this._config=U(),"object"===typeof t&&Object.assign(this._config,t),"flv"!==e.type.toLowerCase())throw new g("FlvPlayer requires an flv MediaDataSource input!");!0===e.isLive&&(this._config.isLive=!0),this.e={onvLoadedMetadata:this._onvLoadedMetadata.bind(this),onvSeeking:this._onvSeeking.bind(this),onvCanPlay:this._onvCanPlay.bind(this),onvStalled:this._onvStalled.bind(this),onvProgress:this._onvProgress.bind(this)},self.performance&&self.performance.now?this._now=self.performance.now.bind(self.performance):this._now=Date.now,this._pendingSeekTime=null,this._requestSetTime=!1,this._seekpointRecord=null,this._progressChecker=null,this._mediaDataSource=e,this._mediaElement=null,this._msectl=null,this._transmuxer=null,this._mseSourceOpened=!1,this._hasPendingLoad=!1,this._receivedCanPlay=!1,this._mediaInfo=null,this._statisticsInfo=null;let i=T.chrome&&(T.version.major<50||50===T.version.major&&T.version.build<2661);this._alwaysSeekKeyframe=!!(i||T.msedge||T.msie),this._alwaysSeekKeyframe&&(this._config.accurateSeek=!1)}destroy(){null!=this._progressChecker&&(window.clearInterval(this._progressChecker),this._progressChecker=null),this._transmuxer&&this.unload(),this._mediaElement&&this.detachMediaElement(),this.e=null,this._mediaDataSource=null,this._emitter.removeAllListeners(),this._emitter=null}on(e,t){e===q.MEDIA_INFO?null!=this._mediaInfo&&Promise.resolve().then(()=>{this._emitter.emit(q.MEDIA_INFO,this.mediaInfo)}):e===q.STATISTICS_INFO&&null!=this._statisticsInfo&&Promise.resolve().then(()=>{this._emitter.emit(q.STATISTICS_INFO,this.statisticsInfo)}),this._emitter.addListener(e,t)}off(e,t){this._emitter.removeListener(e,t)}attachMediaElement(e){if(this._mediaElement=e,e.addEventListener("loadedmetadata",this.e.onvLoadedMetadata),e.addEventListener("seeking",this.e.onvSeeking),e.addEventListener("canplay",this.e.onvCanPlay),e.addEventListener("stalled",this.e.onvStalled),e.addEventListener("progress",this.e.onvProgress),this._msectl=new Ie(this._config),this._msectl.on(Le.UPDATE_END,this._onmseUpdateEnd.bind(this)),this._msectl.on(Le.BUFFER_FULL,this._onmseBufferFull.bind(this)),this._msectl.on(Le.SOURCE_OPEN,()=>{this._mseSourceOpened=!0,this._hasPendingLoad&&(this._hasPendingLoad=!1,this.load())}),this._msectl.on(Le.ERROR,e=>{this._emitter.emit(q.ERROR,Ce.MEDIA_ERROR,Oe.MEDIA_MSE_ERROR,e)}),this._msectl.attachMediaElement(e),null!=this._pendingSeekTime)try{e.currentTime=this._pendingSeekTime,this._pendingSeekTime=null}catch(t){}}detachMediaElement(){this._mediaElement&&(this._msectl.detachMediaElement(),this._mediaElement.removeEventListener("loadedmetadata",this.e.onvLoadedMetadata),this._mediaElement.removeEventListener("seeking",this.e.onvSeeking),this._mediaElement.removeEventListener("canplay",this.e.onvCanPlay),this._mediaElement.removeEventListener("stalled",this.e.onvStalled),this._mediaElement.removeEventListener("progress",this.e.onvProgress),this._mediaElement=null),this._msectl&&(this._msectl.destroy(),this._msectl=null)}load(){if(!this._mediaElement)throw new m("HTMLMediaElement must be attached before load()!");if(this._transmuxer)throw new m("FlvPlayer.load() has been called, please call unload() first!");this._hasPendingLoad||(this._config.deferLoadAfterSourceOpen&&!1===this._mseSourceOpened?this._hasPendingLoad=!0:(this._mediaElement.readyState>0&&(this._requestSetTime=!0,this._mediaElement.currentTime=0),this._transmuxer=new ke(this._mediaDataSource,this._config),this._transmuxer.on(Ee.INIT_SEGMENT,(e,t)=>{this._msectl.appendInitSegment(t)}),this._transmuxer.on(Ee.MEDIA_SEGMENT,(e,t)=>{if(this._msectl.appendMediaSegment(t),this._config.lazyLoad&&!this._config.isLive){let e=this._mediaElement.currentTime;t.info.endDts>=1e3*(e+this._config.lazyLoadMaxDuration)&&null==this._progressChecker&&(h.v(this.TAG,"Maximum buffering duration exceeded, suspend transmuxing task"),this._suspendTransmuxer())}}),this._transmuxer.on(Ee.LOADING_COMPLETE,()=>{this._msectl.endOfStream(),this._emitter.emit(q.LOADING_COMPLETE)}),this._transmuxer.on(Ee.RECOVERED_EARLY_EOF,()=>{this._emitter.emit(q.RECOVERED_EARLY_EOF)}),this._transmuxer.on(Ee.IO_ERROR,(e,t)=>{this._emitter.emit(q.ERROR,Ce.NETWORK_ERROR,e,t)}),this._transmuxer.on(Ee.DEMUX_ERROR,(e,t)=>{this._emitter.emit(q.ERROR,Ce.MEDIA_ERROR,e,{code:-1,msg:t})}),this._transmuxer.on(Ee.MEDIA_INFO,e=>{this._mediaInfo=e,this._emitter.emit(q.MEDIA_INFO,Object.assign({},e))}),this._transmuxer.on(Ee.METADATA_ARRIVED,e=>{this._emitter.emit(q.METADATA_ARRIVED,e)}),this._transmuxer.on(Ee.SCRIPTDATA_ARRIVED,e=>{this._emitter.emit(q.SCRIPTDATA_ARRIVED,e)}),this._transmuxer.on(Ee.STATISTICS_INFO,e=>{this._statisticsInfo=this._fillStatisticsInfo(e),this._emitter.emit(q.STATISTICS_INFO,Object.assign({},this._statisticsInfo))}),this._transmuxer.on(Ee.RECOMMEND_SEEKPOINT,e=>{this._mediaElement&&!this._config.accurateSeek&&(this._requestSetTime=!0,this._mediaElement.currentTime=e/1e3)}),this._transmuxer.open()))}unload(){this._mediaElement&&this._mediaElement.pause(),this._msectl&&this._msectl.seek(0),this._transmuxer&&(this._transmuxer.close(),this._transmuxer.destroy(),this._transmuxer=null)}play(){return this._mediaElement.play()}pause(){this._mediaElement.pause()}get type(){return this._type}get buffered(){return this._mediaElement.buffered}get duration(){return this._mediaElement.duration}get volume(){return this._mediaElement.volume}set volume(e){this._mediaElement.volume=e}get muted(){return this._mediaElement.muted}set muted(e){this._mediaElement.muted=e}get currentTime(){return this._mediaElement?this._mediaElement.currentTime:0}set currentTime(e){this._mediaElement?this._internalSeek(e):this._pendingSeekTime=e}get mediaInfo(){return Object.assign({},this._mediaInfo)}get statisticsInfo(){return null==this._statisticsInfo&&(this._statisticsInfo={}),this._statisticsInfo=this._fillStatisticsInfo(this._statisticsInfo),Object.assign({},this._statisticsInfo)}_fillStatisticsInfo(e){if(e.playerType=this._type,!(this._mediaElement instanceof HTMLVideoElement))return e;let t=!0,i=0,r=0;if(this._mediaElement.getVideoPlaybackQuality){let e=this._mediaElement.getVideoPlaybackQuality();i=e.totalVideoFrames,r=e.droppedVideoFrames}else void 0!=this._mediaElement.webkitDecodedFrameCount?(i=this._mediaElement.webkitDecodedFrameCount,r=this._mediaElement.webkitDroppedFrameCount):t=!1;return t&&(e.decodedFrames=i,e.droppedFrames=r),e}_onmseUpdateEnd(){if(!this._config.lazyLoad||this._config.isLive)return;let e=this._mediaElement.buffered,t=this._mediaElement.currentTime,i=0,r=0;for(let n=0;n=t+this._config.lazyLoadMaxDuration&&null==this._progressChecker&&(h.v(this.TAG,"Maximum buffering duration exceeded, suspend transmuxing task"),this._suspendTransmuxer())}_onmseBufferFull(){h.v(this.TAG,"MSE SourceBuffer is full, suspend transmuxing task"),null==this._progressChecker&&this._suspendTransmuxer()}_suspendTransmuxer(){this._transmuxer&&(this._transmuxer.pause(),null==this._progressChecker&&(this._progressChecker=window.setInterval(this._checkProgressAndResume.bind(this),1e3)))}_checkProgressAndResume(){let e=this._mediaElement.currentTime,t=this._mediaElement.buffered,i=!1;for(let r=0;r=n&&e=a-this._config.lazyLoadRecoverDuration&&(i=!0);break}}i&&(window.clearInterval(this._progressChecker),this._progressChecker=null,i&&(h.v(this.TAG,"Continue loading from paused position"),this._transmuxer.resume()))}_isTimepointBuffered(e){let t=this._mediaElement.buffered;for(let i=0;i=r&&e0){let t=this._mediaElement.buffered.start(0);(t<1&&e0&&t.currentTime0){let e=i.start(0);if(e<1&&t{this._emitter.emit(q.MEDIA_INFO,this.mediaInfo)}):e===q.STATISTICS_INFO&&null!=this._mediaElement&&0!==this._mediaElement.readyState&&Promise.resolve().then(()=>{this._emitter.emit(q.STATISTICS_INFO,this.statisticsInfo)}),this._emitter.addListener(e,t)}off(e,t){this._emitter.removeListener(e,t)}attachMediaElement(e){if(this._mediaElement=e,e.addEventListener("loadedmetadata",this.e.onvLoadedMetadata),null!=this._pendingSeekTime)try{e.currentTime=this._pendingSeekTime,this._pendingSeekTime=null}catch(t){}}detachMediaElement(){this._mediaElement&&(this._mediaElement.src="",this._mediaElement.removeAttribute("src"),this._mediaElement.removeEventListener("loadedmetadata",this.e.onvLoadedMetadata),this._mediaElement=null),null!=this._statisticsReporter&&(window.clearInterval(this._statisticsReporter),this._statisticsReporter=null)}load(){if(!this._mediaElement)throw new m("HTMLMediaElement must be attached before load()!");this._mediaElement.src=this._mediaDataSource.url,this._mediaElement.readyState>0&&(this._mediaElement.currentTime=0),this._mediaElement.preload="auto",this._mediaElement.load(),this._statisticsReporter=window.setInterval(this._reportStatisticsInfo.bind(this),this._config.statisticsInfoReportInterval)}unload(){this._mediaElement&&(this._mediaElement.src="",this._mediaElement.removeAttribute("src")),null!=this._statisticsReporter&&(window.clearInterval(this._statisticsReporter),this._statisticsReporter=null)}play(){return this._mediaElement.play()}pause(){this._mediaElement.pause()}get type(){return this._type}get buffered(){return this._mediaElement.buffered}get duration(){return this._mediaElement.duration}get volume(){return this._mediaElement.volume}set volume(e){this._mediaElement.volume=e}get muted(){return this._mediaElement.muted}set muted(e){this._mediaElement.muted=e}get currentTime(){return this._mediaElement?this._mediaElement.currentTime:0}set currentTime(e){this._mediaElement?this._mediaElement.currentTime=e:this._pendingSeekTime=e}get mediaInfo(){let e=this._mediaElement instanceof HTMLAudioElement?"audio/":"video/",t={mimeType:e+this._mediaDataSource.type};return this._mediaElement&&(t.duration=Math.floor(1e3*this._mediaElement.duration),this._mediaElement instanceof HTMLVideoElement&&(t.width=this._mediaElement.videoWidth,t.height=this._mediaElement.videoHeight)),t}get statisticsInfo(){let e={playerType:this._type,url:this._mediaDataSource.url};if(!(this._mediaElement instanceof HTMLVideoElement))return e;let t=!0,i=0,r=0;if(this._mediaElement.getVideoPlaybackQuality){let e=this._mediaElement.getVideoPlaybackQuality();i=e.totalVideoFrames,r=e.droppedVideoFrames}else void 0!=this._mediaElement.webkitDecodedFrameCount?(i=this._mediaElement.webkitDecodedFrameCount,r=this._mediaElement.webkitDroppedFrameCount):t=!1;return t&&(e.decodedFrames=i,e.droppedFrames=r),e}_onvLoadedMetadata(e){null!=this._pendingSeekTime&&(this._mediaElement.currentTime=this._pendingSeekTime,this._pendingSeekTime=null),this._emitter.emit(q.MEDIA_INFO,this.mediaInfo)}_reportStatisticsInfo(){this._emitter.emit(q.STATISTICS_INFO,this.statisticsInfo)}}var Fe=Pe;function Be(e,t){let i=e;if(null==i||"object"!==typeof i)throw new g("MediaDataSource must be an javascript object!");if(!i.hasOwnProperty("type"))throw new g("MediaDataSource must has type field to indicate video file type!");switch(i.type){case"flv":return new Me(i,t);default:return new Fe(i,t)}}function Ne(){return j.supportMSEH264Playback()}function Ue(){return j.getFeatureList()}o.install();let Ge={};Ge.createPlayer=Be,Ge.isSupported=Ne,Ge.getFeatureList=Ue,Ge.BaseLoader=E,Ge.LoaderStatus=y,Ge.LoaderErrors=_,Ge.Events=q,Ge.ErrorTypes=Ce,Ge.ErrorDetails=Oe,Ge.FlvPlayer=Me,Ge.NativePlayer=Fe,Ge.LoggingControl=H,Object.defineProperty(Ge,"version",{enumerable:!0,get:function(){return"__VERSION__"}});var je=Ge,Ve=i("ba56"),qe=i.n(Ve),Ke=i("f7a5"),He=i.n(Ke);window.flvjs=je,window.Hls=qe.a;var ze={name:"VideoPlayer",data:function(){return{options:{container:null,video:{url:""},subtitle:null,autoplay:!1},player:null}},props:{data:Object},mounted:function(){var e=Object(a["a"])(regeneratorRuntime.mark((function e(){var t,i,r,n;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:this.options.container=document.getElementById("dplayer"),t=this.data,i=this.$store.getters.tableData,r=!1,i.find((function(e){if(e.name===t.name+".vtt")return r=!0,n=e.url,!0})),r&&(this.options.subtitle={url:n,type:"webvtt",fontSize:"25px",bottom:"10%",color:"#b7daff"}),this.player=new He.a(this.options),this.player.switchVideo({url:t.url});case 8:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}(),destroyed:function(){this.player.destroy()},watch:{url:function(e){this.player.switchVideo({url:e})}}},We=ze,Ye=(i("9bb6"),i("2877")),Xe=Object(Ye["a"])(We,r,n,!1,null,null,null);t["default"]=Xe.exports},"9bb6":function(e,t,i){"use strict";var r=i("49f6"),n=i.n(r);n.a},ba56:function(e,t,i){"undefined"!==typeof window&&function(t,i){e.exports=i()}(0,(function(){return function(e){var t={};function i(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=e,i.c=t,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(r,n,function(t){return e[t]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s="./src/hls.ts")}({"./node_modules/eventemitter3/index.js": +/*!*********************************************!*\ + !*** ./node_modules/eventemitter3/index.js ***! + \*********************************************/ +/*! no static exports found */ +/*! ModuleConcatenation bailout: Module is not an ECMAScript module */function(e,t,i){"use strict";var r=Object.prototype.hasOwnProperty,n="~";function a(){}function s(e,t,i){this.fn=e,this.context=t,this.once=i||!1}function o(e,t,i,r,a){if("function"!==typeof i)throw new TypeError("The listener must be a function");var o=new s(i,r||e,a),l=n?n+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],o]:e._events[l].push(o):(e._events[l]=o,e._eventsCount++),e}function l(e,t){0===--e._eventsCount?e._events=new a:delete e._events[t]}function d(){this._events=new a,this._eventsCount=0}Object.create&&(a.prototype=Object.create(null),(new a).__proto__||(n=!1)),d.prototype.eventNames=function(){var e,t,i=[];if(0===this._eventsCount)return i;for(t in e=this._events)r.call(e,t)&&i.push(n?t.slice(1):t);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},d.prototype.listeners=function(e){var t=n?n+e:e,i=this._events[t];if(!i)return[];if(i.fn)return[i.fn];for(var r=0,a=i.length,s=new Array(a);r0}),!1)}function u(e,t){var i={main:[t]},r={main:[]},n={main:{}};while(d(i))for(var a=Object.keys(i),s=0;s>>8^255&g^99,e[f]=g,t[g]=f;var v=c[f],y=c[v],_=c[y],E=257*c[g]^16843008*g;r[f]=E<<24|E>>>8,n[f]=E<<16|E>>>16,a[f]=E<<8|E>>>24,s[f]=E,E=16843009*_^65537*y^257*v^16843008*f,l[g]=E<<24|E>>>8,d[g]=E<<16|E>>>16,u[g]=E<<8|E>>>24,h[g]=E,f?(f=v^c[c[c[_^v]]],p^=c[c[p]]):f=p=1}},t.expandKey=function(e){var t=this.uint8ArrayToUint32Array_(e),i=!0,r=0;while(r>>6),l=(60&t[i+2])>>>2,!(l>p.length-1))return u=(1&t[i+2])<<2,u|=(192&t[i+3])>>>6,o["logger"].log("manifest codec:"+a+",ADTS data:type:"+s+",sampleingIndex:"+l+"["+p[l]+"Hz],channelConfig:"+u),/firefox/i.test(c)?l>=6?(s=5,h=new Array(4),d=l-3):(s=2,h=new Array(2),d=l):-1!==c.indexOf("android")?(s=2,h=new Array(2),d=l):(s=5,h=new Array(4),a&&(-1!==a.indexOf("mp4a.40.29")||-1!==a.indexOf("mp4a.40.5"))||!a&&l>=6?d=l-3:((a&&-1!==a.indexOf("mp4a.40.2")&&(l>=6&&1===u||/vivaldi/i.test(c))||!a&&1===u)&&(s=2,h=new Array(2)),d=l)),h[0]=s<<3,h[0]|=(14&l)>>1,h[1]|=(1&l)<<7,h[1]|=u<<3,5===s&&(h[1]|=(14&d)>>1,h[2]=(1&d)<<7,h[2]|=8,h[3]=0),{config:h,samplerate:p[l],channelCount:u,codec:"mp4a.40."+s,manifestCodec:f};e.trigger(r["default"].ERROR,{type:n["ErrorTypes"].MEDIA_ERROR,details:n["ErrorDetails"].FRAG_PARSING_ERROR,fatal:!0,reason:"invalid ADTS sampling index:"+l})}function u(e,t){return 255===e[t]&&240===(246&e[t+1])}function h(e,t){return 1&e[t+1]?7:9}function c(e,t){return(3&e[t+3])<<11|e[t+4]<<3|(224&e[t+5])>>>5}function f(e,t){return!!(t+10&&t+a+s<=l)return o=i+r*n,{headerLength:a,frameLength:s,stamp:o}}function y(e,t,i,r,n){var a=g(e.samplerate),s=v(t,i,r,n,a);if(s){var o=s.stamp,l=s.headerLength,d=s.frameLength,u={unit:t.subarray(i+l,i+l+d),pts:o,dts:o};return e.samples.push(u),{sample:u,length:d+l}}}var _=i("./src/demux/id3.js"),E=function(){function e(e,t,i){this.observer=e,this.config=i,this.remuxer=t}var t=e.prototype;return t.resetInitSegment=function(e,t,i,r){this._audioTrack={container:"audio/adts",type:"audio",id:0,sequenceNumber:0,isAAC:!0,samples:[],len:0,manifestCodec:t,duration:r,inputTimeScale:9e4}},t.resetTimeStamp=function(){},e.probe=function(e){if(!e)return!1;for(var t=_["default"].getID3Data(e,0)||[],i=t.length,r=e.length;it.length)){var a=this.parseHeader(t,i);if(a&&i+a.frameLength<=t.length){var s=9e4*a.samplesPerFrame/a.sampleRate,o=r+n*s,l={unit:t.subarray(i,i+a.frameLength),pts:o,dts:o};return e.config=[],e.channelCount=a.channelCount,e.samplerate=a.sampleRate,e.samples.push(l),{sample:l,length:a.frameLength}}}},parseHeader:function(e,t){var i=e[t+1]>>3&3,r=e[t+1]>>1&3,n=e[t+2]>>4&15,a=e[t+2]>>2&3,s=e[t+2]>>1&1;if(1!==i&&0!==n&&15!==n&&3!==a){var o=3===i?3-r:3===r?3:4,l=1e3*T.BitratesMap[14*o+n-1],d=3===i?0:2===i?1:2,u=T.SamplingRateMap[3*d+a],h=e[t+3]>>6===3?1:2,c=T.SamplesCoefficients[i][r],f=T.BytesInSlot[r],p=8*c*f,m=parseInt(c*l/u+s,10)*f;return{sampleRate:u,channelCount:h,frameLength:m,samplesPerFrame:p}}},isHeaderPattern:function(e,t){return 255===e[t]&&224===(224&e[t+1])&&0!==(6&e[t+1])},isHeader:function(e,t){return!!(t+1e?(this.word<<=e,this.bitsAvailable-=e):(e-=this.bitsAvailable,t=e>>3,e-=t>>3,this.bytesAvailable-=t,this.loadWord(),this.word<<=e,this.bitsAvailable-=e)},t.readBits=function(e){var t=Math.min(this.bitsAvailable,e),i=this.word>>>32-t;return e>32&&o["logger"].error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=t,this.bitsAvailable>0?this.word<<=t:this.bytesAvailable>0&&this.loadWord(),t=e-t,t>0&&this.bitsAvailable?i<>>e))return this.word<<=e,this.bitsAvailable-=e,e;return this.loadWord(),e+this.skipLZ()},t.skipUEG=function(){this.skipBits(1+this.skipLZ())},t.skipEG=function(){this.skipBits(1+this.skipLZ())},t.readUEG=function(){var e=this.skipLZ();return this.readBits(e+1)-1},t.readEG=function(){var e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)},t.readBoolean=function(){return 1===this.readBits(1)},t.readUByte=function(){return this.readBits(8)},t.readUShort=function(){return this.readBits(16)},t.readUInt=function(){return this.readBits(32)},t.skipScalingList=function(e){var t,i,r=8,n=8;for(t=0;t=e.length)return void i();if(!(e[t].unit.length<32)){var r=this.decrypter.isSync();if(this.decryptAacSample(e,t,i,r),!r)return}}},t.getAvcEncryptedData=function(e){for(var t=16*Math.floor((e.length-48)/160)+16,i=new Int8Array(t),r=0,n=32;n<=e.length-16;n+=160,r+=16)i.set(e.subarray(n,n+16),r);return i},t.getAvcDecryptedUnit=function(e,t){t=new Uint8Array(t);for(var i=0,r=32;r<=e.length-16;r+=160,i+=16)e.set(t.subarray(i,i+16),r);return e},t.decryptAvcSample=function(e,t,i,r,n,a){var s=this.discardEPB(n.data),o=this.getAvcEncryptedData(s),l=this;this.decryptBuffer(o.buffer,(function(o){n.data=l.getAvcDecryptedUnit(s,o),a||l.decryptAvcSamples(e,t,i+1,r)}))},t.decryptAvcSamples=function(e,t,i,r){for(;;t++,i=0){if(t>=e.length)return void r();for(var n=e[t].units;;i++){if(i>=n.length)break;var a=n[i];if(!(a.length<=48||1!==a.type&&5!==a.type)){var s=this.decrypter.isSync();if(this.decryptAvcSample(e,t,i,r,a,s),!s)return}}}},e}(),L=R,D={video:1,audio:2,id3:3,text:4},I=function(){function e(e,t,i,r){this.observer=e,this.config=i,this.typeSupported=r,this.remuxer=t,this.sampleAes=null}var t=e.prototype;return t.setDecryptData=function(e){null!=e&&null!=e.key&&"SAMPLE-AES"===e.method?this.sampleAes=new L(this.observer,this.config,e,this.discardEPB):this.sampleAes=null},e.probe=function(t){var i=e._syncOffset(t);return!(i<0)&&(i&&o["logger"].warn("MPEG2-TS detected but first sync word found @ offset "+i+", junk ahead ?"),!0)},e._syncOffset=function(e){var t=Math.min(1e3,e.length-564),i=0;while(i>4,h>1){if(c=l+5+t[l+4],c===l+188)continue}else c=l+4;switch(u){case E:d&&(w&&(f=D(w))&&void 0!==f.pts&&I(f,!1),w={data:[],size:0}),w&&(w.data.push(t.subarray(c,l+188)),w.size+=l+188-c);break;case b:d&&(A&&(f=D(A))&&void 0!==f.pts&&(y.isAAC?C(f):O(f)),A={data:[],size:0}),A&&(A.data.push(t.subarray(c,l+188)),A.size+=l+188-c);break;case S:d&&(k&&(f=D(k))&&void 0!==f.pts&&x(f),k={data:[],size:0}),k&&(k.data.push(t.subarray(c,l+188)),k.size+=l+188-c);break;case 0:d&&(c+=t[c]+1),T=this._pmtId=R(t,c);break;case T:d&&(c+=t[c]+1);var P=L(t,c,!0===this.typeSupported.mpeg||!0===this.typeSupported.mp3,null!=this.sampleAes);E=P.avc,E>0&&(v.pid=E),b=P.audio,b>0&&(y.pid=b,y.isAAC=P.isAAC),S=P.id3,S>0&&(_.pid=S),m&&!g&&(o["logger"].log("reparse from beginning"),m=!1,l=M-188),g=this.pmtParsed=!0;break;case 17:case 8191:break;default:m=!0;break}}else this.observer.trigger(r["default"].ERROR,{type:n["ErrorTypes"].MEDIA_ERROR,details:n["ErrorDetails"].FRAG_PARSING_ERROR,fatal:!1,reason:"TS packet did not start with 0x47"});w&&(f=D(w))&&void 0!==f.pts?(I(f,!0),v.pesData=null):v.pesData=w,A&&(f=D(A))&&void 0!==f.pts?(y.isAAC?C(f):O(f),y.pesData=null):(A&&A.size&&o["logger"].log("last AAC PES packet truncated,might overlap between fragments"),y.pesData=A),k&&(f=D(k))&&void 0!==f.pts?(x(f),_.pesData=null):_.pesData=k,null==this.sampleAes?this.remuxer.remux(y,v,_,this._txtTrack,i,a,s):this.decryptAndRemux(y,v,_,this._txtTrack,i,a,s)},t.decryptAndRemux=function(e,t,i,r,n,a,s){if(e.samples&&e.isAAC){var o=this;this.sampleAes.decryptAacSamples(e.samples,0,(function(){o.decryptAndRemuxAvc(e,t,i,r,n,a,s)}))}else this.decryptAndRemuxAvc(e,t,i,r,n,a,s)},t.decryptAndRemuxAvc=function(e,t,i,r,n,a,s){if(t.samples){var o=this;this.sampleAes.decryptAvcSamples(t.samples,0,0,(function(){o.remuxer.remux(e,t,i,r,n,a,s)}))}else this.remuxer.remux(e,t,i,r,n,a,s)},t.destroy=function(){this._initPTS=this._initDTS=void 0,this._duration=0},t._parsePAT=function(e,t){return(31&e[t+10])<<8|e[t+11]},t._parsePMT=function(e,t,i,r){var n,a,s,l,d={audio:-1,avc:-1,id3:-1,isAAC:!0};n=(15&e[t+1])<<8|e[t+2],a=t+3+n-4,s=(15&e[t+10])<<8|e[t+11],t+=12+s;while(t1){var f=new Uint8Array(c[0].length+c[1].length);f.set(c[0]),f.set(c[1],c[0].length),c[0]=f,c.splice(1,1)}if(t=c[0],r=(t[0]<<16)+(t[1]<<8)+t[2],1===r){if(n=(t[4]<<8)+t[5],n&&n>e.size-6)return null;if(i=t[7],192&i&&(l=536870912*(14&t[9])+4194304*(255&t[10])+16384*(254&t[11])+128*(255&t[12])+(254&t[13])/2,l>4294967295&&(l-=8589934592),64&i?(d=536870912*(14&t[14])+4194304*(255&t[15])+16384*(254&t[16])+128*(255&t[17])+(254&t[18])/2,d>4294967295&&(d-=8589934592),l-d>54e5&&(o["logger"].warn(Math.round((l-d)/9e4)+"s delta between PTS and DTS, align them"),l=d)):d=l),a=t[8],u=a+9,e.size<=u)return null;e.size-=u,s=new Uint8Array(e.size);for(var p=0,m=c.length;pg){u-=g;continue}t=t.subarray(u),g-=u,u=0}s.set(t,h),h+=g}return n&&(n-=a+3),{data:s,pts:l,dts:d,len:n}}return null},t.pushAccesUnit=function(e,t){if(e.units.length&&e.frame){var i=t.samples,r=i.length;!this.config.forceKeyFrameOnDiscontinuity||!0===e.key||t.sps&&(r||this.contiguous)?(e.id=r,i.push(e)):t.dropped++}e.debug.length&&o["logger"].log(e.pts+"/"+e.dts+":"+e.debug)},t._parseAVCPES=function(e,t){var i,r,n,a=this,s=this._avcTrack,o=this._parseAVCNALu(e.data),l=!1,d=this.avcSample,u=!1,h=this.pushAccesUnit.bind(this),c=function(e,t,i,r){return{key:e,pts:t,dts:i,units:[],debug:r}};e.data=null,d&&o.length&&!s.audFound&&(h(d,s),d=this.avcSample=c(!1,e.pts,e.dts,"")),o.forEach((function(t){switch(t.type){case 1:r=!0,d||(d=a.avcSample=c(!0,e.pts,e.dts,"")),l&&(d.debug+="NDR "),d.frame=!0;var o=t.data;if(u&&o.length>4){var f=new k(o).readSliceType();2!==f&&4!==f&&7!==f&&9!==f||(d.key=!0)}break;case 5:r=!0,d||(d=a.avcSample=c(!0,e.pts,e.dts,"")),l&&(d.debug+="IDR "),d.key=!0,d.frame=!0;break;case 6:r=!0,l&&d&&(d.debug+="SEI "),i=new k(a.discardEPB(t.data)),i.readUByte();var p=0,m=0,g=!1,v=0;while(!g&&i.bytesAvailable>1){p=0;do{v=i.readUByte(),p+=v}while(255===v);m=0;do{v=i.readUByte(),m+=v}while(255===v);if(4===p&&0!==i.bytesAvailable){g=!0;var y=i.readUByte();if(181===y){var E=i.readUShort();if(49===E){var b=i.readUInt();if(1195456820===b){var S=i.readUByte();if(3===S){var T=i.readUByte(),w=i.readUByte(),A=31&T,R=[T,w];for(n=0;n16){var L=[];for(n=0;n<16;n++)L.push(i.readUByte().toString(16)),3!==n&&5!==n&&7!==n&&9!==n||L.push("-");var D=m-16,I=new Uint8Array(D);for(n=0;n0){if(t.pts>=e[i-1].pts)e.push(t);else for(var r=i-1;r>=0;r--)if(t.pts=0)r={data:e.subarray(c,s-d-1),type:a},h.push(r);else{var f=this._getLastNalUnit();if(f&&(u&&s<=4-u&&f.state&&(f.data=f.data.subarray(0,f.data.byteLength-u)),i=s-d-1,i>0)){var p=new Uint8Array(f.data.byteLength+i);p.set(f.data,0),p.set(e.subarray(0,i),f.data.byteLength),f.data=p}}s=0&&d>=0&&(r={data:e.subarray(c,o),type:a,state:d},h.push(r)),0===h.length){var m=this._getLastNalUnit();if(m){var g=new Uint8Array(m.data.byteLength+e.byteLength);g.set(m.data,0),g.set(e,m.data.byteLength),m.data=g}}return l.naluState=d,h},t.discardEPB=function(e){var t,i,r=e.byteLength,n=[],a=1;while(a1&&(o["logger"].log("AAC: align PTS for overlapping frames by "+Math.round((S-p)/90)),p=S)}while(a>24&255,t[1]=r>>16&255,t[2]=r>>8&255,t[3]=255&r,t.set(e,4),n=0,r=8;n>24&255,t>>16&255,t>>8&255,255&t,r>>24,r>>16&255,r>>8&255,255&r,n>>24,n>>16&255,n>>8&255,255&n,85,196,0,0]))},e.mdia=function(t){return e.box(e.types.mdia,e.mdhd(t.timescale,t.duration),e.hdlr(t.type),e.minf(t))},e.mfhd=function(t){return e.box(e.types.mfhd,new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,255&t]))},e.minf=function(t){return"audio"===t.type?e.box(e.types.minf,e.box(e.types.smhd,e.SMHD),e.DINF,e.stbl(t)):e.box(e.types.minf,e.box(e.types.vmhd,e.VMHD),e.DINF,e.stbl(t))},e.moof=function(t,i,r){return e.box(e.types.moof,e.mfhd(t),e.traf(r,i))},e.moov=function(t){var i=t.length,r=[];while(i--)r[i]=e.trak(t[i]);return e.box.apply(null,[e.types.moov,e.mvhd(t[0].timescale,t[0].duration)].concat(r).concat(e.mvex(t)))},e.mvex=function(t){var i=t.length,r=[];while(i--)r[i]=e.trex(t[i]);return e.box.apply(null,[e.types.mvex].concat(r))},e.mvhd=function(t,i){i*=t;var r=Math.floor(i/(F+1)),n=Math.floor(i%(F+1)),a=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,255&t,r>>24,r>>16&255,r>>8&255,255&r,n>>24,n>>16&255,n>>8&255,255&n,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return e.box(e.types.mvhd,a)},e.sdtp=function(t){var i,r,n=t.samples||[],a=new Uint8Array(4+n.length);for(r=0;r>>8&255),a.push(255&n),a=a.concat(Array.prototype.slice.call(r));for(i=0;i>>8&255),s.push(255&n),s=s.concat(Array.prototype.slice.call(r));var o=e.box(e.types.avcC,new Uint8Array([1,a[3],a[4],a[5],255,224|t.sps.length].concat(a).concat([t.pps.length]).concat(s))),l=t.width,d=t.height,u=t.pixelRatio[0],h=t.pixelRatio[1];return e.box(e.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,l>>8&255,255&l,d>>8&255,255&d,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),o,e.box(e.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),e.box(e.types.pasp,new Uint8Array([u>>24,u>>16&255,u>>8&255,255&u,h>>24,h>>16&255,h>>8&255,255&h])))},e.esds=function(e){var t=e.config.length;return new Uint8Array([0,0,0,0,3,23+t,0,1,0,4,15+t,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([t]).concat(e.config).concat([6,1,2]))},e.mp4a=function(t){var i=t.samplerate;return e.box(e.types.mp4a,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t.channelCount,0,16,0,0,0,0,i>>8&255,255&i,0,0]),e.box(e.types.esds,e.esds(t)))},e.mp3=function(t){var i=t.samplerate;return e.box(e.types[".mp3"],new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t.channelCount,0,16,0,0,0,0,i>>8&255,255&i,0,0]))},e.stsd=function(t){return"audio"===t.type?t.isAAC||"mp3"!==t.codec?e.box(e.types.stsd,e.STSD,e.mp4a(t)):e.box(e.types.stsd,e.STSD,e.mp3(t)):e.box(e.types.stsd,e.STSD,e.avc1(t))},e.tkhd=function(t){var i=t.id,r=t.duration*t.timescale,n=t.width,a=t.height,s=Math.floor(r/(F+1)),o=Math.floor(r%(F+1));return e.box(e.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,i>>24&255,i>>16&255,i>>8&255,255&i,0,0,0,0,s>>24,s>>16&255,s>>8&255,255&s,o>>24,o>>16&255,o>>8&255,255&o,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,n>>8&255,255&n,0,0,a>>8&255,255&a,0,0]))},e.traf=function(t,i){var r=e.sdtp(t),n=t.id,a=Math.floor(i/(F+1)),s=Math.floor(i%(F+1));return e.box(e.types.traf,e.box(e.types.tfhd,new Uint8Array([0,0,0,0,n>>24,n>>16&255,n>>8&255,255&n])),e.box(e.types.tfdt,new Uint8Array([1,0,0,0,a>>24,a>>16&255,a>>8&255,255&a,s>>24,s>>16&255,s>>8&255,255&s])),e.trun(t,r.length+16+20+8+16+8+8),r)},e.trak=function(t){return t.duration=t.duration||4294967295,e.box(e.types.trak,e.tkhd(t),e.mdia(t))},e.trex=function(t){var i=t.id;return e.box(e.types.trex,new Uint8Array([0,0,0,0,i>>24,i>>16&255,i>>8&255,255&i,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))},e.trun=function(t,i){var r,n,a,s,o,l,d=t.samples||[],u=d.length,h=12+16*u,c=new Uint8Array(h);for(i+=8+h,c.set([0,0,15,1,u>>>24&255,u>>>16&255,u>>>8&255,255&u,i>>>24&255,i>>>16&255,i>>>8&255,255&i],0),r=0;r>>24&255,a>>>16&255,a>>>8&255,255&a,s>>>24&255,s>>>16&255,s>>>8&255,255&s,o.isLeading<<2|o.dependsOn,o.isDependedOn<<6|o.hasRedundancy<<4|o.paddingValue<<1|o.isNonSync,61440&o.degradPrio,15&o.degradPrio,l>>>24&255,l>>>16&255,l>>>8&255,255&l],12+16*r);return e.box(e.types.trun,c)},e.initSegment=function(t){e.types||e.init();var i,r=e.moov(t);return i=new Uint8Array(e.FTYP.byteLength+r.byteLength),i.set(e.FTYP),i.set(r,e.FTYP.byteLength),i},e}(),N=B,U=9e4;function G(e,t,i,r){void 0===i&&(i=1),void 0===r&&(r=!1);var n=e*t*i;return r?Math.round(n):n}function j(e,t){return void 0===t&&(t=!1),G(e,1e3,1/U,t)}function V(e,t){return void 0===t&&(t=1),G(e,U,1/t)}var q,K=V(10),H=V(.2),z=function(){function e(e,t,i,r){this.observer=e,this.config=t,this.typeSupported=i;var n=navigator.userAgent;this.isSafari=r&&r.indexOf("Apple")>-1&&n&&!n.match("CriOS"),this.ISGenerated=!1}var t=e.prototype;return t.destroy=function(){},t.resetTimeStamp=function(e){this._initPTS=this._initDTS=e},t.resetInitSegment=function(){this.ISGenerated=!1},t.remux=function(e,t,i,n,a,s,l){if(this.ISGenerated||this.generateIS(e,t,a),this.ISGenerated){var d=e.samples.length,u=t.samples.length,h=a,c=a;if(d&&u){var f=(e.samples[0].pts-t.samples[0].pts)/t.inputTimeScale;h+=Math.max(0,f),c+=Math.max(0,-f)}if(d){e.timescale||(o["logger"].warn("regenerate InitSegment as audio detected"),this.generateIS(e,t,a));var p,m=this.remuxAudio(e,h,s,l);if(u)m&&(p=m.endPTS-m.startPTS),t.timescale||(o["logger"].warn("regenerate InitSegment as video detected"),this.generateIS(e,t,a)),this.remuxVideo(t,c,s,p,l)}else if(u){var g=this.remuxVideo(t,c,s,0,l);g&&e.codec&&this.remuxEmptyAudio(e,h,s,g)}}i.samples.length&&this.remuxID3(i,a),n.samples.length&&this.remuxText(n,a),this.observer.trigger(r["default"].FRAG_PARSED)},t.generateIS=function(e,t,i){var a,s,l=this.observer,d=e.samples,u=t.samples,h=this.typeSupported,c="audio/mp4",f={},p={tracks:f},m=void 0===this._initPTS;if(m&&(a=s=1/0),e.config&&d.length&&(e.timescale=e.samplerate,o["logger"].log("audio sampling rate : "+e.samplerate),e.isAAC||(h.mpeg?(c="audio/mpeg",e.codec=""):h.mp3&&(e.codec="mp3")),f.audio={container:c,codec:e.codec,initSegment:!e.isAAC&&h.mpeg?new Uint8Array:N.initSegment([e]),metadata:{channelCount:e.channelCount}},m&&(a=s=d[0].pts-e.inputTimeScale*i)),t.sps&&t.pps&&u.length){var g=t.inputTimeScale;t.timescale=g,f.video={container:"video/mp4",codec:t.codec,initSegment:N.initSegment([t]),metadata:{width:t.width,height:t.height}},m&&(a=Math.min(a,u[0].pts-g*i),s=Math.min(s,u[0].dts-g*i),this.observer.trigger(r["default"].INIT_PTS_FOUND,{initPTS:a}))}Object.keys(f).length?(l.trigger(r["default"].FRAG_PARSING_INIT_SEGMENT,p),this.ISGenerated=!0,m&&(this._initPTS=a,this._initDTS=s)):l.trigger(r["default"].ERROR,{type:n["ErrorTypes"].MEDIA_ERROR,details:n["ErrorDetails"].FRAG_PARSING_ERROR,fatal:!1,reason:"no audio/video samples found"})},t.remuxVideo=function(e,t,i,a,s){var l,d,u,h,c,f,p,m=8,g=e.timescale,v=e.samples,y=[],_=v.length,E=this._PTSNormalize,b=this._initPTS,S=this.nextAvcDts,T=this.isSafari;if(0!==_){T&&(i|=v.length&&S&&(s&&Math.abs(t-S/g)<.1||Math.abs(v[0].pts-S-b)1?o["logger"].log("AVC: "+j(R,!0)+" ms hole between fragments detected,filling it"):R<-1&&o["logger"].log("AVC: "+j(-R,!0)+" ms overlapping between fragments detected"),c=S,v[0].dts=c,h=Math.max(h-R,S),v[0].pts=h,o["logger"].log("Video: PTS/DTS adjusted: "+j(h,!0)+"/"+j(c,!0)+", delta: "+j(R,!0)+" ms")),k=v[v.length-1],p=Math.max(k.dts,0),f=Math.max(k.pts,0,p),T&&(l=Math.round((p-c)/(v.length-1)));for(var L=0,D=0,I=0;I<_;I++){for(var C=v[I],O=C.units,x=O.length,M=0,P=0;P0?U-1:U].dts;if(Q.stretchShortVideoTrack){var Z=Q.maxBufferHole,ee=Math.floor(Z*g),te=(a?h+a*g:this.nextAudioPts)-G.pts;te>ee?(l=te-J,l<0&&(l=J),o["logger"].log("It is approximately "+j(te,!1)+" ms to the next segment; using duration "+j(l,!1)+" ms for the last video frame.")):l=J}else l=J}K=Math.round(G.pts-G.dts)}y.push({size:q,duration:l,cts:K,flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:G.key?2:1,isNonSync:G.key?0:1}})}this.nextAvcDts=p+l;var ie=e.dropped;if(e.nbNalu=0,e.dropped=0,y.length&&navigator.userAgent.toLowerCase().indexOf("chrome")>-1){var re=y[0].flags;re.dependsOn=2,re.isNonSync=0}e.samples=y,u=N.moof(e.sequenceNumber++,c,e),e.samples=[];var ne={data1:u,data2:d,startPTS:h/g,endPTS:(f+l)/g,startDTS:c/g,endDTS:this.nextAvcDts/g,type:"video",hasAudio:!1,hasVideo:!0,nb:y.length,dropped:ie};return this.observer.trigger(r["default"].FRAG_PARSING_DATA,ne),ne}},t.remuxAudio=function(e,t,i,a){var s,l,d,u,h,c,f=e.inputTimeScale,p=e.timescale,m=f/p,g=e.isAAC?1024:1152,v=g*m,y=this._PTSNormalize,_=this._initPTS,E=!e.isAAC&&this.typeSupported.mpeg,b=E?0:8,S=e.samples,T=[],w=this.nextAudioPts;if(i|=S.length&&w&&(a&&Math.abs(t-w/f)<.1||Math.abs(S[0].pts-w-_)<20*v),S.forEach((function(e){e.pts=e.dts=y(e.pts-_,t*f)})),S=S.filter((function(e){return e.pts>=0})),0!==S.length){if(i||(w=a?t*f:S[0].pts),e.isAAC)for(var A=this.config.maxAudioFramesDrift,k=0,R=w;k=A*v&&L0&&H0&&(l=P.getSilentFrame(e.manifestCodec||e.codec,e.channelCount),l||(l=V.subarray()),F+=z*l.length);else if(H<-12){o["logger"].log("drop overlapping AAC sample, expected/parsed/delta: "+j(w,!0)+" ms / "+j(q,!0)+" ms / "+j(-H,!0)+" ms"),F-=V.byteLength;continue}q=w}if(h=q,!(F>0))return;F+=b;try{d=new Uint8Array(F)}catch(ee){return void this.observer.trigger(r["default"].ERROR,{type:n["ErrorTypes"].MUX_ERROR,details:n["ErrorDetails"].REMUX_ALLOC_ERROR,fatal:!1,bytes:F,reason:"fail allocating audio mdat "+F})}if(!E){var W=new DataView(d.buffer);W.setUint32(0,F),d.set(N.types.mdat,4)}for(var Y=0;Y=2&&($=T[M-2].duration,s.duration=$),M){this.nextAudioPts=w=c+m*$,e.samples=T,u=E?new Uint8Array:N.moof(e.sequenceNumber++,h/m,e),e.samples=[];var Q=h/f,J=w/f,Z={data1:u,data2:d,startPTS:Q,endPTS:J,startDTS:Q,endDTS:J,type:"audio",hasAudio:!0,hasVideo:!1,nb:M};return this.observer.trigger(r["default"].FRAG_PARSING_DATA,Z),Z}return null}},t.remuxEmptyAudio=function(e,t,i,r){var n=e.inputTimeScale,a=e.samplerate?e.samplerate:n,s=n/a,l=this.nextAudioPts,d=(void 0!==l?l:r.startDTS*n)+this._initDTS,u=r.endDTS*n+this._initDTS,h=1024,c=s*h,f=Math.ceil((u-d)/c),p=P.getSilentFrame(e.manifestCodec||e.codec,e.channelCount);if(o["logger"].warn("remux empty Audio"),p){for(var m=[],g=0;g4294967296)e+=i;return e},e}(),W=z,Y=function(){function e(e){this.observer=e}var t=e.prototype;return t.destroy=function(){},t.resetTimeStamp=function(){},t.resetInitSegment=function(){},t.remux=function(e,t,i,n,a,s,o,l){var d=this.observer,u="";e&&(u+="audio"),t&&(u+="video"),d.trigger(r["default"].FRAG_PARSING_DATA,{data1:l,startPTS:a,startDTS:a,type:u,hasAudio:!!e,hasVideo:!!t,nb:1,dropped:0}),d.trigger(r["default"].FRAG_PARSED)},e}(),X=Y,$=Object(l["getSelfScope"])();try{q=$.performance.now.bind($.performance)}catch(J){o["logger"].debug("Unable to use Performance API on this environment"),q=$.Date.now}var Q=function(){function e(e,t,i,r){this.observer=e,this.typeSupported=t,this.config=i,this.vendor=r}var t=e.prototype;return t.destroy=function(){var e=this.demuxer;e&&e.destroy()},t.push=function(e,t,i,n,s,o,l,d,u,h,c,f){var p=this;if(e.byteLength>0&&null!=t&&null!=t.key&&"AES-128"===t.method){var m=this.decrypter;null==m&&(m=this.decrypter=new a["default"](this.observer,this.config));var g=q();m.decrypt(e,t.key.buffer,t.iv.buffer,(function(e){var a=q();p.observer.trigger(r["default"].FRAG_DECRYPTED,{stats:{tstart:g,tdecrypt:a}}),p.pushDecrypted(new Uint8Array(e),t,new Uint8Array(i),n,s,o,l,d,u,h,c,f)}))}else this.pushDecrypted(new Uint8Array(e),t,new Uint8Array(i),n,s,o,l,d,u,h,c,f)},t.pushDecrypted=function(e,t,i,a,s,o,l,d,u,h,c,f){var p=this.demuxer;if(!p||(l||d)&&!this.probe(e)){for(var m=this.observer,g=this.typeSupported,v=this.config,y=[{demux:C,remux:W},{demux:S["default"],remux:X},{demux:b,remux:W},{demux:x,remux:W}],_=0,E=y.length;_1?i-1:0),n=1;n1?i-1:0),n=1;n0)return t.subarray(r,r+n)},e._readSize=function(e,t){var i=0;return i=(127&e[t])<<21,i|=(127&e[t+1])<<14,i|=(127&e[t+2])<<7,i|=127&e[t+3],i},e.getTimeStamp=function(t){for(var i=e.getID3Frames(t),r=0;r>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:u+=String.fromCharCode(a);break;case 12:case 13:o=e[h++],u+=String.fromCharCode((31&a)<<6|63&o);break;case 14:o=e[h++],l=e[h++],u+=String.fromCharCode((15&a)<<12|(63&o)<<6|(63&l)<<0);break;default:}}return u},e}();function s(){var e=Object(n["getSelfScope"])();return r||"undefined"===typeof e.TextDecoder||(r=new e.TextDecoder("utf-8")),r}var o=a._utf8ArrayToStr;t["default"]=a},"./src/demux/mp4demuxer.js": +/*!*********************************!*\ + !*** ./src/demux/mp4demuxer.js ***! + \*********************************/ +/*! exports provided: default */function(e,t,i){"use strict";i.r(t);var r=i(/*! ../utils/logger */"./src/utils/logger.js"),n=i(/*! ../events */"./src/events.js"),a=Math.pow(2,32)-1,s=function(){function e(e,t){this.observer=e,this.remuxer=t}var t=e.prototype;return t.resetTimeStamp=function(e){this.initPTS=e},t.resetInitSegment=function(t,i,r,a){if(t&&t.byteLength){var s=this.initData=e.parseInitSegment(t);null==i&&(i="mp4a.40.5"),null==r&&(r="avc1.42e01e");var o={};s.audio&&s.video?o.audiovideo={container:"video/mp4",codec:i+","+r,initSegment:a?t:null}:(s.audio&&(o.audio={container:"audio/mp4",codec:i,initSegment:a?t:null}),s.video&&(o.video={container:"video/mp4",codec:r,initSegment:a?t:null})),this.observer.trigger(n["default"].FRAG_PARSING_INIT_SEGMENT,{tracks:o})}else i&&(this.audioCodec=i),r&&(this.videoCodec=r)},e.probe=function(t){return e.findBox({data:t,start:0,end:Math.min(t.length,16384)},["moof"]).length>0},e.bin2str=function(e){return String.fromCharCode.apply(null,e)},e.readUint16=function(e,t){e.data&&(t+=e.start,e=e.data);var i=e[t]<<8|e[t+1];return i<0?65536+i:i},e.readUint32=function(e,t){e.data&&(t+=e.start,e=e.data);var i=e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3];return i<0?4294967296+i:i},e.writeUint32=function(e,t,i){e.data&&(t+=e.start,e=e.data),e[t]=i>>24,e[t+1]=i>>16&255,e[t+2]=i>>8&255,e[t+3]=255&i},e.findBox=function(t,i){var r,n,a,s,o,l,d,u=[];if(t.data?(l=t.start,s=t.end,t=t.data):(l=0,s=t.byteLength),!i.length)return null;for(r=l;r1?r+n:s,a===i[0]&&(1===i.length?u.push({data:t,start:r+8,end:d}):(o=e.findBox({data:t,start:r+8,end:d},i.slice(1)),o.length&&(u=u.concat(o)))),r=d;return u},e.parseSegmentIndex=function(t){var i,r=e.findBox(t,["moov"])[0],n=r?r.end:null,a=0,s=e.findBox(t,["sidx"]);if(!s||!s[0])return null;i=[],s=s[0];var o=s.data[0];a=0===o?8:16;var l=e.readUint32(s,a);a+=4;var d=0,u=0;a+=0===o?8:16,a+=2;var h=s.end+u,c=e.readUint16(s,a);a+=2;for(var f=0;f>>31;if(1===v)return void console.warn("SIDX has hierarchical references (not supported)");var y=e.readUint32(s,p);p+=4,i.push({referenceSize:g,subsegmentDuration:y,info:{duration:y/l,start:h,end:h+g-1}}),h+=g,p+=4,a=p}return{earliestPresentationTime:d,timescale:l,version:o,referencesCount:c,references:i,moovEndOffset:n}},e.parseInitSegment=function(t){var i=[],n=e.findBox(t,["moov","trak"]);return n.forEach((function(t){var n=e.findBox(t,["tkhd"])[0];if(n){var a=n.data[n.start],s=0===a?12:20,o=e.readUint32(n,s),l=e.findBox(t,["mdia","mdhd"])[0];if(l){a=l.data[l.start],s=0===a?12:20;var d=e.readUint32(l,s),u=e.findBox(t,["mdia","hdlr"])[0];if(u){var h=e.bin2str(u.data.subarray(u.start+8,u.start+12)),c={soun:"audio",vide:"video"}[h];if(c){var f=e.findBox(t,["mdia","minf","stbl","stsd"]);if(f.length){f=f[0];var p=e.bin2str(f.data.subarray(f.start+12,f.start+16));r["logger"].log("MP4Demuxer:"+c+":"+p+" found")}i[o]={timescale:d,type:c},i[c]={timescale:d,id:o}}}}}})),i},e.getStartDTS=function(t,i){var r,n,a;return r=e.findBox(i,["moof","traf"]),n=[].concat.apply([],r.map((function(i){return e.findBox(i,["tfhd"]).map((function(r){var n,a,s;return n=e.readUint32(r,4),a=t[n].timescale||9e4,s=e.findBox(i,["tfdt"]).map((function(t){var i,r;return i=t.data[t.start],r=e.readUint32(t,4),1===i&&(r*=Math.pow(2,32),r+=e.readUint32(t,8)),r}))[0],s/a}))}))),a=Math.min.apply(null,n),isFinite(a)?a:0},e.offsetStartDTS=function(t,i,r){e.findBox(i,["moof","traf"]).map((function(i){return e.findBox(i,["tfhd"]).map((function(n){var s=e.readUint32(n,4),o=t[s].timescale||9e4;e.findBox(i,["tfdt"]).map((function(t){var i=t.data[t.start],n=e.readUint32(t,4);if(0===i)e.writeUint32(t,4,n-r*o);else{n*=Math.pow(2,32),n+=e.readUint32(t,8),n-=r*o,n=Math.max(n,0);var s=Math.floor(n/(a+1)),l=Math.floor(n%(a+1));e.writeUint32(t,4,s),e.writeUint32(t,8,l)}}))}))}))},t.append=function(t,i,r,a){var s=this.initData;s||(this.resetInitSegment(t,this.audioCodec,this.videoCodec,!1),s=this.initData);var o,l=this.initPTS;if(void 0===l){var d=e.getStartDTS(s,t);this.initPTS=l=d-i,this.observer.trigger(n["default"].INIT_PTS_FOUND,{initPTS:l})}e.offsetStartDTS(s,t,l),o=e.getStartDTS(s,t),this.remuxer.remux(s.audio,s.video,null,null,o,r,a,t)},t.destroy=function(){},e}();t["default"]=s},"./src/errors.ts": +/*!***********************!*\ + !*** ./src/errors.ts ***! + \***********************/ +/*! exports provided: ErrorTypes, ErrorDetails */function(e,t,i){"use strict";var r,n;i.r(t),i.d(t,"ErrorTypes",(function(){return r})),i.d(t,"ErrorDetails",(function(){return n})),function(e){e["NETWORK_ERROR"]="networkError",e["MEDIA_ERROR"]="mediaError",e["KEY_SYSTEM_ERROR"]="keySystemError",e["MUX_ERROR"]="muxError",e["OTHER_ERROR"]="otherError"}(r||(r={})),function(e){e["KEY_SYSTEM_NO_KEYS"]="keySystemNoKeys",e["KEY_SYSTEM_NO_ACCESS"]="keySystemNoAccess",e["KEY_SYSTEM_NO_SESSION"]="keySystemNoSession",e["KEY_SYSTEM_LICENSE_REQUEST_FAILED"]="keySystemLicenseRequestFailed",e["KEY_SYSTEM_NO_INIT_DATA"]="keySystemNoInitData",e["MANIFEST_LOAD_ERROR"]="manifestLoadError",e["MANIFEST_LOAD_TIMEOUT"]="manifestLoadTimeOut",e["MANIFEST_PARSING_ERROR"]="manifestParsingError",e["MANIFEST_INCOMPATIBLE_CODECS_ERROR"]="manifestIncompatibleCodecsError",e["LEVEL_LOAD_ERROR"]="levelLoadError",e["LEVEL_LOAD_TIMEOUT"]="levelLoadTimeOut",e["LEVEL_SWITCH_ERROR"]="levelSwitchError",e["AUDIO_TRACK_LOAD_ERROR"]="audioTrackLoadError",e["AUDIO_TRACK_LOAD_TIMEOUT"]="audioTrackLoadTimeOut",e["FRAG_LOAD_ERROR"]="fragLoadError",e["FRAG_LOAD_TIMEOUT"]="fragLoadTimeOut",e["FRAG_DECRYPT_ERROR"]="fragDecryptError",e["FRAG_PARSING_ERROR"]="fragParsingError",e["REMUX_ALLOC_ERROR"]="remuxAllocError",e["KEY_LOAD_ERROR"]="keyLoadError",e["KEY_LOAD_TIMEOUT"]="keyLoadTimeOut",e["BUFFER_ADD_CODEC_ERROR"]="bufferAddCodecError",e["BUFFER_APPEND_ERROR"]="bufferAppendError",e["BUFFER_APPENDING_ERROR"]="bufferAppendingError",e["BUFFER_STALLED_ERROR"]="bufferStalledError",e["BUFFER_FULL_ERROR"]="bufferFullError",e["BUFFER_SEEK_OVER_HOLE"]="bufferSeekOverHole",e["BUFFER_NUDGE_ON_STALL"]="bufferNudgeOnStall",e["INTERNAL_EXCEPTION"]="internalException"}(n||(n={}))},"./src/events.js": +/*!***********************!*\ + !*** ./src/events.js ***! + \***********************/ +/*! exports provided: default */function(e,t,i){"use strict";i.r(t);var r={MEDIA_ATTACHING:"hlsMediaAttaching",MEDIA_ATTACHED:"hlsMediaAttached",MEDIA_DETACHING:"hlsMediaDetaching",MEDIA_DETACHED:"hlsMediaDetached",BUFFER_RESET:"hlsBufferReset",BUFFER_CODECS:"hlsBufferCodecs",BUFFER_CREATED:"hlsBufferCreated",BUFFER_APPENDING:"hlsBufferAppending",BUFFER_APPENDED:"hlsBufferAppended",BUFFER_EOS:"hlsBufferEos",BUFFER_FLUSHING:"hlsBufferFlushing",BUFFER_FLUSHED:"hlsBufferFlushed",MANIFEST_LOADING:"hlsManifestLoading",MANIFEST_LOADED:"hlsManifestLoaded",MANIFEST_PARSED:"hlsManifestParsed",LEVEL_SWITCHING:"hlsLevelSwitching",LEVEL_SWITCHED:"hlsLevelSwitched",LEVEL_LOADING:"hlsLevelLoading",LEVEL_LOADED:"hlsLevelLoaded",LEVEL_UPDATED:"hlsLevelUpdated",LEVEL_PTS_UPDATED:"hlsLevelPtsUpdated",AUDIO_TRACKS_UPDATED:"hlsAudioTracksUpdated",AUDIO_TRACK_SWITCHING:"hlsAudioTrackSwitching",AUDIO_TRACK_SWITCHED:"hlsAudioTrackSwitched",AUDIO_TRACK_LOADING:"hlsAudioTrackLoading",AUDIO_TRACK_LOADED:"hlsAudioTrackLoaded",SUBTITLE_TRACKS_UPDATED:"hlsSubtitleTracksUpdated",SUBTITLE_TRACK_SWITCH:"hlsSubtitleTrackSwitch",SUBTITLE_TRACK_LOADING:"hlsSubtitleTrackLoading",SUBTITLE_TRACK_LOADED:"hlsSubtitleTrackLoaded",SUBTITLE_FRAG_PROCESSED:"hlsSubtitleFragProcessed",INIT_PTS_FOUND:"hlsInitPtsFound",FRAG_LOADING:"hlsFragLoading",FRAG_LOAD_PROGRESS:"hlsFragLoadProgress",FRAG_LOAD_EMERGENCY_ABORTED:"hlsFragLoadEmergencyAborted",FRAG_LOADED:"hlsFragLoaded",FRAG_DECRYPTED:"hlsFragDecrypted",FRAG_PARSING_INIT_SEGMENT:"hlsFragParsingInitSegment",FRAG_PARSING_USERDATA:"hlsFragParsingUserdata",FRAG_PARSING_METADATA:"hlsFragParsingMetadata",FRAG_PARSING_DATA:"hlsFragParsingData",FRAG_PARSED:"hlsFragParsed",FRAG_BUFFERED:"hlsFragBuffered",FRAG_CHANGED:"hlsFragChanged",FPS_DROP:"hlsFpsDrop",FPS_DROP_LEVEL_CAPPING:"hlsFpsDropLevelCapping",ERROR:"hlsError",DESTROYING:"hlsDestroying",KEY_LOADING:"hlsKeyLoading",KEY_LOADED:"hlsKeyLoaded",STREAM_STATE_TRANSITION:"hlsStreamStateTransition",LIVE_BACK_BUFFER_REACHED:"hlsLiveBackBufferReached"};t["default"]=r},"./src/hls.ts": +/*!*********************************!*\ + !*** ./src/hls.ts + 50 modules ***! + \*********************************/ +/*! exports provided: default */ +/*! ModuleConcatenation bailout: Cannot concat with ./src/crypt/decrypter.js because of ./src/demux/demuxer-worker.js */ +/*! ModuleConcatenation bailout: Cannot concat with ./src/demux/demuxer-inline.js because of ./src/demux/demuxer-worker.js */ +/*! ModuleConcatenation bailout: Cannot concat with ./src/demux/id3.js because of ./src/demux/demuxer-worker.js */ +/*! ModuleConcatenation bailout: Cannot concat with ./src/demux/mp4demuxer.js because of ./src/demux/demuxer-worker.js */ +/*! ModuleConcatenation bailout: Cannot concat with ./src/errors.ts because of ./src/demux/demuxer-worker.js */ +/*! ModuleConcatenation bailout: Cannot concat with ./src/events.js because of ./src/demux/demuxer-worker.js */ +/*! ModuleConcatenation bailout: Cannot concat with ./src/polyfills/number-isFinite.js because of ./src/demux/demuxer-worker.js */ +/*! ModuleConcatenation bailout: Cannot concat with ./src/utils/get-self-scope.js because of ./src/demux/demuxer-worker.js */ +/*! ModuleConcatenation bailout: Cannot concat with ./src/utils/logger.js because of ./src/demux/demuxer-worker.js */ +/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/eventemitter3/index.js (<- Module is not an ECMAScript module) */ +/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/url-toolkit/src/url-toolkit.js (<- Module is not an ECMAScript module) */function(e,t,i){"use strict";i.r(t);var r={};i.r(r),i.d(r,"newCue",(function(){return pi}));var n,a,s=i("./node_modules/url-toolkit/src/url-toolkit.js"),o=i("./src/errors.ts"),l=i("./src/polyfills/number-isFinite.js"),d=i("./src/events.js"),u=i("./src/utils/logger.js"),h={hlsEventGeneric:!0,hlsHandlerDestroying:!0,hlsHandlerDestroyed:!0},c=function(){function e(e){this.hls=void 0,this.handledEvents=void 0,this.useGenericHandler=void 0,this.hls=e,this.onEvent=this.onEvent.bind(this);for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r>8*(15-i)&255;return t},t.setDecryptDataFromLevelKey=function(e,t){var i=e;return e&&e.method&&e.uri&&!e.iv&&(i=new y(e.baseuri,e.reluri),i.method=e.method,i.iv=this.createInitializationVector(t)),i},E(e,[{key:"url",get:function(){return!this._url&&this.relurl&&(this._url=Object(s["buildAbsoluteURL"])(this.baseurl,this.relurl,{alwaysNormalize:!0})),this._url},set:function(e){this._url=e}},{key:"byteRange",get:function(){return this._byteRange?this._byteRange:[]}},{key:"byteRangeStartOffset",get:function(){return this.byteRange[0]}},{key:"byteRangeEndOffset",get:function(){return this.byteRange[1]}},{key:"decryptdata",get:function(){if(!this.levelkey&&!this._decryptdata)return null;if(!this._decryptdata&&this.levelkey){var e=this.sn;"number"!==typeof e&&(this.levelkey&&"AES-128"===this.levelkey.method&&!this.levelkey.iv&&u["logger"].warn('missing IV for initialization segment with method="'+this.levelkey.method+'" - compliance issue'),e=0),this._decryptdata=this.setDecryptDataFromLevelKey(this.levelkey,e)}return this._decryptdata}},{key:"endProgramDateTime",get:function(){if(null===this.programDateTime)return null;if(!Object(l["isFiniteNumber"])(this.programDateTime))return null;var e=Object(l["isFiniteNumber"])(this.duration)?this.duration:0;return this.programDateTime+1e3*e}},{key:"encrypted",get:function(){return!(!this.decryptdata||null===this.decryptdata.uri||null!==this.decryptdata.key)}}]),e}();function S(e,t){for(var i=0;iNumber.MAX_SAFE_INTEGER?1/0:t},t.hexadecimalInteger=function(e){if(this[e]){var t=(this[e]||"0x").slice(2);t=(1&t.length?"0":"")+t;for(var i=new Uint8Array(t.length/2),r=0;rNumber.MAX_SAFE_INTEGER?1/0:t},t.decimalFloatingPoint=function(e){return parseFloat(this[e])},t.enumeratedString=function(e){return this[e]},t.decimalResolution=function(e){var t=A.exec(this[e]);if(null!==t)return{width:parseInt(t[1],10),height:parseInt(t[2],10)}},e.parseAttrList=function(e){var t,i={};k.lastIndex=0;while(null!==(t=k.exec(e))){var r=t[2],n='"';0===r.indexOf(n)&&r.lastIndexOf(n)===r.length-1&&(r=r.slice(1,-1)),i[t[1]]=r}return i},e}(),L=R,D={audio:{a3ds:!0,"ac-3":!0,"ac-4":!0,alac:!0,alaw:!0,dra1:!0,"dts+":!0,"dts-":!0,dtsc:!0,dtse:!0,dtsh:!0,"ec-3":!0,enca:!0,g719:!0,g726:!0,m4ae:!0,mha1:!0,mha2:!0,mhm1:!0,mhm2:!0,mlpa:!0,mp4a:!0,"raw ":!0,Opus:!0,samr:!0,sawb:!0,sawp:!0,sevc:!0,sqcp:!0,ssmv:!0,twos:!0,ulaw:!0},video:{avc1:!0,avc2:!0,avc3:!0,avc4:!0,avcp:!0,drac:!0,dvav:!0,dvhe:!0,encv:!0,hev1:!0,hvc1:!0,mjp2:!0,mp4v:!0,mvc1:!0,mvc2:!0,mvc3:!0,mvc4:!0,resv:!0,rv60:!0,s263:!0,svc1:!0,svc2:!0,"vc-1":!0,vp08:!0,vp09:!0}};function I(e,t){var i=D[t];return!!i&&!0===i[e.slice(0,4)]}function C(e,t){return MediaSource.isTypeSupported((t||"video")+'/mp4;codecs="'+e+'"')}var O=/#EXT-X-STREAM-INF:([^\n\r]*)[\r\n]+([^\r\n]+)/g,x=/#EXT-X-MEDIA:(.*)/g,M=new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,/|(?!#)([\S+ ?]+)/.source,/|#EXT-X-BYTERANGE:*(.+)/.source,/|#EXT-X-PROGRAM-DATE-TIME:(.+)/.source,/|#.*/.source].join(""),"g"),P=/(?:(?:#(EXTM3U))|(?:#EXT-X-(PLAYLIST-TYPE):(.+))|(?:#EXT-X-(MEDIA-SEQUENCE): *(\d+))|(?:#EXT-X-(TARGETDURATION): *(\d+))|(?:#EXT-X-(KEY):(.+))|(?:#EXT-X-(START):(.+))|(?:#EXT-X-(ENDLIST))|(?:#EXT-X-(DISCONTINUITY-SEQ)UENCE:(\d+))|(?:#EXT-X-(DIS)CONTINUITY))|(?:#EXT-X-(VERSION):(\d+))|(?:#EXT-X-(MAP):(.+))|(?:(#)([^:]*):(.*))|(?:(#)(.*))(?:.*)\r?\n?/,F=/\.(mp4|m4s|m4v|m4a)$/i,B=function(){function e(){}return e.findGroup=function(e,t){for(var i=0;i2?(t=i.shift()+".",t+=parseInt(i.shift()).toString(16),t+=("000"+parseInt(i.shift()).toString(16)).substr(-4)):t=e,t},e.resolve=function(e,t){return s["buildAbsoluteURL"](t,e,{alwaysNormalize:!0})},e.parseMasterPlaylist=function(t,i){var r,n=[];function a(e,t){["video","audio"].forEach((function(i){var r=e.filter((function(e){return I(e,i)}));if(r.length){var n=r.filter((function(e){return 0===e.lastIndexOf("avc1",0)||0===e.lastIndexOf("mp4a",0)}));t[i+"Codec"]=n.length>0?n[0]:r[0],e=e.filter((function(e){return-1===r.indexOf(e)}))}})),t.unknownCodecs=e}O.lastIndex=0;while(null!=(r=O.exec(t))){var s={},o=s.attrs=new L(r[1]);s.url=e.resolve(r[2],i);var l=o.decimalResolution("RESOLUTION");l&&(s.width=l.width,s.height=l.height),s.bitrate=o.decimalInteger("AVERAGE-BANDWIDTH")||o.decimalInteger("BANDWIDTH"),s.name=o.NAME,a([].concat((o.CODECS||"").split(/[ ,]+/)),s),s.videoCodec&&-1!==s.videoCodec.indexOf("avc1")&&(s.videoCodec=e.convertAVC1ToAVCOTI(s.videoCodec)),n.push(s)}return n},e.parseMasterPlaylistMedia=function(t,i,r,n){var a;void 0===n&&(n=[]);var s=[],o=0;x.lastIndex=0;while(null!==(a=x.exec(t))){var l=new L(a[1]);if(l.TYPE===r){var d={id:o++,groupId:l["GROUP-ID"],name:l.NAME||l.LANGUAGE,type:r,default:"YES"===l.DEFAULT,autoselect:"YES"===l.AUTOSELECT,forced:"YES"===l.FORCED,lang:l.LANGUAGE};if(l.URI&&(d.url=e.resolve(l.URI,i)),n.length){var u=e.findGroup(n,d.groupId);d.audioCodec=u?u.codec:n[0].codec}s.push(d)}}return s},e.parseLevelPlaylist=function(e,t,i,r,n){var a,s,o,d=0,h=0,c=new w(t),f=0,p=null,m=new b,g=null;M.lastIndex=0;while(null!==(a=M.exec(e))){var v=a[1];if(v){m.duration=parseFloat(v);var _=(" "+a[2]).slice(1);m.title=_||null,m.tagList.push(_?["INF",v,_]:["INF",v])}else if(a[3]){if(Object(l["isFiniteNumber"])(m.duration)){var E=d++;m.type=r,m.start=h,o&&(m.levelkey=o),m.sn=E,m.level=i,m.cc=f,m.urlId=n,m.baseurl=t,m.relurl=(" "+a[3]).slice(1),U(m,p),c.fragments.push(m),p=m,h+=m.duration,m=new b}}else if(a[4]){var S=(" "+a[4]).slice(1);p?m.setByteRange(S,p):m.setByteRange(S)}else if(a[5])m.rawProgramDateTime=(" "+a[5]).slice(1),m.tagList.push(["PROGRAM-DATE-TIME",m.rawProgramDateTime]),null===g&&(g=c.fragments.length);else{if(a=a[0].match(P),!a){u["logger"].warn("No matches on slow regex match for level playlist!");continue}for(s=1;s=0&&(o.method=D,o.key=null,o.iv=C));break;case"START":var O=new L(T),x=O.decimalFloatingPoint("TIME-OFFSET");Object(l["isFiniteNumber"])(x)&&(c.startTimeOffset=x);break;case"MAP":var B=new L(T);m.relurl=B.URI,B.BYTERANGE&&m.setByteRange(B.BYTERANGE),m.baseurl=t,m.level=i,m.type=r,m.sn="initSegment",c.initSegment=m,m=new b,m.rawProgramDateTime=c.initSegment.rawProgramDateTime;break;default:u["logger"].warn("line parsed but not handled: "+a);break}}}return m=p,m&&!m.relurl&&(c.fragments.pop(),h-=m.duration),c.totalduration=h,c.averagetargetduration=h/c.fragments.length,c.endSN=d-1,c.startCC=c.fragments[0]?c.fragments[0].cc:0,c.endCC=f,!c.initSegment&&c.fragments.length&&c.fragments.every((function(e){return F.test(e.relurl)}))&&(u["logger"].warn("MP4 fragments found but no init segment (probably no MAP, incomplete M3U8), trying to fetch SIDX"),m=new b,m.relurl=c.fragments[0].relurl,m.baseurl=t,m.level=i,m.type=r,m.sn="initSegment",c.initSegment=m,c.needSidxRanges=!0),g&&N(c.fragments,g),c},e}();function N(e,t){for(var i=e[t],r=t-1;r>=0;r--){var n=e[r];n.programDateTime=i.programDateTime-1e3*n.duration,i=n}}function U(e,t){e.rawProgramDateTime?e.programDateTime=Date.parse(e.rawProgramDateTime):t&&t.programDateTime&&(e.programDateTime=t.endProgramDateTime),Object(l["isFiniteNumber"])(e.programDateTime)||(e.programDateTime=null,e.rawProgramDateTime=null)}function G(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var j=window,V=j.performance,q=function(e){function t(t){var i;return i=e.call(this,t,d["default"].MANIFEST_LOADING,d["default"].LEVEL_LOADING,d["default"].AUDIO_TRACK_LOADING,d["default"].SUBTITLE_TRACK_LOADING)||this,i.loaders={},i}G(t,e),t.canHaveQualityLevels=function(e){return e!==n.AUDIO_TRACK&&e!==n.SUBTITLE_TRACK},t.mapContextToLevelType=function(e){var t=e.type;switch(t){case n.AUDIO_TRACK:return a.AUDIO;case n.SUBTITLE_TRACK:return a.SUBTITLE;default:return a.MAIN}},t.getResponseUrl=function(e,t){var i=e.url;return void 0!==i&&0!==i.indexOf("data:")||(i=t.url),i};var i=t.prototype;return i.createInternalLoader=function(e){var t=this.hls.config,i=t.pLoader,r=t.loader,n=i||r,a=new n(t);return e.loader=a,this.loaders[e.type]=a,a},i.getInternalLoader=function(e){return this.loaders[e.type]},i.resetInternalLoader=function(e){this.loaders[e]&&delete this.loaders[e]},i.destroyInternalLoaders=function(){for(var e in this.loaders){var t=this.loaders[e];t&&t.destroy(),this.resetInternalLoader(e)}},i.destroy=function(){this.destroyInternalLoaders(),e.prototype.destroy.call(this)},i.onManifestLoading=function(e){this.load({url:e.url,type:n.MANIFEST,level:0,id:null,responseType:"text"})},i.onLevelLoading=function(e){this.load({url:e.url,type:n.LEVEL,level:e.level,id:e.id,responseType:"text"})},i.onAudioTrackLoading=function(e){this.load({url:e.url,type:n.AUDIO_TRACK,level:null,id:e.id,responseType:"text"})},i.onSubtitleTrackLoading=function(e){this.load({url:e.url,type:n.SUBTITLE_TRACK,level:null,id:e.id,responseType:"text"})},i.load=function(e){var t=this.hls.config;u["logger"].debug("Loading playlist of type "+e.type+", level: "+e.level+", id: "+e.id);var i,r,a,s,o=this.getInternalLoader(e);if(o){var l=o.context;if(l&&l.url===e.url)return u["logger"].trace("playlist request ongoing"),!1;u["logger"].warn("aborting previous loader for type: "+e.type),o.abort()}switch(e.type){case n.MANIFEST:i=t.manifestLoadingMaxRetry,r=t.manifestLoadingTimeOut,a=t.manifestLoadingRetryDelay,s=t.manifestLoadingMaxRetryTimeout;break;case n.LEVEL:i=0,s=0,a=0,r=t.levelLoadingTimeOut;break;default:i=t.levelLoadingMaxRetry,r=t.levelLoadingTimeOut,a=t.levelLoadingRetryDelay,s=t.levelLoadingMaxRetryTimeout;break}o=this.createInternalLoader(e);var d={timeout:r,maxRetry:i,retryDelay:a,maxRetryDelay:s},h={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this)};return u["logger"].debug("Calling internal loader delegate for URL: "+e.url),o.load(e,d,h),!0},i.loadsuccess=function(e,t,i,r){if(void 0===r&&(r=null),i.isSidxRequest)return this._handleSidxRequest(e,i),void this._handlePlaylistLoaded(e,t,i,r);if(this.resetInternalLoader(i.type),"string"!==typeof e.data)throw new Error('expected responseType of "text" for PlaylistLoader');var n=e.data;t.tload=V.now(),0===n.indexOf("#EXTM3U")?n.indexOf("#EXTINF:")>0||n.indexOf("#EXT-X-TARGETDURATION:")>0?this._handleTrackOrLevelPlaylist(e,t,i,r):this._handleMasterPlaylist(e,t,i,r):this._handleManifestParsingError(e,i,"no EXTM3U delimiter",r)},i.loaderror=function(e,t,i){void 0===i&&(i=null),this._handleNetworkError(t,i,!1,e)},i.loadtimeout=function(e,t,i){void 0===i&&(i=null),this._handleNetworkError(t,i,!0)},i._handleMasterPlaylist=function(e,i,r,n){var a=this.hls,s=e.data,o=t.getResponseUrl(e,r),l=B.parseMasterPlaylist(s,o);if(l.length){var h=l.map((function(e){return{id:e.attrs.AUDIO,codec:e.audioCodec}})),c=B.parseMasterPlaylistMedia(s,o,"AUDIO",h),f=B.parseMasterPlaylistMedia(s,o,"SUBTITLES");if(c.length){var p=!1;c.forEach((function(e){e.url||(p=!0)})),!1===p&&l[0].audioCodec&&!l[0].attrs.AUDIO&&(u["logger"].log("audio codec signaled in quality level, but no embedded audio track signaled, create one"),c.unshift({type:"main",name:"main",default:!1,autoselect:!1,forced:!1,id:-1}))}a.trigger(d["default"].MANIFEST_LOADED,{levels:l,audioTracks:c,subtitles:f,url:o,stats:i,networkDetails:n})}else this._handleManifestParsingError(e,r,"no level found in manifest",n)},i._handleTrackOrLevelPlaylist=function(e,i,r,a){var s=this.hls,o=r.id,u=r.level,h=r.type,c=t.getResponseUrl(e,r),f=Object(l["isFiniteNumber"])(o)?o:0,p=Object(l["isFiniteNumber"])(u)?u:f,m=t.mapContextToLevelType(r),g=B.parseLevelPlaylist(e.data,c,p,m,f);if(g.tload=i.tload,h===n.MANIFEST){var v={url:c,details:g};s.trigger(d["default"].MANIFEST_LOADED,{levels:[v],audioTracks:[],url:c,stats:i,networkDetails:a})}if(i.tparsed=V.now(),g.needSidxRanges){var y=g.initSegment.url;this.load({url:y,isSidxRequest:!0,type:h,level:u,levelDetails:g,id:o,rangeStart:0,rangeEnd:2048,responseType:"arraybuffer"})}else r.levelDetails=g,this._handlePlaylistLoaded(e,i,r,a)},i._handleSidxRequest=function(e,t){if("string"===typeof e.data)throw new Error("sidx request must be made with responseType of array buffer");var i=p["default"].parseSegmentIndex(new Uint8Array(e.data));if(i){var r=i.references,n=t.levelDetails;r.forEach((function(e,t){var i=e.info;if(n){var r=n.fragments[t];0===r.byteRange.length&&r.setByteRange(String(1+i.end-i.start)+"@"+String(i.start))}})),n&&n.initSegment.setByteRange(String(i.moovEndOffset)+"@0")}},i._handleManifestParsingError=function(e,t,i,r){this.hls.trigger(d["default"].ERROR,{type:o["ErrorTypes"].NETWORK_ERROR,details:o["ErrorDetails"].MANIFEST_PARSING_ERROR,fatal:!0,url:e.url,reason:i,networkDetails:r})},i._handleNetworkError=function(e,t,i,r){var a,s;void 0===i&&(i=!1),void 0===r&&(r=null),u["logger"].info("A network error occured while loading a "+e.type+"-type playlist");var l=this.getInternalLoader(e);switch(e.type){case n.MANIFEST:a=i?o["ErrorDetails"].MANIFEST_LOAD_TIMEOUT:o["ErrorDetails"].MANIFEST_LOAD_ERROR,s=!0;break;case n.LEVEL:a=i?o["ErrorDetails"].LEVEL_LOAD_TIMEOUT:o["ErrorDetails"].LEVEL_LOAD_ERROR,s=!1;break;case n.AUDIO_TRACK:a=i?o["ErrorDetails"].AUDIO_TRACK_LOAD_TIMEOUT:o["ErrorDetails"].AUDIO_TRACK_LOAD_ERROR,s=!1;break;default:s=!1}l&&(l.abort(),this.resetInternalLoader(e.type));var h={type:o["ErrorTypes"].NETWORK_ERROR,details:a,fatal:s,url:e.url,loader:l,context:e,networkDetails:t};r&&(h.response=r),this.hls.trigger(d["default"].ERROR,h)},i._handlePlaylistLoaded=function(e,i,r,a){var s=r.type,o=r.level,l=r.id,u=r.levelDetails;if(u&&u.targetduration){var h=t.canHaveQualityLevels(r.type);if(h)this.hls.trigger(d["default"].LEVEL_LOADED,{details:u,level:o||0,id:l||0,stats:i,networkDetails:a});else switch(s){case n.AUDIO_TRACK:this.hls.trigger(d["default"].AUDIO_TRACK_LOADED,{details:u,id:l,stats:i,networkDetails:a});break;case n.SUBTITLE_TRACK:this.hls.trigger(d["default"].SUBTITLE_TRACK_LOADED,{details:u,id:l,stats:i,networkDetails:a});break}}else this._handleManifestParsingError(e,r,"invalid target duration",a)},t}(f),K=q;function H(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var z=function(e){function t(t){var i;return i=e.call(this,t,d["default"].FRAG_LOADING)||this,i.loaders={},i}H(t,e);var i=t.prototype;return i.destroy=function(){var t=this.loaders;for(var i in t){var r=t[i];r&&r.destroy()}this.loaders={},e.prototype.destroy.call(this)},i.onFragLoading=function(e){var t=e.frag,i=t.type,r=this.loaders,n=this.hls.config,a=n.fLoader,s=n.loader;t.loaded=0;var o,d,h,c=r[i];c&&(u["logger"].warn("abort previous fragment loader for type: "+i),c.abort()),c=r[i]=t.loader=n.fLoader?new a(n):new s(n),o={url:t.url,frag:t,responseType:"arraybuffer",progressData:!1};var f=t.byteRangeStartOffset,p=t.byteRangeEndOffset;Object(l["isFiniteNumber"])(f)&&Object(l["isFiniteNumber"])(p)&&(o.rangeStart=f,o.rangeEnd=p),d={timeout:n.fragLoadingTimeOut,maxRetry:0,retryDelay:0,maxRetryDelay:n.fragLoadingMaxRetryTimeout},h={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this),onProgress:this.loadprogress.bind(this)},c.load(o,d,h)},i.loadsuccess=function(e,t,i,r){void 0===r&&(r=null);var n=e.data,a=i.frag;a.loader=void 0,this.loaders[a.type]=void 0,this.hls.trigger(d["default"].FRAG_LOADED,{payload:n,frag:a,stats:t,networkDetails:r})},i.loaderror=function(e,t,i){void 0===i&&(i=null);var r=t.frag,n=r.loader;n&&n.abort(),this.loaders[r.type]=void 0,this.hls.trigger(d["default"].ERROR,{type:o["ErrorTypes"].NETWORK_ERROR,details:o["ErrorDetails"].FRAG_LOAD_ERROR,fatal:!1,frag:t.frag,response:e,networkDetails:i})},i.loadtimeout=function(e,t,i){void 0===i&&(i=null);var r=t.frag,n=r.loader;n&&n.abort(),this.loaders[r.type]=void 0,this.hls.trigger(d["default"].ERROR,{type:o["ErrorTypes"].NETWORK_ERROR,details:o["ErrorDetails"].FRAG_LOAD_TIMEOUT,fatal:!1,frag:t.frag,networkDetails:i})},i.loadprogress=function(e,t,i,r){void 0===r&&(r=null);var n=t.frag;n.loaded=e.loaded,this.hls.trigger(d["default"].FRAG_LOAD_PROGRESS,{frag:n,stats:e,networkDetails:r})},t}(f),W=z;function Y(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var X=function(e){function t(t){var i;return i=e.call(this,t,d["default"].KEY_LOADING)||this,i.loaders={},i.decryptkey=null,i.decrypturl=null,i}Y(t,e);var i=t.prototype;return i.destroy=function(){for(var t in this.loaders){var i=this.loaders[t];i&&i.destroy()}this.loaders={},e.prototype.destroy.call(this)},i.onKeyLoading=function(e){var t=e.frag,i=t.type,r=this.loaders[i];if(t.decryptdata){var n=t.decryptdata.uri;if(n!==this.decrypturl||null===this.decryptkey){var a=this.hls.config;if(r&&(u["logger"].warn("abort previous key loader for type:"+i),r.abort()),!n)return void u["logger"].warn("key uri is falsy");t.loader=this.loaders[i]=new a.loader(a),this.decrypturl=n,this.decryptkey=null;var s={url:n,frag:t,responseType:"arraybuffer"},o={timeout:a.fragLoadingTimeOut,maxRetry:0,retryDelay:a.fragLoadingRetryDelay,maxRetryDelay:a.fragLoadingMaxRetryTimeout},l={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this)};t.loader.load(s,o,l)}else this.decryptkey&&(t.decryptdata.key=this.decryptkey,this.hls.trigger(d["default"].KEY_LOADED,{frag:t}))}else u["logger"].warn("Missing decryption data on fragment in onKeyLoading")},i.loadsuccess=function(e,t,i){var r=i.frag;r.decryptdata?(this.decryptkey=r.decryptdata.key=new Uint8Array(e.data),r.loader=void 0,delete this.loaders[r.type],this.hls.trigger(d["default"].KEY_LOADED,{frag:r})):u["logger"].error("after key load, decryptdata unset")},i.loaderror=function(e,t){var i=t.frag,r=i.loader;r&&r.abort(),delete this.loaders[i.type],this.hls.trigger(d["default"].ERROR,{type:o["ErrorTypes"].NETWORK_ERROR,details:o["ErrorDetails"].KEY_LOAD_ERROR,fatal:!1,frag:i,response:e})},i.loadtimeout=function(e,t){var i=t.frag,r=i.loader;r&&r.abort(),delete this.loaders[i.type],this.hls.trigger(d["default"].ERROR,{type:o["ErrorTypes"].NETWORK_ERROR,details:o["ErrorDetails"].KEY_LOAD_TIMEOUT,fatal:!1,frag:i})},t}(f),$=X;function Q(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var J={NOT_LOADED:"NOT_LOADED",APPENDING:"APPENDING",PARTIAL:"PARTIAL",OK:"OK"},Z=function(e){function t(t){var i;return i=e.call(this,t,d["default"].BUFFER_APPENDED,d["default"].FRAG_BUFFERED,d["default"].FRAG_LOADED)||this,i.bufferPadding=.2,i.fragments=Object.create(null),i.timeRanges=Object.create(null),i.config=t.config,i}Q(t,e);var i=t.prototype;return i.destroy=function(){this.fragments=Object.create(null),this.timeRanges=Object.create(null),this.config=null,f.prototype.destroy.call(this),e.prototype.destroy.call(this)},i.getBufferedFrag=function(e,t){var i=this.fragments,r=Object.keys(i).filter((function(r){var n=i[r];if(n.body.type!==t)return!1;if(!n.buffered)return!1;var a=n.body;return a.startPTS<=e&&e<=a.endPTS}));if(0===r.length)return null;var n=r.pop();return i[n].body},i.detectEvictedFragments=function(e,t){var i,r,n=this;Object.keys(this.fragments).forEach((function(a){var s=n.fragments[a];if(!0===s.buffered){var o=s.range[e];if(o){i=o.time;for(var l=0;l=r&&t<=n){a.push({startPTS:Math.max(e,i.start(o)),endPTS:Math.min(t,i.end(o))});break}if(er)a.push({startPTS:Math.max(e,i.start(o)),endPTS:Math.min(t,i.end(o))}),s=!0;else if(t<=r)break}return{time:a,partial:s}},i.getFragmentKey=function(e){return e.type+"_"+e.level+"_"+e.urlId+"_"+e.sn},i.getPartialFragment=function(e){var t,i,r,n=this,a=null,s=0;return Object.keys(this.fragments).forEach((function(o){var l=n.fragments[o];n.isPartial(l)&&(i=l.body.startPTS-n.bufferPadding,r=l.body.endPTS+n.bufferPadding,e>=i&&e<=r&&(t=Math.min(e-i,r-e),s<=t&&(a=l.body,s=t)))})),a},i.getState=function(e){var t=this.getFragmentKey(e),i=this.fragments[t],r=J.NOT_LOADED;return void 0!==i&&(r=i.buffered?!0===this.isPartial(i)?J.PARTIAL:J.OK:J.APPENDING),r},i.isPartial=function(e){return!0===e.buffered&&(void 0!==e.range.video&&!0===e.range.video.partial||void 0!==e.range.audio&&!0===e.range.audio.partial)},i.isTimeBuffered=function(e,t,i){for(var r,n,a=0;a=r&&t<=n)return!0;if(t<=r)return!1}return!1},i.onFragLoaded=function(e){var t=e.frag;Object(l["isFiniteNumber"])(t.sn)&&!t.bitrateTest&&(this.fragments[this.getFragmentKey(t)]={body:t,range:Object.create(null),buffered:!1})},i.onBufferAppended=function(e){var t=this;this.timeRanges=e.timeRanges,Object.keys(this.timeRanges).forEach((function(e){var i=t.timeRanges[e];t.detectEvictedFragments(e,i)}))},i.onFragBuffered=function(e){this.detectPartialFragments(e.frag)},i.hasFragment=function(e){var t=this.getFragmentKey(e);return void 0!==this.fragments[t]},i.removeFragment=function(e){var t=this.getFragmentKey(e);delete this.fragments[t]},i.removeAllFragments=function(){this.fragments=Object.create(null)},t}(f),ee={search:function(e,t){var i=0,r=e.length-1,n=null,a=null;while(i<=r){n=(i+r)/2|0,a=e[n];var s=t(a);if(s>0)i=n+1;else{if(!(s<0))return a;r=n-1}}return null}},te=ee,ie=function(){function e(){}return e.isBuffered=function(e,t){try{if(e)for(var i=e.buffered,r=0;r=i.start(r)&&t<=i.end(r))return!0}catch(n){}return!1},e.bufferInfo=function(e,t,i){try{if(e){var r,n=e.buffered,a=[];for(r=0;rs&&(r[a-1].end=e[n].end):r.push(e[n])}else r.push(e[n])}else r=e;for(var o,l=0,d=t,u=t,h=0;h=c&&t1?t-1:0),r=1;rt?(r.duration=a-r.start,r.duration<0&&u["logger"].warn("negative duration computed for frag "+r.sn+",level "+r.level+", there should be some duration drift between playlist and fragment!")):(n.duration=r.start-a,n.duration<0&&u["logger"].warn("negative duration computed for frag "+n.sn+",level "+n.level+", there should be some duration drift between playlist and fragment!")):n.start=i>t?r.start+r.duration:Math.max(r.start-n.duration,0)}function ge(e,t,i,r,n,a){var s=i;if(Object(l["isFiniteNumber"])(t.startPTS)){var o=Math.abs(t.startPTS-i);Object(l["isFiniteNumber"])(t.deltaPTS)?t.deltaPTS=Math.max(o,t.deltaPTS):t.deltaPTS=o,s=Math.max(i,t.startPTS),i=Math.min(i,t.startPTS),r=Math.max(r,t.endPTS),n=Math.min(n,t.startDTS),a=Math.max(a,t.endDTS)}var d=i-t.start;t.start=t.startPTS=i,t.maxStartPTS=s,t.endPTS=r,t.startDTS=n,t.endDTS=a,t.duration=r-i;var u,h,c,f=t.sn;if(!e||fe.endSN)return 0;for(u=f-e.startSN,h=e.fragments,h[u]=t,c=u;c>0;c--)me(h,c,c-1);for(c=u;cr.length))for(var a=0;at?-1:0}))}function ke(e,t,i){var r=!1;return t&&t.details&&i&&(i.endCC>i.startCC||e&&e.cc=(n||0))return null;i=i||0;for(var a=0;ae&&i.start?-1:0}function Pe(e,t,i){var r=1e3*Math.min(t,i.duration+(i.deltaPTS?i.deltaPTS:0)),n=i.endProgramDateTime||0;return n-r>e}var Fe=250,Be=2,Ne=.1,Ue=.05,Ge=function(){function e(e,t,i,r){this.config=e,this.media=t,this.fragmentTracker=i,this.hls=r,this.nudgeRetry=0,this.stallReported=!1,this.stalled=null,this.moved=!1,this.seeking=!1}var t=e.prototype;return t.poll=function(e){var t=this.config,i=this.media,r=this.stalled,n=i.currentTime,a=i.seeking,s=this.seeking&&!a,o=!this.seeking&&a;if(this.seeking=a,n===e){if((o||s)&&(this.stalled=null),!i.paused&&!i.ended&&0!==i.playbackRate&&i.buffered.length){var l=ie.bufferInfo(i,n,0),d=l.len>0,h=l.nextStart||0;if(d||h){if(a){var c=l.len>Be,f=!h||h-n>Be;if(c||f)return;this.moved=!1}if(!this.moved&&this.stalled){var p=Math.max(h,l.start||0)-n;if(p>0&&p<=Be)return void this._trySkipBufferHole(null)}var m=self.performance.now();if(null!==r){var g=m-r;!a&&g>=Fe&&this._reportStall(l.len);var v=ie.bufferInfo(i,n,t.maxBufferHole);this._tryFixBufferStall(v,g)}else this.stalled=m}}}else if(this.moved=!0,null!==r){if(this.stallReported){var y=self.performance.now()-r;u["logger"].warn("playback not stuck anymore @"+n+", after "+Math.round(y)+"ms"),this.stallReported=!1}this.stalled=null,this.nudgeRetry=0}},t._tryFixBufferStall=function(e,t){var i=this.config,r=this.fragmentTracker,n=this.media,a=n.currentTime,s=r.getPartialFragment(a);if(s){var o=this._trySkipBufferHole(s);if(o)return}e.len>i.maxBufferHole&&t>1e3*i.highBufferWatchdogPeriod&&(u["logger"].warn("Trying to nudge playhead over buffer-hole"),this.stalled=null,this._tryNudgeBuffer())},t._reportStall=function(e){var t=this.hls,i=this.media,r=this.stallReported;r||(this.stallReported=!0,u["logger"].warn("Playback stalling at @"+i.currentTime+" due to low buffer"),t.trigger(d["default"].ERROR,{type:o["ErrorTypes"].MEDIA_ERROR,details:o["ErrorDetails"].BUFFER_STALLED_ERROR,fatal:!1,buffer:e}))},t._trySkipBufferHole=function(e){for(var t=this.config,i=this.hls,r=this.media,n=r.currentTime,a=0,s=0;s=a&&n1?r-1:0),a=1;a1&&(this.clearNextTick(),this._tickTimer=self.setTimeout(this._boundTick,0)),this._tickCallCount=0)},i.doTick=function(){},t}(f);function Ke(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var He={STOPPED:"STOPPED",STARTING:"STARTING",IDLE:"IDLE",PAUSED:"PAUSED",KEY_LOADING:"KEY_LOADING",FRAG_LOADING:"FRAG_LOADING",FRAG_LOADING_WAITING_RETRY:"FRAG_LOADING_WAITING_RETRY",WAITING_TRACK:"WAITING_TRACK",PARSING:"PARSING",PARSED:"PARSED",BUFFER_FLUSHING:"BUFFER_FLUSHING",ENDED:"ENDED",ERROR:"ERROR",WAITING_INIT_PTS:"WAITING_INIT_PTS",WAITING_LEVEL:"WAITING_LEVEL"},ze=function(e){function t(){return e.apply(this,arguments)||this}Ke(t,e);var i=t.prototype;return i.doTick=function(){},i.startLoad=function(){},i.stopLoad=function(){var e=this.fragCurrent;e&&(e.loader&&e.loader.abort(),this.fragmentTracker.removeFragment(e)),this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),this.fragCurrent=null,this.fragPrevious=null,this.clearInterval(),this.clearNextTick(),this.state=He.STOPPED},i._streamEnded=function(e,t){var i=this.fragCurrent,r=this.fragmentTracker;if(!t.live&&i&&!i.backtracked&&i.sn===t.endSN&&!e.nextStart){var n=r.getState(i);return n===J.PARTIAL||n===J.OK}return!1},i.onMediaSeeking=function(){var e=this.config,t=this.media,i=this.mediaBuffer,r=this.state,n=t?t.currentTime:null,a=ie.bufferInfo(i||t,n,this.config.maxBufferHole);if(Object(l["isFiniteNumber"])(n)&&u["logger"].log("media seeking to "+n.toFixed(3)),r===He.FRAG_LOADING){var s=this.fragCurrent;if(0===a.len&&s){var o=e.maxFragLookUpTolerance,d=s.start-o,h=s.start+s.duration+o;nh?(s.loader&&(u["logger"].log("seeking outside of buffer while fragment load in progress, cancel fragment load"),s.loader.abort()),this.fragCurrent=null,this.fragPrevious=null,this.state=He.IDLE):u["logger"].log("seeking outside of buffer but within currently loaded fragment range")}}else r===He.ENDED&&(0===a.len&&(this.fragPrevious=null,this.fragCurrent=null),this.state=He.IDLE);t&&(this.lastCurrentTime=n),this.loadedmetadata||(this.nextLoadPosition=this.startPosition=n),this.tick()},i.onMediaEnded=function(){this.startPosition=this.lastCurrentTime=0},i.onHandlerDestroying=function(){this.stopLoad(),e.prototype.onHandlerDestroying.call(this)},i.onHandlerDestroyed=function(){this.state=He.STOPPED,this.fragmentTracker=null},i.computeLivePosition=function(e,t){var i=void 0!==this.config.liveSyncDuration?this.config.liveSyncDuration:this.config.liveSyncDurationCount*t.targetduration;return e+Math.max(0,t.totalduration-i)},t}(qe);function We(e,t){for(var i=0;i0&&-1===e&&(u["logger"].log("override startPosition with lastCurrentTime @"+t.toFixed(3)),e=t),this.state=He.IDLE,this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()}else this.forceStartLoad=!0,this.state=He.STOPPED},i.stopLoad=function(){this.forceStartLoad=!1,e.prototype.stopLoad.call(this)},i.doTick=function(){switch(this.state){case He.BUFFER_FLUSHING:this.fragLoadError=0;break;case He.IDLE:this._doTickIdle();break;case He.WAITING_LEVEL:var e=this.levels[this.level];e&&e.details&&(this.state=He.IDLE);break;case He.FRAG_LOADING_WAITING_RETRY:var t=window.performance.now(),i=this.retryDate;(!i||t>=i||this.media&&this.media.seeking)&&(u["logger"].log("mediaController: retryDate reached, switch back to IDLE state"),this.state=He.IDLE);break;case He.ERROR:case He.STOPPED:case He.FRAG_LOADING:case He.PARSING:case He.PARSED:case He.ENDED:break;default:break}this._checkBuffer(),this._checkFragmentChanged()},i._doTickIdle=function(){var e=this.hls,t=e.config,i=this.media;if(void 0!==this.levelLastLoaded&&(i||!this.startFragRequested&&t.startFragPrefetch)){var r;r=this.loadedmetadata?i.currentTime:this.nextLoadPosition;var n=e.nextLoadLevel,a=this.levels[n];if(a){var s,o=a.bitrate;s=o?Math.max(8*t.maxBufferSize/o,t.maxBufferLength):t.maxBufferLength,s=Math.min(s,t.maxMaxBufferLength);var l=ie.bufferInfo(this.mediaBuffer?this.mediaBuffer:i,r,t.maxBufferHole),h=l.len;if(!(h>=s)){u["logger"].trace("buffer length of "+h.toFixed(3)+" is below max of "+s.toFixed(3)+". checking for more payload ..."),this.level=e.nextLoadLevel=n;var c=a.details;if(!c||c.live&&this.levelLastLoaded!==n)this.state=He.WAITING_LEVEL;else{if(this._streamEnded(l,c)){var f={};return this.altAudio&&(f.type="video"),this.hls.trigger(d["default"].BUFFER_EOS,f),void(this.state=He.ENDED)}this._fetchPayloadOrEos(r,l,c)}}}}},i._fetchPayloadOrEos=function(e,t,i){var r=this.fragPrevious,n=this.level,a=i.fragments,s=a.length;if(0!==s){var o,l=a[0].start,d=a[s-1].start+a[s-1].duration,h=t.end;if(i.initSegment&&!i.initSegment.data)o=i.initSegment;else if(i.live){var c=this.config.initialLiveManifestSize;if(sc&&(d.currentTime=c),this.nextLoadPosition=c}if(e.PTSKnown&&t>r&&d&&d.readyState)return null;if(this.startFragRequested&&!e.PTSKnown){if(n)if(e.hasProgramDateTime)u["logger"].log("live playlist, switching playlist, load frag with same PDT: "+n.programDateTime),o=Oe(a,n.endProgramDateTime,l.maxFragLookUpTolerance);else{var f=n.sn+1;if(f>=e.startSN&&f<=e.endSN){var p=a[f-e.startSN];n.cc===p.cc&&(o=p,u["logger"].log("live playlist, switching playlist, load frag with next SN: "+o.sn))}o||(o=te.search(a,(function(e){return n.cc-e.cc})),o&&u["logger"].log("live playlist, switching playlist, load frag with same CC: "+o.sn))}o||(o=a[Math.min(s-1,Math.round(s/2))],u["logger"].log("live playlist, switching playlist, unknown, load middle frag : "+o.sn))}return o},i._findFragment=function(e,t,i,r,n,a,s){var o,l=this.hls.config;if(na-l.maxFragLookUpTolerance?0:l.maxFragLookUpTolerance;o=xe(t,r,n,d)}else o=r[i-1];if(o){var h=o.sn-s.startSN,c=t&&o.level===t.level,f=r[h-1],p=r[h+1];if(t&&o.sn===t.sn)if(c&&!o.backtracked)if(o.snl.maxBufferHole&&t.dropped&&h?(o=f,u["logger"].warn("Previous fragment was dropped with large PTS gap between audio and video. Maybe fragment is not starting with a keyframe? Loading previous one to try to overcome this")):(o=p,u["logger"].log("Re-loading fragment with SN: "+o.sn))}else o=null;else o.backtracked&&(p&&p.backtracked?(u["logger"].warn("Already backtracked from fragment "+p.sn+", will not backtrack to fragment "+o.sn+". Loading fragment "+p.sn),o=p):(u["logger"].warn("Loaded fragment with dropped frames, backtracking 1 segment to find a keyframe"),o.dropped=0,f?(o=f,o.backtracked=!0):h&&(o=null)))}return o},i._loadKey=function(e){this.state=He.KEY_LOADING,this.hls.trigger(d["default"].KEY_LOADING,{frag:e})},i._loadFragment=function(e){var t=this.fragmentTracker.getState(e);this.fragCurrent=e,"initSegment"!==e.sn&&(this.startFragRequested=!0),Object(l["isFiniteNumber"])(e.sn)&&!e.bitrateTest&&(this.nextLoadPosition=e.start+e.duration),e.backtracked||t===J.NOT_LOADED||t===J.PARTIAL?(e.autoLevel=this.hls.autoLevelEnabled,e.bitrateTest=this.bitrateTest,this.hls.trigger(d["default"].FRAG_LOADING,{frag:e}),this.demuxer||(this.demuxer=new fe(this.hls,"main")),this.state=He.FRAG_LOADING):t===J.APPENDING&&this._reduceMaxBufferLength(e.duration)&&this.fragmentTracker.removeFragment(e)},i.getBufferedFrag=function(e){return this.fragmentTracker.getBufferedFrag(e,a.MAIN)},i.followingBufferedFrag=function(e){return e?this.getBufferedFrag(e.endPTS+.5):null},i._checkFragmentChanged=function(){var e,t,i=this.media;if(i&&i.readyState&&!1===i.seeking&&(t=i.currentTime,t>this.lastCurrentTime&&(this.lastCurrentTime=t),ie.isBuffered(i,t)?e=this.getBufferedFrag(t):ie.isBuffered(i,t+.1)&&(e=this.getBufferedFrag(t+.1)),e)){var r=e;if(r!==this.fragPlaying){this.hls.trigger(d["default"].FRAG_CHANGED,{frag:r});var n=r.level;this.fragPlaying&&this.fragPlaying.level===n||this.hls.trigger(d["default"].LEVEL_SWITCHED,{level:n}),this.fragPlaying=r}}},i.immediateLevelSwitch=function(){if(u["logger"].log("immediateLevelSwitch"),!this.immediateSwitch){this.immediateSwitch=!0;var e,t=this.media;t?(e=t.paused,t.pause()):e=!0,this.previouslyPaused=e}var i=this.fragCurrent;i&&i.loader&&i.loader.abort(),this.fragCurrent=null,this.flushMainBuffer(0,Number.POSITIVE_INFINITY)},i.immediateLevelSwitchEnd=function(){var e=this.media;e&&e.buffered.length&&(this.immediateSwitch=!1,ie.isBuffered(e,e.currentTime)&&(e.currentTime-=1e-4),this.previouslyPaused||e.play())},i.nextLevelSwitch=function(){var e=this.media;if(e&&e.readyState){var t,i,r;if(i=this.getBufferedFrag(e.currentTime),i&&i.startPTS>1&&this.flushMainBuffer(0,i.startPTS-1),e.paused)t=0;else{var n=this.hls.nextLoadLevel,a=this.levels[n],s=this.fragLastKbps;t=s&&this.fragCurrent?this.fragCurrent.duration*a.bitrate/(1e3*s)+1:0}if(r=this.getBufferedFrag(e.currentTime+t),r&&(r=this.followingBufferedFrag(r),r)){var o=this.fragCurrent;o&&o.loader&&o.loader.abort(),this.fragCurrent=null,this.flushMainBuffer(r.maxStartPTS,Number.POSITIVE_INFINITY)}}},i.flushMainBuffer=function(e,t){this.state=He.BUFFER_FLUSHING;var i={startOffset:e,endOffset:t};this.altAudio&&(i.type="video"),this.hls.trigger(d["default"].BUFFER_FLUSHING,i)},i.onMediaAttached=function(e){var t=this.media=this.mediaBuffer=e.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvseeked=this.onMediaSeeked.bind(this),this.onvended=this.onMediaEnded.bind(this),t.addEventListener("seeking",this.onvseeking),t.addEventListener("seeked",this.onvseeked),t.addEventListener("ended",this.onvended);var i=this.config;this.levels&&i.autoStartLoad&&this.hls.startLoad(i.startPosition),this.gapController=new Ge(i,t,this.fragmentTracker,this.hls)},i.onMediaDetaching=function(){var e=this.media;e&&e.ended&&(u["logger"].log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0);var t=this.levels;t&&t.forEach((function(e){e.details&&e.details.fragments.forEach((function(e){e.backtracked=void 0}))})),e&&(e.removeEventListener("seeking",this.onvseeking),e.removeEventListener("seeked",this.onvseeked),e.removeEventListener("ended",this.onvended),this.onvseeking=this.onvseeked=this.onvended=null),this.fragmentTracker.removeAllFragments(),this.media=this.mediaBuffer=null,this.loadedmetadata=!1,this.stopLoad()},i.onMediaSeeked=function(){var e=this.media,t=e?e.currentTime:void 0;Object(l["isFiniteNumber"])(t)&&u["logger"].log("media seeked to "+t.toFixed(3)),this.tick()},i.onManifestLoading=function(){u["logger"].log("trigger BUFFER_RESET"),this.hls.trigger(d["default"].BUFFER_RESET),this.fragmentTracker.removeAllFragments(),this.stalled=!1,this.startPosition=this.lastCurrentTime=0},i.onManifestParsed=function(e){var t,i=!1,r=!1;e.levels.forEach((function(e){t=e.audioCodec,t&&(-1!==t.indexOf("mp4a.40.2")&&(i=!0),-1!==t.indexOf("mp4a.40.5")&&(r=!0))})),this.audioCodecSwitch=i&&r,this.audioCodecSwitch&&u["logger"].log("both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"),this.altAudio=e.altAudio,this.levels=e.levels,this.startFragRequested=!1;var n=this.config;(n.autoStartLoad||this.forceStartLoad)&&this.hls.startLoad(n.startPosition)},i.onLevelLoaded=function(e){var t=e.details,i=e.level,r=this.levels[this.levelLastLoaded],n=this.levels[i],a=t.totalduration,s=0;if(u["logger"].log("level "+i+" loaded ["+t.startSN+","+t.endSN+"],duration:"+a),t.live){var o=n.details;o&&t.fragments.length>0?(ve(o,t),s=t.fragments[0].start,this.liveSyncPosition=this.computeLivePosition(s,o),t.PTSKnown&&Object(l["isFiniteNumber"])(s)?u["logger"].log("live playlist sliding:"+s.toFixed(3)):(u["logger"].log("live playlist - outdated PTS, unknown sliding"),De(this.fragPrevious,r,t))):(u["logger"].log("live playlist - first load, unknown sliding"),t.PTSKnown=!1,De(this.fragPrevious,r,t))}else t.PTSKnown=!1;if(n.details=t,this.levelLastLoaded=i,this.hls.trigger(d["default"].LEVEL_UPDATED,{details:t,level:i}),!1===this.startFragRequested){if(-1===this.startPosition||-1===this.lastCurrentTime){var h=t.startTimeOffset;Object(l["isFiniteNumber"])(h)?(h<0&&(u["logger"].log("negative start time offset "+h+", count from end of last fragment"),h=s+a+h),u["logger"].log("start time offset found in playlist, adjust startPosition to "+h),this.startPosition=h):t.live?(this.startPosition=this.computeLivePosition(s,t),u["logger"].log("configure startPosition to "+this.startPosition)):this.startPosition=0,this.lastCurrentTime=this.startPosition}this.nextLoadPosition=this.startPosition}this.state===He.WAITING_LEVEL&&(this.state=He.IDLE),this.tick()},i.onKeyLoaded=function(){this.state===He.KEY_LOADING&&(this.state=He.IDLE,this.tick())},i.onFragLoaded=function(e){var t=this.fragCurrent,i=this.hls,r=this.levels,n=this.media,a=e.frag;if(this.state===He.FRAG_LOADING&&t&&"main"===a.type&&a.level===t.level&&a.sn===t.sn){var s=e.stats,o=r[t.level],l=o.details;if(this.bitrateTest=!1,this.stats=s,u["logger"].log("Loaded "+t.sn+" of ["+l.startSN+" ,"+l.endSN+"],level "+t.level),a.bitrateTest&&i.nextLoadLevel)this.state=He.IDLE,this.startFragRequested=!1,s.tparsed=s.tbuffered=window.performance.now(),i.trigger(d["default"].FRAG_BUFFERED,{stats:s,frag:t,id:"main"}),this.tick();else if("initSegment"===a.sn)this.state=He.IDLE,s.tparsed=s.tbuffered=window.performance.now(),l.initSegment.data=e.payload,i.trigger(d["default"].FRAG_BUFFERED,{stats:s,frag:t,id:"main"}),this.tick();else{u["logger"].log("Parsing "+t.sn+" of ["+l.startSN+" ,"+l.endSN+"],level "+t.level+", cc "+t.cc),this.state=He.PARSING,this.pendingBuffering=!0,this.appended=!1,a.bitrateTest&&(a.bitrateTest=!1,this.fragmentTracker.onFragLoaded({frag:a}));var h=!(n&&n.seeking)&&(l.PTSKnown||!l.live),c=l.initSegment?l.initSegment.data:[],f=this._getAudioCodec(o),p=this.demuxer=this.demuxer||new fe(this.hls,"main");p.push(e.payload,c,f,o.videoCodec,t,l.totalduration,h)}}this.fragLoadError=0},i.onFragParsingInitSegment=function(e){var t=this.fragCurrent,i=e.frag;if(t&&"main"===e.id&&i.sn===t.sn&&i.level===t.level&&this.state===He.PARSING){var r,n,a=e.tracks;if(a.audio&&this.altAudio&&delete a.audio,n=a.audio,n){var s=this.levels[this.level].audioCodec,o=navigator.userAgent.toLowerCase();s&&this.audioCodecSwap&&(u["logger"].log("swapping playlist audio codec"),s=-1!==s.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5"),this.audioCodecSwitch&&1!==n.metadata.channelCount&&-1===o.indexOf("firefox")&&(s="mp4a.40.5"),-1!==o.indexOf("android")&&"audio/mpeg"!==n.container&&(s="mp4a.40.2",u["logger"].log("Android: force audio codec to "+s)),n.levelCodec=s,n.id=e.id}for(r in n=a.video,n&&(n.levelCodec=this.levels[this.level].videoCodec,n.id=e.id),this.hls.trigger(d["default"].BUFFER_CODECS,a),a){n=a[r],u["logger"].log("main track:"+r+",container:"+n.container+",codecs[level/parsed]=["+n.levelCodec+"/"+n.codec+"]");var l=n.initSegment;l&&(this.appended=!0,this.pendingBuffering=!0,this.hls.trigger(d["default"].BUFFER_APPENDING,{type:r,data:l,parent:"main",content:"initSegment"}))}this.tick()}},i.onFragParsingData=function(e){var t=this,i=this.fragCurrent,r=e.frag;if(i&&"main"===e.id&&r.sn===i.sn&&r.level===i.level&&("audio"!==e.type||!this.altAudio)&&this.state===He.PARSING){var n=this.levels[this.level],a=i;if(Object(l["isFiniteNumber"])(e.endPTS)||(e.endPTS=e.startPTS+i.duration,e.endDTS=e.startDTS+i.duration),!0===e.hasAudio&&a.addElementaryStream(v.AUDIO),!0===e.hasVideo&&a.addElementaryStream(v.VIDEO),u["logger"].log("Parsed "+e.type+",PTS:["+e.startPTS.toFixed(3)+","+e.endPTS.toFixed(3)+"],DTS:["+e.startDTS.toFixed(3)+"/"+e.endDTS.toFixed(3)+"],nb:"+e.nb+",dropped:"+(e.dropped||0)),"video"===e.type)if(a.dropped=e.dropped,a.dropped)if(a.backtracked)u["logger"].warn("Already backtracked on this fragment, appending with the gap",a.sn);else{var s=n.details;if(!s||a.sn!==s.startSN)return u["logger"].warn("missing video frame(s), backtracking fragment",a.sn),this.fragmentTracker.removeFragment(a),a.backtracked=!0,this.nextLoadPosition=e.startPTS,this.state=He.IDLE,this.fragPrevious=a,void this.tick();u["logger"].warn("missing video frame(s) on first frag, appending with gap",a.sn)}else a.backtracked=!1;var o=ge(n.details,a,e.startPTS,e.endPTS,e.startDTS,e.endDTS),h=this.hls;h.trigger(d["default"].LEVEL_PTS_UPDATED,{details:n.details,level:this.level,drift:o,type:e.type,start:e.startPTS,end:e.endPTS}),[e.data1,e.data2].forEach((function(i){i&&i.length&&t.state===He.PARSING&&(t.appended=!0,t.pendingBuffering=!0,h.trigger(d["default"].BUFFER_APPENDING,{type:e.type,data:i,parent:"main",content:"data"}))})),this.tick()}},i.onFragParsed=function(e){var t=this.fragCurrent,i=e.frag;t&&"main"===e.id&&i.sn===t.sn&&i.level===t.level&&this.state===He.PARSING&&(this.stats.tparsed=window.performance.now(),this.state=He.PARSED,this._checkAppendedParsed())},i.onAudioTrackSwitching=function(e){var t=!!e.url,i=e.id;if(!t){if(this.mediaBuffer!==this.media){u["logger"].log("switching on main audio, use media.buffered to schedule main fragment loading"),this.mediaBuffer=this.media;var r=this.fragCurrent;r.loader&&(u["logger"].log("switching to main audio track, cancel main fragment load"),r.loader.abort()),this.fragCurrent=null,this.fragPrevious=null,this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),this.state=He.IDLE}var n=this.hls;n.trigger(d["default"].BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"}),n.trigger(d["default"].AUDIO_TRACK_SWITCHED,{id:i}),this.altAudio=!1}},i.onAudioTrackSwitched=function(e){var t=e.id,i=!!this.hls.audioTracks[t].url;if(i){var r=this.videoBuffer;r&&this.mediaBuffer!==r&&(u["logger"].log("switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=r)}this.altAudio=i,this.tick()},i.onBufferCreated=function(e){var t,i,r=e.tracks,n=!1;for(var a in r){var s=r[a];"main"===s.id?(i=a,t=s,"video"===a&&(this.videoBuffer=r[a].buffer)):n=!0}n&&t?(u["logger"].log("alternate track found, use "+i+".buffered to schedule main fragment loading"),this.mediaBuffer=t.buffer):this.mediaBuffer=this.media},i.onBufferAppended=function(e){if("main"===e.parent){var t=this.state;t!==He.PARSING&&t!==He.PARSED||(this.pendingBuffering=e.pending>0,this._checkAppendedParsed())}},i._checkAppendedParsed=function(){if(this.state===He.PARSED&&(!this.appended||!this.pendingBuffering)){var e=this.fragCurrent;if(e){var t=this.mediaBuffer?this.mediaBuffer:this.media;u["logger"].log("main buffered : "+Te.toString(t.buffered)),this.fragPrevious=e;var i=this.stats;i.tbuffered=window.performance.now(),this.fragLastKbps=Math.round(8*i.total/(i.tbuffered-i.tfirst)),this.hls.trigger(d["default"].FRAG_BUFFERED,{stats:i,frag:e,id:"main"}),this.state=He.IDLE}this.tick()}},i.onError=function(e){var t=e.frag||this.fragCurrent;if(!t||"main"===t.type){var i=!!this.media&&ie.isBuffered(this.media,this.media.currentTime)&&ie.isBuffered(this.media,this.media.currentTime+.5);switch(e.details){case o["ErrorDetails"].FRAG_LOAD_ERROR:case o["ErrorDetails"].FRAG_LOAD_TIMEOUT:case o["ErrorDetails"].KEY_LOAD_ERROR:case o["ErrorDetails"].KEY_LOAD_TIMEOUT:if(!e.fatal)if(this.fragLoadError+1<=this.config.fragLoadingMaxRetry){var r=Math.min(Math.pow(2,this.fragLoadError)*this.config.fragLoadingRetryDelay,this.config.fragLoadingMaxRetryTimeout);u["logger"].warn("mediaController: frag loading failed, retry in "+r+" ms"),this.retryDate=window.performance.now()+r,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.fragLoadError++,this.state=He.FRAG_LOADING_WAITING_RETRY}else u["logger"].error("mediaController: "+e.details+" reaches max retry, redispatch as fatal ..."),e.fatal=!0,this.state=He.ERROR;break;case o["ErrorDetails"].LEVEL_LOAD_ERROR:case o["ErrorDetails"].LEVEL_LOAD_TIMEOUT:this.state!==He.ERROR&&(e.fatal?(this.state=He.ERROR,u["logger"].warn("streamController: "+e.details+",switch to "+this.state+" state ...")):e.levelRetry||this.state!==He.WAITING_LEVEL||(this.state=He.IDLE));break;case o["ErrorDetails"].BUFFER_FULL_ERROR:"main"!==e.parent||this.state!==He.PARSING&&this.state!==He.PARSED||(i?(this._reduceMaxBufferLength(this.config.maxBufferLength),this.state=He.IDLE):(u["logger"].warn("buffer full error also media.currentTime is not buffered, flush everything"),this.fragCurrent=null,this.flushMainBuffer(0,Number.POSITIVE_INFINITY)));break;default:break}}},i._reduceMaxBufferLength=function(e){var t=this.config;return t.maxMaxBufferLength>=e&&(t.maxMaxBufferLength/=2,u["logger"].warn("main:reduce max buffer length to "+t.maxMaxBufferLength+"s"),!0)},i._checkBuffer=function(){var e=this.media;if(e&&0!==e.readyState){var t=this.mediaBuffer?this.mediaBuffer:e,i=t.buffered;!this.loadedmetadata&&i.length?(this.loadedmetadata=!0,this._seekToStartPos()):this.immediateSwitch?this.immediateLevelSwitchEnd():this.gapController.poll(this.lastCurrentTime,i)}},i.onFragLoadEmergencyAborted=function(){this.state=He.IDLE,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.tick()},i.onBufferFlushed=function(){var e=this.mediaBuffer?this.mediaBuffer:this.media;e&&this.fragmentTracker.detectEvictedFragments(v.VIDEO,e.buffered),this.state=He.IDLE,this.fragPrevious=null},i.swapAudioCodec=function(){this.audioCodecSwap=!this.audioCodecSwap},i._seekToStartPos=function(){var e=this.media,t=e.currentTime,i=e.seeking?t:this.startPosition;t!==i&&i>=0&&(u["logger"].log("target start position not buffered, seek to buffered.start(0) "+i+" from current time "+t+" "),e.currentTime=i)},i._getAudioCodec=function(e){var t=this.config.defaultAudioCodec||e.audioCodec;return this.audioCodecSwap&&(u["logger"].log("swapping playlist audio codec"),t&&(t=-1!==t.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5")),t},Ye(t,[{key:"state",set:function(e){if(this.state!==e){var t=this.state;this._state=e,u["logger"].log("main stream-controller: "+t+"->"+e),this.hls.trigger(d["default"].STREAM_STATE_TRANSITION,{previousState:t,nextState:e})}},get:function(){return this._state}},{key:"currentLevel",get:function(){var e=this.media;if(e){var t=this.getBufferedFrag(e.currentTime);if(t)return t.level}return-1}},{key:"nextBufferedFrag",get:function(){var e=this.media;return e?this.followingBufferedFrag(this.getBufferedFrag(e.currentTime)):null}},{key:"nextLevel",get:function(){var e=this.nextBufferedFrag;return e?e.level:-1}},{key:"liveSyncPosition",get:function(){return this._liveSyncPosition},set:function(e){this._liveSyncPosition=e}}]),t}(ze),Je=Qe;function Ze(e,t){for(var i=0;i0){t=i[0].bitrate,i.sort((function(e,t){return e.bitrate-t.bitrate})),this._levels=i;for(var h=0;h=0&&e1&&h.loadError0){var t=this.currentLevelIndex,i=e.urlId,r=e.url[i];u["logger"].log("Attempt loading level index "+t+" with URL-id "+i),this.hls.trigger(d["default"].LEVEL_LOADING,{url:r,level:t,id:i})}}},et(t,[{key:"levels",get:function(){return this._levels}},{key:"level",get:function(){return this.currentLevelIndex},set:function(e){var t=this._levels;t&&(e=Math.min(e,t.length-1),this.currentLevelIndex===e&&t[e].details||this.setLevelInternal(e))}},{key:"manualLevel",get:function(){return this.manualLevelIndex},set:function(e){this.manualLevelIndex=e,void 0===this._startLevel&&(this._startLevel=e),-1!==e&&(this.level=e)}},{key:"firstLevel",get:function(){return this._firstLevel},set:function(e){this._firstLevel=e}},{key:"startLevel",get:function(){if(void 0===this._startLevel){var e=this.hls.config.startLevel;return void 0!==e?e:this._firstLevel}return this._startLevel},set:function(e){this._startLevel=e}},{key:"nextLoadLevel",get:function(){return-1!==this.manualLevelIndex?this.manualLevelIndex:this.hls.nextAutoLevel},set:function(e){this.level=e,-1===this.manualLevelIndex&&(this.hls.nextAutoLevel=e)}}]),t}(f)),at=i("./src/demux/id3.js");function st(e,t){var i;try{i=new Event("addtrack")}catch(r){i=document.createEvent("Event"),i.initEvent("addtrack",!1,!1)}i.track=e,t.dispatchEvent(i)}function ot(e){if(e&&e.cues)while(e.cues.length>0)e.removeCue(e.cues[0])}function lt(e,t){if(te[e.length-1].endTime)return e[e.length-1];var i=0,r=e.length-1;while(i<=r){var n=Math.floor((r+i)/2);if(te[n].endTime))return e[n];i=n+1}}return e[i].endTime-to&&(u["logger"].warn("detected an id3 sample with endTime < startTime, adjusting endTime to (startTime + 0.25)"),o=s+.25);for(var l=0;l=this.minWeight_},t.getEstimate=function(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_},t.destroy=function(){},e}(),gt=mt;function vt(e,t){for(var i=0;i500*i.duration/o){var l=e.levels,h=Math.max(1,a.bw?a.bw/8:1e3*a.loaded/s),c=l[i.level],f=c.realBitrate?Math.max(c.realBitrate,c.bitrate):c.bitrate,p=a.total?a.total:Math.max(a.loaded,Math.round(i.duration*f/8)),m=t.currentTime,g=(p-a.loaded)/h,v=(ie.bufferInfo(t,m,e.config.maxBufferHole).end-m)/o;if(v<2*i.duration/o&&g>v){var y,_;for(_=i.level-1;_>n;_--){var E=l[_].realBitrate?Math.max(l[_].realBitrate,l[_].bitrate):l[_].bitrate,b=i.duration*E/(6.4*h);if(b=r;d--){var h=l[d];if(h){var c=h.details,f=c?c.totalduration/c.fragments.length:t,p=!!c&&c.live,m=void 0;m=d<=e?s*i:o*i;var g=l[d].realBitrate?Math.max(l[d].realBitrate,l[d].bitrate):l[d].bitrate,v=g*f/m;if(u["logger"].trace("level/adjustedbw/bitrate/avgDuration/maxFetchDuration/fetchDuration: "+d+"/"+Math.round(m)+"/"+g+"/"+f+"/"+a+"/"+v),m>g&&(!v||p&&!this.bitrateTestDelay||v=0)return f;u["logger"].trace("rebuffering expected to happen, lets try to find a quality level minimizing the rebuffering");var p=o?Math.min(o,r.maxStarvationDelay):r.maxStarvationDelay,m=r.abrBandWidthFactor,g=r.abrBandWidthUpFactor;if(0===c){var v=this.bitrateTestDelay;if(v){var y=o?Math.min(o,r.maxLoadingDelay):r.maxLoadingDelay;p=y-v,u["logger"].trace("bitrate test took "+Math.round(1e3*v)+"ms, set first fragment max fetchDuration to "+Math.round(1e3*p)+" ms"),m=g=1}}return f=this._findBestLevel(s,o,h,n,t,c+p,m,g,i),Math.max(f,0)}}]),t}(f),wt=Tt;function At(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var kt=se(),Rt=function(e){function t(t){var i;return i=e.call(this,t,d["default"].MEDIA_ATTACHING,d["default"].MEDIA_DETACHING,d["default"].MANIFEST_PARSED,d["default"].BUFFER_RESET,d["default"].BUFFER_APPENDING,d["default"].BUFFER_CODECS,d["default"].BUFFER_EOS,d["default"].BUFFER_FLUSHING,d["default"].LEVEL_PTS_UPDATED,d["default"].LEVEL_UPDATED)||this,i._msDuration=null,i._levelDuration=null,i._levelTargetDuration=10,i._live=null,i._objectUrl=null,i._needsFlush=!1,i._needsEos=!1,i.config=void 0,i.audioTimestampOffset=void 0,i.bufferCodecEventsExpected=0,i._bufferCodecEventsTotal=0,i.media=null,i.mediaSource=null,i.segments=[],i.parent=void 0,i.appending=!1,i.appended=0,i.appendError=0,i.flushBufferCounter=0,i.tracks={},i.pendingTracks={},i.sourceBuffer={},i.flushRange=[],i._onMediaSourceOpen=function(){u["logger"].log("media source opened"),i.hls.trigger(d["default"].MEDIA_ATTACHED,{media:i.media});var e=i.mediaSource;e&&e.removeEventListener("sourceopen",i._onMediaSourceOpen),i.checkPendingTracks()},i._onMediaSourceClose=function(){u["logger"].log("media source closed")},i._onMediaSourceEnded=function(){u["logger"].log("media source ended")},i._onSBUpdateEnd=function(){if(i.audioTimestampOffset&&i.sourceBuffer.audio){var e=i.sourceBuffer.audio;u["logger"].warn("change mpeg audio timestamp offset from "+e.timestampOffset+" to "+i.audioTimestampOffset),e.timestampOffset=i.audioTimestampOffset,delete i.audioTimestampOffset}i._needsFlush&&i.doFlush(),i._needsEos&&i.checkEos(),i.appending=!1;var t=i.parent,r=i.segments.reduce((function(e,i){return i.parent===t?e+1:e}),0),n={},a=i.sourceBuffer;for(var s in a){var o=a[s];if(!o)throw Error("handling source buffer update end error: source buffer for "+s+" uninitilized and unable to update buffered TimeRanges.");n[s]=o.buffered}i.hls.trigger(d["default"].BUFFER_APPENDED,{parent:t,pending:r,timeRanges:n}),i._needsFlush||i.doAppending(),i.updateMediaElementDuration(),0===r&&i.flushLiveBackBuffer()},i._onSBUpdateError=function(e){u["logger"].error("sourceBuffer error:",e),i.hls.trigger(d["default"].ERROR,{type:o["ErrorTypes"].MEDIA_ERROR,details:o["ErrorDetails"].BUFFER_APPENDING_ERROR,fatal:!1})},i.config=t.config,i}At(t,e);var i=t.prototype;return i.destroy=function(){f.prototype.destroy.call(this)},i.onLevelPtsUpdated=function(e){var t=e.type,i=this.tracks.audio;if("audio"===t&&i&&"audio/mpeg"===i.container){var r=this.sourceBuffer.audio;if(!r)throw Error("Level PTS Updated and source buffer for audio uninitalized");var n=Math.abs(r.timestampOffset-e.start);if(n>.1){var a=r.updating;try{r.abort()}catch(s){u["logger"].warn("can not abort audio buffer: "+s)}a?this.audioTimestampOffset=e.start:(u["logger"].warn("change mpeg audio timestamp offset from "+r.timestampOffset+" to "+e.start),r.timestampOffset=e.start)}}},i.onManifestParsed=function(e){this.bufferCodecEventsExpected=this._bufferCodecEventsTotal=e.altAudio?2:1,u["logger"].log(this.bufferCodecEventsExpected+" bufferCodec event(s) expected")},i.onMediaAttaching=function(e){var t=this.media=e.media;if(t&&kt){var i=this.mediaSource=new kt;i.addEventListener("sourceopen",this._onMediaSourceOpen),i.addEventListener("sourceended",this._onMediaSourceEnded),i.addEventListener("sourceclose",this._onMediaSourceClose),t.src=window.URL.createObjectURL(i),this._objectUrl=t.src}},i.onMediaDetaching=function(){u["logger"].log("media source detaching");var e=this.mediaSource;if(e){if("open"===e.readyState)try{e.endOfStream()}catch(t){u["logger"].warn("onMediaDetaching:"+t.message+" while calling endOfStream")}e.removeEventListener("sourceopen",this._onMediaSourceOpen),e.removeEventListener("sourceended",this._onMediaSourceEnded),e.removeEventListener("sourceclose",this._onMediaSourceClose),this.media&&(this._objectUrl&&window.URL.revokeObjectURL(this._objectUrl),this.media.src===this._objectUrl?(this.media.removeAttribute("src"),this.media.load()):u["logger"].warn("media.src was changed by a third party - skip cleanup")),this.mediaSource=null,this.media=null,this._objectUrl=null,this.bufferCodecEventsExpected=this._bufferCodecEventsTotal,this.pendingTracks={},this.tracks={},this.sourceBuffer={},this.flushRange=[],this.segments=[],this.appended=0}this.hls.trigger(d["default"].MEDIA_DETACHED)},i.checkPendingTracks=function(){var e=this.bufferCodecEventsExpected,t=this.pendingTracks,i=Object.keys(t).length;(i&&!e||2===i)&&(this.createSourceBuffers(t),this.pendingTracks={},this.doAppending())},i.onBufferReset=function(){var e=this.sourceBuffer;for(var t in e){var i=e[t];try{i&&(this.mediaSource&&this.mediaSource.removeSourceBuffer(i),i.removeEventListener("updateend",this._onSBUpdateEnd),i.removeEventListener("error",this._onSBUpdateError))}catch(r){}}this.sourceBuffer={},this.flushRange=[],this.segments=[],this.appended=0},i.onBufferCodecs=function(e){var t=this;Object.keys(this.sourceBuffer).length||(Object.keys(e).forEach((function(i){t.pendingTracks[i]=e[i]})),this.bufferCodecEventsExpected=Math.max(this.bufferCodecEventsExpected-1,0),this.mediaSource&&"open"===this.mediaSource.readyState&&this.checkPendingTracks())},i.createSourceBuffers=function(e){var t=this.sourceBuffer,i=this.mediaSource;if(!i)throw Error("createSourceBuffers called when mediaSource was null");for(var r in e)if(!t[r]){var n=e[r];if(!n)throw Error("source buffer exists for track "+r+", however track does not");var a=n.levelCodec||n.codec,s=n.container+";codecs="+a;u["logger"].log("creating sourceBuffer("+s+")");try{var l=t[r]=i.addSourceBuffer(s);l.addEventListener("updateend",this._onSBUpdateEnd),l.addEventListener("error",this._onSBUpdateError),this.tracks[r]={buffer:l,codec:a,id:n.id,container:n.container,levelCodec:n.levelCodec}}catch(h){u["logger"].error("error while trying to add sourceBuffer:"+h.message),this.hls.trigger(d["default"].ERROR,{type:o["ErrorTypes"].MEDIA_ERROR,details:o["ErrorDetails"].BUFFER_ADD_CODEC_ERROR,fatal:!1,err:h,mimeType:s})}}this.hls.trigger(d["default"].BUFFER_CREATED,{tracks:this.tracks})},i.onBufferAppending=function(e){this._needsFlush||(this.segments?this.segments.push(e):this.segments=[e],this.doAppending())},i.onBufferEos=function(e){for(var t in this.sourceBuffer)if(!e.type||e.type===t){var i=this.sourceBuffer[t];i&&!i.ended&&(i.ended=!0,u["logger"].log(t+" sourceBuffer now EOS"))}this.checkEos()},i.checkEos=function(){var e=this.sourceBuffer,t=this.mediaSource;if(t&&"open"===t.readyState){for(var i in e){var r=e[i];if(r){if(!r.ended)return;if(r.updating)return void(this._needsEos=!0)}}u["logger"].log("all media data are available, signal endOfStream() to MediaSource and stop loading fragment");try{t.endOfStream()}catch(n){u["logger"].warn("exception while calling mediaSource.endOfStream()")}this._needsEos=!1}else this._needsEos=!1},i.onBufferFlushing=function(e){e.type?this.flushRange.push({start:e.startOffset,end:e.endOffset,type:e.type}):(this.flushRange.push({start:e.startOffset,end:e.endOffset,type:"video"}),this.flushRange.push({start:e.startOffset,end:e.endOffset,type:"audio"})),this.flushBufferCounter=0,this.doFlush()},i.flushLiveBackBuffer=function(){if(this._live){var e=this.config.liveBackBufferLength;if(isFinite(e)&&!(e<0))if(this.media)for(var t=this.media.currentTime,i=this.sourceBuffer,r=Object.keys(i),n=t-Math.max(e,this._levelTargetDuration),a=r.length-1;a>=0;a--){var s=r[a],o=i[s];if(o){var l=o.buffered;l.length>0&&n>l.start(0)&&this.removeBufferRange(s,o,0,n)&&this.hls.trigger(d["default"].LIVE_BACK_BUFFER_REACHED,{bufferEnd:n})}}else u["logger"].error("flushLiveBackBuffer called without attaching media")}},i.onLevelUpdated=function(e){var t=e.details;t.fragments.length>0&&(this._levelDuration=t.totalduration+t.fragments[0].start,this._levelTargetDuration=t.averagetargetduration||t.targetduration||10,this._live=t.live,this.updateMediaElementDuration())},i.updateMediaElementDuration=function(){var e,t=this.config;if(null!==this._levelDuration&&this.media&&this.mediaSource&&this.sourceBuffer&&0!==this.media.readyState&&"open"===this.mediaSource.readyState){for(var i in this.sourceBuffer){var r=this.sourceBuffer[i];if(r&&!0===r.updating)return}e=this.media.duration,null===this._msDuration&&(this._msDuration=this.mediaSource.duration),!0===this._live&&!0===t.liveDurationInfinity?(u["logger"].log("Media Source duration is set to Infinity"),this._msDuration=this.mediaSource.duration=1/0):(this._levelDuration>this._msDuration&&this._levelDuration>e||!Object(l["isFiniteNumber"])(e))&&(u["logger"].log("Updating Media Source duration to "+this._levelDuration.toFixed(3)),this._msDuration=this.mediaSource.duration=this._levelDuration)}},i.doFlush=function(){while(this.flushRange.length){var e=this.flushRange[0];if(!this.flushBuffer(e.start,e.end,e.type))return void(this._needsFlush=!0);this.flushRange.shift(),this.flushBufferCounter=0}if(0===this.flushRange.length){this._needsFlush=!1;var t=0,i=this.sourceBuffer;try{for(var r in i){var n=i[r];n&&(t+=n.buffered.length)}}catch(a){u["logger"].error("error while accessing sourceBuffer.buffered")}this.appended=t,this.hls.trigger(d["default"].BUFFER_FLUSHED)}},i.doAppending=function(){var e=this.config,t=this.hls,i=this.segments,r=this.sourceBuffer;if(Object.keys(r).length){if(!this.media||this.media.error)return this.segments=[],void u["logger"].error("trying to append although a media error occured, flush segment and abort");if(!this.appending){var n=i.shift();if(n)try{var a=r[n.type];if(!a)return void this._onSBUpdateEnd();if(a.updating)return void i.unshift(n);a.ended=!1,this.parent=n.parent,a.appendBuffer(n.data),this.appendError=0,this.appended++,this.appending=!0}catch(l){u["logger"].error("error while trying to append buffer:"+l.message),i.unshift(n);var s={type:o["ErrorTypes"].MEDIA_ERROR,parent:n.parent,details:"",fatal:!1};22===l.code?(this.segments=[],s.details=o["ErrorDetails"].BUFFER_FULL_ERROR):(this.appendError++,s.details=o["ErrorDetails"].BUFFER_APPEND_ERROR,this.appendError>e.appendErrorMaxRetry&&(u["logger"].log("fail "+e.appendErrorMaxRetry+" times to append segment in sourceBuffer"),this.segments=[],s.fatal=!0)),t.trigger(d["default"].ERROR,s)}}}},i.flushBuffer=function(e,t,i){var r=this.sourceBuffer;if(!Object.keys(r).length)return!0;var n="null";if(this.media&&(n=this.media.currentTime.toFixed(3)),u["logger"].log("flushBuffer,pos/start/end: "+n+"/"+e+"/"+t),this.flushBufferCounter>=this.appended)return u["logger"].warn("abort flushing too many retries"),!0;var a=r[i];if(a){if(a.ended=!1,a.updating)return u["logger"].warn("cannot flush, sb updating in progress"),!1;if(this.removeBufferRange(i,a,e,t))return this.flushBufferCounter++,!1}return u["logger"].log("buffer flushed"),!0},i.removeBufferRange=function(e,t,i,r){try{for(var n=0;n.5){var d="null";return this.media&&(d=this.media.currentTime.toString()),u["logger"].log("sb remove "+e+" ["+o+","+l+"], of ["+a+","+s+"], pos:"+d),t.remove(o,l),!0}}}catch(h){u["logger"].warn("removeBufferRange failed",h)}return!1},t}(f),Lt=Rt;function Dt(e,t){for(var i=0;ithis.autoLevelCapping&&t.streamController.nextLevelSwitch(),this.autoLevelCapping=t.autoLevelCapping}}},i.getMaxLevel=function(e){var i=this;if(!this.levels)return-1;var r=this.levels.filter((function(r,n){return t.isLevelAllowed(n,i.restrictedLevels)&&n<=e}));return t.getMaxLevelByMediaSize(r,this.mediaWidth,this.mediaHeight)},i.startCapping=function(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,this.hls.firstLevel=this.getMaxLevel(this.firstLevel),clearInterval(this.timer),this.timer=setInterval(this.detectPlayerSize.bind(this),1e3),this.detectPlayerSize())},i.stopCapping=function(){this.restrictedLevels=[],this.firstLevel=null,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer&&(this.timer=clearInterval(this.timer),this.timer=null)},t.isLevelAllowed=function(e,t){return void 0===t&&(t=[]),-1===t.indexOf(e)},t.getMaxLevelByMediaSize=function(e,t,i){if(!e||e&&!e.length)return-1;for(var r=function(e,t){return!t||(e.width!==t.width||e.height!==t.height)},n=e.length-1,a=0;a=t||s.height>=i)&&r(s,e[a+1])){n=a;break}}return n},It(t,[{key:"mediaWidth",get:function(){var e,i=this.media;return i&&(e=i.width||i.clientWidth||i.offsetWidth,e*=t.contentScaleFactor),e}},{key:"mediaHeight",get:function(){var e,i=this.media;return i&&(e=i.height||i.clientHeight||i.offsetHeight,e*=t.contentScaleFactor),e}}],[{key:"contentScaleFactor",get:function(){var e=1;try{e=window.devicePixelRatio}catch(t){}return e}}]),t}(f),xt=Ot;function Mt(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var Pt=window,Ft=Pt.performance,Bt=function(e){function t(t){return e.call(this,t,d["default"].MEDIA_ATTACHING)||this}Mt(t,e);var i=t.prototype;return i.destroy=function(){this.timer&&clearInterval(this.timer),this.isVideoPlaybackQualityAvailable=!1},i.onMediaAttaching=function(e){var t=this.hls.config;if(t.capLevelOnFPSDrop){var i=this.video=e.media instanceof window.HTMLVideoElement?e.media:null;"function"===typeof i.getVideoPlaybackQuality&&(this.isVideoPlaybackQualityAvailable=!0),clearInterval(this.timer),this.timer=setInterval(this.checkFPSInterval.bind(this),t.fpsDroppedMonitoringPeriod)}},i.checkFPS=function(e,t,i){var r=Ft.now();if(t){if(this.lastTime){var n=r-this.lastTime,a=i-this.lastDroppedFrames,s=t-this.lastDecodedFrames,o=1e3*a/n,l=this.hls;if(l.trigger(d["default"].FPS_DROP,{currentDropped:a,currentDecoded:s,totalDroppedFrames:i}),o>0&&a>l.config.fpsDroppedMonitoringThreshold*s){var h=l.currentLevel;u["logger"].warn("drop FPS ratio greater than max allowed value for currentLevel: "+h),h>0&&(-1===l.autoLevelCapping||l.autoLevelCapping>=h)&&(h-=1,l.trigger(d["default"].FPS_DROP_LEVEL_CAPPING,{level:h,droppedLevel:l.currentLevel}),l.autoLevelCapping=h,l.streamController.nextLevelSwitch())}}this.lastTime=r,this.lastDroppedFrames=i,this.lastDecodedFrames=t}},i.checkFPSInterval=function(){var e=this.video;if(e)if(this.isVideoPlaybackQualityAvailable){var t=e.getVideoPlaybackQuality();this.checkFPS(e,t.totalVideoFrames,t.droppedVideoFrames)}else this.checkFPS(e,e.webkitDecodedFrameCount,e.webkitDroppedFrameCount)},t}(f),Nt=Bt,Ut=window,Gt=Ut.performance,jt=Ut.XMLHttpRequest,Vt=function(){function e(e){e&&e.xhrSetup&&(this.xhrSetup=e.xhrSetup)}var t=e.prototype;return t.destroy=function(){this.abort(),this.loader=null},t.abort=function(){var e=this.loader;e&&4!==e.readyState&&(this.stats.aborted=!0,e.abort()),window.clearTimeout(this.requestTimeout),this.requestTimeout=null,window.clearTimeout(this.retryTimeout),this.retryTimeout=null},t.load=function(e,t,i){this.context=e,this.config=t,this.callbacks=i,this.stats={trequest:Gt.now(),retry:0},this.retryDelay=t.retryDelay,this.loadInternal()},t.loadInternal=function(){var e,t=this.context;e=this.loader=new jt;var i=this.stats;i.tfirst=0,i.loaded=0;var r=this.xhrSetup;try{if(r)try{r(e,t.url)}catch(n){e.open("GET",t.url,!0),r(e,t.url)}e.readyState||e.open("GET",t.url,!0)}catch(n){return void this.callbacks.onError({code:e.status,text:n.message},t,e)}t.rangeEnd&&e.setRequestHeader("Range","bytes="+t.rangeStart+"-"+(t.rangeEnd-1)),e.onreadystatechange=this.readystatechange.bind(this),e.onprogress=this.loadprogress.bind(this),e.responseType=t.responseType,this.requestTimeout=window.setTimeout(this.loadtimeout.bind(this),this.config.timeout),e.send()},t.readystatechange=function(e){var t=e.currentTarget,i=t.readyState,r=this.stats,n=this.context,a=this.config;if(!r.aborted&&i>=2)if(window.clearTimeout(this.requestTimeout),0===r.tfirst&&(r.tfirst=Math.max(Gt.now(),r.trequest)),4===i){var s=t.status;if(s>=200&&s<300){var o,l;r.tload=Math.max(r.tfirst,Gt.now()),"arraybuffer"===n.responseType?(o=t.response,l=o.byteLength):(o=t.responseText,l=o.length),r.loaded=r.total=l;var d={url:t.responseURL,data:o};this.callbacks.onSuccess(d,r,n,t)}else r.retry>=a.maxRetry||s>=400&&s<499?(u["logger"].error(s+" while loading "+n.url),this.callbacks.onError({code:s,text:t.statusText},n,t)):(u["logger"].warn(s+" while loading "+n.url+", retrying in "+this.retryDelay+"..."),this.destroy(),this.retryTimeout=window.setTimeout(this.loadInternal.bind(this),this.retryDelay),this.retryDelay=Math.min(2*this.retryDelay,a.maxRetryDelay),r.retry++)}else this.requestTimeout=window.setTimeout(this.loadtimeout.bind(this),a.timeout)},t.loadtimeout=function(){u["logger"].warn("timeout while loading "+this.context.url),this.callbacks.onTimeout(this.stats,this.context,null)},t.loadprogress=function(e){var t=e.currentTarget,i=this.stats;i.loaded=e.loaded,e.lengthComputable&&(i.total=e.total);var r=this.callbacks.onProgress;r&&r(i,this.context,null,t)},e}(),qt=Vt;function Kt(e,t){for(var i=0;i=this.tracks.length)u["logger"].warn("Invalid audio track id:",e.id);else{if(u["logger"].log("audioTrack "+e.id+" loaded"),this.tracks[e.id].details=e.details,e.details.live&&!this.hasInterval()){var t=1e3*e.details.targetduration;this.setInterval(t)}!e.details.live&&this.hasInterval()&&this.clearInterval()}},i.onAudioTrackSwitched=function(e){var t=this.tracks[e.id].groupId;t&&this.audioGroupId!==t&&(this.audioGroupId=t)},i.onLevelLoaded=function(e){var t=this.hls.levels[e.level];if(t.audioGroupIds){var i=t.audioGroupIds[t.urlId];this.audioGroupId!==i&&(this.audioGroupId=i,this._selectInitialAudioTrack())}},i.onError=function(e){e.type===o["ErrorTypes"].NETWORK_ERROR&&(e.fatal&&this.clearInterval(),e.details===o["ErrorDetails"].AUDIO_TRACK_LOAD_ERROR&&(u["logger"].warn("Network failure on audio-track id:",e.context.id),this._handleLoadError()))},i._setAudioTrack=function(e){if(this._trackId===e&&this.tracks[this._trackId].details)u["logger"].debug("Same id as current audio-track passed, and track details available -> no-op");else if(e<0||e>=this.tracks.length)u["logger"].warn("Invalid id passed to audio-track controller");else{var t=this.tracks[e];u["logger"].log("Now switching to audio-track index "+e),this.clearInterval(),this._trackId=e;var i=t.url,r=t.type,n=t.id;this.hls.trigger(d["default"].AUDIO_TRACK_SWITCHING,{id:n,type:r,url:i}),this._loadTrackDetailsIfNeeded(t)}},i.doTick=function(){this._updateTrack(this._trackId)},i._selectInitialAudioTrack=function(){var e=this,t=this.tracks;if(t.length){var i=this.tracks[this._trackId],r=null;if(i&&(r=i.name),this._selectDefaultTrack){var n=t.filter((function(e){return e.default}));n.length?t=n:u["logger"].warn("No default audio tracks defined")}var a=!1,s=function(){t.forEach((function(t){a||e.audioGroupId&&t.groupId!==e.audioGroupId||r&&r!==t.name||(e._setAudioTrack(t.id),a=!0)}))};s(),a||(r=null,s()),a||(u["logger"].error("No track found for running audio group-ID: "+this.audioGroupId),this.hls.trigger(d["default"].ERROR,{type:o["ErrorTypes"].MEDIA_ERROR,details:o["ErrorDetails"].AUDIO_TRACK_LOAD_ERROR,fatal:!0}))}},i._needsTrackLoading=function(e){var t=e.details,i=e.url;return!(t&&!t.live)&&!!i},i._loadTrackDetailsIfNeeded=function(e){if(this._needsTrackLoading(e)){var t=e.url,i=e.id;u["logger"].log("loading audio-track playlist for id: "+i),this.hls.trigger(d["default"].AUDIO_TRACK_LOADING,{url:t,id:i})}},i._updateTrack=function(e){if(!(e<0||e>=this.tracks.length)){this.clearInterval(),this._trackId=e,u["logger"].log("trying to update audio-track "+e);var t=this.tracks[e];this._loadTrackDetailsIfNeeded(t)}},i._handleLoadError=function(){this.trackIdBlacklist[this._trackId]=!0;var e=this._trackId,t=this.tracks[e],i=t.name,r=t.language,n=t.groupId;u["logger"].warn("Loading failed on audio track id: "+e+", group-id: "+n+', name/language: "'+i+'" / "'+r+'"');for(var a=e,s=0;s0&&-1===e?(u["logger"].log("audio:override startPosition with lastCurrentTime @"+t.toFixed(3)),this.state=He.IDLE):(this.lastCurrentTime=this.startPosition?this.startPosition:e,this.state=He.STARTING),this.nextLoadPosition=this.startPosition=this.lastCurrentTime,this.tick()}else this.startPosition=e,this.state=He.STOPPED},i.doTick=function(){var e,t,i,r=this.hls,n=r.config;switch(this.state){case He.ERROR:case He.PAUSED:case He.BUFFER_FLUSHING:break;case He.STARTING:this.state=He.WAITING_TRACK,this.loadedmetadata=!1;break;case He.IDLE:var a=this.tracks;if(!a)break;if(!this.media&&(this.startFragRequested||!n.startFragPrefetch))break;if(this.loadedmetadata)e=this.media.currentTime;else if(e=this.nextLoadPosition,void 0===e)break;var s=this.mediaBuffer?this.mediaBuffer:this.media,o=this.videoBuffer?this.videoBuffer:this.media,h=ie.bufferInfo(s,e,n.maxBufferHole),c=ie.bufferInfo(o,e,n.maxBufferHole),f=h.len,p=h.end,m=this.fragPrevious,g=Math.min(n.maxBufferLength,n.maxMaxBufferLength),v=Math.max(g,c.len),y=this.audioSwitch,_=this.trackId;if((fT||h.nextStart))return;u["logger"].log("alt audio track ahead of main track, seek to start of alt audio track"),this.media.currentTime=T+.05}if(i.initSegment&&!i.initSegment.data)E=i.initSegment;else if(p<=T){if(E=b[0],null!==this.videoTrackCC&&E.cc!==this.videoTrackCC&&(E=Ae(b,this.videoTrackCC)),i.live&&E.loadIdx&&E.loadIdx===this.fragLoadIdx){var A=h.nextStart?h.nextStart:T;return u["logger"].log("no alt audio available @currentTime:"+this.media.currentTime+", seeking @"+(A+.05)),void(this.media.currentTime=A+.05)}}else{var k,R=n.maxFragLookUpTolerance,L=m?b[m.sn-b[0].sn+1]:void 0,D=function(e){var t=Math.min(R,e.duration);return e.start+e.duration-t<=p?1:e.start-t>p&&e.start?-1:0};pw-R&&(R=0),k=L&&!D(L)?L:te.search(b,D)):k=b[S-1],k&&(E=k,T=k.start,m&&E.level===m.level&&E.sn===m.sn&&(E.sn=C||O)&&(u["logger"].log("audioStreamController: retryDate reached, switch back to IDLE state"),this.state=He.IDLE);break;case He.WAITING_INIT_PTS:var x=this.videoTrackCC;if(void 0===this.initPTS[x])break;var M=this.waitingFragment;if(M){var P=M.frag.cc;x!==P?(t=this.tracks[this.trackId],t.details&&t.details.live&&(u["logger"].warn("Waiting fragment CC ("+P+") does not match video track CC ("+x+")"),this.waitingFragment=null,this.state=He.IDLE)):(this.state=He.FRAG_LOADING,this.onFragLoaded(this.waitingFragment),this.waitingFragment=null)}else this.state=He.IDLE;break;case He.STOPPED:case He.FRAG_LOADING:case He.PARSING:case He.PARSED:case He.ENDED:break;default:break}},i.onMediaAttached=function(e){var t=this.media=this.mediaBuffer=e.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvended=this.onMediaEnded.bind(this),t.addEventListener("seeking",this.onvseeking),t.addEventListener("ended",this.onvended);var i=this.config;this.tracks&&i.autoStartLoad&&this.startLoad(i.startPosition)},i.onMediaDetaching=function(){var e=this.media;e&&e.ended&&(u["logger"].log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0),e&&(e.removeEventListener("seeking",this.onvseeking),e.removeEventListener("ended",this.onvended),this.onvseeking=this.onvseeked=this.onvended=null),this.media=this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1,this.fragmentTracker.removeAllFragments(),this.stopLoad()},i.onAudioTracksUpdated=function(e){u["logger"].log("audio tracks updated"),this.tracks=e.audioTracks},i.onAudioTrackSwitching=function(e){var t=!!e.url;this.trackId=e.id,this.fragCurrent=null,this.state=He.PAUSED,this.waitingFragment=null,t?this.setInterval(ei):this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),t&&(this.audioSwitch=!0,this.state=He.IDLE),this.tick()},i.onAudioTrackLoaded=function(e){var t=e.details,i=e.id,r=this.tracks[i],n=t.totalduration,a=0;if(u["logger"].log("track "+i+" loaded ["+t.startSN+","+t.endSN+"],duration:"+n),t.live){var s=r.details;s&&t.fragments.length>0?(ve(s,t),a=t.fragments[0].start,t.PTSKnown?u["logger"].log("live audio playlist sliding:"+a.toFixed(3)):u["logger"].log("live audio playlist - outdated PTS, unknown sliding")):(t.PTSKnown=!1,u["logger"].log("live audio playlist - first load, unknown sliding"))}else t.PTSKnown=!1;if(r.details=t,!this.startFragRequested){if(-1===this.startPosition){var o=t.startTimeOffset;Object(l["isFiniteNumber"])(o)?(u["logger"].log("start time offset found in playlist, adjust startPosition to "+o),this.startPosition=o):t.live?(this.startPosition=this.computeLivePosition(a,t),u["logger"].log("compute startPosition for audio-track to "+this.startPosition)):this.startPosition=0}this.nextLoadPosition=this.startPosition}this.state===He.WAITING_TRACK&&(this.state=He.IDLE),this.tick()},i.onKeyLoaded=function(){this.state===He.KEY_LOADING&&(this.state=He.IDLE,this.tick())},i.onFragLoaded=function(e){var t=this.fragCurrent,i=e.frag;if(this.state===He.FRAG_LOADING&&t&&"audio"===i.type&&i.level===t.level&&i.sn===t.sn){var r=this.tracks[this.trackId],n=r.details,a=n.totalduration,s=t.level,o=t.sn,l=t.cc,h=this.config.defaultAudioCodec||r.audioCodec||"mp4a.40.2",c=this.stats=e.stats;if("initSegment"===o)this.state=He.IDLE,c.tparsed=c.tbuffered=Zt.now(),n.initSegment.data=e.payload,this.hls.trigger(d["default"].FRAG_BUFFERED,{stats:c,frag:t,id:"audio"}),this.tick();else{this.state=He.PARSING,this.appended=!1,this.demuxer||(this.demuxer=new fe(this.hls,"audio"));var f=this.initPTS[l],p=n.initSegment?n.initSegment.data:[];if(n.initSegment||void 0!==f){this.pendingBuffering=!0,u["logger"].log("Demuxing "+o+" of ["+n.startSN+" ,"+n.endSN+"],track "+s);var m=!1;this.demuxer.push(e.payload,p,h,null,t,a,m,f)}else u["logger"].log("unknown video PTS for continuity counter "+l+", waiting for video PTS before demuxing audio frag "+o+" of ["+n.startSN+" ,"+n.endSN+"],track "+s),this.waitingFragment=e,this.state=He.WAITING_INIT_PTS}}this.fragLoadError=0},i.onFragParsingInitSegment=function(e){var t=this.fragCurrent,i=e.frag;if(t&&"audio"===e.id&&i.sn===t.sn&&i.level===t.level&&this.state===He.PARSING){var r,n=e.tracks;if(n.video&&delete n.video,r=n.audio,r){r.levelCodec=r.codec,r.id=e.id,this.hls.trigger(d["default"].BUFFER_CODECS,n),u["logger"].log("audio track:audio,container:"+r.container+",codecs[level/parsed]=["+r.levelCodec+"/"+r.codec+"]");var a=r.initSegment;if(a){var s={type:"audio",data:a,parent:"audio",content:"initSegment"};this.audioSwitch?this.pendingData=[s]:(this.appended=!0,this.pendingBuffering=!0,this.hls.trigger(d["default"].BUFFER_APPENDING,s))}this.tick()}}},i.onFragParsingData=function(e){var t=this,i=this.fragCurrent,r=e.frag;if(i&&"audio"===e.id&&"audio"===e.type&&r.sn===i.sn&&r.level===i.level&&this.state===He.PARSING){var n=this.trackId,a=this.tracks[n],s=this.hls;Object(l["isFiniteNumber"])(e.endPTS)||(e.endPTS=e.startPTS+i.duration,e.endDTS=e.startDTS+i.duration),i.addElementaryStream(v.AUDIO),u["logger"].log("parsed "+e.type+",PTS:["+e.startPTS.toFixed(3)+","+e.endPTS.toFixed(3)+"],DTS:["+e.startDTS.toFixed(3)+"/"+e.endDTS.toFixed(3)+"],nb:"+e.nb),ge(a.details,i,e.startPTS,e.endPTS);var h=this.audioSwitch,c=this.media,f=!1;if(h)if(c&&c.readyState){var p=c.currentTime;u["logger"].log("switching audio track : currentTime:"+p),p>=e.startPTS&&(u["logger"].log("switching audio track : flushing all audio"),this.state=He.BUFFER_FLUSHING,s.trigger(d["default"].BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"}),f=!0,this.audioSwitch=!1,s.trigger(d["default"].AUDIO_TRACK_SWITCHED,{id:n}))}else this.audioSwitch=!1,s.trigger(d["default"].AUDIO_TRACK_SWITCHED,{id:n});var m=this.pendingData;if(!m)return u["logger"].warn("Apparently attempt to enqueue media payload without codec initialization data upfront"),void s.trigger(d["default"].ERROR,{type:o["ErrorTypes"].MEDIA_ERROR,details:null,fatal:!0});this.audioSwitch||([e.data1,e.data2].forEach((function(t){t&&t.length&&m.push({type:e.type,data:t,parent:"audio",content:"data"})})),!f&&m.length&&(m.forEach((function(e){t.state===He.PARSING&&(t.pendingBuffering=!0,t.hls.trigger(d["default"].BUFFER_APPENDING,e))})),this.pendingData=[],this.appended=!0)),this.tick()}},i.onFragParsed=function(e){var t=this.fragCurrent,i=e.frag;t&&"audio"===e.id&&i.sn===t.sn&&i.level===t.level&&this.state===He.PARSING&&(this.stats.tparsed=Zt.now(),this.state=He.PARSED,this._checkAppendedParsed())},i.onBufferReset=function(){this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1},i.onBufferCreated=function(e){var t=e.tracks.audio;t&&(this.mediaBuffer=t.buffer,this.loadedmetadata=!0),e.tracks.video&&(this.videoBuffer=e.tracks.video.buffer)},i.onBufferAppended=function(e){if("audio"===e.parent){var t=this.state;t!==He.PARSING&&t!==He.PARSED||(this.pendingBuffering=e.pending>0,this._checkAppendedParsed())}},i._checkAppendedParsed=function(){if(this.state===He.PARSED&&(!this.appended||!this.pendingBuffering)){var e=this.fragCurrent,t=this.stats,i=this.hls;if(e){this.fragPrevious=e,t.tbuffered=Zt.now(),i.trigger(d["default"].FRAG_BUFFERED,{stats:t,frag:e,id:"audio"});var r=this.mediaBuffer?this.mediaBuffer:this.media;r&&u["logger"].log("audio buffered : "+Te.toString(r.buffered)),this.audioSwitch&&this.appended&&(this.audioSwitch=!1,i.trigger(d["default"].AUDIO_TRACK_SWITCHED,{id:this.trackId})),this.state=He.IDLE}this.tick()}},i.onError=function(e){var t=e.frag;if(!t||"audio"===t.type)switch(e.details){case o["ErrorDetails"].FRAG_LOAD_ERROR:case o["ErrorDetails"].FRAG_LOAD_TIMEOUT:var i=e.frag;if(i&&"audio"!==i.type)break;if(!e.fatal){var r=this.fragLoadError;r?r++:r=1;var n=this.config;if(r<=n.fragLoadingMaxRetry){this.fragLoadError=r;var a=Math.min(Math.pow(2,r-1)*n.fragLoadingRetryDelay,n.fragLoadingMaxRetryTimeout);u["logger"].warn("AudioStreamController: frag loading failed, retry in "+a+" ms"),this.retryDate=Zt.now()+a,this.state=He.FRAG_LOADING_WAITING_RETRY}else u["logger"].error("AudioStreamController: "+e.details+" reaches max retry, redispatch as fatal ..."),e.fatal=!0,this.state=He.ERROR}break;case o["ErrorDetails"].AUDIO_TRACK_LOAD_ERROR:case o["ErrorDetails"].AUDIO_TRACK_LOAD_TIMEOUT:case o["ErrorDetails"].KEY_LOAD_ERROR:case o["ErrorDetails"].KEY_LOAD_TIMEOUT:this.state!==He.ERROR&&(this.state=e.fatal?He.ERROR:He.IDLE,u["logger"].warn("AudioStreamController: "+e.details+" while loading frag, now switching to "+this.state+" state ..."));break;case o["ErrorDetails"].BUFFER_FULL_ERROR:if("audio"===e.parent&&(this.state===He.PARSING||this.state===He.PARSED)){var s=this.mediaBuffer,l=this.media.currentTime,h=s&&ie.isBuffered(s,l)&&ie.isBuffered(s,l+.5);if(h){var c=this.config;c.maxMaxBufferLength>=c.maxBufferLength&&(c.maxMaxBufferLength/=2,u["logger"].warn("AudioStreamController: reduce max buffer length to "+c.maxMaxBufferLength+"s")),this.state=He.IDLE}else u["logger"].warn("AudioStreamController: buffer full error also media.currentTime is not buffered, flush audio buffer"),this.fragCurrent=null,this.state=He.BUFFER_FLUSHING,this.hls.trigger(d["default"].BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"})}break;default:break}},i.onBufferFlushed=function(){var e=this,t=this.pendingData;t&&t.length?(u["logger"].log("AudioStreamController: appending pending audio data after buffer flushed"),t.forEach((function(t){e.hls.trigger(d["default"].BUFFER_APPENDING,t)})),this.appended=!0,this.pendingData=[],this.state=He.PARSED):(this.state=He.IDLE,this.fragPrevious=null,this.tick())},$t(t,[{key:"state",set:function(e){if(this.state!==e){var t=this.state;this._state=e,u["logger"].log("audio stream:"+t+"->"+e)}},get:function(){return this._state}}]),t}(ze),ii=ti,ri=function(){if("undefined"!==typeof window&&window.VTTCue)return window.VTTCue;var e="auto",t={"":!0,lr:!0,rl:!0},i={start:!0,middle:!0,end:!0,left:!0,right:!0};function r(e){if("string"!==typeof e)return!1;var i=t[e.toLowerCase()];return!!i&&e.toLowerCase()}function n(e){if("string"!==typeof e)return!1;var t=i[e.toLowerCase()];return!!t&&e.toLowerCase()}function a(e){for(var t=1;t100)throw new Error("Position must be between 0 and 100.");_=e,this.hasBeenReset=!0}})),Object.defineProperty(o,"positionAlign",a({},l,{get:function(){return E},set:function(e){var t=n(e);if(!t)throw new SyntaxError("An invalid or illegal string was specified.");E=t,this.hasBeenReset=!0}})),Object.defineProperty(o,"size",a({},l,{get:function(){return b},set:function(e){if(e<0||e>100)throw new Error("Size must be between 0 and 100.");b=e,this.hasBeenReset=!0}})),Object.defineProperty(o,"align",a({},l,{get:function(){return S},set:function(e){var t=n(e);if(!t)throw new SyntaxError("An invalid or illegal string was specified.");S=t,this.hasBeenReset=!0}})),o.displayState=void 0}return s.prototype.getCueAsHTML=function(){var e=window.WebVTT;return e.convertCueToDOMTree(window,this.text)},s}(),ni=function(){return{decode:function(e){if(!e)return"";if("string"!==typeof e)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(e))}}};function ai(){this.window=window,this.state="INITIAL",this.buffer="",this.decoder=new ni,this.regionList=[]}function si(e){function t(e,t,i,r){return 3600*(0|e)+60*(0|t)+(0|i)+(0|r)/1e3}var i=e.match(/^(\d+):(\d{2})(:\d{2})?\.(\d{3})/);return i?i[3]?t(i[1],i[2],i[3].replace(":",""),i[4]):i[1]>59?t(i[1],i[2],0,i[4]):t(0,i[1],i[2],i[4]):null}function oi(){this.values=Object.create(null)}function li(e,t,i,r){var n=r?e.split(r):[e];for(var a in n)if("string"===typeof n[a]){var s=n[a].split(i);if(2===s.length){var o=s[0],l=s[1];t(o,l)}}}oi.prototype={set:function(e,t){this.get(e)||""===t||(this.values[e]=t)},get:function(e,t,i){return i?this.has(e)?this.values[e]:t[i]:this.has(e)?this.values[e]:t},has:function(e){return e in this.values},alt:function(e,t,i){for(var r=0;r=0&&t<=100))&&(this.set(e,t),!0)}};var di=new ri(0,0,0),ui="middle"===di.align?"middle":"center";function hi(e,t,i){var r=e;function n(){var t=si(e);if(null===t)throw new Error("Malformed timestamp: "+r);return e=e.replace(/^[^\sa-zA-Z-]+/,""),t}function a(e,t){var r=new oi;li(e,(function(e,t){switch(e){case"region":for(var n=i.length-1;n>=0;n--)if(i[n].id===t){r.set(e,i[n].region);break}break;case"vertical":r.alt(e,t,["rl","lr"]);break;case"line":var a=t.split(","),s=a[0];r.integer(e,s),r.percent(e,s)&&r.set("snapToLines",!1),r.alt(e,s,["auto"]),2===a.length&&r.alt("lineAlign",a[1],["start",ui,"end"]);break;case"position":a=t.split(","),r.percent(e,a[0]),2===a.length&&r.alt("positionAlign",a[1],["start",ui,"end","line-left","line-right","auto"]);break;case"size":r.percent(e,t);break;case"align":r.alt(e,t,["start",ui,"end","left","right"]);break}}),/:/,/\s/),t.region=r.get("region",null),t.vertical=r.get("vertical","");var n=r.get("line","auto");"auto"===n&&-1===di.line&&(n=-1),t.line=n,t.lineAlign=r.get("lineAlign","start"),t.snapToLines=r.get("snapToLines",!0),t.size=r.get("size",100),t.align=r.get("align",ui);var a=r.get("position","auto");"auto"===a&&50===di.position&&(a="start"===t.align||"left"===t.align?0:"end"===t.align||"right"===t.align?100:50),t.position=a}function s(){e=e.replace(/^\s+/,"")}if(s(),t.startTime=n(),s(),"--\x3e"!==e.substr(0,3))throw new Error("Malformed time stamp (time stamps must be separated by '--\x3e'): "+r);e=e.substr(3),s(),t.endTime=n(),s(),a(e,t)}function ci(e){return e.replace(//gi,"\n")}ai.prototype={parse:function(e){var t=this;function i(){var e=t.buffer,i=0;e=ci(e);while(i=16?o--:o++,navigator.userAgent.match(/Firefox\//)?a.line=u+1:a.line=u>7?u-2:u+1,a.align="left",a.position=Math.max(0,Math.min(100,o/32*100)),e.addCue(a)}}var mi,gi={42:225,92:233,94:237,95:243,96:250,123:231,124:247,125:209,126:241,127:9608,128:174,129:176,130:189,131:191,132:8482,133:162,134:163,135:9834,136:224,137:32,138:232,139:226,140:234,141:238,142:244,143:251,144:193,145:201,146:211,147:218,148:220,149:252,150:8216,151:161,152:42,153:8217,154:9473,155:169,156:8480,157:8226,158:8220,159:8221,160:192,161:194,162:199,163:200,164:202,165:203,166:235,167:206,168:207,169:239,170:212,171:217,172:249,173:219,174:171,175:187,176:195,177:227,178:205,179:204,180:236,181:210,182:242,183:213,184:245,185:123,186:125,187:92,188:94,189:95,190:124,191:8764,192:196,193:228,194:214,195:246,196:223,197:165,198:164,199:9475,200:197,201:229,202:216,203:248,204:9487,205:9491,206:9495,207:9499},vi=function(e){var t=e;return gi.hasOwnProperty(e)&&(t=gi[e]),String.fromCharCode(t)},yi=15,_i=100,Ei={17:1,18:3,21:5,22:7,23:9,16:11,19:12,20:14},bi={17:2,18:4,21:6,22:8,23:10,19:13,20:15},Si={25:1,26:3,29:5,30:7,31:9,24:11,27:12,28:14},Ti={25:2,26:4,29:6,30:8,31:10,27:13,28:15},wi=["white","green","blue","cyan","red","yellow","magenta","black","transparent"];(function(e){e[e["ERROR"]=0]="ERROR",e[e["TEXT"]=1]="TEXT",e[e["WARNING"]=2]="WARNING",e[e["INFO"]=2]="INFO",e[e["DEBUG"]=3]="DEBUG",e[e["DATA"]=3]="DATA"})(mi||(mi={}));var Ai={verboseFilter:{DATA:3,DEBUG:3,INFO:2,WARNING:2,TEXT:1,ERROR:0},time:null,verboseLevel:0,setTime:function(e){this.time=e},log:function(e,t){this.verboseFilter[e];this.verboseLevel}},ki=function(e){for(var t=[],i=0;i_i&&(Ai.log("ERROR","Too large cursor position "+this.pos),this.pos=_i)},t.moveCursor=function(e){var t=this.pos+e;if(e>1)for(var i=this.pos+1;i=144&&this.backSpace();var t=vi(e);this.pos>=_i?Ai.log("ERROR","Cannot insert "+e.toString(16)+" ("+t+") at position "+this.pos+". Skipping it!"):(this.chars[this.pos].setChar(t,this.currPenState),this.moveCursor(1))},t.clearFromPos=function(e){var t;for(t=e;t<_i;t++)this.chars[t].reset()},t.clear=function(){this.clearFromPos(0),this.pos=0,this.currPenState.reset()},t.clearToEndOfRow=function(){this.clearFromPos(this.pos)},t.getTextString=function(){for(var e=[],t=!0,i=0;i<_i;i++){var r=this.chars[i].uchar;" "!==r&&(t=!1),e.push(r)}return t?"":e.join("")},t.setPenStyles=function(e){this.currPenState.setStyles(e);var t=this.chars[this.pos];t.setPenState(this.currPenState)},e}(),Ii=function(){function e(){this.rows=void 0,this.currRow=void 0,this.nrRollUpRows=void 0,this.lastOutputScreen=void 0,this.rows=[];for(var e=0;e0&&(i=e?"["+t.join(" | ")+"]":t.join("\n")),i},t.getTextAndFormat=function(){return this.rows},e}(),Ci=function(){function e(e,t){this.chNr=void 0,this.outputFilter=void 0,this.mode=void 0,this.verbose=void 0,this.displayedMemory=void 0,this.nonDisplayedMemory=void 0,this.lastOutputScreen=void 0,this.currRollUpRow=void 0,this.writeScreen=void 0,this.cueStartTime=void 0,this.lastCueEndTime=void 0,this.chNr=e,this.outputFilter=t,this.mode=null,this.verbose=0,this.displayedMemory=new Ii,this.nonDisplayedMemory=new Ii,this.lastOutputScreen=new Ii,this.currRollUpRow=this.displayedMemory.rows[yi-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null}var t=e.prototype;return t.reset=function(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.currRollUpRow=this.displayedMemory.rows[yi-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null},t.getHandler=function(){return this.outputFilter},t.setHandler=function(e){this.outputFilter=e},t.setPAC=function(e){this.writeScreen.setPAC(e)},t.setBkgData=function(e){this.writeScreen.setBkgData(e)},t.setMode=function(e){e!==this.mode&&(this.mode=e,Ai.log("INFO","MODE="+e),"MODE_POP-ON"===this.mode?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),"MODE_ROLL-UP"!==this.mode&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=e)},t.insertChars=function(e){for(var t=0;t=46,t.italics)t.foreground="white";else{var i=Math.floor(e/2)-16,r=["white","green","blue","cyan","red","yellow","magenta"];t.foreground=r[i]}Ai.log("INFO","MIDROW: "+JSON.stringify(t)),this.writeScreen.setPen(t)},t.outputDataUpdate=function(e){void 0===e&&(e=!1);var t=Ai.time;null!==t&&this.outputFilter&&(null!==this.cueStartTime||this.displayedMemory.isEmpty()?this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue(this.cueStartTime,t,this.lastOutputScreen),e&&this.outputFilter.dispatchCue&&this.outputFilter.dispatchCue(),this.cueStartTime=this.displayedMemory.isEmpty()?null:t):this.cueStartTime=t,this.lastOutputScreen.copy(this.displayedMemory))},t.cueSplitAtTime=function(e){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,e,this.displayedMemory),this.cueStartTime=e))},e}(),Oi=function(){function e(e,t,i){this.field=void 0,this.outputs=void 0,this.channels=void 0,this.currChNr=void 0,this.lastCmdA=void 0,this.lastCmdB=void 0,this.lastTime=void 0,this.dataCounters=void 0,this.field=e||1,this.outputs=[t,i],this.channels=[new Ci(1,t),new Ci(2,i)],this.currChNr=-1,this.lastCmdA=null,this.lastCmdB=null,this.lastTime=null,this.dataCounters={padding:0,char:0,cmd:0,other:0}}var t=e.prototype;return t.getHandler=function(e){return this.channels[e].getHandler()},t.setHandler=function(e,t){this.channels[e].setHandler(t)},t.addData=function(e,t){var i,r,n,a=!1;this.lastTime=e,Ai.setTime(e);for(var s=0;s ("+ki([r,n])+")"),i=this.parseCmd(r,n),i||(i=this.parseMidrow(r,n)),i||(i=this.parsePAC(r,n)),i||(i=this.parseBackgroundAttributes(r,n)),!i&&(a=this.parseChars(r,n),a))if(this.currChNr&&this.currChNr>=0){var o=this.channels[this.currChNr-1];o.insertChars(a)}else Ai.log("WARNING","No channel found yet. TEXT-MODE?");i?this.dataCounters.cmd+=2:a?this.dataCounters.char+=2:(this.dataCounters.other+=2,Ai.log("WARNING","Couldn't parse cleaned data "+ki([r,n])+" orig: "+ki([t[s],t[s+1]])))}else this.dataCounters.padding+=2},t.parseCmd=function(e,t){var i=null,r=(20===e||28===e)&&t>=32&&t<=47,n=(23===e||31===e)&&t>=33&&t<=35;if(!r&&!n)return!1;if(e===this.lastCmdA&&t===this.lastCmdB)return this.lastCmdA=null,this.lastCmdB=null,Ai.log("DEBUG","Repeated command ("+ki([e,t])+") is dropped"),!0;i=20===e||23===e?1:2;var a=this.channels[i-1];return 20===e||28===e?32===t?a.ccRCL():33===t?a.ccBS():34===t?a.ccAOF():35===t?a.ccAON():36===t?a.ccDER():37===t?a.ccRU(2):38===t?a.ccRU(3):39===t?a.ccRU(4):40===t?a.ccFON():41===t?a.ccRDC():42===t?a.ccTR():43===t?a.ccRTD():44===t?a.ccEDM():45===t?a.ccCR():46===t?a.ccENM():47===t&&a.ccEOC():a.ccTO(t-32),this.lastCmdA=e,this.lastCmdB=t,this.currChNr=i,!0},t.parseMidrow=function(e,t){var i=null;if((17===e||25===e)&&t>=32&&t<=47){if(i=17===e?1:2,i!==this.currChNr)return Ai.log("ERROR","Mismatch channel in midrow parsing"),!1;var r=this.channels[i-1];return r.ccMIDROW(t),Ai.log("DEBUG","MIDROW ("+ki([e,t])+")"),!0}return!1},t.parsePAC=function(e,t){var i=null,r=null,n=(e>=17&&e<=23||e>=25&&e<=31)&&t>=64&&t<=127,a=(16===e||24===e)&&t>=64&&t<=95;if(!n&&!a)return!1;if(e===this.lastCmdA&&t===this.lastCmdB)return this.lastCmdA=null,this.lastCmdB=null,!0;i=e<=23?1:2,r=t>=64&&t<=95?1===i?Ei[e]:Si[e]:1===i?bi[e]:Ti[e];var s=this.interpretPAC(r,t),o=this.channels[i-1];return o.setPAC(s),this.lastCmdA=e,this.lastCmdB=t,this.currChNr=i,!0},t.interpretPAC=function(e,t){var i=t,r={color:null,italics:!1,indent:null,underline:!1,row:e};return i=t>95?t-96:t-64,r.underline=1===(1&i),i<=13?r.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(i/2)]:i<=15?(r.italics=!0,r.color="white"):r.indent=4*Math.floor((i-16)/2),r},t.parseChars=function(e,t){var i=null,r=null,n=null;if(e>=25?(i=2,n=e-8):(i=1,n=e),n>=17&&n<=19){var a=t;a=17===n?t+80:18===n?t+112:t+144,Ai.log("INFO","Special char '"+vi(a)+"' in channel "+i),r=[a]}else e>=32&&e<=127&&(r=0===t?[e]:[e,t]);if(r){var s=ki(r);Ai.log("DEBUG","Char codes = "+s.join(",")),this.lastCmdA=null,this.lastCmdB=null}return r},t.parseBackgroundAttributes=function(e,t){var i,r,n,a,s=(16===e||24===e)&&t>=32&&t<=47,o=(23===e||31===e)&&t>=45&&t<=47;return!(!s&&!o)&&(i={},16===e||24===e?(r=Math.floor((t-32)/2),i.background=wi[r],t%2===1&&(i.background=i.background+"_semi")):45===t?i.background="transparent":(i.foreground="black",47===t&&(i.underline=!0)),n=e<24?1:2,a=this.channels[n-1],a.setBkgData(i),this.lastCmdA=null,this.lastCmdB=null,!0)},t.reset=function(){for(var e=0;ee)&&(this.startTime=e),this.endTime=t,this.screen=i,this.timelineController.createCaptionsTrack(this.trackName)},e}(),Pi=function(e,t,i){return e.substr(i||0,t.length)===t},Fi=function(e){var t=parseInt(e.substr(-3)),i=parseInt(e.substr(-6,2)),r=parseInt(e.substr(-9,2)),n=e.length>9?parseInt(e.substr(0,e.indexOf(":"))):0;if(!Object(l["isFiniteNumber"])(t)||!Object(l["isFiniteNumber"])(i)||!Object(l["isFiniteNumber"])(r)||!Object(l["isFiniteNumber"])(n))throw Error("Malformed X-TIMESTAMP-MAP: Local:"+e);return t+=1e3*i,t+=6e4*r,t+=36e5*n,t},Bi=function(e){var t=5381,i=e.length;while(i)t=33*t^e.charCodeAt(--i);return(t>>>0).toString()},Ni=function(e,t,i){var r=e[t],n=e[r.prevCC];if(!n||!n.new&&r.new)return e.ccOffset=e.presentationOffset=r.start,void(r.new=!1);while(n&&n.new)e.ccOffset+=r.start-n.start,r.new=!1,r=n,n=e[r.prevCC];e.presentationOffset=i},Ui={parse:function(e,t,i,r,n,a){var s,o=/\r\n|\n\r|\n|\r/g,l=Object(at["utf8ArrayToStr"])(new Uint8Array(e)).trim().replace(o,"\n").split("\n"),d="00:00.000",u=0,h=0,c=0,f=[],p=!0,m=!1,g=new fi;g.oncue=function(e){var t=i[r],n=i.ccOffset;t&&t.new&&(void 0!==h?n=i.ccOffset=t.start:Ni(i,r,c)),c&&(n=c-i.presentationOffset),m&&(e.startTime+=n-h,e.endTime+=n-h),e.id=Bi(e.startTime.toString())+Bi(e.endTime.toString())+Bi(e.text),e.text=decodeURIComponent(encodeURIComponent(e.text)),e.endTime>0&&f.push(e)},g.onparsingerror=function(e){s=e},g.onflush=function(){s&&a?a(s):n(f)},l.forEach((function(e){if(p){if(Pi(e,"X-TIMESTAMP-MAP=")){p=!1,m=!0,e.substr(16).split(",").forEach((function(e){Pi(e,"LOCAL:")?d=e.substr(6):Pi(e,"MPEGTS:")&&(u=parseInt(e.substr(7)))}));try{t+(9e4*i[r].start||0)<0&&(t+=8589934592),u-=t,h=Fi(d)/1e3,c=u/9e4}catch(n){m=!1,s=n}return}""===e&&(p=!1)}g.parse(e+"\n")})),g.flush()}},Gi=Ui;function ji(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Vi(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var qi=function(e){function t(t){var i;if(i=e.call(this,t,d["default"].MEDIA_ATTACHING,d["default"].MEDIA_DETACHING,d["default"].FRAG_PARSING_USERDATA,d["default"].FRAG_DECRYPTED,d["default"].MANIFEST_LOADING,d["default"].MANIFEST_LOADED,d["default"].FRAG_LOADED,d["default"].INIT_PTS_FOUND)||this,i.media=null,i.config=void 0,i.enabled=!0,i.Cues=void 0,i.textTracks=[],i.tracks=[],i.initPTS=[],i.unparsedVttFrags=[],i.cueRanges=[],i.captionsTracks={},i.captionsProperties=void 0,i.cea608Parser=void 0,i.lastSn=-1,i.prevCC=-1,i.vttCCs=null,i.hls=t,i.config=t.config,i.Cues=t.config.cueHandler,i.captionsProperties={textTrack1:{label:i.config.captionsTextTrack1Label,languageCode:i.config.captionsTextTrack1LanguageCode},textTrack2:{label:i.config.captionsTextTrack2Label,languageCode:i.config.captionsTextTrack2LanguageCode}},i.config.enableCEA708Captions){var r=new Mi(ji(i),"textTrack1"),n=new Mi(ji(i),"textTrack2");i.cea608Parser=new xi(0,r,n)}return i}Vi(t,e);var i=t.prototype;return i.addCues=function(e,t,i,r){for(var n=this.cueRanges,a=!1,s=n.length;s--;){var o=n[s],l=Hi(o[0],o[1],t,i);if(l>=0&&(o[0]=Math.min(o[0],t),o[1]=Math.max(o[1],i),a=!0,l/(i-t)>.5))return}a||n.push([t,i]),this.Cues.newCue(this.captionsTracks[e],t,i,r)},i.onInitPtsFound=function(e){var t=this,i=e.frag,r=e.id,n=e.initPTS,a=this.unparsedVttFrags;"main"===r&&(this.initPTS[i.cc]=n),a.length&&(this.unparsedVttFrags=[],a.forEach((function(e){t.onFragLoaded(e)})))},i.getExistingTrack=function(e){var t=this.media;if(t)for(var i=0;i=a.length||i!==n||!s||this.stopped)this._clearReloadTimer();else if(u["logger"].log("subtitle track "+i+" loaded"),r.live){var o=be(s.details,r,e.stats.trequest);u["logger"].log("Reloading live subtitle playlist in "+o+"ms"),this.timer=setTimeout((function(){t._loadCurrentTrack()}),o)}else this._clearReloadTimer()},i.startLoad=function(){this.stopped=!1,this._loadCurrentTrack()},i.stopLoad=function(){this.stopped=!0,this._clearReloadTimer()},i._clearReloadTimer=function(){this.timer&&(clearTimeout(this.timer),this.timer=null)},i._loadCurrentTrack=function(){var e=this.trackId,t=this.tracks,i=this.hls,r=t[e];e<0||!r||r.details&&!r.details.live||(u["logger"].log("Loading subtitle track "+e),i.trigger(d["default"].SUBTITLE_TRACK_LOADING,{url:r.url,id:e}))},i._toggleTrackModes=function(e){var t=this.media,i=this.subtitleDisplay,r=this.trackId;if(t){var n=Qi(t.textTracks);if(-1===e)[].slice.call(n).forEach((function(e){e.mode="disabled"}));else{var a=n[r];a&&(a.mode="disabled")}var s=n[e];s&&(s.mode=i?"showing":"hidden")}},i._setSubtitleTrackInternal=function(e){var t=this.hls,i=this.tracks;!Object(l["isFiniteNumber"])(e)||e<-1||e>=i.length||(this.trackId=e,u["logger"].log("Switching to subtitle track "+e),t.trigger(d["default"].SUBTITLE_TRACK_SWITCH,{id:e}),this._loadCurrentTrack())},i._onTextTracksChanged=function(){if(this.media){for(var e=-1,t=Qi(this.media.textTracks),i=0;i=r[s].start&&a<=r[s].end){n=r[s];break}var o=t.start+t.duration;n?n.end=o:(n={start:a,end:o},r.push(n))}}},i.onMediaAttached=function(e){var t=e.media;this.media=t,t.addEventListener("seeking",this._onMediaSeeking),this.state=He.IDLE},i.onMediaDetaching=function(){var e=this;this.media&&(this.media.removeEventListener("seeking",this._onMediaSeeking),this.fragmentTracker.removeAllFragments(),this.currentTrackId=-1,this.tracks.forEach((function(t){e.tracksBuffered[t.id]=[]})),this.media=null,this.state=He.STOPPED)},i.onError=function(e){var t=e.frag;t&&"subtitle"===t.type&&(this.state=He.IDLE)},i.onSubtitleTracksUpdated=function(e){var t=this;u["logger"].log("subtitle tracks updated"),this.tracksBuffered=[],this.tracks=e.subtitleTracks,this.tracks.forEach((function(e){t.tracksBuffered[e.id]=[]}))},i.onSubtitleTrackSwitch=function(e){if(this.currentTrackId=e.id,this.tracks&&this.tracks.length&&-1!==this.currentTrackId){var t=this.tracks[this.currentTrackId];t&&t.details&&this.setInterval(ar)}else this.clearInterval()},i.onSubtitleTrackLoaded=function(e){var t=e.id,i=e.details,r=this.currentTrackId,n=this.tracks,a=n[r];t>=n.length||t!==r||!a||(i.live&&ye(a.details,i,this.lastAVStart),a.details=i,this.setInterval(ar))},i.onKeyLoaded=function(){this.state===He.KEY_LOADING&&(this.state=He.IDLE)},i.onFragLoaded=function(e){var t=this.fragCurrent,i=e.frag.decryptdata,r=e.frag,n=this.hls;if(this.state===He.FRAG_LOADING&&t&&"subtitle"===e.frag.type&&t.sn===e.frag.sn&&e.payload.byteLength>0&&i&&i.key&&"AES-128"===i.method){var a=nr.now();this.decrypter.decrypt(e.payload,i.key.buffer,i.iv.buffer,(function(e){var t=nr.now();n.trigger(d["default"].FRAG_DECRYPTED,{frag:r,payload:e,stats:{tstart:a,tdecrypt:t}})}))}},i.onLevelUpdated=function(e){var t=e.details,i=t.fragments;this.lastAVStart=i.length?i[0].start:0},i.doTick=function(){if(this.media)switch(this.state){case He.IDLE:var e=this.config,t=this.currentTrackId,i=this.fragmentTracker,r=this.media,n=this.tracks;if(!n||!n[t]||!n[t].details)break;var a,s=e.maxBufferHole,o=e.maxFragLookUpTolerance,l=Math.min(e.maxBufferLength,e.maxMaxBufferLength),h=ie.bufferedInfo(this._getBuffered(),r.currentTime,s),c=h.end,f=h.len,p=n[t].details,m=p.fragments,g=m.length,v=m[g-1].start+m[g-1].duration;if(f>l)return;var y=this.fragPrevious;chr)return void this.hls.trigger(d["default"].ERROR,{type:o["ErrorTypes"].KEY_SYSTEM_ERROR,details:o["ErrorDetails"].KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0});var n=hr-this._requestLicenseFailureCount+1;u["logger"].warn("Retrying license request, "+n+" attempts left"),this._requestLicense(i,r)}break}},i._generateLicenseRequestChallenge=function(e,t){switch(e.mediaKeySystemDomain){case ir.WIDEVINE:return t}throw new Error("unsupported key-system: "+e.mediaKeySystemDomain)},i._requestLicense=function(e,t){u["logger"].log("Requesting content license for key-system");var i=this._mediaKeysList[0];if(!i)return u["logger"].error("Fatal error: Media is encrypted but no key-system access has been obtained yet"),void this.hls.trigger(d["default"].ERROR,{type:o["ErrorTypes"].KEY_SYSTEM_ERROR,details:o["ErrorDetails"].KEY_SYSTEM_NO_ACCESS,fatal:!0});try{var r=this.getLicenseServerUrl(i.mediaKeySystemDomain),n=this._createLicenseXhr(r,e,t);u["logger"].log("Sending license request to URL: "+r);var a=this._generateLicenseRequestChallenge(i,e);n.send(a)}catch(s){u["logger"].error("Failure requesting DRM license: "+s),this.hls.trigger(d["default"].ERROR,{type:o["ErrorTypes"].KEY_SYSTEM_ERROR,details:o["ErrorDetails"].KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0})}},i.onMediaAttached=function(e){if(this._emeEnabled){var t=e.media;this._media=t,t.addEventListener("encrypted",this._onMediaEncrypted)}},i.onMediaDetached=function(){this._media&&(this._media.removeEventListener("encrypted",this._onMediaEncrypted),this._media=null)},i.onManifestParsed=function(e){if(this._emeEnabled){var t=e.levels.map((function(e){return e.audioCodec})),i=e.levels.map((function(e){return e.videoCodec}));this._attemptKeySystemAccess(ir.WIDEVINE,t,i)}},dr(t,[{key:"requestMediaKeySystemAccess",get:function(){if(!this._requestMediaKeySystemAccess)throw new Error("No requestMediaKeySystemAccess function configured");return this._requestMediaKeySystemAccess}}]),t}(f),mr=pr;function gr(e){for(var t=1;tt)return r}return 0}},{key:"maxAutoLevel",get:function(){var e,t=this.levels,i=this.autoLevelCapping;return e=-1===i&&t&&t.length?t.length-1:i,e}},{key:"nextAutoLevel",get:function(){return Math.min(Math.max(this.abrController.nextAutoLevel,this.minAutoLevel),this.maxAutoLevel)},set:function(e){this.abrController.nextAutoLevel=Math.max(this.minAutoLevel,e)}},{key:"audioTracks",get:function(){var e=this.audioTrackController;return e?e.audioTracks:[]}},{key:"audioTrack",get:function(){var e=this.audioTrackController;return e?e.audioTrack:-1},set:function(e){var t=this.audioTrackController;t&&(t.audioTrack=e)}},{key:"liveSyncPosition",get:function(){return this.streamController.liveSyncPosition}},{key:"subtitleTracks",get:function(){var e=this.subtitleTrackController;return e?e.subtitleTracks:[]}},{key:"subtitleTrack",get:function(){var e=this.subtitleTrackController;return e?e.subtitleTrack:-1},set:function(e){var t=this.subtitleTrackController;t&&(t.subtitleTrack=e)}},{key:"subtitleDisplay",get:function(){var e=this.subtitleTrackController;return!!e&&e.subtitleDisplay},set:function(e){var t=this.subtitleTrackController;t&&(t.subtitleDisplay=e)}}]),t}(de);kr.defaultConfig=void 0},"./src/polyfills/number-isFinite.js": +/*!******************************************!*\ + !*** ./src/polyfills/number-isFinite.js ***! + \******************************************/ +/*! exports provided: isFiniteNumber */function(e,t,i){"use strict";i.r(t),i.d(t,"isFiniteNumber",(function(){return r}));var r=Number.isFinite||function(e){return"number"===typeof e&&isFinite(e)}},"./src/utils/get-self-scope.js": +/*!*************************************!*\ + !*** ./src/utils/get-self-scope.js ***! + \*************************************/ +/*! exports provided: getSelfScope */function(e,t,i){"use strict";function r(){return"undefined"===typeof window?self:window}i.r(t),i.d(t,"getSelfScope",(function(){return r}))},"./src/utils/logger.js": +/*!*****************************!*\ + !*** ./src/utils/logger.js ***! + \*****************************/ +/*! exports provided: enableLogs, logger */function(e,t,i){"use strict";i.r(t),i.d(t,"enableLogs",(function(){return h})),i.d(t,"logger",(function(){return c}));var r=i(/*! ./get-self-scope */"./src/utils/get-self-scope.js");function n(){}var a={trace:n,debug:n,log:n,warn:n,info:n,error:n},s=a;function o(e,t){return t="["+e+"] > "+t,t}var l=Object(r["getSelfScope"])();function d(e){var t=l.console[e];return t?function(){for(var i=arguments.length,r=new Array(i),n=0;n1?t-1:0),r=1;r0?[t,i,r]:[i,r]).map((function(e){return e<10?"0"+e:""+e})).join(":")},getElementViewLeft:function(e){var t=e.offsetLeft,i=e.offsetParent,r=document.body.scrollLeft+document.documentElement.scrollLeft;if(document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement)for(;null!==i&&i!==e;)t+=i.offsetLeft,i=i.offsetParent;else for(;null!==i;)t+=i.offsetLeft,i=i.offsetParent;return t-r},getBoundingClientRectViewLeft:function(e){var t=document.documentElement.scrollTop;if(e.getBoundingClientRect){if("number"!=typeof this.getBoundingClientRectViewLeft.offset){var i=document.createElement("div");i.style.cssText="position:absolute;top:0;left:0;",document.body.appendChild(i),this.getBoundingClientRectViewLeft.offset=-i.getBoundingClientRect().top-t,document.body.removeChild(i),i=null}var r=e.getBoundingClientRect(),n=this.getBoundingClientRectViewLeft.offset;return r.left+n}return this.getElementViewLeft(e)},getScrollPosition:function(){return{left:window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0,top:window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0}},setScrollPosition:function(e){var t=e.left,i=void 0===t?0:t,r=e.top,n=void 0===r?0:r;this.isFirefox?(document.documentElement.scrollLeft=i,document.documentElement.scrollTop=n):window.scrollTo(i,n)},isMobile:r,isFirefox:/firefox/i.test(window.navigator.userAgent),isChrome:/chrome/i.test(window.navigator.userAgent),storage:{set:function(e,t){localStorage.setItem(e,t)},get:function(e){return localStorage.getItem(e)}},cumulativeOffset:function(e){var t=0,i=0;do{t+=e.offsetTop||0,i+=e.offsetLeft||0,e=e.offsetParent}while(e);return{top:t,left:i}},nameMap:{dragStart:r?"touchstart":"mousedown",dragMove:r?"touchmove":"mousemove",dragEnd:r?"touchend":"mouseup"},color2Number:function(e){return"#"===e[0]&&(e=e.substr(1)),3===e.length&&(e=""+e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),parseInt(e,16)+0&16777215},number2Color:function(e){return"#"+("00000"+e.toString(16)).slice(-6)},number2Type:function(e){switch(e){case 0:return"right";case 1:return"top";case 2:return"bottom";default:return"right"}}};t.default=n},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=_(i(46)),n=_(i(45)),a=_(i(44)),s=_(i(43)),o=_(i(42)),l=_(i(41)),d=_(i(40)),u=_(i(39)),h=_(i(38)),c=_(i(37)),f=_(i(36)),p=_(i(35)),m=_(i(34)),g=_(i(33)),v=_(i(32)),y=_(i(31));function _(e){return e&&e.__esModule?e:{default:e}}var E={play:r.default,pause:n.default,volumeUp:a.default,volumeDown:s.default,volumeOff:o.default,full:l.default,fullWeb:d.default,setting:u.default,right:h.default,comment:c.default,commentOff:f.default,send:p.default,pallette:m.default,camera:g.default,subtitle:v.default,loading:y.default};t.default=E},function(e,t,i){"use strict";(function(t){var r=i(0),n=i(63),a={"Content-Type":"application/x-www-form-urlencoded"};function s(e,t){!r.isUndefined(e)&&r.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var o,l={adapter:("undefined"!=typeof XMLHttpRequest?o=i(10):void 0!==t&&(o=i(10)),o),transformRequest:[function(e,t){return n(t,"Content-Type"),r.isFormData(e)||r.isArrayBuffer(e)||r.isBuffer(e)||r.isStream(e)||r.isFile(e)||r.isBlob(e)?e:r.isArrayBufferView(e)?e.buffer:r.isURLSearchParams(e)?(s(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):r.isObject(e)?(s(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],(function(e){l.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){l.headers[e]=r.merge(a)})),e.exports=l}).call(this,i(12))},function(e,t,i){"use strict";var r,n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(e){"object"===("undefined"==typeof window?"undefined":n(window))&&(r=window)}e.exports=r},function(e,t,i){var r=i(6);e.exports=function(e){"use strict";var t="",i=(e=e||{}).enableSubtitle,n=e.subtitle,a=e.current,s=e.pic,o=r.$escape,l=e.screenshot,d=e.preload,u=e.url;return i=n&&"webvtt"===n.type,t+='\n\n ",i&&(t+='\n \n '),t+"\n"}},function(e,t,i){"use strict";e.exports=i(29)},function(e,t,i){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,e.exports=r},function(e,t,i){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},function(e,t,i){"use strict";var r=i(61);e.exports=function(e,t,i,n,a){var s=new Error(e);return r(s,t,i,n,a)}},function(e,t,i){"use strict";var r=i(0),n=i(62),a=i(60),s=i(59),o=i(58),l=i(9),d="undefined"!=typeof window&&window.btoa&&window.btoa.bind(window)||i(57);e.exports=function(e){return new Promise((function(t,u){var h=e.data,c=e.headers;r.isFormData(h)&&delete c["Content-Type"];var f=new XMLHttpRequest,p="onreadystatechange",m=!1;if("undefined"==typeof window||!window.XDomainRequest||"withCredentials"in f||o(e.url)||(f=new window.XDomainRequest,p="onload",m=!0,f.onprogress=function(){},f.ontimeout=function(){}),e.auth){var g=e.auth.username||"",v=e.auth.password||"";c.Authorization="Basic "+d(g+":"+v)}if(f.open(e.method.toUpperCase(),a(e.url,e.params,e.paramsSerializer),!0),f.timeout=e.timeout,f[p]=function(){if(f&&(4===f.readyState||m)&&(0!==f.status||f.responseURL&&0===f.responseURL.indexOf("file:"))){var i="getAllResponseHeaders"in f?s(f.getAllResponseHeaders()):null,r={data:e.responseType&&"text"!==e.responseType?f.response:f.responseText,status:1223===f.status?204:f.status,statusText:1223===f.status?"No Content":f.statusText,headers:i,config:e,request:f};n(t,u,r),f=null}},f.onerror=function(){u(l("Network Error",e,null,f)),f=null},f.ontimeout=function(){u(l("timeout of "+e.timeout+"ms exceeded",e,"ECONNABORTED",f)),f=null},r.isStandardBrowserEnv()){var y=i(56),_=(e.withCredentials||o(e.url))&&e.xsrfCookieName?y.read(e.xsrfCookieName):void 0;_&&(c[e.xsrfHeaderName]=_)}if("setRequestHeader"in f&&r.forEach(c,(function(e,t){void 0===h&&"content-type"===t.toLowerCase()?delete c[t]:f.setRequestHeader(t,e)})),e.withCredentials&&(f.withCredentials=!0),e.responseType)try{f.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&f.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&f.upload&&f.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function(e){f&&(f.abort(),u(e),f=null)})),void 0===h&&(h=null),f.send(h)}))}},function(e,t,i){"use strict";e.exports=function(e,t){return function(){for(var i=new Array(arguments.length),r=0;r1)for(var i=1;i=i.width?(this.player.template.menu.style.right=i.width-e+"px",this.player.template.menu.style.left="initial"):(this.player.template.menu.style.left=e+"px",this.player.template.menu.style.right="initial"),t+this.player.template.menu.offsetHeight>=i.height?(this.player.template.menu.style.bottom=i.height-t+"px",this.player.template.menu.style.top="initial"):(this.player.template.menu.style.top=t+"px",this.player.template.menu.style.bottom="initial"),this.player.template.mask.classList.add("dplayer-mask-show"),this.shown=!0,this.player.events.trigger("contextmenu_show")}},{key:"hide",value:function(){this.player.template.mask.classList.remove("dplayer-mask-show"),this.player.template.menu.classList.remove("dplayer-menu-show"),this.shown=!1,this.player.events.trigger("contextmenu_hide")}}]),e}();t.default=n},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),t.options.hotkey&&document.addEventListener("keydown",(function(e){if(t.focus){var i=document.activeElement.tagName.toUpperCase(),r=document.activeElement.getAttribute("contenteditable");if("INPUT"!==i&&"TEXTAREA"!==i&&""!==r&&"true"!==r){var n=e||window.event,a=void 0;switch(n.keyCode){case 32:n.preventDefault(),t.toggle();break;case 37:n.preventDefault(),t.seek(t.video.currentTime-5),t.controller.setAutoHide();break;case 39:n.preventDefault(),t.seek(t.video.currentTime+5),t.controller.setAutoHide();break;case 38:n.preventDefault(),a=t.volume()+.1,t.volume(a);break;case 40:n.preventDefault(),a=t.volume()-.1,t.volume(a)}}}})),document.addEventListener("keydown",(function(e){switch((e||window.event).keyCode){case 27:t.fullScreen.isFullScreen("web")&&t.fullScreen.cancel("web")}}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,n=function(){function e(e,t){for(var i=0;i'+e.player.options.highlight[i].text+"",e.player.template.playedBarWrap.insertBefore(r,e.player.template.playedBarTime)}}}))}},{key:"initThumbnails",value:function(){var e=this;this.player.options.video.thumbnails&&(this.thumbnails=new a.default({container:this.player.template.barPreview,barWidth:this.player.template.barWrap.offsetWidth,url:this.player.options.video.thumbnails,events:this.player.events}),this.player.on("loadedmetadata",(function(){e.thumbnails.resize(160,e.player.video.videoHeight/e.player.video.videoWidth*160)})))}},{key:"initPlayedBar",value:function(){var e=this,t=function(t){var i=((t.clientX||t.changedTouches[0].clientX)-n.default.getBoundingClientRectViewLeft(e.player.template.playedBarWrap))/e.player.template.playedBarWrap.clientWidth;i=Math.max(i,0),i=Math.min(i,1),e.player.bar.set("played",i,"width"),e.player.template.ptime.innerHTML=n.default.secondToTime(i*e.player.video.duration)},i=function i(r){document.removeEventListener(n.default.nameMap.dragEnd,i),document.removeEventListener(n.default.nameMap.dragMove,t);var a=((r.clientX||r.changedTouches[0].clientX)-n.default.getBoundingClientRectViewLeft(e.player.template.playedBarWrap))/e.player.template.playedBarWrap.clientWidth;a=Math.max(a,0),a=Math.min(a,1),e.player.bar.set("played",a,"width"),e.player.seek(e.player.bar.get("played")*e.player.video.duration),e.player.timer.enable("progress")};this.player.template.playedBarWrap.addEventListener(n.default.nameMap.dragStart,(function(){e.player.timer.disable("progress"),document.addEventListener(n.default.nameMap.dragMove,t),document.addEventListener(n.default.nameMap.dragEnd,i)})),this.player.template.playedBarWrap.addEventListener(n.default.nameMap.dragMove,(function(t){if(e.player.video.duration){var i=n.default.cumulativeOffset(e.player.template.playedBarWrap).left,r=(t.clientX||t.changedTouches[0].clientX)-i;if(r<0||r>e.player.template.playedBarWrap.offsetWidth)return;var a=e.player.video.duration*(r/e.player.template.playedBarWrap.offsetWidth);n.default.isMobile&&e.thumbnails&&e.thumbnails.show(),e.thumbnails&&e.thumbnails.move(r),e.player.template.playedBarTime.style.left=r-(a>=3600?25:20)+"px",e.player.template.playedBarTime.innerText=n.default.secondToTime(a),e.player.template.playedBarTime.classList.remove("hidden")}})),this.player.template.playedBarWrap.addEventListener(n.default.nameMap.dragEnd,(function(){n.default.isMobile&&e.thumbnails&&e.thumbnails.hide()})),n.default.isMobile||(this.player.template.playedBarWrap.addEventListener("mouseenter",(function(){e.player.video.duration&&(e.thumbnails&&e.thumbnails.show(),e.player.template.playedBarTime.classList.remove("hidden"))})),this.player.template.playedBarWrap.addEventListener("mouseleave",(function(){e.player.video.duration&&(e.thumbnails&&e.thumbnails.hide(),e.player.template.playedBarTime.classList.add("hidden"))})))}},{key:"initFullButton",value:function(){var e=this;this.player.template.browserFullButton.addEventListener("click",(function(){e.player.fullScreen.toggle("browser")})),this.player.template.webFullButton.addEventListener("click",(function(){e.player.fullScreen.toggle("web")}))}},{key:"initVolumeButton",value:function(){var e=this,t=function(t){var i=t||window.event,r=((i.clientX||i.changedTouches[0].clientX)-n.default.getBoundingClientRectViewLeft(e.player.template.volumeBarWrap)-5.5)/35;e.player.volume(r)},i=function i(){document.removeEventListener(n.default.nameMap.dragEnd,i),document.removeEventListener(n.default.nameMap.dragMove,t),e.player.template.volumeButton.classList.remove("dplayer-volume-active")};this.player.template.volumeBarWrapWrap.addEventListener("click",(function(t){var i=t||window.event,r=((i.clientX||i.changedTouches[0].clientX)-n.default.getBoundingClientRectViewLeft(e.player.template.volumeBarWrap)-5.5)/35;e.player.volume(r)})),this.player.template.volumeBarWrapWrap.addEventListener(n.default.nameMap.dragStart,(function(){document.addEventListener(n.default.nameMap.dragMove,t),document.addEventListener(n.default.nameMap.dragEnd,i),e.player.template.volumeButton.classList.add("dplayer-volume-active")})),this.player.template.volumeButtonIcon.addEventListener("click",(function(){e.player.video.muted?(e.player.video.muted=!1,e.player.switchVolumeIcon(),e.player.bar.set("volume",e.player.volume(),"width")):(e.player.video.muted=!0,e.player.template.volumeIcon.innerHTML=s.default.volumeOff,e.player.bar.set("volume",0,"width"))}))}},{key:"initQualityButton",value:function(){var e=this;this.player.options.video.quality&&this.player.template.qualityList.addEventListener("click",(function(t){t.target.classList.contains("dplayer-quality-item")&&e.player.switchQuality(t.target.dataset.index)}))}},{key:"initScreenshotButton",value:function(){var e=this;this.player.options.screenshot&&this.player.template.camareButton.addEventListener("click",(function(){var t=document.createElement("canvas");t.width=e.player.video.videoWidth,t.height=e.player.video.videoHeight,t.getContext("2d").drawImage(e.player.video,0,0,t.width,t.height);var i=void 0;t.toBlob((function(e){i=URL.createObjectURL(e);var t=document.createElement("a");t.href=i,t.download="DPlayer.png",t.style.display="none",document.body.appendChild(t),t.click(),document.body.removeChild(t),URL.revokeObjectURL(i)})),e.player.events.trigger("screenshot",i)}))}},{key:"initSubtitleButton",value:function(){var e=this;this.player.options.subtitle&&(this.player.events.on("subtitle_show",(function(){e.player.template.subtitleButton.dataset.balloon=e.player.tran("Hide subtitle"),e.player.template.subtitleButtonInner.style.opacity="",e.player.user.set("subtitle",1)})),this.player.events.on("subtitle_hide",(function(){e.player.template.subtitleButton.dataset.balloon=e.player.tran("Show subtitle"),e.player.template.subtitleButtonInner.style.opacity="0.4",e.player.user.set("subtitle",0)})),this.player.template.subtitleButton.addEventListener("click",(function(){e.player.subtitle.toggle()})))}},{key:"setAutoHide",value:function(){var e=this;this.show(),clearTimeout(this.autoHideTimer),this.autoHideTimer=setTimeout((function(){!e.player.video.played.length||e.player.paused||e.disableAutoHide||e.hide()}),3e3)}},{key:"show",value:function(){this.player.container.classList.remove("dplayer-hide-controller")}},{key:"hide",value:function(){this.player.container.classList.add("dplayer-hide-controller"),this.player.setting.hide(),this.player.comment&&this.player.comment.hide()}},{key:"isShow",value:function(){return!this.player.container.classList.contains("dplayer-hide-controller")}},{key:"toggle",value:function(){this.isShow()?this.hide():this.show()}},{key:"destroy",value:function(){clearTimeout(this.autoHideTimer)}}]),e}();t.default=l},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var i=0;it&&!e.player.video.paused&&(e.player.container.classList.remove("dplayer-loading"),r=!1),t=i)}),100)}},{key:"initfpsChecker",value:function(){var e=this;window.requestAnimationFrame((function(){if(e.enablefpsChecker)if(e.initfpsChecker(),e.fpsStart){e.fpsIndex++;var t=new Date;t-e.fpsStart>1e3&&(e.player.infoPanel.fps(e.fpsIndex/(t-e.fpsStart)*1e3),e.fpsStart=new Date,e.fpsIndex=0)}else e.fpsStart=new Date,e.fpsIndex=0;else e.fpsStart=0,e.fpsIndex=0}))}},{key:"initinfoChecker",value:function(){var e=this;this.infoChecker=setInterval((function(){e.enableinfoChecker&&e.player.infoPanel.update()}),1e3)}},{key:"enable",value:function(e){this["enable"+e+"Checker"]=!0,"fps"===e&&this.initfpsChecker()}},{key:"disable",value:function(e){this["enable"+e+"Checker"]=!1}},{key:"destroy",value:function(){var e=this;this.types.map((function(t){return e["enable"+t+"Checker"]=!1,e[t+"Checker"]&&clearInterval(e[t+"Checker"]),t}))}}]),e}();t.default=n},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:"browser"){case"browser":return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement;case"web":return this.player.container.classList.contains("dplayer-fulled")}}},{key:"request",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"browser",t="browser"===e?"web":"browser",i=this.isFullScreen(t);switch(i||(this.lastScrollPosition=s.default.getScrollPosition()),e){case"browser":this.player.container.requestFullscreen?this.player.container.requestFullscreen():this.player.container.mozRequestFullScreen?this.player.container.mozRequestFullScreen():this.player.container.webkitRequestFullscreen?this.player.container.webkitRequestFullscreen():this.player.video.webkitEnterFullscreen?this.player.video.webkitEnterFullscreen():this.player.video.webkitEnterFullScreen?this.player.video.webkitEnterFullScreen():this.player.container.msRequestFullscreen&&this.player.container.msRequestFullscreen();break;case"web":this.player.container.classList.add("dplayer-fulled"),document.body.classList.add("dplayer-web-fullscreen-fix"),this.player.events.trigger("webfullscreen")}i&&this.cancel(t)}},{key:"cancel",value:function(){switch(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"browser"){case"browser":document.cancelFullScreen?document.cancelFullScreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitCancelFullScreen?document.webkitCancelFullScreen():document.webkitCancelFullscreen?document.webkitCancelFullscreen():document.msCancelFullScreen?document.msCancelFullScreen():document.msExitFullscreen&&document.msExitFullscreen();break;case"web":this.player.container.classList.remove("dplayer-fulled"),document.body.classList.remove("dplayer-web-fullscreen-fix"),this.player.events.trigger("webfullscreen_cancel")}}},{key:"toggle",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"browser";this.isFullScreen(e)?this.cancel(e):this.request(e)}}]),e}();t.default=o},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var i=0;iparseFloat(t.time);)i.push(t),t=this.dan[++this.danIndex];this.draw(i)}window.requestAnimationFrame((function(){e.frame()}))}},{key:"opacity",value:function(e){if(void 0!==e){for(var t=this.container.getElementsByClassName("dplayer-danmaku-item"),i=0;i'+e[n].text+"":a.innerHTML=e[n].text,a.style.opacity=t._opacity,a.style.color=o.default.number2Color(e[n].color),a.addEventListener("animationend",(function(){t.container.removeChild(a)}));var s=t._measure(e[n].text),l=void 0;switch(e[n].type){case"right":(l=u(a,e[n].type,s))>=0&&(a.style.width=s+1+"px",a.style.top=i*l+"px",a.style.transform="translateX(-"+r+"px)");break;case"top":(l=u(a,e[n].type))>=0&&(a.style.top=i*l+"px");break;case"bottom":(l=u(a,e[n].type))>=0&&(a.style.bottom=i*l+"px");break;default:console.error("Can't handled danmaku type: "+e[n].type)}l>=0&&(a.classList.add("dplayer-danmaku-move"),h.appendChild(a))},f=0;f=this.options.time()){this.danIndex=e;break}this.danIndex=this.dan.length}}},{key:"clear",value:function(){this.danTunnel={right:{},top:{},bottom:{}},this.danIndex=0,this.options.container.innerHTML="",this.events&&this.events.trigger("danmaku_clear")}},{key:"htmlEncode",value:function(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")}},{key:"resize",value:function(){for(var e=this.container.offsetWidth,t=this.container.getElementsByClassName("dplayer-danmaku-item"),i=0;i]/;n.$escape=function(e){return function(e){var t=""+e,i=a.exec(t);if(!i)return e;var r="",n=void 0,s=void 0,o=void 0;for(n=i.index,s=0;n\n \n '),n+='\n
\n
\n
\n
\n
\n \n ',s.danmaku&&(n+='\n ',n+=o(l("Danmaku is loading")),n+="\n "),n+='\n ',n+=d.loading,n+='\n
\n\n
\n
\n
\n \n
\n
\n
',n+=o(l("Set danmaku color")),n+='
\n \n \n \n \n \n \n
\n
\n
',n+=o(l("Set danmaku type")),n+='
\n \n \n \n
\n
\n \n ',n+=d.send,n+='\n \n
\n
\n \n
\n \n
\n
\n
\n \n
\n
\n
\n
\n \n 0:00 /\n 0:00\n \n ',s.live&&(n+='\n ',n+=o(l("Live")),n+="\n "),n+='\n
\n
\n ',s.video.quality&&(n+='\n
\n \n
\n
\n ',h(s.video.quality,(function(e,t){n+='\n
',n+=o(e.name),n+="
\n "})),n+="\n
\n
\n
\n "),n+="\n ",s.screenshot&&(n+='\n
\n
\n "),n+='\n
\n \n
\n ",s.subtitle&&(n+='\n
\n \n
\n "),n+='\n
\n \n
\n
\n
\n ',n+=o(l("Speed")),n+='\n
',n+=d.right,n+='
\n
\n
\n ',n+=o(l("Loop")),n+='\n
\n \n \n
\n
\n
\n ',n+=o(l("Show danmaku")),n+='\n
\n \n \n
\n
\n
\n ',n+=o(l("Unlimited danmaku")),n+='\n
\n \n \n
\n
\n
\n ',n+=o(l("Opacity for danmaku")),n+='\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n 0.5\n
\n
\n 0.75\n
\n
\n ',n+=o(l("Normal")),n+='\n
\n
\n 1.25\n
\n
\n 1.5\n
\n
\n 2\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
[x]
\n
\n Player version\n \n
\n
\n Player FPS\n \n
\n
\n Video type\n \n
\n
\n Video url\n \n
\n
\n Video resolution\n \n
\n
\n Video duration\n \n
\n ',s.danmaku&&(n+='\n
\n Danamku id\n \n
\n
\n Danamku api\n \n
\n
\n Danamku amount\n \n
\n '),n+='\n
\n
\n ',h(s.contextmenu,(function(e,t){n+='\n
\n ',n+=o(l(e.text)),n+="\n
\n "})),n+='\n
\n
'}},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var i=0;i>8-o%1*8)){if((i=a.charCodeAt(o+=.75))>255)throw new n;t=t<<8|i}return s}},function(e,t,i){"use strict";var r=i(0);e.exports=r.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),i=document.createElement("a");function n(e){var r=e;return t&&(i.setAttribute("href",r),r=i.href),i.setAttribute("href",r),{href:i.href,protocol:i.protocol?i.protocol.replace(/:$/,""):"",host:i.host,search:i.search?i.search.replace(/^\?/,""):"",hash:i.hash?i.hash.replace(/^#/,""):"",hostname:i.hostname,port:i.port,pathname:"/"===i.pathname.charAt(0)?i.pathname:"/"+i.pathname}}return e=n(window.location.href),function(t){var i=r.isString(t)?n(t):t;return i.protocol===e.protocol&&i.host===e.host}}():function(){return!0}},function(e,t,i){"use strict";var r=i(0),n=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,i,a,s={};return e?(r.forEach(e.split("\n"),(function(e){if(a=e.indexOf(":"),t=r.trim(e.substr(0,a)).toLowerCase(),i=r.trim(e.substr(a+1)),t){if(s[t]&&n.indexOf(t)>=0)return;s[t]="set-cookie"===t?(s[t]?s[t]:[]).concat([i]):s[t]?s[t]+", "+i:i}})),s):s}},function(e,t,i){"use strict";var r=i(0);function n(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,i){if(!t)return e;var a;if(i)a=i(t);else if(r.isURLSearchParams(t))a=t.toString();else{var s=[];r.forEach(t,(function(e,t){null!==e&&void 0!==e&&(r.isArray(e)?t+="[]":e=[e],r.forEach(e,(function(e){r.isDate(e)?e=e.toISOString():r.isObject(e)&&(e=JSON.stringify(e)),s.push(n(t)+"="+n(e))})))})),a=s.join("&")}return a&&(e+=(-1===e.indexOf("?")?"?":"&")+a),e}},function(e,t,i){"use strict";e.exports=function(e,t,i,r,n){return e.config=t,i&&(e.code=i),e.request=r,e.response=n,e}},function(e,t,i){"use strict";var r=i(9);e.exports=function(e,t,i){var n=i.config.validateStatus;i.status&&n&&!n(i.status)?t(r("Request failed with status code "+i.status,i.config,null,i.request,i)):e(i)}},function(e,t,i){"use strict";var r=i(0);e.exports=function(e,t){r.forEach(e,(function(i,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=i,delete e[r])}))}},function(e,t,i){"use strict";var r=i(3),n=i(0),a=i(55),s=i(54);function o(e){this.defaults=e,this.interceptors={request:new a,response:new a}}o.prototype.request=function(e){"string"==typeof e&&(e=n.merge({url:arguments[0]},arguments[1])),(e=n.merge(r,{method:"get"},this.defaults,e)).method=e.method.toLowerCase();var t=[s,void 0],i=Promise.resolve(e);for(this.interceptors.request.forEach((function(e){t.unshift(e.fulfilled,e.rejected)})),this.interceptors.response.forEach((function(e){t.push(e.fulfilled,e.rejected)}));t.length;)i=i.then(t.shift(),t.shift());return i},n.forEach(["delete","get","head","options"],(function(e){o.prototype[e]=function(t,i){return this.request(n.merge(i||{},{method:e,url:t}))}})),n.forEach(["post","put","patch"],(function(e){o.prototype[e]=function(t,i,r){return this.request(n.merge(r||{},{method:e,url:t,data:i}))}})),e.exports=o},function(e,t,i){"use strict";function r(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}e.exports=function(e){return null!=e&&(r(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&r(e.slice(0,0))}(e)||!!e._isBuffer)}},function(e,t,i){"use strict";var r=i(0),n=i(11),a=i(64),s=i(3);function o(e){var t=new a(e),i=n(a.prototype.request,t);return r.extend(i,a.prototype,t),r.extend(i,t),i}var l=o(s);l.Axios=a,l.create=function(e){return o(r.merge(s,e))},l.Cancel=i(7),l.CancelToken=i(50),l.isCancel=i(8),l.all=function(e){return Promise.all(e)},l.spread=i(49),e.exports=l,e.exports.default=l},function(e,t,i){"use strict";e.exports=i(66)},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,n=i(67),a=(r=n)&&r.__esModule?r:{default:r};t.default={send:function(e){a.default.post(e.url,e.data).then((function(t){var i=t.data;i&&0===i.code?e.success&&e.success(i):e.error&&e.error(i&&i.msg)})).catch((function(t){console.error(t),e.error&&e.error()}))},read:function(e){a.default.get(e.url).then((function(t){var i=t.data;i&&0===i.code?e.success&&e.success(i.data.map((function(e){return{time:e[0],type:e[1],color:e[2],author:e[3],text:e[4]}}))):e.error&&e.error(i&&i.msg)})).catch((function(t){console.error(t),e.error&&e.error()}))}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=i(68),s=(r=a)&&r.__esModule?r:{default:r};t.default=function(e){var t={container:e.element||document.getElementsByClassName("dplayer")[0],live:!1,autoplay:!1,theme:"#b7daff",loop:!1,lang:(navigator.language||navigator.browserLanguage).toLowerCase(),screenshot:!1,hotkey:!0,preload:"metadata",volume:.7,apiBackend:s.default,video:{},contextmenu:[],mutex:!0};for(var i in t)t.hasOwnProperty(i)&&!e.hasOwnProperty(i)&&(e[i]=t[i]);return e.video&&!e.video.type&&(e.video.type="auto"),"object"===n(e.danmaku)&&e.danmaku&&!e.danmaku.user&&(e.danmaku.user="DIYgod"),e.subtitle&&(!e.subtitle.type&&(e.subtitle.type="webvtt"),!e.subtitle.fontSize&&(e.subtitle.fontSize="20px"),!e.subtitle.bottom&&(e.subtitle.bottom="40px"),!e.subtitle.color&&(e.subtitle.color="#fff")),e.video.quality&&(e.video.url=e.video.quality[e.video.defaultQuality].url),e.lang&&(e.lang=e.lang.toLowerCase()),e.contextmenu=e.contextmenu.concat([{text:"Video info",click:function(e){e.infoPanel.triggle()}},{text:"About author",link:"https://diygod.me"},{text:"DPlayer v1.25.0",link:"https://github.com/MoePlayer/DPlayer"}]),e}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=this.constructor;return this.then((function(i){return t.resolve(e()).then((function(){return i}))}),(function(i){return t.resolve(e()).then((function(){return t.reject(i)}))}))}},function(e,t,i){"use strict";(function(e,t){!function(e,i){if(!e.setImmediate){var r,n,a,s,o,l=1,d={},u=!1,h=e.document,c=Object.getPrototypeOf&&Object.getPrototypeOf(e);c=c&&c.setTimeout?c:e,"[object process]"==={}.toString.call(e.process)?r=function(e){t.nextTick((function(){p(e)}))}:function(){if(e.postMessage&&!e.importScripts){var t=!0,i=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=i,t}}()?(s="setImmediate$"+Math.random()+"$",o=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(s)&&p(+t.data.slice(s.length))},e.addEventListener?e.addEventListener("message",o,!1):e.attachEvent("onmessage",o),r=function(t){e.postMessage(s+t,"*")}):e.MessageChannel?((a=new MessageChannel).port1.onmessage=function(e){p(e.data)},r=function(e){a.port2.postMessage(e)}):h&&"onreadystatechange"in h.createElement("script")?(n=h.documentElement,r=function(e){var t=h.createElement("script");t.onreadystatechange=function(){p(e),t.onreadystatechange=null,n.removeChild(t),t=null},n.appendChild(t)}):r=function(e){setTimeout(p,0,e)},c.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),i=0;i=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},i(71),t.setImmediate=setImmediate,t.clearImmediate=clearImmediate},function(e,t,i){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});var r,n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=i(70),s=(r=a)&&r.__esModule?r:{default:r},o=setTimeout;function l(){}function d(e){if(!(this instanceof d))throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],p(e,this)}function u(e,t){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,d._immediateFn((function(){var i=1===e._state?t.onFulfilled:t.onRejected;if(null!==i){var r;try{r=i(e._value)}catch(e){return void c(t.promise,e)}h(t.promise,r)}else(1===e._state?h:c)(t.promise,e._value)}))):e._deferreds.push(t)}function h(e,t){try{if(t===e)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"===(void 0===t?"undefined":n(t))||"function"==typeof t)){var i=t.then;if(t instanceof d)return e._state=3,e._value=t,void f(e);if("function"==typeof i)return void p((r=i,a=t,function(){r.apply(a,arguments)}),e)}e._state=1,e._value=t,f(e)}catch(t){c(e,t)}var r,a}function c(e,t){e._state=2,e._value=t,f(e)}function f(e){2===e._state&&0===e._deferreds.length&&d._immediateFn((function(){e._handled||d._unhandledRejectionFn(e._value)}));for(var t=0,i=e._deferreds.length;te&&this.notice(this.tran("REW")+" "+(this.video.currentTime-e).toFixed(0)+" "+this.tran("s")),this.video.currentTime=e,this.danmaku&&this.danmaku.seek(),this.bar.set("played",e/this.video.duration,"width"),this.template.ptime.innerHTML=a.default.secondToTime(e)}},{key:"play",value:function(){var e=this;if(this.paused=!1,this.video.paused&&this.bezel.switch(d.default.play),this.template.playButton.innerHTML=d.default.pause,n.default.resolve(this.video.play()).catch((function(){e.pause()})).then((function(){})),this.timer.enable("loading"),this.container.classList.remove("dplayer-paused"),this.container.classList.add("dplayer-playing"),this.danmaku&&this.danmaku.play(),this.options.mutex)for(var t=0;t=.95?this.template.volumeIcon.innerHTML=d.default.volumeUp:this.volume()>0?this.template.volumeIcon.innerHTML=d.default.volumeDown:this.template.volumeIcon.innerHTML=d.default.volumeOff}},{key:"volume",value:function(e,t,i){if(e=parseFloat(e),!isNaN(e)){e=Math.max(e,0),e=Math.min(e,1),this.bar.set("volume",e,"width");var r=(100*e).toFixed(0)+"%";this.template.volumeBarWrapWrap.dataset.balloon=r,t||this.user.set("volume",e),i||this.notice(this.tran("Volume")+" "+(100*e).toFixed(0)+"%"),this.video.volume=e,this.video.muted&&(this.video.muted=!1),this.switchVolumeIcon()}return this.video.volume}},{key:"toggle",value:function(){this.video.paused?this.play():this.pause()}},{key:"on",value:function(e,t){this.events.on(e,t)}},{key:"switchVideo",value:function(e,t){this.pause(),this.video.poster=e.pic?e.pic:"",this.video.src=e.url,this.initMSE(this.video,e.type||"auto"),t&&(this.template.danmakuLoading.style.display="block",this.bar.set("played",0,"width"),this.bar.set("loaded",0,"width"),this.template.ptime.innerHTML="00:00",this.template.danmaku.innerHTML="",this.danmaku&&this.danmaku.reload({id:t.id,address:t.api,token:t.token,maximum:t.maximum,addition:t.addition,user:t.user}))}},{key:"initMSE",value:function(e,t){var i=this;if(this.type=t,this.options.video.customType&&this.options.video.customType[t])"[object Function]"===Object.prototype.toString.call(this.options.video.customType[t])?this.options.video.customType[t](this.video,this):console.error("Illegal customType: "+t);else switch("auto"===this.type&&(/m3u8(#|\?|$)/i.exec(e.src)?this.type="hls":/.flv(#|\?|$)/i.exec(e.src)?this.type="flv":/.mpd(#|\?|$)/i.exec(e.src)?this.type="dash":this.type="normal"),"hls"===this.type&&(e.canPlayType("application/x-mpegURL")||e.canPlayType("application/vnd.apple.mpegURL"))&&(this.type="normal"),this.type){case"hls":if(Hls)if(Hls.isSupported()){var r=new Hls;r.loadSource(e.src),r.attachMedia(e)}else this.notice("Error: Hls is not supported.");else this.notice("Error: Can't find Hls.");break;case"flv":if(flvjs&&flvjs.isSupported())if(flvjs.isSupported()){var n=flvjs.createPlayer({type:"flv",url:e.src});n.attachMediaElement(e),n.load()}else this.notice("Error: flvjs is not supported.");else this.notice("Error: Can't find flvjs.");break;case"dash":dashjs?dashjs.MediaPlayer().create().initialize(e,e.src,!1):this.notice("Error: Can't find dashjs.");break;case"webtorrent":if(WebTorrent)if(WebTorrent.WEBRTC_SUPPORT){this.container.classList.add("dplayer-loading");var a=new WebTorrent,s=e.src;a.add(s,(function(e){e.files.find((function(e){return e.name.endsWith(".mp4")})).renderTo(i.video,{autoplay:i.options.autoplay},(function(){i.container.classList.remove("dplayer-loading")}))}))}else this.notice("Error: Webtorrent is not supported.");else this.notice("Error: Can't find Webtorrent.")}}},{key:"initVideo",value:function(e,t){var i=this;this.initMSE(e,t),this.on("durationchange",(function(){1!==e.duration&&e.duration!==1/0&&(i.template.dtime.innerHTML=a.default.secondToTime(e.duration))})),this.on("progress",(function(){var t=e.buffered.length?e.buffered.end(e.buffered.length-1)/e.duration:0;i.bar.set("loaded",t,"width")})),this.on("error",(function(){i.video.error&&i.tran&&i.notice&&(i.type,i.notice(i.tran("Video load failed"),-1))})),this.on("ended",(function(){i.bar.set("played",1,"width"),i.setting.loop?(i.seek(0),i.play()):i.pause(),i.danmaku&&(i.danmaku.danIndex=0)})),this.on("play",(function(){i.paused&&i.play()})),this.on("pause",(function(){i.paused||i.pause()})),this.on("timeupdate",(function(){i.bar.set("played",i.video.currentTime/i.video.duration,"width");var e=a.default.secondToTime(i.video.currentTime);i.template.ptime.innerHTML!==e&&(i.template.ptime.innerHTML=e)}));for(var r=function(t){e.addEventListener(i.events.videoEvents[t],(function(){i.events.trigger(i.events.videoEvents[t])}))},n=0;n1&&void 0!==arguments[1]?arguments[1]:2e3,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.8;this.template.notice.innerHTML=e,this.template.notice.style.opacity=r,this.noticeTime&&clearTimeout(this.noticeTime),this.events.trigger("notice_show",e),i>0&&(this.noticeTime=setTimeout((function(){t.template.notice.style.opacity=0,t.events.trigger("notice_hide")}),i))}},{key:"resize",value:function(){this.danmaku&&this.danmaku.resize(),this.events.trigger("resize")}},{key:"speed",value:function(e){this.video.playbackRate=e}},{key:"destroy",value:function(){R.splice(R.indexOf(this),1),this.pause(),this.controller.destroy(),this.timer.destroy(),this.video.src="",this.container.innerHTML="",this.events.trigger("destroy")}}],[{key:"version",get:function(){return"1.25.0"}}]),e}();t.default=L},,,function(e,t,i){},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),i(77);var r,n=i(74),a=(r=n)&&r.__esModule?r:{default:r};console.log("\n %c DPlayer v1.25.0 fdcf45b %c http://dplayer.js.org \n\n","color: #fadfa3; background: #030307; padding:5px 0;","background: #fadfa3; padding:5px 0;"),t.default=a.default}]).default}))},faa1:function(e,t,i){"use strict";var r,n="object"===typeof Reflect?Reflect:null,a=n&&"function"===typeof n.apply?n.apply:function(e,t,i){return Function.prototype.apply.call(e,t,i)};function s(e){console&&console.warn&&console.warn(e)}r=n&&"function"===typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var o=Number.isNaN||function(e){return e!==e};function l(){l.init.call(this)}e.exports=l,l.EventEmitter=l,l.prototype._events=void 0,l.prototype._eventsCount=0,l.prototype._maxListeners=void 0;var d=10;function u(e){return void 0===e._maxListeners?l.defaultMaxListeners:e._maxListeners}function h(e,t,i,r){var n,a,o;if("function"!==typeof i)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof i);if(a=e._events,void 0===a?(a=e._events=Object.create(null),e._eventsCount=0):(void 0!==a.newListener&&(e.emit("newListener",t,i.listener?i.listener:i),a=e._events),o=a[t]),void 0===o)o=a[t]=i,++e._eventsCount;else if("function"===typeof o?o=a[t]=r?[i,o]:[o,i]:r?o.unshift(i):o.push(i),n=u(e),n>0&&o.length>n&&!o.warned){o.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=o.length,s(l)}return e}function c(){for(var e=[],t=0;t0&&(s=t[0]),s instanceof Error)throw s;var o=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw o.context=s,o}var l=n[e];if(void 0===l)return!1;if("function"===typeof l)a(l,this,t);else{var d=l.length,u=g(l,d);for(i=0;i=0;a--)if(i[a]===t||i[a].listener===t){s=i[a].listener,n=a;break}if(n<0)return this;0===n?i.shift():v(i,n),1===i.length&&(r[e]=i[0]),void 0!==r.removeListener&&this.emit("removeListener",e,s||t)}return this},l.prototype.off=l.prototype.removeListener,l.prototype.removeAllListeners=function(e){var t,i,r;if(i=this._events,void 0===i)return this;if(void 0===i.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==i[e]&&(0===--this._eventsCount?this._events=Object.create(null):delete i[e]),this;if(0===arguments.length){var n,a=Object.keys(i);for(r=0;r=0;r--)this.removeListener(e,t[r]);return this},l.prototype.listeners=function(e){return p(this,e,!0)},l.prototype.rawListeners=function(e){return p(this,e,!1)},l.listenerCount=function(e,t){return"function"===typeof e.listenerCount?e.listenerCount(t):m.call(e,t)},l.prototype.listenerCount=m,l.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}}}]); \ No newline at end of file diff --git a/src/main/resources/static/js/chunk-09797b6e.7b1e5e16.js b/src/main/resources/static/js/chunk-09797b6e.7b1e5e16.js deleted file mode 100644 index be8f7ea..0000000 --- a/src/main/resources/static/js/chunk-09797b6e.7b1e5e16.js +++ /dev/null @@ -1,92 +0,0 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-09797b6e"],{1173:function(e,t){e.exports=function(e,t,i,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(i+": incorrect invocation!");return e}},1368:function(e,t,i){(function(t,i){ -/*! - * @overview es6-promise - a tiny implementation of Promises/A+. - * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) - * @license Licensed under MIT license - * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE - * @version v4.2.8+1e68dce6 - */ -(function(t,i){e.exports=i()})(0,(function(){"use strict";function e(e){var t=typeof e;return null!==e&&("object"===t||"function"===t)}function r(e){return"function"===typeof e}var n=void 0;n=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)};var a=n,s=0,o=void 0,l=void 0,u=function(e,t){S[s]=e,S[s+1]=t,s+=2,2===s&&(l?l(T):A())};function d(e){l=e}function c(e){u=e}var h="undefined"!==typeof window?window:void 0,f=h||{},p=f.MutationObserver||f.WebKitMutationObserver,m="undefined"===typeof self&&"undefined"!==typeof t&&"[object process]"==={}.toString.call(t),g="undefined"!==typeof Uint8ClampedArray&&"undefined"!==typeof importScripts&&"undefined"!==typeof MessageChannel;function v(){return function(){return t.nextTick(T)}}function y(){return"undefined"!==typeof o?function(){o(T)}:b()}function _(){var e=0,t=new p(T),i=document.createTextNode("");return t.observe(i,{characterData:!0}),function(){i.data=e=++e%2}}function E(){var e=new MessageChannel;return e.port1.onmessage=T,function(){return e.port2.postMessage(0)}}function b(){var e=setTimeout;return function(){return e(T,1)}}var S=new Array(1e3);function T(){for(var e=0;ea)s(i[a++]);e._c=[],e._n=!1,t&&!e._h&&P(e)}))}},P=function(e){v.call(l,(function(){var t,i,r,n=e._v,a=F(e);if(a&&(t=E((function(){D?A.emit("unhandledRejection",n,e):(i=l.onunhandledrejection)?i({promise:e,reason:n}):(r=l.console)&&r.error&&r.error("Unhandled promise rejection",n)})),e._h=D||F(e)?2:1),e._a=void 0,a&&t.e)throw t.v}))},F=function(e){return 1!==e._h&&0===(e._a||e._c).length},B=function(e){v.call(l,(function(){var t;D?A.emit("rejectionHandled",e):(t=l.onrejectionhandled)&&t({promise:e,reason:e._v})}))},N=function(e){var t=this;t._d||(t._d=!0,t=t._w||t,t._v=e,t._s=2,t._a||(t._a=t._c.slice()),M(t,!0))},U=function(e){var t,i=this;if(!i._d){i._d=!0,i=i._w||i;try{if(i===e)throw w("Promise can't be resolved itself");(t=x(e))?y((function(){var r={_w:i,_d:!1};try{t.call(e,u(U,r,1),u(N,r,1))}catch(n){N.call(r,n)}})):(i._v=e,i._s=1,M(i,!1))}catch(r){N.call({_w:i,_d:!1},r)}}};O||(L=function(e){p(this,L,T,"_h"),f(e),r.call(this);try{e(u(U,this,1),u(N,this,1))}catch(t){N.call(this,t)}},r=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},r.prototype=i("5c95")(L.prototype,{then:function(e,t){var i=C(g(this,L));return i.ok="function"!=typeof e||e,i.fail="function"==typeof t&&t,i.domain=D?A.domain:void 0,this._c.push(i),this._a&&this._a.push(i),this._s&&M(this,!1),i.promise},catch:function(e){return this.then(void 0,e)}}),a=function(){var e=new r;this.promise=e,this.resolve=u(U,e,1),this.reject=u(N,e,1)},_.f=C=function(e){return e===L||e===s?new a(e):n(e)}),c(c.G+c.W+c.F*!O,{Promise:L}),i("45f2")(L,T),i("4c95")(T),s=i("584a")[T],c(c.S+c.F*!O,T,{reject:function(e){var t=C(this),i=t.reject;return i(e),t.promise}}),c(c.S+c.F*(o||!O),T,{resolve:function(e){return S(o&&this===s?L:this,e)}}),c(c.S+c.F*!(O&&i("4ee1")((function(e){L.all(e)["catch"](I)}))),T,{all:function(e){var t=this,i=C(t),r=i.resolve,n=i.reject,a=E((function(){var i=[],a=0,s=1;m(e,!1,(function(e){var o=a++,l=!1;i.push(void 0),s++,t.resolve(e).then((function(e){l||(l=!0,i[o]=e,--s||r(i))}),n)})),--s||r(i)}));return a.e&&n(a.v),i.promise},race:function(e){var t=this,i=C(t),r=i.reject,n=E((function(){m(e,!1,(function(e){t.resolve(e).then(i.resolve,r)}))}));return n.e&&r(n.v),i.promise}})},3024:function(e,t){e.exports=function(e,t,i){var r=void 0===i;switch(t.length){case 0:return r?e():e.call(i);case 1:return r?e(t[0]):e.call(i,t[0]);case 2:return r?e(t[0],t[1]):e.call(i,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(i,t[0],t[1],t[2]);case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(i,t[0],t[1],t[2],t[3])}return e.apply(i,t)}},3702:function(e,t,i){var r=i("481b"),n=i("5168")("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||a[n]===e)}},"3c11":function(e,t,i){"use strict";var r=i("63b6"),n=i("584a"),a=i("e53d"),s=i("f201"),o=i("cd78");r(r.P+r.R,"Promise",{finally:function(e){var t=s(this,n.Promise||a.Promise),i="function"==typeof e;return this.then(i?function(i){return o(t,e()).then((function(){return i}))}:e,i?function(i){return o(t,e()).then((function(){throw i}))}:e)}})},"40c3":function(e,t,i){var r=i("6b4c"),n=i("5168")("toStringTag"),a="Arguments"==r(function(){return arguments}()),s=function(e,t){try{return e[t]}catch(i){}};e.exports=function(e){var t,i,o;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(i=s(t=Object(e),n))?i:a?r(t):"Object"==(o=r(t))&&"function"==typeof t.callee?"Arguments":o}},4178:function(e,t,i){var r,n,a,s=i("d864"),o=i("3024"),l=i("32fc"),u=i("1ec9"),d=i("e53d"),c=d.process,h=d.setImmediate,f=d.clearImmediate,p=d.MessageChannel,m=d.Dispatch,g=0,v={},y="onreadystatechange",_=function(){var e=+this;if(v.hasOwnProperty(e)){var t=v[e];delete v[e],t()}},E=function(e){_.call(e.data)};h&&f||(h=function(e){var t=[],i=1;while(arguments.length>i)t.push(arguments[i++]);return v[++g]=function(){o("function"==typeof e?e:Function(e),t)},r(g),g},f=function(e){delete v[e]},"process"==i("6b4c")(c)?r=function(e){c.nextTick(s(_,e,1))}:m&&m.now?r=function(e){m.now(s(_,e,1))}:p?(n=new p,a=n.port2,n.port1.onmessage=E,r=s(a.postMessage,a,1)):d.addEventListener&&"function"==typeof postMessage&&!d.importScripts?(r=function(e){d.postMessage(e+"","*")},d.addEventListener("message",E,!1)):r=y in u("script")?function(e){l.appendChild(u("script"))[y]=function(){l.removeChild(this),_.call(e)}}:function(e){setTimeout(s(_,e,1),0)}),e.exports={set:h,clear:f}},"43fc":function(e,t,i){"use strict";var r=i("63b6"),n=i("656e"),a=i("4439");r(r.S,"Promise",{try:function(e){var t=n.f(this),i=a(e);return(i.e?t.reject:t.resolve)(i.v),t.promise}})},4439:function(e,t){e.exports=function(e){try{return{e:!1,v:e()}}catch(t){return{e:!0,v:t}}}},"49f6":function(e,t,i){},"4c95":function(e,t,i){"use strict";var r=i("e53d"),n=i("584a"),a=i("d9f6"),s=i("8e60"),o=i("5168")("species");e.exports=function(e){var t="function"==typeof n[e]?n[e]:r[e];s&&t&&!t[o]&&a.f(t,o,{configurable:!0,get:function(){return this}})}},"4ee1":function(e,t,i){var r=i("5168")("iterator"),n=!1;try{var a=[7][r]();a["return"]=function(){n=!0},Array.from(a,(function(){throw 2}))}catch(s){}e.exports=function(e,t){if(!t&&!n)return!1;var i=!1;try{var a=[7],o=a[r]();o.next=function(){return{done:i=!0}},a[r]=function(){return o},e(a)}catch(s){}return i}},5912:function(e,t,i){"use strict";i.r(t);var r=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{attrs:{id:"dplayer"}})},n=[],a=(i("7f7f"),i("7514"),i("96cf"),i("795b")),s=i.n(a);function o(e,t,i,r,n,a,o){try{var l=e[a](o),u=l.value}catch(d){return void i(d)}l.done?t(u):s.a.resolve(u).then(r,n)}function l(e){return function(){var t=this,i=arguments;return new s.a((function(r,n){var a=e.apply(t,i);function s(e){o(a,r,n,s,l,"next",e)}function l(e){o(a,r,n,s,l,"throw",e)}s(void 0)}))}}i("eccb");class u{static install(){Object.setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},Object.assign=Object.assign||function(e){if(void 0===e||null===e)throw new TypeError("Cannot convert undefined or null to object");let t=Object(e);for(let i=1;i ${t}`;f.ENABLE_CALLBACK&&f.emitter.emit("log","error",i),f.ENABLE_ERROR&&(console.error?console.error(i):console.warn?console.warn(i):console.log(i))}static i(e,t){e&&!f.FORCE_GLOBAL_TAG||(e=f.GLOBAL_TAG);let i=`[${e}] > ${t}`;f.ENABLE_CALLBACK&&f.emitter.emit("log","info",i),f.ENABLE_INFO&&(console.info?console.info(i):console.log(i))}static w(e,t){e&&!f.FORCE_GLOBAL_TAG||(e=f.GLOBAL_TAG);let i=`[${e}] > ${t}`;f.ENABLE_CALLBACK&&f.emitter.emit("log","warn",i),f.ENABLE_WARN&&(console.warn?console.warn(i):console.log(i))}static d(e,t){e&&!f.FORCE_GLOBAL_TAG||(e=f.GLOBAL_TAG);let i=`[${e}] > ${t}`;f.ENABLE_CALLBACK&&f.emitter.emit("log","debug",i),f.ENABLE_DEBUG&&(console.debug?console.debug(i):console.log(i))}static v(e,t){e&&!f.FORCE_GLOBAL_TAG||(e=f.GLOBAL_TAG);let i=`[${e}] > ${t}`;f.ENABLE_CALLBACK&&f.emitter.emit("log","verbose",i),f.ENABLE_VERBOSE&&console.log(i)}}f.GLOBAL_TAG="flv.js",f.FORCE_GLOBAL_TAG=!1,f.ENABLE_ERROR=!0,f.ENABLE_INFO=!0,f.ENABLE_WARN=!0,f.ENABLE_DEBUG=!0,f.ENABLE_VERBOSE=!0,f.ENABLE_CALLBACK=!1,f.emitter=new h.a;var p=f;class m{constructor(){this._firstCheckpoint=0,this._lastCheckpoint=0,this._intervalBytes=0,this._totalBytes=0,this._lastSecondBytes=0,self.performance&&self.performance.now?this._now=self.performance.now.bind(self.performance):this._now=Date.now}reset(){this._firstCheckpoint=this._lastCheckpoint=0,this._totalBytes=this._intervalBytes=0,this._lastSecondBytes=0}addBytes(e){0===this._firstCheckpoint?(this._firstCheckpoint=this._now(),this._lastCheckpoint=this._firstCheckpoint,this._intervalBytes+=e,this._totalBytes+=e):this._now()-this._lastCheckpoint<1e3?(this._intervalBytes+=e,this._totalBytes+=e):(this._lastSecondBytes=this._intervalBytes,this._intervalBytes=e,this._totalBytes+=e,this._lastCheckpoint=this._now())}get currentKBps(){this.addBytes(0);let e=(this._now()-this._lastCheckpoint)/1e3;return 0==e&&(e=1),this._intervalBytes/e/1024}get lastSecondKBps(){return this.addBytes(0),0!==this._lastSecondBytes?this._lastSecondBytes/1024:this._now()-this._lastCheckpoint>=500?this.currentKBps:0}get averageKBps(){let e=(this._now()-this._firstCheckpoint)/1e3;return this._totalBytes/e/1024}}var g=m;class v{constructor(e){this._message=e}get name(){return"RuntimeException"}get message(){return this._message}toString(){return this.name+": "+this.message}}class y extends v{constructor(e){super(e)}get name(){return"IllegalStateException"}}class _ extends v{constructor(e){super(e)}get name(){return"InvalidArgumentException"}}class E extends v{constructor(e){super(e)}get name(){return"NotImplementedException"}}const b={kIdle:0,kConnecting:1,kBuffering:2,kError:3,kComplete:4},S={OK:"OK",EXCEPTION:"Exception",HTTP_STATUS_CODE_INVALID:"HttpStatusCodeInvalid",CONNECTING_TIMEOUT:"ConnectingTimeout",EARLY_EOF:"EarlyEof",UNRECOVERABLE_EARLY_EOF:"UnrecoverableEarlyEof"};class T{constructor(e){this._type=e||"undefined",this._status=b.kIdle,this._needStash=!1,this._onContentLengthKnown=null,this._onURLRedirect=null,this._onDataArrival=null,this._onError=null,this._onComplete=null}destroy(){this._status=b.kIdle,this._onContentLengthKnown=null,this._onURLRedirect=null,this._onDataArrival=null,this._onError=null,this._onComplete=null}isWorking(){return this._status===b.kConnecting||this._status===b.kBuffering}get type(){return this._type}get status(){return this._status}get needStashBuffer(){return this._needStash}get onContentLengthKnown(){return this._onContentLengthKnown}set onContentLengthKnown(e){this._onContentLengthKnown=e}get onURLRedirect(){return this._onURLRedirect}set onURLRedirect(e){this._onURLRedirect=e}get onDataArrival(){return this._onDataArrival}set onDataArrival(e){this._onDataArrival=e}get onError(){return this._onError}set onError(e){this._onError=e}get onComplete(){return this._onComplete}set onComplete(e){this._onComplete=e}open(e,t){throw new E("Unimplemented abstract function!")}abort(){throw new E("Unimplemented abstract function!")}}let w={};function A(){let e=self.navigator.userAgent.toLowerCase(),t=/(edge)\/([\w.]+)/.exec(e)||/(opr)[\/]([\w.]+)/.exec(e)||/(chrome)[ \/]([\w.]+)/.exec(e)||/(iemobile)[\/]([\w.]+)/.exec(e)||/(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(firefox)[ \/]([\w.]+)/.exec(e)||[],i=/(ipad)/.exec(e)||/(ipod)/.exec(e)||/(windows phone)/.exec(e)||/(iphone)/.exec(e)||/(kindle)/.exec(e)||/(android)/.exec(e)||/(windows)/.exec(e)||/(mac)/.exec(e)||/(linux)/.exec(e)||/(cros)/.exec(e)||[],r={browser:t[5]||t[3]||t[1]||"",version:t[2]||t[4]||"0",majorVersion:t[4]||t[2]||"0",platform:i[0]||""},n={};if(r.browser){n[r.browser]=!0;let e=r.majorVersion.split(".");n.version={major:parseInt(r.majorVersion,10),string:r.version},e.length>1&&(n.version.minor=parseInt(e[1],10)),e.length>2&&(n.version.build=parseInt(e[2],10))}if(r.platform&&(n[r.platform]=!0),(n.chrome||n.opr||n.safari)&&(n.webkit=!0),n.rv||n.iemobile){n.rv&&delete n.rv;let e="msie";r.browser=e,n[e]=!0}if(n.edge){delete n.edge;let e="msedge";r.browser=e,n[e]=!0}if(n.opr){let e="opera";r.browser=e,n[e]=!0}if(n.safari&&n.android){let e="android";r.browser=e,n[e]=!0}n.name=r.browser,n.platform=r.platform;for(let a in w)w.hasOwnProperty(a)&&delete w[a];Object.assign(w,n)}A();var k=w;class R extends T{static isSupported(){try{let e=k.msedge&&k.version.minor>=15048,t=!k.msedge||e;return self.fetch&&self.ReadableStream&&t}catch(e){return!1}}constructor(e,t){super("fetch-stream-loader"),this.TAG="FetchStreamLoader",this._seekHandler=e,this._config=t,this._needStash=!0,this._requestAbort=!1,this._contentLength=null,this._receivedLength=0}destroy(){this.isWorking()&&this.abort(),super.destroy()}open(e,t){this._dataSource=e,this._range=t;let i=e.url;this._config.reuseRedirectedURL&&void 0!=e.redirectedURL&&(i=e.redirectedURL);let r=this._seekHandler.getConfig(i,t),n=new self.Headers;if("object"===typeof r.headers){let e=r.headers;for(let t in e)e.hasOwnProperty(t)&&n.append(t,e[t])}let a={method:"GET",headers:n,mode:"cors",cache:"default",referrerPolicy:"no-referrer-when-downgrade"};if("object"===typeof this._config.headers)for(let s in this._config.headers)n.append(s,this._config.headers[s]);!1===e.cors&&(a.mode="same-origin"),e.withCredentials&&(a.credentials="include"),e.referrerPolicy&&(a.referrerPolicy=e.referrerPolicy),this._status=b.kConnecting,self.fetch(r.url,a).then(e=>{if(this._requestAbort)return this._requestAbort=!1,void(this._status=b.kIdle);if(e.ok&&e.status>=200&&e.status<=299){if(e.url!==r.url&&this._onURLRedirect){let t=this._seekHandler.removeURLParameters(e.url);this._onURLRedirect(t)}let t=e.headers.get("Content-Length");return null!=t&&(this._contentLength=parseInt(t),0!==this._contentLength&&this._onContentLengthKnown&&this._onContentLengthKnown(this._contentLength)),this._pump.call(this,e.body.getReader())}if(this._status=b.kError,!this._onError)throw new v("FetchStreamLoader: Http code invalid, "+e.status+" "+e.statusText);this._onError(S.HTTP_STATUS_CODE_INVALID,{code:e.status,msg:e.statusText})}).catch(e=>{if(this._status=b.kError,!this._onError)throw e;this._onError(S.EXCEPTION,{code:-1,msg:e.message})})}abort(){this._requestAbort=!0}_pump(e){return e.read().then(t=>{if(t.done)if(null!==this._contentLength&&this._receivedLength{if(11===e.code&&k.msedge)return;this._status=b.kError;let t=0,i=null;if(19!==e.code&&"network error"!==e.message||!(null===this._contentLength||null!==this._contentLength&&this._receivedLength299)){if(this._status=b.kError,!this._onError)throw new v("MozChunkedLoader: Http code invalid, "+t.status+" "+t.statusText);this._onError(S.HTTP_STATUS_CODE_INVALID,{code:t.status,msg:t.statusText})}else this._status=b.kBuffering}}_onProgress(e){if(this._status===b.kError)return;null===this._contentLength&&null!==e.total&&0!==e.total&&(this._contentLength=e.total,this._onContentLengthKnown&&this._onContentLengthKnown(this._contentLength));let t=e.target.response,i=this._range.from+this._receivedLength;this._receivedLength+=t.byteLength,this._onDataArrival&&this._onDataArrival(t,i,this._receivedLength)}_onLoadEnd(e){!0!==this._requestAbort?this._status!==b.kError&&(this._status=b.kComplete,this._onComplete&&this._onComplete(this._range.from,this._range.from+this._receivedLength-1)):this._requestAbort=!1}_onXhrError(e){this._status=b.kError;let t=0,i=null;if(this._contentLength&&e.loaded=this._contentLength&&(i=this._range.from+this._contentLength-1),this._currentRequestRange={from:t,to:i},this._internalOpen(this._dataSource,this._currentRequestRange)}_internalOpen(e,t){this._lastTimeLoaded=0;let i=e.url;this._config.reuseRedirectedURL&&(void 0!=this._currentRedirectedURL?i=this._currentRedirectedURL:void 0!=e.redirectedURL&&(i=e.redirectedURL));let r=this._seekHandler.getConfig(i,t);this._currentRequestURL=r.url;let n=this._xhr=new XMLHttpRequest;if(n.open("GET",r.url,!0),n.responseType="arraybuffer",n.onreadystatechange=this._onReadyStateChange.bind(this),n.onprogress=this._onProgress.bind(this),n.onload=this._onLoad.bind(this),n.onerror=this._onXhrError.bind(this),e.withCredentials&&(n.withCredentials=!0),"object"===typeof r.headers){let e=r.headers;for(let t in e)e.hasOwnProperty(t)&&n.setRequestHeader(t,e[t])}if("object"===typeof this._config.headers){let e=this._config.headers;for(let t in e)e.hasOwnProperty(t)&&n.setRequestHeader(t,e[t])}n.send()}abort(){this._requestAbort=!0,this._internalAbort(),this._status=b.kComplete}_internalAbort(){this._xhr&&(this._xhr.onreadystatechange=null,this._xhr.onprogress=null,this._xhr.onload=null,this._xhr.onerror=null,this._xhr.abort(),this._xhr=null)}_onReadyStateChange(e){let t=e.target;if(2===t.readyState){if(void 0!=t.responseURL){let e=this._seekHandler.removeURLParameters(t.responseURL);t.responseURL!==this._currentRequestURL&&e!==this._currentRedirectedURL&&(this._currentRedirectedURL=e,this._onURLRedirect&&this._onURLRedirect(e))}if(t.status>=200&&t.status<=299){if(this._waitForTotalLength)return;this._status=b.kBuffering}else{if(this._status=b.kError,!this._onError)throw new v("RangeLoader: Http code invalid, "+t.status+" "+t.statusText);this._onError(S.HTTP_STATUS_CODE_INVALID,{code:t.status,msg:t.statusText})}}}_onProgress(e){if(this._status===b.kError)return;if(null===this._contentLength){let t=!1;if(this._waitForTotalLength){this._waitForTotalLength=!1,this._totalLengthReceived=!0,t=!0;let i=e.total;this._internalAbort(),null!=i&0!==i&&(this._totalLength=i)}if(-1===this._range.to?this._contentLength=this._totalLength-this._range.from:this._contentLength=this._range.to-this._range.from+1,t)return void this._openSubRange();this._onContentLengthKnown&&this._onContentLengthKnown(this._contentLength)}let t=e.loaded-this._lastTimeLoaded;this._lastTimeLoaded=e.loaded,this._speedSampler.addBytes(t)}_normalizeSpeed(e){let t=this._chunkSizeKBList,i=t.length-1,r=0,n=0,a=i;if(e=t[r]&&e=3&&(t=this._speedSampler.currentKBps)),0!==t){let e=this._normalizeSpeed(t);this._currentSpeedNormalized!==e&&(this._currentSpeedNormalized=e,this._currentChunkSizeKB=e)}let i=e.target.response,r=this._range.from+this._receivedLength;this._receivedLength+=i.byteLength;let n=!1;null!=this._contentLength&&this._receivedLength0&&this._receivedLength{this._dispatchArrayBuffer(t.result)},t.readAsArrayBuffer(e.data)}else{this._status=b.kError;let t={code:-1,msg:"Unsupported WebSocket message type: "+e.data.constructor.name};if(!this._onError)throw new v(t.msg);this._onError(S.EXCEPTION,t)}}_dispatchArrayBuffer(e){let t=e,i=this._receivedLength;this._receivedLength+=t.byteLength,this._onDataArrival&&this._onDataArrival(t,i,this._receivedLength)}_onWebSocketError(e){this._status=b.kError;let t={code:e.code,msg:e.message};if(!this._onError)throw new v(t.msg);this._onError(S.EXCEPTION,t)}}var M=x;class P{constructor(e){this._zeroStart=e||!1}getConfig(e,t){let i={};if(0!==t.from||-1!==t.to){let e;e=-1!==t.to?`bytes=${t.from.toString()}-${t.to.toString()}`:`bytes=${t.from.toString()}-`,i["Range"]=e}else this._zeroStart&&(i["Range"]="bytes=0-");return{url:e,headers:i}}removeURLParameters(e){return e}}var F=P;class B{constructor(e,t){this._startName=e,this._endName=t}getConfig(e,t){let i=e;if(0!==t.from||-1!==t.to){let e=!0;-1===i.indexOf("?")&&(i+="?",e=!1),e&&(i+="&"),i+=`${this._startName}=${t.from.toString()}`,-1!==t.to&&(i+=`&${this._endName}=${t.to.toString()}`)}return{url:i,headers:{}}}removeURLParameters(e){let t=e.split("?")[0],i=void 0,r=e.indexOf("?");-1!==r&&(i=e.substring(r+1));let n="";if(void 0!=i&&i.length>0){let e=i.split("&");for(let t=0;t0;i[0]!==this._startName&&i[0]!==this._endName&&(r&&(n+="&"),n+=e[t])}}return 0===n.length?t:t+"?"+n}}var N=B;class U{constructor(e,t,i){this.TAG="IOController",this._config=t,this._extraData=i,this._stashInitialSize=393216,void 0!=t.stashInitialSize&&t.stashInitialSize>0&&(this._stashInitialSize=t.stashInitialSize),this._stashUsed=0,this._stashSize=this._stashInitialSize,this._bufferSize=3145728,this._stashBuffer=new ArrayBuffer(this._bufferSize),this._stashByteStart=0,this._enableStash=!0,!1===t.enableStashBuffer&&(this._enableStash=!1),this._loader=null,this._loaderClass=null,this._seekHandler=null,this._dataSource=e,this._isWebSocketURL=/wss?:\/\/(.+?)/.test(e.url),this._refTotalLength=e.filesize?e.filesize:null,this._totalLength=this._refTotalLength,this._fullRequestFlag=!1,this._currentRange=null,this._redirectedURL=null,this._speedNormalized=0,this._speedSampler=new g,this._speedNormalizeList=[64,128,256,384,512,768,1024,1536,2048,3072,4096],this._isEarlyEofReconnecting=!1,this._paused=!1,this._resumeFrom=0,this._onDataArrival=null,this._onSeeked=null,this._onError=null,this._onComplete=null,this._onRedirect=null,this._onRecoveredEarlyEof=null,this._selectSeekHandler(),this._selectLoader(),this._createLoader()}destroy(){this._loader.isWorking()&&this._loader.abort(),this._loader.destroy(),this._loader=null,this._loaderClass=null,this._dataSource=null,this._stashBuffer=null,this._stashUsed=this._stashSize=this._bufferSize=this._stashByteStart=0,this._currentRange=null,this._speedSampler=null,this._isEarlyEofReconnecting=!1,this._onDataArrival=null,this._onSeeked=null,this._onError=null,this._onComplete=null,this._onRedirect=null,this._onRecoveredEarlyEof=null,this._extraData=null}isWorking(){return this._loader&&this._loader.isWorking()&&!this._paused}isPaused(){return this._paused}get status(){return this._loader.status}get extraData(){return this._extraData}set extraData(e){this._extraData=e}get onDataArrival(){return this._onDataArrival}set onDataArrival(e){this._onDataArrival=e}get onSeeked(){return this._onSeeked}set onSeeked(e){this._onSeeked=e}get onError(){return this._onError}set onError(e){this._onError=e}get onComplete(){return this._onComplete}set onComplete(e){this._onComplete=e}get onRedirect(){return this._onRedirect}set onRedirect(e){this._onRedirect=e}get onRecoveredEarlyEof(){return this._onRecoveredEarlyEof}set onRecoveredEarlyEof(e){this._onRecoveredEarlyEof=e}get currentURL(){return this._dataSource.url}get hasRedirect(){return null!=this._redirectedURL||void 0!=this._dataSource.redirectedURL}get currentRedirectedURL(){return this._redirectedURL||this._dataSource.redirectedURL}get currentSpeed(){return this._loaderClass===O?this._loader.currentSpeed:this._speedSampler.lastSecondKBps}get loaderType(){return this._loader.type}_selectSeekHandler(){let e=this._config;if("range"===e.seekType)this._seekHandler=new F(this._config.rangeLoadZeroStart);else if("param"===e.seekType){let t=e.seekParamStart||"bstart",i=e.seekParamEnd||"bend";this._seekHandler=new N(t,i)}else{if("custom"!==e.seekType)throw new _(`Invalid seekType in config: ${e.seekType}`);if("function"!==typeof e.customSeekHandler)throw new _("Custom seekType specified in config but invalid customSeekHandler!");this._seekHandler=new e.customSeekHandler}}_selectLoader(){if(null!=this._config.customLoader)this._loaderClass=this._config.customLoader;else if(this._isWebSocketURL)this._loaderClass=M;else if(L.isSupported())this._loaderClass=L;else if(I.isSupported())this._loaderClass=I;else{if(!O.isSupported())throw new v("Your browser doesn't support xhr with arraybuffer responseType!");this._loaderClass=O}}_createLoader(){this._loader=new this._loaderClass(this._seekHandler,this._config),!1===this._loader.needStashBuffer&&(this._enableStash=!1),this._loader.onContentLengthKnown=this._onContentLengthKnown.bind(this),this._loader.onURLRedirect=this._onURLRedirect.bind(this),this._loader.onDataArrival=this._onLoaderChunkArrival.bind(this),this._loader.onComplete=this._onLoaderComplete.bind(this),this._loader.onError=this._onLoaderError.bind(this)}open(e){this._currentRange={from:0,to:-1},e&&(this._currentRange.from=e),this._speedSampler.reset(),e||(this._fullRequestFlag=!0),this._loader.open(this._dataSource,Object.assign({},this._currentRange))}abort(){this._loader.abort(),this._paused&&(this._paused=!1,this._resumeFrom=0)}pause(){this.isWorking()&&(this._loader.abort(),0!==this._stashUsed?(this._resumeFrom=this._stashByteStart,this._currentRange.to=this._stashByteStart-1):this._resumeFrom=this._currentRange.to+1,this._stashUsed=0,this._stashByteStart=0,this._paused=!0)}resume(){if(this._paused){this._paused=!1;let e=this._resumeFrom;this._resumeFrom=0,this._internalSeek(e,!0)}}seek(e){this._paused=!1,this._stashUsed=0,this._stashByteStart=0,this._internalSeek(e,!0)}_internalSeek(e,t){this._loader.isWorking()&&this._loader.abort(),this._flushStashBuffer(t),this._loader.destroy(),this._loader=null;let i={from:e,to:-1};this._currentRange={from:i.from,to:-1},this._speedSampler.reset(),this._stashSize=this._stashInitialSize,this._createLoader(),this._loader.open(this._dataSource,i),this._onSeeked&&this._onSeeked()}updateUrl(e){if(!e||"string"!==typeof e||0===e.length)throw new _("Url must be a non-empty string!");this._dataSource.url=e}_expandBuffer(e){let t=this._stashSize;while(t+10485760){let e=new Uint8Array(this._stashBuffer,0,this._stashUsed),r=new Uint8Array(i,0,t);r.set(e,0)}this._stashBuffer=i,this._bufferSize=t}_normalizeSpeed(e){let t=this._speedNormalizeList,i=t.length-1,r=0,n=0,a=i;if(e=t[r]&&e=512&&e<=1024?Math.floor(1.5*e):2*e,t>8192&&(t=8192);let i=1024*t+1048576;this._bufferSize0){let t=this._stashBuffer.slice(0,this._stashUsed),r=this._dispatchChunks(t,this._stashByteStart);if(r0){let e=new Uint8Array(t,r);i.set(e,0),this._stashUsed=e.byteLength,this._stashByteStart+=r}}else this._stashUsed=0,this._stashByteStart+=r;this._stashUsed+e.byteLength>this._bufferSize&&(this._expandBuffer(this._stashUsed+e.byteLength),i=new Uint8Array(this._stashBuffer,0,this._bufferSize)),i.set(new Uint8Array(e),this._stashUsed),this._stashUsed+=e.byteLength}else{let r=this._dispatchChunks(e,t);if(rthis._bufferSize&&(this._expandBuffer(n),i=new Uint8Array(this._stashBuffer,0,this._bufferSize)),i.set(new Uint8Array(e,r),0),this._stashUsed+=n,this._stashByteStart=t+r}}}else if(0===this._stashUsed){let i=this._dispatchChunks(e,t);if(ithis._bufferSize&&this._expandBuffer(r);let n=new Uint8Array(this._stashBuffer,0,this._bufferSize);n.set(new Uint8Array(e,i),0),this._stashUsed+=r,this._stashByteStart=t+i}}else{this._stashUsed+e.byteLength>this._bufferSize&&this._expandBuffer(this._stashUsed+e.byteLength);let t=new Uint8Array(this._stashBuffer,0,this._bufferSize);t.set(new Uint8Array(e),this._stashUsed),this._stashUsed+=e.byteLength;let i=this._dispatchChunks(this._stashBuffer.slice(0,this._stashUsed),this._stashByteStart);if(i0){let e=new Uint8Array(this._stashBuffer,i);t.set(e,0)}this._stashUsed-=i,this._stashByteStart+=i}}_flushStashBuffer(e){if(this._stashUsed>0){let t=this._stashBuffer.slice(0,this._stashUsed),i=this._dispatchChunks(t,this._stashByteStart),r=t.byteLength-i;if(i0){let e=new Uint8Array(this._stashBuffer,0,this._bufferSize),r=new Uint8Array(t,i);e.set(r,0),this._stashUsed=r.byteLength,this._stashByteStart+=i}return 0}p.w(this.TAG,`${r} bytes unconsumed data remain when flush buffer, dropped`)}return this._stashUsed=0,this._stashByteStart=0,r}return 0}_onLoaderComplete(e,t){this._flushStashBuffer(!0),this._onComplete&&this._onComplete(this._extraData)}_onLoaderError(e,t){switch(p.e(this.TAG,`Loader error, code = ${t.code}, msg = ${t.msg}`),this._flushStashBuffer(!1),this._isEarlyEofReconnecting&&(this._isEarlyEofReconnecting=!1,e=S.UNRECOVERABLE_EARLY_EOF),e){case S.EARLY_EOF:if(!this._config.isLive&&this._totalLength){let e=this._currentRange.to+1;return void(e0){let t=W.getConfig();e.emit("change",t)}}static registerListener(e){W.emitter.addListener("change",e)}static removeListener(e){W.emitter.removeListener("change",e)}static addLogListener(e){p.emitter.addListener("log",e),p.emitter.listenerCount("log")>0&&(p.ENABLE_CALLBACK=!0,W._notifyChange())}static removeLogListener(e){p.emitter.removeListener("log",e),0===p.emitter.listenerCount("log")&&(p.ENABLE_CALLBACK=!1,W._notifyChange())}}W.emitter=new h.a;var Y=W;class X{constructor(){this.mimeType=null,this.duration=null,this.hasAudio=null,this.hasVideo=null,this.audioCodec=null,this.videoCodec=null,this.audioDataRate=null,this.videoDataRate=null,this.audioSampleRate=null,this.audioChannelCount=null,this.width=null,this.height=null,this.fps=null,this.profile=null,this.level=null,this.refFrames=null,this.chromaFormat=null,this.sarNum=null,this.sarDen=null,this.metadata=null,this.segments=null,this.segmentCount=null,this.hasKeyframesIndex=null,this.keyframesIndex=null}isComplete(){let e=!1===this.hasAudio||!0===this.hasAudio&&null!=this.audioCodec&&null!=this.audioSampleRate&&null!=this.audioChannelCount,t=!1===this.hasVideo||!0===this.hasVideo&&null!=this.videoCodec&&null!=this.width&&null!=this.height&&null!=this.fps&&null!=this.profile&&null!=this.level&&null!=this.refFrames&&null!=this.chromaFormat&&null!=this.sarNum&&null!=this.sarDen;return null!=this.mimeType&&null!=this.duration&&null!=this.metadata&&null!=this.hasKeyframesIndex&&e&&t}isSeekable(){return!0===this.hasKeyframesIndex}getNearestKeyframe(e){if(null==this.keyframesIndex)return null;let t=this.keyframesIndex,i=this._search(t.times,e);return{index:i,milliseconds:t.times[i],fileposition:t.filepositions[i]}}_search(e,t){let i=0,r=e.length-1,n=0,a=0,s=r;t=e[n]&&t=128){t.push(String.fromCharCode(65535&e)),r+=2;continue}}}else if(i[r]<240){if(Q(i,r,2)){let e=(15&i[r])<<12|(63&i[r+1])<<6|63&i[r+2];if(e>=2048&&55296!==(63488&e)){t.push(String.fromCharCode(65535&e)),r+=3;continue}}}else if(i[r]<248&&Q(i,r,3)){let e=(7&i[r])<<18|(63&i[r+1])<<12|(63&i[r+2])<<6|63&i[r+3];if(e>65536&&e<1114112){e-=65536,t.push(String.fromCharCode(e>>>10|55296)),t.push(String.fromCharCode(1023&e|56320)),r+=4;continue}}t.push(String.fromCharCode(65533)),++r}return t.join("")}var Z=J;let ee=function(){let e=new ArrayBuffer(2);return new DataView(e).setInt16(0,256,!0),256===new Int16Array(e)[0]}();class te{static parseScriptData(e,t,i){let r={};try{let n=te.parseValue(e,t,i),a=te.parseValue(e,t+n.size,i-n.size);r[n.data]=a.data}catch(n){p.e("AMF",n.toString())}return r}static parseObject(e,t,i){if(i<3)throw new y("Data not enough when parse ScriptDataObject");let r=te.parseString(e,t,i),n=te.parseValue(e,t+r.size,i-r.size),a=n.objectEnd;return{data:{name:r.data,value:n.data},size:r.size+n.size,objectEnd:a}}static parseVariable(e,t,i){return te.parseObject(e,t,i)}static parseString(e,t,i){if(i<2)throw new y("Data not enough when parse String");let r,n=new DataView(e,t,i),a=n.getUint16(0,!ee);return r=a>0?Z(new Uint8Array(e,t+2,a)):"",{data:r,size:2+a}}static parseLongString(e,t,i){if(i<4)throw new y("Data not enough when parse LongString");let r,n=new DataView(e,t,i),a=n.getUint32(0,!ee);return r=a>0?Z(new Uint8Array(e,t+4,a)):"",{data:r,size:4+a}}static parseDate(e,t,i){if(i<10)throw new y("Data size invalid when parse Date");let r=new DataView(e,t,i),n=r.getFloat64(0,!ee),a=r.getInt16(8,!ee);return n+=60*a*1e3,{data:new Date(n),size:10}}static parseValue(e,t,i){if(i<1)throw new y("Data not enough when parse Value");let r,n=new DataView(e,t,i),a=1,s=n.getUint8(0),o=!1;try{switch(s){case 0:r=n.getFloat64(1,!ee),a+=8;break;case 1:{let e=n.getUint8(1);r=!!e,a+=1;break}case 2:{let n=te.parseString(e,t+1,i-1);r=n.data,a+=n.size;break}case 3:{r={};let s=0;9===(16777215&n.getUint32(i-4,!ee))&&(s=3);while(a32)throw new _("ExpGolomb: readBits() bits exceeded max 32bits!");if(e<=this._current_word_bits_left){let t=this._current_word>>>32-e;return this._current_word<<=e,this._current_word_bits_left-=e,t}let t=this._current_word_bits_left?this._current_word:0;t>>>=32-this._current_word_bits_left;let i=e-this._current_word_bits_left;this._fillCurrentWord();let r=Math.min(i,this._current_word_bits_left),n=this._current_word>>>32-r;return this._current_word<<=r,this._current_word_bits_left-=r,t=t<>>e))return this._current_word<<=e,this._current_word_bits_left-=e,e;return this._fillCurrentWord(),e+this._skipLeadingZero()}readUEG(){let e=this._skipLeadingZero();return this.readBits(e+1)-1}readSEG(){let e=this.readUEG();return 1&e?e+1>>>1:-1*(e>>>1)}}var ne=re;class ae{static _ebsp2rbsp(e){let t=e,i=t.byteLength,r=new Uint8Array(i),n=0;for(let a=0;a=2&&3===t[a]&&0===t[a-1]&&0===t[a-2]||(r[n]=t[a],n++);return new Uint8Array(r.buffer,0,n)}static parseSPS(e){let t=ae._ebsp2rbsp(e),i=new ne(t);i.readByte();let r=i.readByte();i.readByte();let n=i.readByte();i.readUEG();let a=ae.getProfileString(r),s=ae.getLevelString(n),o=1,l=420,u=[0,420,422,444],d=8;if((100===r||110===r||122===r||244===r||44===r||83===r||86===r||118===r||128===r||138===r||144===r)&&(o=i.readUEG(),3===o&&i.readBits(1),o<=3&&(l=u[o]),d=i.readUEG()+8,i.readUEG(),i.readBits(1),i.readBool())){let e=3!==o?8:12;for(let t=0;t0&&e<16?(b=t[e-1],S=r[e-1]):255===e&&(b=i.readByte()<<8|i.readByte(),S=i.readByte()<<8|i.readByte())}if(i.readBool()&&i.readBool(),i.readBool()&&(i.readBits(4),i.readBool()&&i.readBits(24)),i.readBool()&&(i.readUEG(),i.readUEG()),i.readBool()){let e=i.readBits(32),t=i.readBits(32);w=i.readBool(),A=t,k=2*e,T=A/k}}let L=1;1===b&&1===S||(L=b/S);let D=0,I=0;if(0===o)D=1,I=2-m;else{let e=3===o?1:2,t=1===o?2:1;D=e,I=t*(2-m)}let C=16*(f+1),O=16*(p+1)*(2-m);C-=(g+v)*D,O-=(y+_)*I;let x=Math.ceil(C*L);return i.destroy(),i=null,{profile_string:a,level_string:s,bit_depth:d,ref_frames:h,chroma_format:l,chroma_format_string:ae.getChromaFormatString(l),frame_rate:{fixed:w,fps:T,fps_den:k,fps_num:A},sar_ratio:{width:b,height:S},codec_size:{width:C,height:O},present_size:{width:x,height:O}}}static _skipScalingList(e,t){let i=8,r=8,n=0;for(let a=0;a>>2!==0,n=0!==(1&t[4]),a=ue(t,5);return a<9?i:{match:!0,consumed:a,dataOffset:a,hasAudioTrack:r,hasVideoTrack:n}}bindDataSource(e){return e.onDataArrival=this.parseChunks.bind(this),this}get onTrackMetadata(){return this._onTrackMetadata}set onTrackMetadata(e){this._onTrackMetadata=e}get onMediaInfo(){return this._onMediaInfo}set onMediaInfo(e){this._onMediaInfo=e}get onMetaDataArrived(){return this._onMetaDataArrived}set onMetaDataArrived(e){this._onMetaDataArrived=e}get onScriptDataArrived(){return this._onScriptDataArrived}set onScriptDataArrived(e){this._onScriptDataArrived=e}get onError(){return this._onError}set onError(e){this._onError=e}get onDataAvailable(){return this._onDataAvailable}set onDataAvailable(e){this._onDataAvailable=e}get timestampBase(){return this._timestampBase}set timestampBase(e){this._timestampBase=e}get overridedDuration(){return this._duration}set overridedDuration(e){this._durationOverrided=!0,this._duration=e,this._mediaInfo.duration=e}set overridedHasAudio(e){this._hasAudioFlagOverrided=!0,this._hasAudio=e,this._mediaInfo.hasAudio=e}set overridedHasVideo(e){this._hasVideoFlagOverrided=!0,this._hasVideo=e,this._mediaInfo.hasVideo=e}resetMediaInfo(){this._mediaInfo=new $}_isInitialMetadataDispatched(){return this._hasAudio&&this._hasVideo?this._audioInitialMetadataDispatched&&this._videoInitialMetadataDispatched:this._hasAudio&&!this._hasVideo?this._audioInitialMetadataDispatched:!(this._hasAudio||!this._hasVideo)&&this._videoInitialMetadataDispatched}parseChunks(e,t){if(!this._onError||!this._onMediaInfo||!this._onTrackMetadata||!this._onDataAvailable)throw new y("Flv: onError & onMediaInfo & onTrackMetadata & onDataAvailable callback must be specified");let i=0,r=this._littleEndian;if(0===t){if(!(e.byteLength>13))return 0;{let t=de.probe(e);i=t.dataOffset}}if(this._firstParse){this._firstParse=!1,t+i!==this._dataOffset&&p.w(this.TAG,"First time parsing but chunk byteStart invalid!");let n=new DataView(e,i),a=n.getUint32(0,!r);0!==a&&p.w(this.TAG,"PrevTagSize0 !== 0 !!!"),i+=4}while(ie.byteLength)break;let a=n.getUint8(0),s=16777215&n.getUint32(0,!r);if(i+11+s+4>e.byteLength)break;if(8!==a&&9!==a&&18!==a){p.w(this.TAG,`Unsupported tag type ${a}, skipped`),i+=11+s+4;continue}let o=n.getUint8(4),l=n.getUint8(5),u=n.getUint8(6),d=n.getUint8(7),c=u|l<<8|o<<16|d<<24,h=16777215&n.getUint32(7,!r);0!==h&&p.w(this.TAG,"Meet tag which has StreamID != 0!");let f=i+11;switch(a){case 8:this._parseAudioData(e,f,s,c);break;case 9:this._parseVideoData(e,f,s,c,t+i);break;case 18:this._parseScriptData(e,f,s);break}let m=n.getUint32(11+s,!r);m!==11+s&&p.w(this.TAG,`Invalid PrevTagSize ${m}`),i+=11+s+4}return this._isInitialMetadataDispatched()&&this._dispatch&&(this._audioTrack.length||this._videoTrack.length)&&this._onDataAvailable(this._audioTrack,this._videoTrack),i}_parseScriptData(e,t,i){let r=ie.parseScriptData(e,t,i);if(r.hasOwnProperty("onMetaData")){if(null==r.onMetaData||"object"!==typeof r.onMetaData)return void p.w(this.TAG,"Invalid onMetaData structure!");this._metadata&&p.w(this.TAG,"Found another onMetaData tag!"),this._metadata=r;let e=this._metadata.onMetaData;if(this._onMetaDataArrived&&this._onMetaDataArrived(Object.assign({},e)),"boolean"===typeof e.hasAudio&&!1===this._hasAudioFlagOverrided&&(this._hasAudio=e.hasAudio,this._mediaInfo.hasAudio=this._hasAudio),"boolean"===typeof e.hasVideo&&!1===this._hasVideoFlagOverrided&&(this._hasVideo=e.hasVideo,this._mediaInfo.hasVideo=this._hasVideo),"number"===typeof e.audiodatarate&&(this._mediaInfo.audioDataRate=e.audiodatarate),"number"===typeof e.videodatarate&&(this._mediaInfo.videoDataRate=e.videodatarate),"number"===typeof e.width&&(this._mediaInfo.width=e.width),"number"===typeof e.height&&(this._mediaInfo.height=e.height),"number"===typeof e.duration){if(!this._durationOverrided){let t=Math.floor(e.duration*this._timescale);this._duration=t,this._mediaInfo.duration=t}}else this._mediaInfo.duration=0;if("number"===typeof e.framerate){let t=Math.floor(1e3*e.framerate);if(t>0){let e=t/1e3;this._referenceFrameRate.fixed=!0,this._referenceFrameRate.fps=e,this._referenceFrameRate.fps_num=t,this._referenceFrameRate.fps_den=1e3,this._mediaInfo.fps=e}}if("object"===typeof e.keyframes){this._mediaInfo.hasKeyframesIndex=!0;let t=e.keyframes;this._mediaInfo.keyframesIndex=this._parseKeyframesIndex(t),e.keyframes=null}else this._mediaInfo.hasKeyframesIndex=!1;this._dispatch=!1,this._mediaInfo.metadata=e,p.v(this.TAG,"Parsed onMetaData"),this._mediaInfo.isComplete()&&this._onMediaInfo(this._mediaInfo)}Object.keys(r).length>0&&this._onScriptDataArrived&&this._onScriptDataArrived(Object.assign({},r))}_parseKeyframesIndex(e){let t=[],i=[];for(let r=1;r>>4;if(2!==s&&10!==s)return void this._onError(le.CODEC_UNSUPPORTED,"Flv: Unsupported audio codec idx: "+s);let o=0,l=(12&a)>>>2;if(!(l>=0&&l<=4))return void this._onError(le.FORMAT_ERROR,"Flv: Invalid audio sample rate idx: "+l);o=this._flvSoundRateTable[l];let u=1&a,d=this._audioMetadata,c=this._audioTrack;if(d||(!1===this._hasAudio&&!1===this._hasAudioFlagOverrided&&(this._hasAudio=!0,this._mediaInfo.hasAudio=!0),d=this._audioMetadata={},d.type="audio",d.id=c.id,d.timescale=this._timescale,d.duration=this._duration,d.audioSampleRate=o,d.channelCount=0===u?1:2),10===s){let n=this._parseAACAudioData(e,t+1,i-1);if(void 0==n)return;if(0===n.packetType){d.config&&p.w(this.TAG,"Found another AudioSpecificConfig!");let e=n.data;d.audioSampleRate=e.samplingRate,d.channelCount=e.channelCount,d.codec=e.codec,d.originalCodec=e.originalCodec,d.config=e.config,d.refSampleDuration=1024/d.audioSampleRate*d.timescale,p.v(this.TAG,"Parsed AudioSpecificConfig"),this._isInitialMetadataDispatched()?this._dispatch&&(this._audioTrack.length||this._videoTrack.length)&&this._onDataAvailable(this._audioTrack,this._videoTrack):this._audioInitialMetadataDispatched=!0,this._dispatch=!1,this._onTrackMetadata("audio",d);let t=this._mediaInfo;t.audioCodec=d.originalCodec,t.audioSampleRate=d.audioSampleRate,t.audioChannelCount=d.channelCount,t.hasVideo?null!=t.videoCodec&&(t.mimeType='video/x-flv; codecs="'+t.videoCodec+","+t.audioCodec+'"'):t.mimeType='video/x-flv; codecs="'+t.audioCodec+'"',t.isComplete()&&this._onMediaInfo(t)}else if(1===n.packetType){let e=this._timestampBase+r,t={unit:n.data,length:n.data.byteLength,dts:e,pts:e};c.samples.push(t),c.length+=n.data.length}else p.e(this.TAG,`Flv: Unsupported AAC data type ${n.packetType}`)}else if(2===s){if(!d.codec){let r=this._parseMP3AudioData(e,t+1,i-1,!0);if(void 0==r)return;d.audioSampleRate=r.samplingRate,d.channelCount=r.channelCount,d.codec=r.codec,d.originalCodec=r.originalCodec,d.refSampleDuration=1152/d.audioSampleRate*d.timescale,p.v(this.TAG,"Parsed MPEG Audio Frame Header"),this._audioInitialMetadataDispatched=!0,this._onTrackMetadata("audio",d);let n=this._mediaInfo;n.audioCodec=d.codec,n.audioSampleRate=d.audioSampleRate,n.audioChannelCount=d.channelCount,n.audioDataRate=r.bitRate,n.hasVideo?null!=n.videoCodec&&(n.mimeType='video/x-flv; codecs="'+n.videoCodec+","+n.audioCodec+'"'):n.mimeType='video/x-flv; codecs="'+n.audioCodec+'"',n.isComplete()&&this._onMediaInfo(n)}let n=this._parseMP3AudioData(e,t+1,i-1,!1);if(void 0==n)return;let a=this._timestampBase+r,s={unit:n,length:n.byteLength,dts:a,pts:a};c.samples.push(s),c.length+=n.length}}_parseAACAudioData(e,t,i){if(i<=1)return void p.w(this.TAG,"Flv: Invalid AAC packet, missing AACPacketType or/and Data!");let r={},n=new Uint8Array(e,t,i);return r.packetType=n[0],0===n[0]?r.data=this._parseAACAudioSpecificConfig(e,t+1,i-1):r.data=n.subarray(1),r}_parseAACAudioSpecificConfig(e,t,i){let r=new Uint8Array(e,t,i),n=null,a=0,s=0,o=null,l=0,u=null;if(a=s=r[0]>>>3,l=(7&r[0])<<1|r[1]>>>7,l<0||l>=this._mpegSamplingRates.length)return void this._onError(le.FORMAT_ERROR,"Flv: AAC invalid sampling frequency index!");let d=this._mpegSamplingRates[l],c=(120&r[1])>>>3;if(c<0||c>=8)return void this._onError(le.FORMAT_ERROR,"Flv: AAC invalid channel configuration");5===a&&(u=(7&r[1])<<1|r[2]>>>7,o=(124&r[2])>>>2);let h=self.navigator.userAgent.toLowerCase();return-1!==h.indexOf("firefox")?l>=6?(a=5,n=new Array(4),u=l-3):(a=2,n=new Array(2),u=l):-1!==h.indexOf("android")?(a=2,n=new Array(2),u=l):(a=5,u=l,n=new Array(4),l>=6?u=l-3:1===c&&(a=2,n=new Array(2),u=l)),n[0]=a<<3,n[0]|=(15&l)>>>1,n[1]=(15&l)<<7,n[1]|=(15&c)<<3,5===a&&(n[1]|=(15&u)>>>1,n[2]=(1&u)<<7,n[2]|=8,n[3]=0),{config:n,samplingRate:d,channelCount:c,codec:"mp4a.40."+a,originalCodec:"mp4a.40."+s}}_parseMP3AudioData(e,t,i,r){if(i<4)return void p.w(this.TAG,"Flv: Invalid MP3 packet, header missing!");this._littleEndian;let n=new Uint8Array(e,t,i),a=null;if(r){if(255!==n[0])return;let e=n[1]>>>3&3,t=(6&n[1])>>1,i=(240&n[2])>>>4,r=(12&n[2])>>>2,s=n[3]>>>6&3,o=3!==s?2:1,l=0,u=0,d=34,c="mp3";switch(e){case 0:l=this._mpegAudioV25SampleRateTable[r];break;case 2:l=this._mpegAudioV20SampleRateTable[r];break;case 3:l=this._mpegAudioV10SampleRateTable[r];break}switch(t){case 1:d=34,i>>4,o=15&a;7===o?this._parseAVCVideoPacket(e,t+1,i-1,r,n,s):this._onError(le.CODEC_UNSUPPORTED,`Flv: Unsupported codec in video frame: ${o}`)}_parseAVCVideoPacket(e,t,i,r,n,a){if(i<4)return void p.w(this.TAG,"Flv: Invalid AVC packet, missing AVCPacketType or/and CompositionTime");let s=this._littleEndian,o=new DataView(e,t,i),l=o.getUint8(0),u=16777215&o.getUint32(0,!s),d=u<<8>>8;if(0===l)this._parseAVCDecoderConfigurationRecord(e,t+4,i-4);else if(1===l)this._parseAVCVideoData(e,t+4,i-4,r,n,a,d);else if(2!==l)return void this._onError(le.FORMAT_ERROR,`Flv: Invalid video packet type ${l}`)}_parseAVCDecoderConfigurationRecord(e,t,i){if(i<7)return void p.w(this.TAG,"Flv: Invalid AVCDecoderConfigurationRecord, lack of data!");let r=this._videoMetadata,n=this._videoTrack,a=this._littleEndian,s=new DataView(e,t,i);r?"undefined"!==typeof r.avcc&&p.w(this.TAG,"Found another AVCDecoderConfigurationRecord!"):(!1===this._hasVideo&&!1===this._hasVideoFlagOverrided&&(this._hasVideo=!0,this._mediaInfo.hasVideo=!0),r=this._videoMetadata={},r.type="video",r.id=n.id,r.timescale=this._timescale,r.duration=this._duration);let o=s.getUint8(0),l=s.getUint8(1);s.getUint8(2),s.getUint8(3);if(1!==o||0===l)return void this._onError(le.FORMAT_ERROR,"Flv: Invalid AVCDecoderConfigurationRecord");if(this._naluLengthSize=1+(3&s.getUint8(4)),3!==this._naluLengthSize&&4!==this._naluLengthSize)return void this._onError(le.FORMAT_ERROR,`Flv: Strange NaluLengthSizeMinusOne: ${this._naluLengthSize-1}`);let u=31&s.getUint8(5);if(0===u)return void this._onError(le.FORMAT_ERROR,"Flv: Invalid AVCDecoderConfigurationRecord: No SPS");u>1&&p.w(this.TAG,`Flv: Strange AVCDecoderConfigurationRecord: SPS Count = ${u}`);let d=6;for(let h=0;h1&&p.w(this.TAG,`Flv: Strange AVCDecoderConfigurationRecord: PPS Count = ${c}`),d++;for(let e=0;e=i){p.w(this.TAG,`Malformed Nalu near timestamp ${f}, offset = ${c}, dataSize = ${i}`);break}let r=l.getUint32(c,!o);if(3===h&&(r>>>=8),r>i-h)return void p.w(this.TAG,`Malformed Nalus near timestamp ${f}, NaluSize > DataSize!`);let n=31&l.getUint8(c+h);5===n&&(m=!0);let a=new Uint8Array(e,t+c,h+r),s={type:n,data:a};u.push(s),d+=a.byteLength,c+=h+r}if(u.length){let e=this._videoTrack,t={units:u,length:d,isKeyframe:m,dts:f,cts:s,pts:f+s};m&&(t.fileposition=n),e.samples.push(t),e.length+=d}}}var ce=de;class he{static init(){he.types={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[],".mp3":[]};for(let t in he.types)he.types.hasOwnProperty(t)&&(he.types[t]=[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)]);let e=he.constants={};e.FTYP=new Uint8Array([105,115,111,109,0,0,0,1,105,115,111,109,97,118,99,49]),e.STSD_PREFIX=new Uint8Array([0,0,0,0,0,0,0,1]),e.STTS=new Uint8Array([0,0,0,0,0,0,0,0]),e.STSC=e.STCO=e.STTS,e.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),e.HDLR_VIDEO=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),e.HDLR_AUDIO=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),e.DREF=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),e.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),e.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0])}static box(e){let t=8,i=null,r=Array.prototype.slice.call(arguments,1),n=r.length;for(let s=0;s>>24&255,i[1]=t>>>16&255,i[2]=t>>>8&255,i[3]=255&t,i.set(e,4);let a=8;for(let s=0;s>>24&255,e>>>16&255,e>>>8&255,255&e,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]))}static trak(e){return he.box(he.types.trak,he.tkhd(e),he.mdia(e))}static tkhd(e){let t=e.id,i=e.duration,r=e.presentWidth,n=e.presentHeight;return he.box(he.types.tkhd,new Uint8Array([0,0,0,7,0,0,0,0,0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,r>>>8&255,255&r,0,0,n>>>8&255,255&n,0,0]))}static mdia(e){return he.box(he.types.mdia,he.mdhd(e),he.hdlr(e),he.minf(e))}static mdhd(e){let t=e.timescale,i=e.duration;return he.box(he.types.mdhd,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,i>>>24&255,i>>>16&255,i>>>8&255,255&i,85,196,0,0]))}static hdlr(e){let t=null;return t="audio"===e.type?he.constants.HDLR_AUDIO:he.constants.HDLR_VIDEO,he.box(he.types.hdlr,t)}static minf(e){let t=null;return t="audio"===e.type?he.box(he.types.smhd,he.constants.SMHD):he.box(he.types.vmhd,he.constants.VMHD),he.box(he.types.minf,t,he.dinf(),he.stbl(e))}static dinf(){let e=he.box(he.types.dinf,he.box(he.types.dref,he.constants.DREF));return e}static stbl(e){let t=he.box(he.types.stbl,he.stsd(e),he.box(he.types.stts,he.constants.STTS),he.box(he.types.stsc,he.constants.STSC),he.box(he.types.stsz,he.constants.STSZ),he.box(he.types.stco,he.constants.STCO));return t}static stsd(e){return"audio"===e.type?"mp3"===e.codec?he.box(he.types.stsd,he.constants.STSD_PREFIX,he.mp3(e)):he.box(he.types.stsd,he.constants.STSD_PREFIX,he.mp4a(e)):he.box(he.types.stsd,he.constants.STSD_PREFIX,he.avc1(e))}static mp3(e){let t=e.channelCount,i=e.audioSampleRate,r=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t,0,16,0,0,0,0,i>>>8&255,255&i,0,0]);return he.box(he.types[".mp3"],r)}static mp4a(e){let t=e.channelCount,i=e.audioSampleRate,r=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t,0,16,0,0,0,0,i>>>8&255,255&i,0,0]);return he.box(he.types.mp4a,r,he.esds(e))}static esds(e){let t=e.config||[],i=t.length,r=new Uint8Array([0,0,0,0,3,23+i,0,1,0,4,15+i,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([i]).concat(t).concat([6,1,2]));return he.box(he.types.esds,r)}static avc1(e){let t=e.avcc,i=e.codecWidth,r=e.codecHeight,n=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,i>>>8&255,255&i,r>>>8&255,255&r,0,72,0,0,0,72,0,0,0,0,0,0,0,1,10,120,113,113,47,102,108,118,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return he.box(he.types.avc1,n,he.box(he.types.avcC,t))}static mvex(e){return he.box(he.types.mvex,he.trex(e))}static trex(e){let t=e.id,i=new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]);return he.box(he.types.trex,i)}static moof(e,t){return he.box(he.types.moof,he.mfhd(e.sequenceNumber),he.traf(e,t))}static mfhd(e){let t=new Uint8Array([0,0,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e]);return he.box(he.types.mfhd,t)}static traf(e,t){let i=e.id,r=he.box(he.types.tfhd,new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i])),n=he.box(he.types.tfdt,new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t])),a=he.sdtp(e),s=he.trun(e,a.byteLength+16+16+8+16+8+8);return he.box(he.types.traf,r,n,s,a)}static sdtp(e){let t=e.samples||[],i=t.length,r=new Uint8Array(4+i);for(let n=0;n>>24&255,r>>>16&255,r>>>8&255,255&r,t>>>24&255,t>>>16&255,t>>>8&255,255&t],0);for(let s=0;s>>24&255,e>>>16&255,e>>>8&255,255&e,t>>>24&255,t>>>16&255,t>>>8&255,255&t,r.isLeading<<2|r.dependsOn,r.isDependedOn<<6|r.hasRedundancy<<4|r.isNonSync,0,0,n>>>24&255,n>>>16&255,n>>>8&255,255&n],12+16*s)}return he.box(he.types.trun,a)}static mdat(e){return he.box(he.types.mdat,e)}}he.init();var fe=he;class pe{static getSilentFrame(e,t){if("mp4a.40.2"===e){if(1===t)return new Uint8Array([0,200,0,128,35,128]);if(2===t)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(6===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224])}else{if(1===t)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(2===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(3===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}return null}}var me=pe;class ge{constructor(e,t,i,r,n){this.dts=e,this.pts=t,this.duration=i,this.originalDts=r,this.isSyncPoint=n,this.fileposition=null}}class ve{constructor(){this.beginDts=0,this.endDts=0,this.beginPts=0,this.endPts=0,this.originalBeginDts=0,this.originalEndDts=0,this.syncPoints=[],this.firstSample=null,this.lastSample=null}appendSyncPoint(e){e.isSyncPoint=!0,this.syncPoints.push(e)}}class ye{constructor(){this._list=[]}clear(){this._list=[]}appendArray(e){let t=this._list;0!==e.length&&(t.length>0&&e[0].originalDts=t[n].dts&&et[r].lastSample.originalDts&&e=t[r].lastSample.originalDts&&(r===t.length-1||r0&&(n=this._searchNearestSegmentBefore(i.originalBeginDts)+1),this._lastAppendLocation=n,this._list.splice(n,0,i)}getLastSegmentBefore(e){let t=this._searchNearestSegmentBefore(e);return t>=0?this._list[t]:null}getLastSampleBefore(e){let t=this.getLastSegmentBefore(e);return null!=t?t.lastSample:null}getLastSyncPointBefore(e){let t=this._searchNearestSegmentBefore(e),i=this._list[t].syncPoints;while(0===i.length&&t>0)t--,i=this._list[t].syncPoints;return i.length>0?i[i.length-1]:null}}class Ee{constructor(e){this.TAG="MP4Remuxer",this._config=e,this._isLive=!0===e.isLive,this._dtsBase=-1,this._dtsBaseInited=!1,this._audioDtsBase=1/0,this._videoDtsBase=1/0,this._audioNextDts=void 0,this._videoNextDts=void 0,this._audioStashedLastSample=null,this._videoStashedLastSample=null,this._audioMeta=null,this._videoMeta=null,this._audioSegmentInfoList=new _e("audio"),this._videoSegmentInfoList=new _e("video"),this._onInitSegment=null,this._onMediaSegment=null,this._forceFirstIDR=!(!k.chrome||!(k.version.major<50||50===k.version.major&&k.version.build<2661)),this._fillSilentAfterSeek=k.msedge||k.msie,this._mp3UseMpegAudio=!k.firefox,this._fillAudioTimestampGap=this._config.fixAudioTimestampGap}destroy(){this._dtsBase=-1,this._dtsBaseInited=!1,this._audioMeta=null,this._videoMeta=null,this._audioSegmentInfoList.clear(),this._audioSegmentInfoList=null,this._videoSegmentInfoList.clear(),this._videoSegmentInfoList=null,this._onInitSegment=null,this._onMediaSegment=null}bindDataSource(e){return e.onDataAvailable=this.remux.bind(this),e.onTrackMetadata=this._onTrackMetadataReceived.bind(this),this}get onInitSegment(){return this._onInitSegment}set onInitSegment(e){this._onInitSegment=e}get onMediaSegment(){return this._onMediaSegment}set onMediaSegment(e){this._onMediaSegment=e}insertDiscontinuity(){this._audioNextDts=this._videoNextDts=void 0}seek(e){this._audioStashedLastSample=null,this._videoStashedLastSample=null,this._videoSegmentInfoList.clear(),this._audioSegmentInfoList.clear()}remux(e,t){if(!this._onMediaSegment)throw new y("MP4Remuxer: onMediaSegment callback must be specificed!");this._dtsBaseInited||this._calculateDtsBase(e,t),this._remuxVideo(t),this._remuxAudio(e)}_onTrackMetadataReceived(e,t){let i=null,r="mp4",n=t.codec;if("audio"===e)this._audioMeta=t,"mp3"===t.codec&&this._mp3UseMpegAudio?(r="mpeg",n="",i=new Uint8Array):i=fe.generateInitSegment(t);else{if("video"!==e)return;this._videoMeta=t,i=fe.generateInitSegment(t)}if(!this._onInitSegment)throw new y("MP4Remuxer: onInitSegment callback must be specified!");this._onInitSegment(e,{type:e,data:i.buffer,codec:n,container:`${e}/${r}`,mediaDuration:t.duration})}_calculateDtsBase(e,t){this._dtsBaseInited||(e.samples&&e.samples.length&&(this._audioDtsBase=e.samples[0].dts),t.samples&&t.samples.length&&(this._videoDtsBase=t.samples[0].dts),this._dtsBase=Math.min(this._audioDtsBase,this._videoDtsBase),this._dtsBaseInited=!0)}flushStashedSamples(){let e=this._videoStashedLastSample,t=this._audioStashedLastSample,i={type:"video",id:1,sequenceNumber:0,samples:[],length:0};null!=e&&(i.samples.push(e),i.length=e.length);let r={type:"audio",id:2,sequenceNumber:0,samples:[],length:0};null!=t&&(r.samples.push(t),r.length=t.length),this._videoStashedLastSample=null,this._audioStashedLastSample=null,this._remuxVideo(i,!0),this._remuxAudio(r,!0)}_remuxAudio(e,t){if(null==this._audioMeta)return;let i=e,r=i.samples,n=void 0,a=-1,s=-1,o=this._audioMeta.refSampleDuration,l="mp3"===this._audioMeta.codec&&this._mp3UseMpegAudio,u=this._dtsBaseInited&&void 0===this._audioNextDts,d=!1;if(!r||0===r.length)return;if(1===r.length&&!t)return;let c=0,h=null,f=0;l?(c=0,f=i.length):(c=8,f=8+i.length);let m=null;if(r.length>1&&(m=r.pop(),f-=m.length),null!=this._audioStashedLastSample){let e=this._audioStashedLastSample;this._audioStashedLastSample=null,r.unshift(e),f+=e.length}null!=m&&(this._audioStashedLastSample=m);let g=r[0].dts-this._dtsBase;if(this._audioNextDts)n=g-this._audioNextDts;else if(this._audioSegmentInfoList.isEmpty())n=0,this._fillSilentAfterSeek&&!this._videoSegmentInfoList.isEmpty()&&"mp3"!==this._audioMeta.originalCodec&&(d=!0);else{let e=this._audioSegmentInfoList.getLastSampleBefore(g);if(null!=e){let t=g-(e.originalDts+e.duration);t<=3&&(t=0);let i=e.dts+e.duration+t;n=g-i}else n=0}if(d){let e=g-n,t=this._videoSegmentInfoList.getLastSegmentBefore(g);if(null!=t&&t.beginDts=1?v[v.length-1].duration:Math.floor(o);let u=!1,d=null;if(l>1.5*o&&"mp3"!==this._audioMeta.codec&&this._fillAudioTimestampGap&&!k.safari){u=!0;let e=Math.abs(l-o),r=Math.ceil(e/o),n=s+o;p.w(this.TAG,"Large audio timestamp gap detected, may cause AV sync to drift. Silent frames will be generated to avoid unsync.\n"+`dts: ${s+l} ms, expected: ${s+Math.round(o)} ms, `+`delta: ${Math.round(e)} ms, generate: ${r} frames`);let a=me.getSilentFrame(this._audioMeta.originalCodec,this._audioMeta.channelCount);null==a&&(p.w(this.TAG,"Unable to generate silent frame for "+`${this._audioMeta.originalCodec} with ${this._audioMeta.channelCount} channels, repeat last frame`),a=t),d=[];for(let t=0;t0){let t=d[d.length-1];t.duration=e-t.dts}let t={dts:e,pts:e,cts:0,unit:a,size:a.byteLength,duration:0,originalDts:i,flags:{isLeading:0,dependsOn:1,isDependedOn:0,hasRedundancy:0}};d.push(t),f+=t.size,n+=o}let c=d[d.length-1];c.duration=s+l-c.dts,l=Math.round(o)}v.push({dts:s,pts:s,cts:0,unit:e.unit,size:e.unit.byteLength,duration:l,originalDts:i,flags:{isLeading:0,dependsOn:1,isDependedOn:0,hasRedundancy:0}}),u&&v.push.apply(v,d)}l?h=new Uint8Array(f):(h=new Uint8Array(f),h[0]=f>>>24&255,h[1]=f>>>16&255,h[2]=f>>>8&255,h[3]=255&f,h.set(fe.types.mdat,4));for(let p=0;p1&&(h=r.pop(),c-=h.length),null!=this._videoStashedLastSample){let e=this._videoStashedLastSample;this._videoStashedLastSample=null,r.unshift(e),c+=e.length}null!=h&&(this._videoStashedLastSample=h);let f=r[0].dts-this._dtsBase;if(this._videoNextDts)n=f-this._videoNextDts;else if(this._videoSegmentInfoList.isEmpty())n=0;else{let e=this._videoSegmentInfoList.getLastSampleBefore(f);if(null!=e){let t=f-(e.originalDts+e.duration);t<=3&&(t=0);let i=e.dts+e.duration+t;n=f-i}else n=0}let p=new ve,m=[];for(let y=0;y=1?m[m.length-1].duration:Math.floor(this._videoMeta.refSampleDuration);if(i){let t=new ge(s,u,d,e.dts,!0);t.fileposition=e.fileposition,p.appendSyncPoint(t)}m.push({dts:s,pts:u,cts:l,units:e.units,size:e.length,isKeyframe:i,duration:d,originalDts:t,flags:{isLeading:0,dependsOn:i?2:1,isDependedOn:i?1:0,hasRedundancy:0,isNonSync:i?0:1}})}d=new Uint8Array(c),d[0]=c>>>24&255,d[1]=c>>>16&255,d[2]=c>>>8&255,d[3]=255&c,d.set(fe.types.mdat,4);for(let y=0;y{r.timestampBase=i,i+=r.duration,r.cors=e.cors,r.withCredentials=e.withCredentials,t.referrerPolicy&&(r.referrerPolicy=t.referrerPolicy)}),isNaN(i)||this._mediaDataSource.duration===i||(this._mediaDataSource.duration=i),this._mediaInfo=null,this._demuxer=null,this._remuxer=null,this._ioctl=null,this._pendingSeekTime=null,this._pendingResolveSeekPoint=null,this._statisticsReporter=null}destroy(){this._mediaInfo=null,this._mediaDataSource=null,this._statisticsReporter&&this._disableStatisticsReporter(),this._ioctl&&(this._ioctl.destroy(),this._ioctl=null),this._demuxer&&(this._demuxer.destroy(),this._demuxer=null),this._remuxer&&(this._remuxer.destroy(),this._remuxer=null),this._emitter.removeAllListeners(),this._emitter=null}on(e,t){this._emitter.addListener(e,t)}off(e,t){this._emitter.removeListener(e,t)}start(){this._loadSegment(0),this._enableStatisticsReporter()}_loadSegment(e,t){this._currentSegmentIndex=e;let i=this._mediaDataSource.segments[e],r=this._ioctl=new G(i,this._config,e);r.onError=this._onIOException.bind(this),r.onSeeked=this._onIOSeeked.bind(this),r.onComplete=this._onIOComplete.bind(this),r.onRedirect=this._onIORedirect.bind(this),r.onRecoveredEarlyEof=this._onIORecoveredEarlyEof.bind(this),t?this._demuxer.bindDataSource(this._ioctl):r.onDataArrival=this._onInitChunkArrival.bind(this),r.open(t)}stop(){this._internalAbort(),this._disableStatisticsReporter()}_internalAbort(){this._ioctl&&(this._ioctl.destroy(),this._ioctl=null)}pause(){this._ioctl&&this._ioctl.isWorking()&&(this._ioctl.pause(),this._disableStatisticsReporter())}resume(){this._ioctl&&this._ioctl.isPaused()&&(this._ioctl.resume(),this._enableStatisticsReporter())}seek(e){if(null==this._mediaInfo||!this._mediaInfo.isSeekable())return;let t=this._searchSegmentIndexContains(e);if(t===this._currentSegmentIndex){let i=this._mediaInfo.segments[t];if(void 0==i)this._pendingSeekTime=e;else{let t=i.getNearestKeyframe(e);this._remuxer.seek(t.milliseconds),this._ioctl.seek(t.fileposition),this._pendingResolveSeekPoint=t.milliseconds}}else{let i=this._mediaInfo.segments[t];if(void 0==i)this._pendingSeekTime=e,this._internalAbort(),this._remuxer.seek(),this._remuxer.insertDiscontinuity(),this._loadSegment(t);else{let r=i.getNearestKeyframe(e);this._internalAbort(),this._remuxer.seek(e),this._remuxer.insertDiscontinuity(),this._demuxer.resetMediaInfo(),this._demuxer.timestampBase=this._mediaDataSource.segments[t].timestampBase,this._loadSegment(t,r.fileposition),this._pendingResolveSeekPoint=r.milliseconds,this._reportSegmentMediaInfo(t)}}this._enableStatisticsReporter()}_searchSegmentIndexContains(e){let t=this._mediaDataSource.segments,i=t.length-1;for(let r=0;r0)this._demuxer.bindDataSource(this._ioctl),this._demuxer.timestampBase=this._mediaDataSource.segments[this._currentSegmentIndex].timestampBase,r=this._demuxer.parseChunks(e,t);else if((i=ce.probe(e)).match){this._demuxer=new ce(i,this._config),this._remuxer||(this._remuxer=new be(this._config));let n=this._mediaDataSource;void 0==n.duration||isNaN(n.duration)||(this._demuxer.overridedDuration=n.duration),"boolean"===typeof n.hasAudio&&(this._demuxer.overridedHasAudio=n.hasAudio),"boolean"===typeof n.hasVideo&&(this._demuxer.overridedHasVideo=n.hasVideo),this._demuxer.timestampBase=n.segments[this._currentSegmentIndex].timestampBase,this._demuxer.onError=this._onDemuxException.bind(this),this._demuxer.onMediaInfo=this._onMediaInfo.bind(this),this._demuxer.onMetaDataArrived=this._onMetaDataArrived.bind(this),this._demuxer.onScriptDataArrived=this._onScriptDataArrived.bind(this),this._remuxer.bindDataSource(this._demuxer.bindDataSource(this._ioctl)),this._remuxer.onInitSegment=this._onRemuxerInitSegmentArrival.bind(this),this._remuxer.onMediaSegment=this._onRemuxerMediaSegmentArrival.bind(this),r=this._demuxer.parseChunks(e,t)}else i=null,p.e(this.TAG,"Non-FLV, Unsupported media type!"),Promise.resolve().then(()=>{this._internalAbort()}),this._emitter.emit(Te.DEMUX_ERROR,le.FORMAT_UNSUPPORTED,"Non-FLV, Unsupported media type"),r=0;return r}_onMediaInfo(e){null==this._mediaInfo&&(this._mediaInfo=Object.assign({},e),this._mediaInfo.keyframesIndex=null,this._mediaInfo.segments=[],this._mediaInfo.segmentCount=this._mediaDataSource.segments.length,Object.setPrototypeOf(this._mediaInfo,$.prototype));let t=Object.assign({},e);Object.setPrototypeOf(t,$.prototype),this._mediaInfo.segments[this._currentSegmentIndex]=t,this._reportSegmentMediaInfo(this._currentSegmentIndex),null!=this._pendingSeekTime&&Promise.resolve().then(()=>{let e=this._pendingSeekTime;this._pendingSeekTime=null,this.seek(e)})}_onMetaDataArrived(e){this._emitter.emit(Te.METADATA_ARRIVED,e)}_onScriptDataArrived(e){this._emitter.emit(Te.SCRIPTDATA_ARRIVED,e)}_onIOSeeked(){this._remuxer.insertDiscontinuity()}_onIOComplete(e){let t=e,i=t+1;i0&&e[0].originalDts===i&&(i=e[0].pts),this._emitter.emit(Te.RECOMMEND_SEEKPOINT,i)}}_enableStatisticsReporter(){null==this._statisticsReporter&&(this._statisticsReporter=self.setInterval(this._reportStatisticsInfo.bind(this),this._config.statisticsInfoReportInterval))}_disableStatisticsReporter(){this._statisticsReporter&&(self.clearInterval(this._statisticsReporter),this._statisticsReporter=null)}_reportSegmentMediaInfo(e){let t=this._mediaInfo.segments[e],i=Object.assign({},t);i.duration=this._mediaInfo.duration,i.segmentCount=this._mediaInfo.segmentCount,delete i.segments,delete i.keyframesIndex,this._emitter.emit(Te.MEDIA_INFO,i)}_reportStatisticsInfo(){let e={};e.url=this._ioctl.currentURL,e.hasRedirect=this._ioctl.hasRedirect,e.hasRedirect&&(e.redirectedURL=this._ioctl.currentRedirectedURL),e.speed=this._ioctl.currentSpeed,e.loaderType=this._ioctl.loaderType,e.currentSegmentIndex=this._currentSegmentIndex,e.totalSegmentCount=this._mediaDataSource.segments.length,this._emitter.emit(Te.STATISTICS_INFO,e)}}var Ae=we;let ke=function(e){let t=null,i=m.bind(this);function r(t,i){let r={msg:Te.INIT_SEGMENT,data:{type:t,data:i}};e.postMessage(r,[i.data])}function n(t,i){let r={msg:Te.MEDIA_SEGMENT,data:{type:t,data:i}};e.postMessage(r,[i.data])}function a(){let t={msg:Te.LOADING_COMPLETE};e.postMessage(t)}function s(){let t={msg:Te.RECOVERED_EARLY_EOF};e.postMessage(t)}function o(t){let i={msg:Te.MEDIA_INFO,data:t};e.postMessage(i)}function l(t){let i={msg:Te.METADATA_ARRIVED,data:t};e.postMessage(i)}function u(t){let i={msg:Te.SCRIPTDATA_ARRIVED,data:t};e.postMessage(i)}function c(t){let i={msg:Te.STATISTICS_INFO,data:t};e.postMessage(i)}function h(t,i){e.postMessage({msg:Te.IO_ERROR,data:{type:t,info:i}})}function f(t,i){e.postMessage({msg:Te.DEMUX_ERROR,data:{type:t,info:i}})}function p(t){e.postMessage({msg:Te.RECOMMEND_SEEKPOINT,data:t})}function m(t,i){e.postMessage({msg:"logcat_callback",data:{type:t,logcat:i}})}d.install(),e.addEventListener("message",(function(d){switch(d.data.cmd){case"init":t=new Ae(d.data.param[0],d.data.param[1]),t.on(Te.IO_ERROR,h.bind(this)),t.on(Te.DEMUX_ERROR,f.bind(this)),t.on(Te.INIT_SEGMENT,r.bind(this)),t.on(Te.MEDIA_SEGMENT,n.bind(this)),t.on(Te.LOADING_COMPLETE,a.bind(this)),t.on(Te.RECOVERED_EARLY_EOF,s.bind(this)),t.on(Te.MEDIA_INFO,o.bind(this)),t.on(Te.METADATA_ARRIVED,l.bind(this)),t.on(Te.SCRIPTDATA_ARRIVED,u.bind(this)),t.on(Te.STATISTICS_INFO,c.bind(this)),t.on(Te.RECOMMEND_SEEKPOINT,p.bind(this));break;case"destroy":t&&(t.destroy(),t=null),e.postMessage({msg:"destroyed"});break;case"start":t.start();break;case"stop":t.stop();break;case"seek":t.seek(d.data.param);break;case"pause":t.pause();break;case"resume":t.resume();break;case"logging_config":{let e=d.data.param;Y.applyConfig(e),!0===e.enableCallback?Y.addLogListener(i):Y.removeLogListener(i);break}}}))};var Re=ke;class Le{constructor(e,t){if(this.TAG="Transmuxer",this._emitter=new h.a,t.enableWorker&&"undefined"!==typeof Worker)try{let r=i("d2be");this._worker=r(Re),this._workerDestroying=!1,this._worker.addEventListener("message",this._onWorkerMessage.bind(this)),this._worker.postMessage({cmd:"init",param:[e,t]}),this.e={onLoggingConfigChanged:this._onLoggingConfigChanged.bind(this)},Y.registerListener(this.e.onLoggingConfigChanged),this._worker.postMessage({cmd:"logging_config",param:Y.getConfig()})}catch(r){p.e(this.TAG,"Error while initialize transmuxing worker, fallback to inline transmuxing"),this._worker=null,this._controller=new Ae(e,t)}else this._controller=new Ae(e,t);if(this._controller){let e=this._controller;e.on(Te.IO_ERROR,this._onIOError.bind(this)),e.on(Te.DEMUX_ERROR,this._onDemuxError.bind(this)),e.on(Te.INIT_SEGMENT,this._onInitSegment.bind(this)),e.on(Te.MEDIA_SEGMENT,this._onMediaSegment.bind(this)),e.on(Te.LOADING_COMPLETE,this._onLoadingComplete.bind(this)),e.on(Te.RECOVERED_EARLY_EOF,this._onRecoveredEarlyEof.bind(this)),e.on(Te.MEDIA_INFO,this._onMediaInfo.bind(this)),e.on(Te.METADATA_ARRIVED,this._onMetaDataArrived.bind(this)),e.on(Te.SCRIPTDATA_ARRIVED,this._onScriptDataArrived.bind(this)),e.on(Te.STATISTICS_INFO,this._onStatisticsInfo.bind(this)),e.on(Te.RECOMMEND_SEEKPOINT,this._onRecommendSeekpoint.bind(this))}}destroy(){this._worker?this._workerDestroying||(this._workerDestroying=!0,this._worker.postMessage({cmd:"destroy"}),Y.removeListener(this.e.onLoggingConfigChanged),this.e=null):(this._controller.destroy(),this._controller=null),this._emitter.removeAllListeners(),this._emitter=null}on(e,t){this._emitter.addListener(e,t)}off(e,t){this._emitter.removeListener(e,t)}hasWorker(){return null!=this._worker}open(){this._worker?this._worker.postMessage({cmd:"start"}):this._controller.start()}close(){this._worker?this._worker.postMessage({cmd:"stop"}):this._controller.stop()}seek(e){this._worker?this._worker.postMessage({cmd:"seek",param:e}):this._controller.seek(e)}pause(){this._worker?this._worker.postMessage({cmd:"pause"}):this._controller.pause()}resume(){this._worker?this._worker.postMessage({cmd:"resume"}):this._controller.resume()}_onInitSegment(e,t){Promise.resolve().then(()=>{this._emitter.emit(Te.INIT_SEGMENT,e,t)})}_onMediaSegment(e,t){Promise.resolve().then(()=>{this._emitter.emit(Te.MEDIA_SEGMENT,e,t)})}_onLoadingComplete(){Promise.resolve().then(()=>{this._emitter.emit(Te.LOADING_COMPLETE)})}_onRecoveredEarlyEof(){Promise.resolve().then(()=>{this._emitter.emit(Te.RECOVERED_EARLY_EOF)})}_onMediaInfo(e){Promise.resolve().then(()=>{this._emitter.emit(Te.MEDIA_INFO,e)})}_onMetaDataArrived(e){Promise.resolve().then(()=>{this._emitter.emit(Te.METADATA_ARRIVED,e)})}_onScriptDataArrived(e){Promise.resolve().then(()=>{this._emitter.emit(Te.SCRIPTDATA_ARRIVED,e)})}_onStatisticsInfo(e){Promise.resolve().then(()=>{this._emitter.emit(Te.STATISTICS_INFO,e)})}_onIOError(e,t){Promise.resolve().then(()=>{this._emitter.emit(Te.IO_ERROR,e,t)})}_onDemuxError(e,t){Promise.resolve().then(()=>{this._emitter.emit(Te.DEMUX_ERROR,e,t)})}_onRecommendSeekpoint(e){Promise.resolve().then(()=>{this._emitter.emit(Te.RECOMMEND_SEEKPOINT,e)})}_onLoggingConfigChanged(e){this._worker&&this._worker.postMessage({cmd:"logging_config",param:e})}_onWorkerMessage(e){let t=e.data,i=t.data;if("destroyed"===t.msg||this._workerDestroying)return this._workerDestroying=!1,this._worker.terminate(),void(this._worker=null);switch(t.msg){case Te.INIT_SEGMENT:case Te.MEDIA_SEGMENT:this._emitter.emit(t.msg,i.type,i.data);break;case Te.LOADING_COMPLETE:case Te.RECOVERED_EARLY_EOF:this._emitter.emit(t.msg);break;case Te.MEDIA_INFO:Object.setPrototypeOf(i,$.prototype),this._emitter.emit(t.msg,i);break;case Te.METADATA_ARRIVED:case Te.SCRIPTDATA_ARRIVED:case Te.STATISTICS_INFO:this._emitter.emit(t.msg,i);break;case Te.IO_ERROR:case Te.DEMUX_ERROR:this._emitter.emit(t.msg,i.type,i.info);break;case Te.RECOMMEND_SEEKPOINT:this._emitter.emit(t.msg,i);break;case"logcat_callback":p.emitter.emit("log",i.type,i.logcat);break;default:break}}}var De=Le;const Ie={ERROR:"error",SOURCE_OPEN:"source_open",UPDATE_END:"update_end",BUFFER_FULL:"buffer_full"};var Ce=Ie;class Oe{constructor(e){this.TAG="MSEController",this._config=e,this._emitter=new h.a,this._config.isLive&&void 0==this._config.autoCleanupSourceBuffer&&(this._config.autoCleanupSourceBuffer=!0),this.e={onSourceOpen:this._onSourceOpen.bind(this),onSourceEnded:this._onSourceEnded.bind(this),onSourceClose:this._onSourceClose.bind(this),onSourceBufferError:this._onSourceBufferError.bind(this),onSourceBufferUpdateEnd:this._onSourceBufferUpdateEnd.bind(this)},this._mediaSource=null,this._mediaSourceObjectURL=null,this._mediaElement=null,this._isBufferFull=!1,this._hasPendingEos=!1,this._requireSetMediaDuration=!1,this._pendingMediaDuration=0,this._pendingSourceBufferInit=[],this._mimeTypes={video:null,audio:null},this._sourceBuffers={video:null,audio:null},this._lastInitSegments={video:null,audio:null},this._pendingSegments={video:[],audio:[]},this._pendingRemoveRanges={video:[],audio:[]},this._idrList=new ye}destroy(){(this._mediaElement||this._mediaSource)&&this.detachMediaElement(),this.e=null,this._emitter.removeAllListeners(),this._emitter=null}on(e,t){this._emitter.addListener(e,t)}off(e,t){this._emitter.removeListener(e,t)}attachMediaElement(e){if(this._mediaSource)throw new y("MediaSource has been attached to an HTMLMediaElement!");let t=this._mediaSource=new window.MediaSource;t.addEventListener("sourceopen",this.e.onSourceOpen),t.addEventListener("sourceended",this.e.onSourceEnded),t.addEventListener("sourceclose",this.e.onSourceClose),this._mediaElement=e,this._mediaSourceObjectURL=window.URL.createObjectURL(this._mediaSource),e.src=this._mediaSourceObjectURL}detachMediaElement(){if(this._mediaSource){let t=this._mediaSource;for(let i in this._sourceBuffers){let r=this._pendingSegments[i];r.splice(0,r.length),this._pendingSegments[i]=null,this._pendingRemoveRanges[i]=null,this._lastInitSegments[i]=null;let n=this._sourceBuffers[i];if(n){if("closed"!==t.readyState){try{t.removeSourceBuffer(n)}catch(e){p.e(this.TAG,e.message)}n.removeEventListener("error",this.e.onSourceBufferError),n.removeEventListener("updateend",this.e.onSourceBufferUpdateEnd)}this._mimeTypes[i]=null,this._sourceBuffers[i]=null}}if("open"===t.readyState)try{t.endOfStream()}catch(e){p.e(this.TAG,e.message)}t.removeEventListener("sourceopen",this.e.onSourceOpen),t.removeEventListener("sourceended",this.e.onSourceEnded),t.removeEventListener("sourceclose",this.e.onSourceClose),this._pendingSourceBufferInit=[],this._isBufferFull=!1,this._idrList.clear(),this._mediaSource=null}this._mediaElement&&(this._mediaElement.src="",this._mediaElement.removeAttribute("src"),this._mediaElement=null),this._mediaSourceObjectURL&&(window.URL.revokeObjectURL(this._mediaSourceObjectURL),this._mediaSourceObjectURL=null)}appendInitSegment(e,t){if(!this._mediaSource||"open"!==this._mediaSource.readyState)return this._pendingSourceBufferInit.push(e),void this._pendingSegments[e.type].push(e);let i=e,r=`${i.container}`;i.codec&&i.codec.length>0&&(r+=`;codecs=${i.codec}`);let n=!1;if(p.v(this.TAG,"Received Initialization Segment, mimeType: "+r),this._lastInitSegments[i.type]=i,r!==this._mimeTypes[i.type]){if(this._mimeTypes[i.type])p.v(this.TAG,`Notice: ${i.type} mimeType changed, origin: ${this._mimeTypes[i.type]}, target: ${r}`);else{n=!0;try{let e=this._sourceBuffers[i.type]=this._mediaSource.addSourceBuffer(r);e.addEventListener("error",this.e.onSourceBufferError),e.addEventListener("updateend",this.e.onSourceBufferUpdateEnd)}catch(a){return p.e(this.TAG,a.message),void this._emitter.emit(Ce.ERROR,{code:a.code,msg:a.message})}}this._mimeTypes[i.type]=r}t||this._pendingSegments[i.type].push(i),n||this._sourceBuffers[i.type]&&!this._sourceBuffers[i.type].updating&&this._doAppendSegments(),k.safari&&"audio/mpeg"===i.container&&i.mediaDuration>0&&(this._requireSetMediaDuration=!0,this._pendingMediaDuration=i.mediaDuration/1e3,this._updateMediaSourceDuration())}appendMediaSegment(e){let t=e;this._pendingSegments[t.type].push(t),this._config.autoCleanupSourceBuffer&&this._needCleanupSourceBuffer()&&this._doCleanupSourceBuffer();let i=this._sourceBuffers[t.type];!i||i.updating||this._hasPendingRemoveRanges()||this._doAppendSegments()}seek(e){for(let i in this._sourceBuffers){if(!this._sourceBuffers[i])continue;let e=this._sourceBuffers[i];if("open"===this._mediaSource.readyState)try{e.abort()}catch(t){p.e(this.TAG,t.message)}this._idrList.clear();let r=this._pendingSegments[i];if(r.splice(0,r.length),"closed"!==this._mediaSource.readyState){for(let t=0;t=1&&e-t.start(0)>=this._config.autoCleanupMaxBackwardDuration)return!0}}return!1}_doCleanupSourceBuffer(){let e=this._mediaElement.currentTime;for(let t in this._sourceBuffers){let i=this._sourceBuffers[t];if(i){let r=i.buffered,n=!1;for(let i=0;i=this._config.autoCleanupMaxBackwardDuration){n=!0;let i=e-this._config.autoCleanupMinBackwardDuration;this._pendingRemoveRanges[t].push({start:a,end:i})}}else s0&&(isNaN(t)||i>t)&&(p.v(this.TAG,`Update MediaSource duration from ${t} to ${i}`),this._mediaSource.duration=i),this._requireSetMediaDuration=!1,this._pendingMediaDuration=0}_doRemoveRanges(){for(let e in this._pendingRemoveRanges){if(!this._sourceBuffers[e]||this._sourceBuffers[e].updating)continue;let t=this._sourceBuffers[e],i=this._pendingRemoveRanges[e];while(i.length&&!t.updating){let e=i.shift();t.remove(e.start,e.end)}}}_doAppendSegments(){let e=this._pendingSegments;for(let i in e)if(this._sourceBuffers[i]&&!this._sourceBuffers[i].updating&&e[i].length>0){let r=e[i].shift();if(r.timestampOffset){let e=this._sourceBuffers[i].timestampOffset,t=r.timestampOffset/1e3,n=Math.abs(e-t);n>.1&&(p.v(this.TAG,`Update MPEG audio timestampOffset from ${e} to ${t}`),this._sourceBuffers[i].timestampOffset=t),delete r.timestampOffset}if(!r.data||0===r.data.byteLength)continue;try{this._sourceBuffers[i].appendBuffer(r.data),this._isBufferFull=!1,"video"===i&&r.hasOwnProperty("info")&&this._idrList.appendArray(r.info.syncPoints)}catch(t){this._pendingSegments[i].unshift(r),22===t.code?(this._isBufferFull||this._emitter.emit(Ce.BUFFER_FULL),this._isBufferFull=!0):(p.e(this.TAG,t.message),this._emitter.emit(Ce.ERROR,{code:t.code,msg:t.message}))}}}_onSourceOpen(){if(p.v(this.TAG,"MediaSource onSourceOpen"),this._mediaSource.removeEventListener("sourceopen",this.e.onSourceOpen),this._pendingSourceBufferInit.length>0){let e=this._pendingSourceBufferInit;while(e.length){let t=e.shift();this.appendInitSegment(t,!0)}}this._hasPendingSegments()&&this._doAppendSegments(),this._emitter.emit(Ce.SOURCE_OPEN)}_onSourceEnded(){p.v(this.TAG,"MediaSource onSourceEnded")}_onSourceClose(){p.v(this.TAG,"MediaSource onSourceClose"),this._mediaSource&&null!=this.e&&(this._mediaSource.removeEventListener("sourceopen",this.e.onSourceOpen),this._mediaSource.removeEventListener("sourceended",this.e.onSourceEnded),this._mediaSource.removeEventListener("sourceclose",this.e.onSourceClose))}_hasPendingSegments(){let e=this._pendingSegments;return e.video.length>0||e.audio.length>0}_hasPendingRemoveRanges(){let e=this._pendingRemoveRanges;return e.video.length>0||e.audio.length>0}_onSourceBufferUpdateEnd(){this._requireSetMediaDuration?this._updateMediaSourceDuration():this._hasPendingRemoveRanges()?this._doRemoveRanges():this._hasPendingSegments()?this._doAppendSegments():this._hasPendingEos&&this.endOfStream(),this._emitter.emit(Ce.UPDATE_END)}_onSourceBufferError(e){p.e(this.TAG,`SourceBuffer Error: ${e}`)}}var xe=Oe;const Me={NETWORK_ERROR:"NetworkError",MEDIA_ERROR:"MediaError",OTHER_ERROR:"OtherError"},Pe={NETWORK_EXCEPTION:S.EXCEPTION,NETWORK_STATUS_CODE_INVALID:S.HTTP_STATUS_CODE_INVALID,NETWORK_TIMEOUT:S.CONNECTING_TIMEOUT,NETWORK_UNRECOVERABLE_EARLY_EOF:S.UNRECOVERABLE_EARLY_EOF,MEDIA_MSE_ERROR:"MediaMSEError",MEDIA_FORMAT_ERROR:le.FORMAT_ERROR,MEDIA_FORMAT_UNSUPPORTED:le.FORMAT_UNSUPPORTED,MEDIA_CODEC_UNSUPPORTED:le.CODEC_UNSUPPORTED};class Fe{constructor(e,t){if(this.TAG="FlvPlayer",this._type="FlvPlayer",this._emitter=new h.a,this._config=V(),"object"===typeof t&&Object.assign(this._config,t),"flv"!==e.type.toLowerCase())throw new _("FlvPlayer requires an flv MediaDataSource input!");!0===e.isLive&&(this._config.isLive=!0),this.e={onvLoadedMetadata:this._onvLoadedMetadata.bind(this),onvSeeking:this._onvSeeking.bind(this),onvCanPlay:this._onvCanPlay.bind(this),onvStalled:this._onvStalled.bind(this),onvProgress:this._onvProgress.bind(this)},self.performance&&self.performance.now?this._now=self.performance.now.bind(self.performance):this._now=Date.now,this._pendingSeekTime=null,this._requestSetTime=!1,this._seekpointRecord=null,this._progressChecker=null,this._mediaDataSource=e,this._mediaElement=null,this._msectl=null,this._transmuxer=null,this._mseSourceOpened=!1,this._hasPendingLoad=!1,this._receivedCanPlay=!1,this._mediaInfo=null,this._statisticsInfo=null;let i=k.chrome&&(k.version.major<50||50===k.version.major&&k.version.build<2661);this._alwaysSeekKeyframe=!!(i||k.msedge||k.msie),this._alwaysSeekKeyframe&&(this._config.accurateSeek=!1)}destroy(){null!=this._progressChecker&&(window.clearInterval(this._progressChecker),this._progressChecker=null),this._transmuxer&&this.unload(),this._mediaElement&&this.detachMediaElement(),this.e=null,this._mediaDataSource=null,this._emitter.removeAllListeners(),this._emitter=null}on(e,t){e===z.MEDIA_INFO?null!=this._mediaInfo&&Promise.resolve().then(()=>{this._emitter.emit(z.MEDIA_INFO,this.mediaInfo)}):e===z.STATISTICS_INFO&&null!=this._statisticsInfo&&Promise.resolve().then(()=>{this._emitter.emit(z.STATISTICS_INFO,this.statisticsInfo)}),this._emitter.addListener(e,t)}off(e,t){this._emitter.removeListener(e,t)}attachMediaElement(e){if(this._mediaElement=e,e.addEventListener("loadedmetadata",this.e.onvLoadedMetadata),e.addEventListener("seeking",this.e.onvSeeking),e.addEventListener("canplay",this.e.onvCanPlay),e.addEventListener("stalled",this.e.onvStalled),e.addEventListener("progress",this.e.onvProgress),this._msectl=new xe(this._config),this._msectl.on(Ce.UPDATE_END,this._onmseUpdateEnd.bind(this)),this._msectl.on(Ce.BUFFER_FULL,this._onmseBufferFull.bind(this)),this._msectl.on(Ce.SOURCE_OPEN,()=>{this._mseSourceOpened=!0,this._hasPendingLoad&&(this._hasPendingLoad=!1,this.load())}),this._msectl.on(Ce.ERROR,e=>{this._emitter.emit(z.ERROR,Me.MEDIA_ERROR,Pe.MEDIA_MSE_ERROR,e)}),this._msectl.attachMediaElement(e),null!=this._pendingSeekTime)try{e.currentTime=this._pendingSeekTime,this._pendingSeekTime=null}catch(t){}}detachMediaElement(){this._mediaElement&&(this._msectl.detachMediaElement(),this._mediaElement.removeEventListener("loadedmetadata",this.e.onvLoadedMetadata),this._mediaElement.removeEventListener("seeking",this.e.onvSeeking),this._mediaElement.removeEventListener("canplay",this.e.onvCanPlay),this._mediaElement.removeEventListener("stalled",this.e.onvStalled),this._mediaElement.removeEventListener("progress",this.e.onvProgress),this._mediaElement=null),this._msectl&&(this._msectl.destroy(),this._msectl=null)}load(){if(!this._mediaElement)throw new y("HTMLMediaElement must be attached before load()!");if(this._transmuxer)throw new y("FlvPlayer.load() has been called, please call unload() first!");this._hasPendingLoad||(this._config.deferLoadAfterSourceOpen&&!1===this._mseSourceOpened?this._hasPendingLoad=!0:(this._mediaElement.readyState>0&&(this._requestSetTime=!0,this._mediaElement.currentTime=0),this._transmuxer=new De(this._mediaDataSource,this._config),this._transmuxer.on(Te.INIT_SEGMENT,(e,t)=>{this._msectl.appendInitSegment(t)}),this._transmuxer.on(Te.MEDIA_SEGMENT,(e,t)=>{if(this._msectl.appendMediaSegment(t),this._config.lazyLoad&&!this._config.isLive){let e=this._mediaElement.currentTime;t.info.endDts>=1e3*(e+this._config.lazyLoadMaxDuration)&&null==this._progressChecker&&(p.v(this.TAG,"Maximum buffering duration exceeded, suspend transmuxing task"),this._suspendTransmuxer())}}),this._transmuxer.on(Te.LOADING_COMPLETE,()=>{this._msectl.endOfStream(),this._emitter.emit(z.LOADING_COMPLETE)}),this._transmuxer.on(Te.RECOVERED_EARLY_EOF,()=>{this._emitter.emit(z.RECOVERED_EARLY_EOF)}),this._transmuxer.on(Te.IO_ERROR,(e,t)=>{this._emitter.emit(z.ERROR,Me.NETWORK_ERROR,e,t)}),this._transmuxer.on(Te.DEMUX_ERROR,(e,t)=>{this._emitter.emit(z.ERROR,Me.MEDIA_ERROR,e,{code:-1,msg:t})}),this._transmuxer.on(Te.MEDIA_INFO,e=>{this._mediaInfo=e,this._emitter.emit(z.MEDIA_INFO,Object.assign({},e))}),this._transmuxer.on(Te.METADATA_ARRIVED,e=>{this._emitter.emit(z.METADATA_ARRIVED,e)}),this._transmuxer.on(Te.SCRIPTDATA_ARRIVED,e=>{this._emitter.emit(z.SCRIPTDATA_ARRIVED,e)}),this._transmuxer.on(Te.STATISTICS_INFO,e=>{this._statisticsInfo=this._fillStatisticsInfo(e),this._emitter.emit(z.STATISTICS_INFO,Object.assign({},this._statisticsInfo))}),this._transmuxer.on(Te.RECOMMEND_SEEKPOINT,e=>{this._mediaElement&&!this._config.accurateSeek&&(this._requestSetTime=!0,this._mediaElement.currentTime=e/1e3)}),this._transmuxer.open()))}unload(){this._mediaElement&&this._mediaElement.pause(),this._msectl&&this._msectl.seek(0),this._transmuxer&&(this._transmuxer.close(),this._transmuxer.destroy(),this._transmuxer=null)}play(){return this._mediaElement.play()}pause(){this._mediaElement.pause()}get type(){return this._type}get buffered(){return this._mediaElement.buffered}get duration(){return this._mediaElement.duration}get volume(){return this._mediaElement.volume}set volume(e){this._mediaElement.volume=e}get muted(){return this._mediaElement.muted}set muted(e){this._mediaElement.muted=e}get currentTime(){return this._mediaElement?this._mediaElement.currentTime:0}set currentTime(e){this._mediaElement?this._internalSeek(e):this._pendingSeekTime=e}get mediaInfo(){return Object.assign({},this._mediaInfo)}get statisticsInfo(){return null==this._statisticsInfo&&(this._statisticsInfo={}),this._statisticsInfo=this._fillStatisticsInfo(this._statisticsInfo),Object.assign({},this._statisticsInfo)}_fillStatisticsInfo(e){if(e.playerType=this._type,!(this._mediaElement instanceof HTMLVideoElement))return e;let t=!0,i=0,r=0;if(this._mediaElement.getVideoPlaybackQuality){let e=this._mediaElement.getVideoPlaybackQuality();i=e.totalVideoFrames,r=e.droppedVideoFrames}else void 0!=this._mediaElement.webkitDecodedFrameCount?(i=this._mediaElement.webkitDecodedFrameCount,r=this._mediaElement.webkitDroppedFrameCount):t=!1;return t&&(e.decodedFrames=i,e.droppedFrames=r),e}_onmseUpdateEnd(){if(!this._config.lazyLoad||this._config.isLive)return;let e=this._mediaElement.buffered,t=this._mediaElement.currentTime,i=0,r=0;for(let n=0;n=t+this._config.lazyLoadMaxDuration&&null==this._progressChecker&&(p.v(this.TAG,"Maximum buffering duration exceeded, suspend transmuxing task"),this._suspendTransmuxer())}_onmseBufferFull(){p.v(this.TAG,"MSE SourceBuffer is full, suspend transmuxing task"),null==this._progressChecker&&this._suspendTransmuxer()}_suspendTransmuxer(){this._transmuxer&&(this._transmuxer.pause(),null==this._progressChecker&&(this._progressChecker=window.setInterval(this._checkProgressAndResume.bind(this),1e3)))}_checkProgressAndResume(){let e=this._mediaElement.currentTime,t=this._mediaElement.buffered,i=!1;for(let r=0;r=n&&e=a-this._config.lazyLoadRecoverDuration&&(i=!0);break}}i&&(window.clearInterval(this._progressChecker),this._progressChecker=null,i&&(p.v(this.TAG,"Continue loading from paused position"),this._transmuxer.resume()))}_isTimepointBuffered(e){let t=this._mediaElement.buffered;for(let i=0;i=r&&e0){let t=this._mediaElement.buffered.start(0);(t<1&&e0&&t.currentTime0){let e=i.start(0);if(e<1&&t{this._emitter.emit(z.MEDIA_INFO,this.mediaInfo)}):e===z.STATISTICS_INFO&&null!=this._mediaElement&&0!==this._mediaElement.readyState&&Promise.resolve().then(()=>{this._emitter.emit(z.STATISTICS_INFO,this.statisticsInfo)}),this._emitter.addListener(e,t)}off(e,t){this._emitter.removeListener(e,t)}attachMediaElement(e){if(this._mediaElement=e,e.addEventListener("loadedmetadata",this.e.onvLoadedMetadata),null!=this._pendingSeekTime)try{e.currentTime=this._pendingSeekTime,this._pendingSeekTime=null}catch(t){}}detachMediaElement(){this._mediaElement&&(this._mediaElement.src="",this._mediaElement.removeAttribute("src"),this._mediaElement.removeEventListener("loadedmetadata",this.e.onvLoadedMetadata),this._mediaElement=null),null!=this._statisticsReporter&&(window.clearInterval(this._statisticsReporter),this._statisticsReporter=null)}load(){if(!this._mediaElement)throw new y("HTMLMediaElement must be attached before load()!");this._mediaElement.src=this._mediaDataSource.url,this._mediaElement.readyState>0&&(this._mediaElement.currentTime=0),this._mediaElement.preload="auto",this._mediaElement.load(),this._statisticsReporter=window.setInterval(this._reportStatisticsInfo.bind(this),this._config.statisticsInfoReportInterval)}unload(){this._mediaElement&&(this._mediaElement.src="",this._mediaElement.removeAttribute("src")),null!=this._statisticsReporter&&(window.clearInterval(this._statisticsReporter),this._statisticsReporter=null)}play(){return this._mediaElement.play()}pause(){this._mediaElement.pause()}get type(){return this._type}get buffered(){return this._mediaElement.buffered}get duration(){return this._mediaElement.duration}get volume(){return this._mediaElement.volume}set volume(e){this._mediaElement.volume=e}get muted(){return this._mediaElement.muted}set muted(e){this._mediaElement.muted=e}get currentTime(){return this._mediaElement?this._mediaElement.currentTime:0}set currentTime(e){this._mediaElement?this._mediaElement.currentTime=e:this._pendingSeekTime=e}get mediaInfo(){let e=this._mediaElement instanceof HTMLAudioElement?"audio/":"video/",t={mimeType:e+this._mediaDataSource.type};return this._mediaElement&&(t.duration=Math.floor(1e3*this._mediaElement.duration),this._mediaElement instanceof HTMLVideoElement&&(t.width=this._mediaElement.videoWidth,t.height=this._mediaElement.videoHeight)),t}get statisticsInfo(){let e={playerType:this._type,url:this._mediaDataSource.url};if(!(this._mediaElement instanceof HTMLVideoElement))return e;let t=!0,i=0,r=0;if(this._mediaElement.getVideoPlaybackQuality){let e=this._mediaElement.getVideoPlaybackQuality();i=e.totalVideoFrames,r=e.droppedVideoFrames}else void 0!=this._mediaElement.webkitDecodedFrameCount?(i=this._mediaElement.webkitDecodedFrameCount,r=this._mediaElement.webkitDroppedFrameCount):t=!1;return t&&(e.decodedFrames=i,e.droppedFrames=r),e}_onvLoadedMetadata(e){null!=this._pendingSeekTime&&(this._mediaElement.currentTime=this._pendingSeekTime,this._pendingSeekTime=null),this._emitter.emit(z.MEDIA_INFO,this.mediaInfo)}_reportStatisticsInfo(){this._emitter.emit(z.STATISTICS_INFO,this.statisticsInfo)}}var Ue=Ne;function Ge(e,t){let i=e;if(null==i||"object"!==typeof i)throw new _("MediaDataSource must be an javascript object!");if(!i.hasOwnProperty("type"))throw new _("MediaDataSource must has type field to indicate video file type!");switch(i.type){case"flv":return new Be(i,t);default:return new Ue(i,t)}}function je(){return K.supportMSEH264Playback()}function Ve(){return K.getFeatureList()}d.install();let qe={};qe.createPlayer=Ge,qe.isSupported=je,qe.getFeatureList=Ve,qe.BaseLoader=T,qe.LoaderStatus=b,qe.LoaderErrors=S,qe.Events=z,qe.ErrorTypes=Me,qe.ErrorDetails=Pe,qe.FlvPlayer=Be,qe.NativePlayer=Ue,qe.LoggingControl=Y,Object.defineProperty(qe,"version",{enumerable:!0,get:function(){return"__VERSION__"}});var Ke=qe,He=i("ba56"),ze=i.n(He),We=i("f7a5"),Ye=i.n(We);window.flvjs=Ke,window.Hls=ze.a;var Xe={name:"VideoPlayer",data:function(){return{options:{container:null,video:{url:""},subtitle:null,autoplay:!1},player:null}},props:{data:Object},mounted:function(){var e=l(regeneratorRuntime.mark((function e(){var t,i,r,n;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:this.options.container=document.getElementById("dplayer"),t=this.data,i=this.$store.getters.tableData,r=!1,i.find((function(e){if(e.name===t.name+".vtt")return r=!0,n=e.url,!0})),r&&(this.options.subtitle={url:n,type:"webvtt",fontSize:"25px",bottom:"10%",color:"#b7daff"}),this.player=new Ye.a(this.options),this.player.switchVideo({url:t.url});case 8:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}(),destroyed:function(){this.player.destroy()},watch:{url:function(e){this.player.switchVideo({url:e})}}},$e=Xe,Qe=(i("9bb6"),i("2877")),Je=Object(Qe["a"])($e,r,n,!1,null,null,null);t["default"]=Je.exports},"5c95":function(e,t,i){var r=i("35e8");e.exports=function(e,t,i){for(var n in t)i&&e[n]?e[n]=t[n]:r(e,n,t[n]);return e}},"656e":function(e,t,i){"use strict";var r=i("79aa");function n(e){var t,i;this.promise=new e((function(e,r){if(void 0!==t||void 0!==i)throw TypeError("Bad Promise constructor");t=e,i=r})),this.resolve=r(t),this.reject=r(i)}e.exports.f=function(e){return new n(e)}},"696e":function(e,t,i){i("c207"),i("1654"),i("6c1c"),i("24c5"),i("3c11"),i("43fc"),e.exports=i("584a").Promise},"795b":function(e,t,i){e.exports=i("696e")},"7cd6":function(e,t,i){var r=i("40c3"),n=i("5168")("iterator"),a=i("481b");e.exports=i("584a").getIteratorMethod=function(e){if(void 0!=e)return e[n]||e["@@iterator"]||a[r(e)]}},"96cf":function(e,t,i){var r=function(e){"use strict";var t,i=Object.prototype,r=i.hasOwnProperty,n="function"===typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",s=n.asyncIterator||"@@asyncIterator",o=n.toStringTag||"@@toStringTag";function l(e,t,i,r){var n=t&&t.prototype instanceof m?t:m,a=Object.create(n.prototype),s=new L(r||[]);return a._invoke=w(e,i,s),a}function u(e,t,i){try{return{type:"normal",arg:e.call(t,i)}}catch(r){return{type:"throw",arg:r}}}e.wrap=l;var d="suspendedStart",c="suspendedYield",h="executing",f="completed",p={};function m(){}function g(){}function v(){}var y={};y[a]=function(){return this};var _=Object.getPrototypeOf,E=_&&_(_(D([])));E&&E!==i&&r.call(E,a)&&(y=E);var b=v.prototype=m.prototype=Object.create(y);function S(e){["next","throw","return"].forEach((function(t){e[t]=function(e){return this._invoke(t,e)}}))}function T(e){function t(i,n,a,s){var o=u(e[i],e,n);if("throw"!==o.type){var l=o.arg,d=l.value;return d&&"object"===typeof d&&r.call(d,"__await")?Promise.resolve(d.__await).then((function(e){t("next",e,a,s)}),(function(e){t("throw",e,a,s)})):Promise.resolve(d).then((function(e){l.value=e,a(l)}),(function(e){return t("throw",e,a,s)}))}s(o.arg)}var i;function n(e,r){function n(){return new Promise((function(i,n){t(e,r,i,n)}))}return i=i?i.then(n,n):n()}this._invoke=n}function w(e,t,i){var r=d;return function(n,a){if(r===h)throw new Error("Generator is already running");if(r===f){if("throw"===n)throw a;return I()}i.method=n,i.arg=a;while(1){var s=i.delegate;if(s){var o=A(s,i);if(o){if(o===p)continue;return o}}if("next"===i.method)i.sent=i._sent=i.arg;else if("throw"===i.method){if(r===d)throw r=f,i.arg;i.dispatchException(i.arg)}else"return"===i.method&&i.abrupt("return",i.arg);r=h;var l=u(e,t,i);if("normal"===l.type){if(r=i.done?f:c,l.arg===p)continue;return{value:l.arg,done:i.done}}"throw"===l.type&&(r=f,i.method="throw",i.arg=l.arg)}}}function A(e,i){var r=e.iterator[i.method];if(r===t){if(i.delegate=null,"throw"===i.method){if(e.iterator["return"]&&(i.method="return",i.arg=t,A(e,i),"throw"===i.method))return p;i.method="throw",i.arg=new TypeError("The iterator does not provide a 'throw' method")}return p}var n=u(r,e.iterator,i.arg);if("throw"===n.type)return i.method="throw",i.arg=n.arg,i.delegate=null,p;var a=n.arg;return a?a.done?(i[e.resultName]=a.value,i.next=e.nextLoc,"return"!==i.method&&(i.method="next",i.arg=t),i.delegate=null,p):a:(i.method="throw",i.arg=new TypeError("iterator result is not an object"),i.delegate=null,p)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function R(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function L(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function D(e){if(e){var i=e[a];if(i)return i.call(e);if("function"===typeof e.next)return e;if(!isNaN(e.length)){var n=-1,s=function i(){while(++n=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return n("end");if(s.tryLoc<=this.prev){var l=r.call(s,"catchLoc"),u=r.call(s,"finallyLoc");if(l&&u){if(this.prev=0;--i){var n=this.tryEntries[i];if(n.tryLoc<=this.prev&&r.call(n,"finallyLoc")&&this.prev=0;--t){var i=this.tryEntries[t];if(i.finallyLoc===e)return this.complete(i.completion,i.afterLoc),R(i),p}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var i=this.tryEntries[t];if(i.tryLoc===e){var r=i.completion;if("throw"===r.type){var n=r.arg;R(i)}return n}}throw new Error("illegal catch attempt")},delegateYield:function(e,i,r){return this.delegate={iterator:D(e),resultName:i,nextLoc:r},"next"===this.method&&(this.arg=t),p}},e}(e.exports);try{regeneratorRuntime=r}catch(n){Function("r","regeneratorRuntime = r")(r)}},"9bb6":function(e,t,i){"use strict";var r=i("49f6"),n=i.n(r);n.a},a22a:function(e,t,i){var r=i("d864"),n=i("b0dc"),a=i("3702"),s=i("e4ae"),o=i("b447"),l=i("7cd6"),u={},d={};t=e.exports=function(e,t,i,c,h){var f,p,m,g,v=h?function(){return e}:l(e),y=r(i,c,t?2:1),_=0;if("function"!=typeof v)throw TypeError(e+" is not iterable!");if(a(v)){for(f=o(e.length);f>_;_++)if(g=t?y(s(p=e[_])[0],p[1]):y(e[_]),g===u||g===d)return g}else for(m=v.call(e);!(p=m.next()).done;)if(g=n(m,y,p.value,t),g===u||g===d)return g};t.BREAK=u,t.RETURN=d},aba2:function(e,t,i){var r=i("e53d"),n=i("4178").set,a=r.MutationObserver||r.WebKitMutationObserver,s=r.process,o=r.Promise,l="process"==i("6b4c")(s);e.exports=function(){var e,t,i,u=function(){var r,n;l&&(r=s.domain)&&r.exit();while(e){n=e.fn,e=e.next;try{n()}catch(a){throw e?i():t=void 0,a}}t=void 0,r&&r.enter()};if(l)i=function(){s.nextTick(u)};else if(!a||r.navigator&&r.navigator.standalone)if(o&&o.resolve){var d=o.resolve(void 0);i=function(){d.then(u)}}else i=function(){n.call(r,u)};else{var c=!0,h=document.createTextNode("");new a(u).observe(h,{characterData:!0}),i=function(){h.data=c=!c}}return function(r){var n={fn:r,next:void 0};t&&(t.next=n),e||(e=n,i()),t=n}}},b0dc:function(e,t,i){var r=i("e4ae");e.exports=function(e,t,i,n){try{return n?t(r(i)[0],i[1]):t(i)}catch(s){var a=e["return"];throw void 0!==a&&r(a.call(e)),s}}},ba56:function(e,t,i){"undefined"!==typeof window&&function(t,i){e.exports=i()}(0,(function(){return function(e){var t={};function i(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=e,i.c=t,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(r,n,function(t){return e[t]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s="./src/hls.ts")}({"./node_modules/eventemitter3/index.js": -/*!*********************************************!*\ - !*** ./node_modules/eventemitter3/index.js ***! - \*********************************************/ -/*! no static exports found */ -/*! ModuleConcatenation bailout: Module is not an ECMAScript module */function(e,t,i){"use strict";var r=Object.prototype.hasOwnProperty,n="~";function a(){}function s(e,t,i){this.fn=e,this.context=t,this.once=i||!1}function o(e,t,i,r,a){if("function"!==typeof i)throw new TypeError("The listener must be a function");var o=new s(i,r||e,a),l=n?n+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],o]:e._events[l].push(o):(e._events[l]=o,e._eventsCount++),e}function l(e,t){0===--e._eventsCount?e._events=new a:delete e._events[t]}function u(){this._events=new a,this._eventsCount=0}Object.create&&(a.prototype=Object.create(null),(new a).__proto__||(n=!1)),u.prototype.eventNames=function(){var e,t,i=[];if(0===this._eventsCount)return i;for(t in e=this._events)r.call(e,t)&&i.push(n?t.slice(1):t);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},u.prototype.listeners=function(e){var t=n?n+e:e,i=this._events[t];if(!i)return[];if(i.fn)return[i.fn];for(var r=0,a=i.length,s=new Array(a);r0}),!1)}function d(e,t){var i={main:[t]},r={main:[]},n={main:{}};while(u(i))for(var a=Object.keys(i),s=0;s>>8^255&g^99,e[f]=g,t[g]=f;var v=h[f],y=h[v],_=h[y],E=257*h[g]^16843008*g;r[f]=E<<24|E>>>8,n[f]=E<<16|E>>>16,a[f]=E<<8|E>>>24,s[f]=E,E=16843009*_^65537*y^257*v^16843008*f,l[g]=E<<24|E>>>8,u[g]=E<<16|E>>>16,d[g]=E<<8|E>>>24,c[g]=E,f?(f=v^h[h[h[_^v]]],p^=h[h[p]]):f=p=1}},t.expandKey=function(e){var t=this.uint8ArrayToUint32Array_(e),i=!0,r=0;while(r>>6),l=(60&t[i+2])>>>2,!(l>p.length-1))return d=(1&t[i+2])<<2,d|=(192&t[i+3])>>>6,o["logger"].log("manifest codec:"+a+",ADTS data:type:"+s+",sampleingIndex:"+l+"["+p[l]+"Hz],channelConfig:"+d),/firefox/i.test(h)?l>=6?(s=5,c=new Array(4),u=l-3):(s=2,c=new Array(2),u=l):-1!==h.indexOf("android")?(s=2,c=new Array(2),u=l):(s=5,c=new Array(4),a&&(-1!==a.indexOf("mp4a.40.29")||-1!==a.indexOf("mp4a.40.5"))||!a&&l>=6?u=l-3:((a&&-1!==a.indexOf("mp4a.40.2")&&(l>=6&&1===d||/vivaldi/i.test(h))||!a&&1===d)&&(s=2,c=new Array(2)),u=l)),c[0]=s<<3,c[0]|=(14&l)>>1,c[1]|=(1&l)<<7,c[1]|=d<<3,5===s&&(c[1]|=(14&u)>>1,c[2]=(1&u)<<7,c[2]|=8,c[3]=0),{config:c,samplerate:p[l],channelCount:d,codec:"mp4a.40."+s,manifestCodec:f};e.trigger(r["default"].ERROR,{type:n["ErrorTypes"].MEDIA_ERROR,details:n["ErrorDetails"].FRAG_PARSING_ERROR,fatal:!0,reason:"invalid ADTS sampling index:"+l})}function d(e,t){return 255===e[t]&&240===(246&e[t+1])}function c(e,t){return 1&e[t+1]?7:9}function h(e,t){return(3&e[t+3])<<11|e[t+4]<<3|(224&e[t+5])>>>5}function f(e,t){return!!(t+10&&t+a+s<=l)return o=i+r*n,{headerLength:a,frameLength:s,stamp:o}}function y(e,t,i,r,n){var a=g(e.samplerate),s=v(t,i,r,n,a);if(s){var o=s.stamp,l=s.headerLength,u=s.frameLength,d={unit:t.subarray(i+l,i+l+u),pts:o,dts:o};return e.samples.push(d),{sample:d,length:u+l}}}var _=i("./src/demux/id3.js"),E=function(){function e(e,t,i){this.observer=e,this.config=i,this.remuxer=t}var t=e.prototype;return t.resetInitSegment=function(e,t,i,r){this._audioTrack={container:"audio/adts",type:"audio",id:0,sequenceNumber:0,isAAC:!0,samples:[],len:0,manifestCodec:t,duration:r,inputTimeScale:9e4}},t.resetTimeStamp=function(){},e.probe=function(e){if(!e)return!1;for(var t=_["default"].getID3Data(e,0)||[],i=t.length,r=e.length;it.length)){var a=this.parseHeader(t,i);if(a&&i+a.frameLength<=t.length){var s=9e4*a.samplesPerFrame/a.sampleRate,o=r+n*s,l={unit:t.subarray(i,i+a.frameLength),pts:o,dts:o};return e.config=[],e.channelCount=a.channelCount,e.samplerate=a.sampleRate,e.samples.push(l),{sample:l,length:a.frameLength}}}},parseHeader:function(e,t){var i=e[t+1]>>3&3,r=e[t+1]>>1&3,n=e[t+2]>>4&15,a=e[t+2]>>2&3,s=e[t+2]>>1&1;if(1!==i&&0!==n&&15!==n&&3!==a){var o=3===i?3-r:3===r?3:4,l=1e3*T.BitratesMap[14*o+n-1],u=3===i?0:2===i?1:2,d=T.SamplingRateMap[3*u+a],c=e[t+3]>>6===3?1:2,h=T.SamplesCoefficients[i][r],f=T.BytesInSlot[r],p=8*h*f,m=parseInt(h*l/d+s,10)*f;return{sampleRate:d,channelCount:c,frameLength:m,samplesPerFrame:p}}},isHeaderPattern:function(e,t){return 255===e[t]&&224===(224&e[t+1])&&0!==(6&e[t+1])},isHeader:function(e,t){return!!(t+1e?(this.word<<=e,this.bitsAvailable-=e):(e-=this.bitsAvailable,t=e>>3,e-=t>>3,this.bytesAvailable-=t,this.loadWord(),this.word<<=e,this.bitsAvailable-=e)},t.readBits=function(e){var t=Math.min(this.bitsAvailable,e),i=this.word>>>32-t;return e>32&&o["logger"].error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=t,this.bitsAvailable>0?this.word<<=t:this.bytesAvailable>0&&this.loadWord(),t=e-t,t>0&&this.bitsAvailable?i<>>e))return this.word<<=e,this.bitsAvailable-=e,e;return this.loadWord(),e+this.skipLZ()},t.skipUEG=function(){this.skipBits(1+this.skipLZ())},t.skipEG=function(){this.skipBits(1+this.skipLZ())},t.readUEG=function(){var e=this.skipLZ();return this.readBits(e+1)-1},t.readEG=function(){var e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)},t.readBoolean=function(){return 1===this.readBits(1)},t.readUByte=function(){return this.readBits(8)},t.readUShort=function(){return this.readBits(16)},t.readUInt=function(){return this.readBits(32)},t.skipScalingList=function(e){var t,i,r=8,n=8;for(t=0;t=e.length)return void i();if(!(e[t].unit.length<32)){var r=this.decrypter.isSync();if(this.decryptAacSample(e,t,i,r),!r)return}}},t.getAvcEncryptedData=function(e){for(var t=16*Math.floor((e.length-48)/160)+16,i=new Int8Array(t),r=0,n=32;n<=e.length-16;n+=160,r+=16)i.set(e.subarray(n,n+16),r);return i},t.getAvcDecryptedUnit=function(e,t){t=new Uint8Array(t);for(var i=0,r=32;r<=e.length-16;r+=160,i+=16)e.set(t.subarray(i,i+16),r);return e},t.decryptAvcSample=function(e,t,i,r,n,a){var s=this.discardEPB(n.data),o=this.getAvcEncryptedData(s),l=this;this.decryptBuffer(o.buffer,(function(o){n.data=l.getAvcDecryptedUnit(s,o),a||l.decryptAvcSamples(e,t,i+1,r)}))},t.decryptAvcSamples=function(e,t,i,r){for(;;t++,i=0){if(t>=e.length)return void r();for(var n=e[t].units;;i++){if(i>=n.length)break;var a=n[i];if(!(a.length<=48||1!==a.type&&5!==a.type)){var s=this.decrypter.isSync();if(this.decryptAvcSample(e,t,i,r,a,s),!s)return}}}},e}(),L=R,D={video:1,audio:2,id3:3,text:4},I=function(){function e(e,t,i,r){this.observer=e,this.config=i,this.typeSupported=r,this.remuxer=t,this.sampleAes=null}var t=e.prototype;return t.setDecryptData=function(e){null!=e&&null!=e.key&&"SAMPLE-AES"===e.method?this.sampleAes=new L(this.observer,this.config,e,this.discardEPB):this.sampleAes=null},e.probe=function(t){var i=e._syncOffset(t);return!(i<0)&&(i&&o["logger"].warn("MPEG2-TS detected but first sync word found @ offset "+i+", junk ahead ?"),!0)},e._syncOffset=function(e){var t=Math.min(1e3,e.length-564),i=0;while(i>4,c>1){if(h=l+5+t[l+4],h===l+188)continue}else h=l+4;switch(d){case E:u&&(w&&(f=D(w))&&void 0!==f.pts&&I(f,!1),w={data:[],size:0}),w&&(w.data.push(t.subarray(h,l+188)),w.size+=l+188-h);break;case b:u&&(A&&(f=D(A))&&void 0!==f.pts&&(y.isAAC?C(f):O(f)),A={data:[],size:0}),A&&(A.data.push(t.subarray(h,l+188)),A.size+=l+188-h);break;case S:u&&(k&&(f=D(k))&&void 0!==f.pts&&x(f),k={data:[],size:0}),k&&(k.data.push(t.subarray(h,l+188)),k.size+=l+188-h);break;case 0:u&&(h+=t[h]+1),T=this._pmtId=R(t,h);break;case T:u&&(h+=t[h]+1);var P=L(t,h,!0===this.typeSupported.mpeg||!0===this.typeSupported.mp3,null!=this.sampleAes);E=P.avc,E>0&&(v.pid=E),b=P.audio,b>0&&(y.pid=b,y.isAAC=P.isAAC),S=P.id3,S>0&&(_.pid=S),m&&!g&&(o["logger"].log("reparse from beginning"),m=!1,l=M-188),g=this.pmtParsed=!0;break;case 17:case 8191:break;default:m=!0;break}}else this.observer.trigger(r["default"].ERROR,{type:n["ErrorTypes"].MEDIA_ERROR,details:n["ErrorDetails"].FRAG_PARSING_ERROR,fatal:!1,reason:"TS packet did not start with 0x47"});w&&(f=D(w))&&void 0!==f.pts?(I(f,!0),v.pesData=null):v.pesData=w,A&&(f=D(A))&&void 0!==f.pts?(y.isAAC?C(f):O(f),y.pesData=null):(A&&A.size&&o["logger"].log("last AAC PES packet truncated,might overlap between fragments"),y.pesData=A),k&&(f=D(k))&&void 0!==f.pts?(x(f),_.pesData=null):_.pesData=k,null==this.sampleAes?this.remuxer.remux(y,v,_,this._txtTrack,i,a,s):this.decryptAndRemux(y,v,_,this._txtTrack,i,a,s)},t.decryptAndRemux=function(e,t,i,r,n,a,s){if(e.samples&&e.isAAC){var o=this;this.sampleAes.decryptAacSamples(e.samples,0,(function(){o.decryptAndRemuxAvc(e,t,i,r,n,a,s)}))}else this.decryptAndRemuxAvc(e,t,i,r,n,a,s)},t.decryptAndRemuxAvc=function(e,t,i,r,n,a,s){if(t.samples){var o=this;this.sampleAes.decryptAvcSamples(t.samples,0,0,(function(){o.remuxer.remux(e,t,i,r,n,a,s)}))}else this.remuxer.remux(e,t,i,r,n,a,s)},t.destroy=function(){this._initPTS=this._initDTS=void 0,this._duration=0},t._parsePAT=function(e,t){return(31&e[t+10])<<8|e[t+11]},t._parsePMT=function(e,t,i,r){var n,a,s,l,u={audio:-1,avc:-1,id3:-1,isAAC:!0};n=(15&e[t+1])<<8|e[t+2],a=t+3+n-4,s=(15&e[t+10])<<8|e[t+11],t+=12+s;while(t1){var f=new Uint8Array(h[0].length+h[1].length);f.set(h[0]),f.set(h[1],h[0].length),h[0]=f,h.splice(1,1)}if(t=h[0],r=(t[0]<<16)+(t[1]<<8)+t[2],1===r){if(n=(t[4]<<8)+t[5],n&&n>e.size-6)return null;if(i=t[7],192&i&&(l=536870912*(14&t[9])+4194304*(255&t[10])+16384*(254&t[11])+128*(255&t[12])+(254&t[13])/2,l>4294967295&&(l-=8589934592),64&i?(u=536870912*(14&t[14])+4194304*(255&t[15])+16384*(254&t[16])+128*(255&t[17])+(254&t[18])/2,u>4294967295&&(u-=8589934592),l-u>54e5&&(o["logger"].warn(Math.round((l-u)/9e4)+"s delta between PTS and DTS, align them"),l=u)):u=l),a=t[8],d=a+9,e.size<=d)return null;e.size-=d,s=new Uint8Array(e.size);for(var p=0,m=h.length;pg){d-=g;continue}t=t.subarray(d),g-=d,d=0}s.set(t,c),c+=g}return n&&(n-=a+3),{data:s,pts:l,dts:u,len:n}}return null},t.pushAccesUnit=function(e,t){if(e.units.length&&e.frame){var i=t.samples,r=i.length;!this.config.forceKeyFrameOnDiscontinuity||!0===e.key||t.sps&&(r||this.contiguous)?(e.id=r,i.push(e)):t.dropped++}e.debug.length&&o["logger"].log(e.pts+"/"+e.dts+":"+e.debug)},t._parseAVCPES=function(e,t){var i,r,n,a=this,s=this._avcTrack,o=this._parseAVCNALu(e.data),l=!1,u=this.avcSample,d=!1,c=this.pushAccesUnit.bind(this),h=function(e,t,i,r){return{key:e,pts:t,dts:i,units:[],debug:r}};e.data=null,u&&o.length&&!s.audFound&&(c(u,s),u=this.avcSample=h(!1,e.pts,e.dts,"")),o.forEach((function(t){switch(t.type){case 1:r=!0,u||(u=a.avcSample=h(!0,e.pts,e.dts,"")),l&&(u.debug+="NDR "),u.frame=!0;var o=t.data;if(d&&o.length>4){var f=new k(o).readSliceType();2!==f&&4!==f&&7!==f&&9!==f||(u.key=!0)}break;case 5:r=!0,u||(u=a.avcSample=h(!0,e.pts,e.dts,"")),l&&(u.debug+="IDR "),u.key=!0,u.frame=!0;break;case 6:r=!0,l&&u&&(u.debug+="SEI "),i=new k(a.discardEPB(t.data)),i.readUByte();var p=0,m=0,g=!1,v=0;while(!g&&i.bytesAvailable>1){p=0;do{v=i.readUByte(),p+=v}while(255===v);m=0;do{v=i.readUByte(),m+=v}while(255===v);if(4===p&&0!==i.bytesAvailable){g=!0;var y=i.readUByte();if(181===y){var E=i.readUShort();if(49===E){var b=i.readUInt();if(1195456820===b){var S=i.readUByte();if(3===S){var T=i.readUByte(),w=i.readUByte(),A=31&T,R=[T,w];for(n=0;n16){var L=[];for(n=0;n<16;n++)L.push(i.readUByte().toString(16)),3!==n&&5!==n&&7!==n&&9!==n||L.push("-");var D=m-16,I=new Uint8Array(D);for(n=0;n0){if(t.pts>=e[i-1].pts)e.push(t);else for(var r=i-1;r>=0;r--)if(t.pts=0)r={data:e.subarray(h,s-u-1),type:a},c.push(r);else{var f=this._getLastNalUnit();if(f&&(d&&s<=4-d&&f.state&&(f.data=f.data.subarray(0,f.data.byteLength-d)),i=s-u-1,i>0)){var p=new Uint8Array(f.data.byteLength+i);p.set(f.data,0),p.set(e.subarray(0,i),f.data.byteLength),f.data=p}}s=0&&u>=0&&(r={data:e.subarray(h,o),type:a,state:u},c.push(r)),0===c.length){var m=this._getLastNalUnit();if(m){var g=new Uint8Array(m.data.byteLength+e.byteLength);g.set(m.data,0),g.set(e,m.data.byteLength),m.data=g}}return l.naluState=u,c},t.discardEPB=function(e){var t,i,r=e.byteLength,n=[],a=1;while(a1&&(o["logger"].log("AAC: align PTS for overlapping frames by "+Math.round((S-p)/90)),p=S)}while(a>24&255,t[1]=r>>16&255,t[2]=r>>8&255,t[3]=255&r,t.set(e,4),n=0,r=8;n>24&255,t>>16&255,t>>8&255,255&t,r>>24,r>>16&255,r>>8&255,255&r,n>>24,n>>16&255,n>>8&255,255&n,85,196,0,0]))},e.mdia=function(t){return e.box(e.types.mdia,e.mdhd(t.timescale,t.duration),e.hdlr(t.type),e.minf(t))},e.mfhd=function(t){return e.box(e.types.mfhd,new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,255&t]))},e.minf=function(t){return"audio"===t.type?e.box(e.types.minf,e.box(e.types.smhd,e.SMHD),e.DINF,e.stbl(t)):e.box(e.types.minf,e.box(e.types.vmhd,e.VMHD),e.DINF,e.stbl(t))},e.moof=function(t,i,r){return e.box(e.types.moof,e.mfhd(t),e.traf(r,i))},e.moov=function(t){var i=t.length,r=[];while(i--)r[i]=e.trak(t[i]);return e.box.apply(null,[e.types.moov,e.mvhd(t[0].timescale,t[0].duration)].concat(r).concat(e.mvex(t)))},e.mvex=function(t){var i=t.length,r=[];while(i--)r[i]=e.trex(t[i]);return e.box.apply(null,[e.types.mvex].concat(r))},e.mvhd=function(t,i){i*=t;var r=Math.floor(i/(F+1)),n=Math.floor(i%(F+1)),a=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,255&t,r>>24,r>>16&255,r>>8&255,255&r,n>>24,n>>16&255,n>>8&255,255&n,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return e.box(e.types.mvhd,a)},e.sdtp=function(t){var i,r,n=t.samples||[],a=new Uint8Array(4+n.length);for(r=0;r>>8&255),a.push(255&n),a=a.concat(Array.prototype.slice.call(r));for(i=0;i>>8&255),s.push(255&n),s=s.concat(Array.prototype.slice.call(r));var o=e.box(e.types.avcC,new Uint8Array([1,a[3],a[4],a[5],255,224|t.sps.length].concat(a).concat([t.pps.length]).concat(s))),l=t.width,u=t.height,d=t.pixelRatio[0],c=t.pixelRatio[1];return e.box(e.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,l>>8&255,255&l,u>>8&255,255&u,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),o,e.box(e.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),e.box(e.types.pasp,new Uint8Array([d>>24,d>>16&255,d>>8&255,255&d,c>>24,c>>16&255,c>>8&255,255&c])))},e.esds=function(e){var t=e.config.length;return new Uint8Array([0,0,0,0,3,23+t,0,1,0,4,15+t,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([t]).concat(e.config).concat([6,1,2]))},e.mp4a=function(t){var i=t.samplerate;return e.box(e.types.mp4a,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t.channelCount,0,16,0,0,0,0,i>>8&255,255&i,0,0]),e.box(e.types.esds,e.esds(t)))},e.mp3=function(t){var i=t.samplerate;return e.box(e.types[".mp3"],new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t.channelCount,0,16,0,0,0,0,i>>8&255,255&i,0,0]))},e.stsd=function(t){return"audio"===t.type?t.isAAC||"mp3"!==t.codec?e.box(e.types.stsd,e.STSD,e.mp4a(t)):e.box(e.types.stsd,e.STSD,e.mp3(t)):e.box(e.types.stsd,e.STSD,e.avc1(t))},e.tkhd=function(t){var i=t.id,r=t.duration*t.timescale,n=t.width,a=t.height,s=Math.floor(r/(F+1)),o=Math.floor(r%(F+1));return e.box(e.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,i>>24&255,i>>16&255,i>>8&255,255&i,0,0,0,0,s>>24,s>>16&255,s>>8&255,255&s,o>>24,o>>16&255,o>>8&255,255&o,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,n>>8&255,255&n,0,0,a>>8&255,255&a,0,0]))},e.traf=function(t,i){var r=e.sdtp(t),n=t.id,a=Math.floor(i/(F+1)),s=Math.floor(i%(F+1));return e.box(e.types.traf,e.box(e.types.tfhd,new Uint8Array([0,0,0,0,n>>24,n>>16&255,n>>8&255,255&n])),e.box(e.types.tfdt,new Uint8Array([1,0,0,0,a>>24,a>>16&255,a>>8&255,255&a,s>>24,s>>16&255,s>>8&255,255&s])),e.trun(t,r.length+16+20+8+16+8+8),r)},e.trak=function(t){return t.duration=t.duration||4294967295,e.box(e.types.trak,e.tkhd(t),e.mdia(t))},e.trex=function(t){var i=t.id;return e.box(e.types.trex,new Uint8Array([0,0,0,0,i>>24,i>>16&255,i>>8&255,255&i,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))},e.trun=function(t,i){var r,n,a,s,o,l,u=t.samples||[],d=u.length,c=12+16*d,h=new Uint8Array(c);for(i+=8+c,h.set([0,0,15,1,d>>>24&255,d>>>16&255,d>>>8&255,255&d,i>>>24&255,i>>>16&255,i>>>8&255,255&i],0),r=0;r>>24&255,a>>>16&255,a>>>8&255,255&a,s>>>24&255,s>>>16&255,s>>>8&255,255&s,o.isLeading<<2|o.dependsOn,o.isDependedOn<<6|o.hasRedundancy<<4|o.paddingValue<<1|o.isNonSync,61440&o.degradPrio,15&o.degradPrio,l>>>24&255,l>>>16&255,l>>>8&255,255&l],12+16*r);return e.box(e.types.trun,h)},e.initSegment=function(t){e.types||e.init();var i,r=e.moov(t);return i=new Uint8Array(e.FTYP.byteLength+r.byteLength),i.set(e.FTYP),i.set(r,e.FTYP.byteLength),i},e}(),N=B,U=9e4;function G(e,t,i,r){void 0===i&&(i=1),void 0===r&&(r=!1);var n=e*t*i;return r?Math.round(n):n}function j(e,t){return void 0===t&&(t=!1),G(e,1e3,1/U,t)}function V(e,t){return void 0===t&&(t=1),G(e,U,1/t)}var q,K=V(10),H=V(.2),z=function(){function e(e,t,i,r){this.observer=e,this.config=t,this.typeSupported=i;var n=navigator.userAgent;this.isSafari=r&&r.indexOf("Apple")>-1&&n&&!n.match("CriOS"),this.ISGenerated=!1}var t=e.prototype;return t.destroy=function(){},t.resetTimeStamp=function(e){this._initPTS=this._initDTS=e},t.resetInitSegment=function(){this.ISGenerated=!1},t.remux=function(e,t,i,n,a,s,l){if(this.ISGenerated||this.generateIS(e,t,a),this.ISGenerated){var u=e.samples.length,d=t.samples.length,c=a,h=a;if(u&&d){var f=(e.samples[0].pts-t.samples[0].pts)/t.inputTimeScale;c+=Math.max(0,f),h+=Math.max(0,-f)}if(u){e.timescale||(o["logger"].warn("regenerate InitSegment as audio detected"),this.generateIS(e,t,a));var p,m=this.remuxAudio(e,c,s,l);if(d)m&&(p=m.endPTS-m.startPTS),t.timescale||(o["logger"].warn("regenerate InitSegment as video detected"),this.generateIS(e,t,a)),this.remuxVideo(t,h,s,p,l)}else if(d){var g=this.remuxVideo(t,h,s,0,l);g&&e.codec&&this.remuxEmptyAudio(e,c,s,g)}}i.samples.length&&this.remuxID3(i,a),n.samples.length&&this.remuxText(n,a),this.observer.trigger(r["default"].FRAG_PARSED)},t.generateIS=function(e,t,i){var a,s,l=this.observer,u=e.samples,d=t.samples,c=this.typeSupported,h="audio/mp4",f={},p={tracks:f},m=void 0===this._initPTS;if(m&&(a=s=1/0),e.config&&u.length&&(e.timescale=e.samplerate,o["logger"].log("audio sampling rate : "+e.samplerate),e.isAAC||(c.mpeg?(h="audio/mpeg",e.codec=""):c.mp3&&(e.codec="mp3")),f.audio={container:h,codec:e.codec,initSegment:!e.isAAC&&c.mpeg?new Uint8Array:N.initSegment([e]),metadata:{channelCount:e.channelCount}},m&&(a=s=u[0].pts-e.inputTimeScale*i)),t.sps&&t.pps&&d.length){var g=t.inputTimeScale;t.timescale=g,f.video={container:"video/mp4",codec:t.codec,initSegment:N.initSegment([t]),metadata:{width:t.width,height:t.height}},m&&(a=Math.min(a,d[0].pts-g*i),s=Math.min(s,d[0].dts-g*i),this.observer.trigger(r["default"].INIT_PTS_FOUND,{initPTS:a}))}Object.keys(f).length?(l.trigger(r["default"].FRAG_PARSING_INIT_SEGMENT,p),this.ISGenerated=!0,m&&(this._initPTS=a,this._initDTS=s)):l.trigger(r["default"].ERROR,{type:n["ErrorTypes"].MEDIA_ERROR,details:n["ErrorDetails"].FRAG_PARSING_ERROR,fatal:!1,reason:"no audio/video samples found"})},t.remuxVideo=function(e,t,i,a,s){var l,u,d,c,h,f,p,m=8,g=e.timescale,v=e.samples,y=[],_=v.length,E=this._PTSNormalize,b=this._initPTS,S=this.nextAvcDts,T=this.isSafari;if(0!==_){T&&(i|=v.length&&S&&(s&&Math.abs(t-S/g)<.1||Math.abs(v[0].pts-S-b)1?o["logger"].log("AVC: "+j(R,!0)+" ms hole between fragments detected,filling it"):R<-1&&o["logger"].log("AVC: "+j(-R,!0)+" ms overlapping between fragments detected"),h=S,v[0].dts=h,c=Math.max(c-R,S),v[0].pts=c,o["logger"].log("Video: PTS/DTS adjusted: "+j(c,!0)+"/"+j(h,!0)+", delta: "+j(R,!0)+" ms")),k=v[v.length-1],p=Math.max(k.dts,0),f=Math.max(k.pts,0,p),T&&(l=Math.round((p-h)/(v.length-1)));for(var L=0,D=0,I=0;I<_;I++){for(var C=v[I],O=C.units,x=O.length,M=0,P=0;P0?U-1:U].dts;if(Q.stretchShortVideoTrack){var Z=Q.maxBufferHole,ee=Math.floor(Z*g),te=(a?c+a*g:this.nextAudioPts)-G.pts;te>ee?(l=te-J,l<0&&(l=J),o["logger"].log("It is approximately "+j(te,!1)+" ms to the next segment; using duration "+j(l,!1)+" ms for the last video frame.")):l=J}else l=J}K=Math.round(G.pts-G.dts)}y.push({size:q,duration:l,cts:K,flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:G.key?2:1,isNonSync:G.key?0:1}})}this.nextAvcDts=p+l;var ie=e.dropped;if(e.nbNalu=0,e.dropped=0,y.length&&navigator.userAgent.toLowerCase().indexOf("chrome")>-1){var re=y[0].flags;re.dependsOn=2,re.isNonSync=0}e.samples=y,d=N.moof(e.sequenceNumber++,h,e),e.samples=[];var ne={data1:d,data2:u,startPTS:c/g,endPTS:(f+l)/g,startDTS:h/g,endDTS:this.nextAvcDts/g,type:"video",hasAudio:!1,hasVideo:!0,nb:y.length,dropped:ie};return this.observer.trigger(r["default"].FRAG_PARSING_DATA,ne),ne}},t.remuxAudio=function(e,t,i,a){var s,l,u,d,c,h,f=e.inputTimeScale,p=e.timescale,m=f/p,g=e.isAAC?1024:1152,v=g*m,y=this._PTSNormalize,_=this._initPTS,E=!e.isAAC&&this.typeSupported.mpeg,b=E?0:8,S=e.samples,T=[],w=this.nextAudioPts;if(i|=S.length&&w&&(a&&Math.abs(t-w/f)<.1||Math.abs(S[0].pts-w-_)<20*v),S.forEach((function(e){e.pts=e.dts=y(e.pts-_,t*f)})),S=S.filter((function(e){return e.pts>=0})),0!==S.length){if(i||(w=a?t*f:S[0].pts),e.isAAC)for(var A=this.config.maxAudioFramesDrift,k=0,R=w;k=A*v&&L0&&H0&&(l=P.getSilentFrame(e.manifestCodec||e.codec,e.channelCount),l||(l=V.subarray()),F+=z*l.length);else if(H<-12){o["logger"].log("drop overlapping AAC sample, expected/parsed/delta: "+j(w,!0)+" ms / "+j(q,!0)+" ms / "+j(-H,!0)+" ms"),F-=V.byteLength;continue}q=w}if(c=q,!(F>0))return;F+=b;try{u=new Uint8Array(F)}catch(ee){return void this.observer.trigger(r["default"].ERROR,{type:n["ErrorTypes"].MUX_ERROR,details:n["ErrorDetails"].REMUX_ALLOC_ERROR,fatal:!1,bytes:F,reason:"fail allocating audio mdat "+F})}if(!E){var W=new DataView(u.buffer);W.setUint32(0,F),u.set(N.types.mdat,4)}for(var Y=0;Y=2&&($=T[M-2].duration,s.duration=$),M){this.nextAudioPts=w=h+m*$,e.samples=T,d=E?new Uint8Array:N.moof(e.sequenceNumber++,c/m,e),e.samples=[];var Q=c/f,J=w/f,Z={data1:d,data2:u,startPTS:Q,endPTS:J,startDTS:Q,endDTS:J,type:"audio",hasAudio:!0,hasVideo:!1,nb:M};return this.observer.trigger(r["default"].FRAG_PARSING_DATA,Z),Z}return null}},t.remuxEmptyAudio=function(e,t,i,r){var n=e.inputTimeScale,a=e.samplerate?e.samplerate:n,s=n/a,l=this.nextAudioPts,u=(void 0!==l?l:r.startDTS*n)+this._initDTS,d=r.endDTS*n+this._initDTS,c=1024,h=s*c,f=Math.ceil((d-u)/h),p=P.getSilentFrame(e.manifestCodec||e.codec,e.channelCount);if(o["logger"].warn("remux empty Audio"),p){for(var m=[],g=0;g4294967296)e+=i;return e},e}(),W=z,Y=function(){function e(e){this.observer=e}var t=e.prototype;return t.destroy=function(){},t.resetTimeStamp=function(){},t.resetInitSegment=function(){},t.remux=function(e,t,i,n,a,s,o,l){var u=this.observer,d="";e&&(d+="audio"),t&&(d+="video"),u.trigger(r["default"].FRAG_PARSING_DATA,{data1:l,startPTS:a,startDTS:a,type:d,hasAudio:!!e,hasVideo:!!t,nb:1,dropped:0}),u.trigger(r["default"].FRAG_PARSED)},e}(),X=Y,$=Object(l["getSelfScope"])();try{q=$.performance.now.bind($.performance)}catch(J){o["logger"].debug("Unable to use Performance API on this environment"),q=$.Date.now}var Q=function(){function e(e,t,i,r){this.observer=e,this.typeSupported=t,this.config=i,this.vendor=r}var t=e.prototype;return t.destroy=function(){var e=this.demuxer;e&&e.destroy()},t.push=function(e,t,i,n,s,o,l,u,d,c,h,f){var p=this;if(e.byteLength>0&&null!=t&&null!=t.key&&"AES-128"===t.method){var m=this.decrypter;null==m&&(m=this.decrypter=new a["default"](this.observer,this.config));var g=q();m.decrypt(e,t.key.buffer,t.iv.buffer,(function(e){var a=q();p.observer.trigger(r["default"].FRAG_DECRYPTED,{stats:{tstart:g,tdecrypt:a}}),p.pushDecrypted(new Uint8Array(e),t,new Uint8Array(i),n,s,o,l,u,d,c,h,f)}))}else this.pushDecrypted(new Uint8Array(e),t,new Uint8Array(i),n,s,o,l,u,d,c,h,f)},t.pushDecrypted=function(e,t,i,a,s,o,l,u,d,c,h,f){var p=this.demuxer;if(!p||(l||u)&&!this.probe(e)){for(var m=this.observer,g=this.typeSupported,v=this.config,y=[{demux:C,remux:W},{demux:S["default"],remux:X},{demux:b,remux:W},{demux:x,remux:W}],_=0,E=y.length;_1?i-1:0),n=1;n1?i-1:0),n=1;n0)return t.subarray(r,r+n)},e._readSize=function(e,t){var i=0;return i=(127&e[t])<<21,i|=(127&e[t+1])<<14,i|=(127&e[t+2])<<7,i|=127&e[t+3],i},e.getTimeStamp=function(t){for(var i=e.getID3Frames(t),r=0;r>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:d+=String.fromCharCode(a);break;case 12:case 13:o=e[c++],d+=String.fromCharCode((31&a)<<6|63&o);break;case 14:o=e[c++],l=e[c++],d+=String.fromCharCode((15&a)<<12|(63&o)<<6|(63&l)<<0);break;default:}}return d},e}();function s(){var e=Object(n["getSelfScope"])();return r||"undefined"===typeof e.TextDecoder||(r=new e.TextDecoder("utf-8")),r}var o=a._utf8ArrayToStr;t["default"]=a},"./src/demux/mp4demuxer.js": -/*!*********************************!*\ - !*** ./src/demux/mp4demuxer.js ***! - \*********************************/ -/*! exports provided: default */function(e,t,i){"use strict";i.r(t);var r=i(/*! ../utils/logger */"./src/utils/logger.js"),n=i(/*! ../events */"./src/events.js"),a=Math.pow(2,32)-1,s=function(){function e(e,t){this.observer=e,this.remuxer=t}var t=e.prototype;return t.resetTimeStamp=function(e){this.initPTS=e},t.resetInitSegment=function(t,i,r,a){if(t&&t.byteLength){var s=this.initData=e.parseInitSegment(t);null==i&&(i="mp4a.40.5"),null==r&&(r="avc1.42e01e");var o={};s.audio&&s.video?o.audiovideo={container:"video/mp4",codec:i+","+r,initSegment:a?t:null}:(s.audio&&(o.audio={container:"audio/mp4",codec:i,initSegment:a?t:null}),s.video&&(o.video={container:"video/mp4",codec:r,initSegment:a?t:null})),this.observer.trigger(n["default"].FRAG_PARSING_INIT_SEGMENT,{tracks:o})}else i&&(this.audioCodec=i),r&&(this.videoCodec=r)},e.probe=function(t){return e.findBox({data:t,start:0,end:Math.min(t.length,16384)},["moof"]).length>0},e.bin2str=function(e){return String.fromCharCode.apply(null,e)},e.readUint16=function(e,t){e.data&&(t+=e.start,e=e.data);var i=e[t]<<8|e[t+1];return i<0?65536+i:i},e.readUint32=function(e,t){e.data&&(t+=e.start,e=e.data);var i=e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3];return i<0?4294967296+i:i},e.writeUint32=function(e,t,i){e.data&&(t+=e.start,e=e.data),e[t]=i>>24,e[t+1]=i>>16&255,e[t+2]=i>>8&255,e[t+3]=255&i},e.findBox=function(t,i){var r,n,a,s,o,l,u,d=[];if(t.data?(l=t.start,s=t.end,t=t.data):(l=0,s=t.byteLength),!i.length)return null;for(r=l;r1?r+n:s,a===i[0]&&(1===i.length?d.push({data:t,start:r+8,end:u}):(o=e.findBox({data:t,start:r+8,end:u},i.slice(1)),o.length&&(d=d.concat(o)))),r=u;return d},e.parseSegmentIndex=function(t){var i,r=e.findBox(t,["moov"])[0],n=r?r.end:null,a=0,s=e.findBox(t,["sidx"]);if(!s||!s[0])return null;i=[],s=s[0];var o=s.data[0];a=0===o?8:16;var l=e.readUint32(s,a);a+=4;var u=0,d=0;a+=0===o?8:16,a+=2;var c=s.end+d,h=e.readUint16(s,a);a+=2;for(var f=0;f>>31;if(1===v)return void console.warn("SIDX has hierarchical references (not supported)");var y=e.readUint32(s,p);p+=4,i.push({referenceSize:g,subsegmentDuration:y,info:{duration:y/l,start:c,end:c+g-1}}),c+=g,p+=4,a=p}return{earliestPresentationTime:u,timescale:l,version:o,referencesCount:h,references:i,moovEndOffset:n}},e.parseInitSegment=function(t){var i=[],n=e.findBox(t,["moov","trak"]);return n.forEach((function(t){var n=e.findBox(t,["tkhd"])[0];if(n){var a=n.data[n.start],s=0===a?12:20,o=e.readUint32(n,s),l=e.findBox(t,["mdia","mdhd"])[0];if(l){a=l.data[l.start],s=0===a?12:20;var u=e.readUint32(l,s),d=e.findBox(t,["mdia","hdlr"])[0];if(d){var c=e.bin2str(d.data.subarray(d.start+8,d.start+12)),h={soun:"audio",vide:"video"}[c];if(h){var f=e.findBox(t,["mdia","minf","stbl","stsd"]);if(f.length){f=f[0];var p=e.bin2str(f.data.subarray(f.start+12,f.start+16));r["logger"].log("MP4Demuxer:"+h+":"+p+" found")}i[o]={timescale:u,type:h},i[h]={timescale:u,id:o}}}}}})),i},e.getStartDTS=function(t,i){var r,n,a;return r=e.findBox(i,["moof","traf"]),n=[].concat.apply([],r.map((function(i){return e.findBox(i,["tfhd"]).map((function(r){var n,a,s;return n=e.readUint32(r,4),a=t[n].timescale||9e4,s=e.findBox(i,["tfdt"]).map((function(t){var i,r;return i=t.data[t.start],r=e.readUint32(t,4),1===i&&(r*=Math.pow(2,32),r+=e.readUint32(t,8)),r}))[0],s/a}))}))),a=Math.min.apply(null,n),isFinite(a)?a:0},e.offsetStartDTS=function(t,i,r){e.findBox(i,["moof","traf"]).map((function(i){return e.findBox(i,["tfhd"]).map((function(n){var s=e.readUint32(n,4),o=t[s].timescale||9e4;e.findBox(i,["tfdt"]).map((function(t){var i=t.data[t.start],n=e.readUint32(t,4);if(0===i)e.writeUint32(t,4,n-r*o);else{n*=Math.pow(2,32),n+=e.readUint32(t,8),n-=r*o,n=Math.max(n,0);var s=Math.floor(n/(a+1)),l=Math.floor(n%(a+1));e.writeUint32(t,4,s),e.writeUint32(t,8,l)}}))}))}))},t.append=function(t,i,r,a){var s=this.initData;s||(this.resetInitSegment(t,this.audioCodec,this.videoCodec,!1),s=this.initData);var o,l=this.initPTS;if(void 0===l){var u=e.getStartDTS(s,t);this.initPTS=l=u-i,this.observer.trigger(n["default"].INIT_PTS_FOUND,{initPTS:l})}e.offsetStartDTS(s,t,l),o=e.getStartDTS(s,t),this.remuxer.remux(s.audio,s.video,null,null,o,r,a,t)},t.destroy=function(){},e}();t["default"]=s},"./src/errors.ts": -/*!***********************!*\ - !*** ./src/errors.ts ***! - \***********************/ -/*! exports provided: ErrorTypes, ErrorDetails */function(e,t,i){"use strict";var r,n;i.r(t),i.d(t,"ErrorTypes",(function(){return r})),i.d(t,"ErrorDetails",(function(){return n})),function(e){e["NETWORK_ERROR"]="networkError",e["MEDIA_ERROR"]="mediaError",e["KEY_SYSTEM_ERROR"]="keySystemError",e["MUX_ERROR"]="muxError",e["OTHER_ERROR"]="otherError"}(r||(r={})),function(e){e["KEY_SYSTEM_NO_KEYS"]="keySystemNoKeys",e["KEY_SYSTEM_NO_ACCESS"]="keySystemNoAccess",e["KEY_SYSTEM_NO_SESSION"]="keySystemNoSession",e["KEY_SYSTEM_LICENSE_REQUEST_FAILED"]="keySystemLicenseRequestFailed",e["KEY_SYSTEM_NO_INIT_DATA"]="keySystemNoInitData",e["MANIFEST_LOAD_ERROR"]="manifestLoadError",e["MANIFEST_LOAD_TIMEOUT"]="manifestLoadTimeOut",e["MANIFEST_PARSING_ERROR"]="manifestParsingError",e["MANIFEST_INCOMPATIBLE_CODECS_ERROR"]="manifestIncompatibleCodecsError",e["LEVEL_LOAD_ERROR"]="levelLoadError",e["LEVEL_LOAD_TIMEOUT"]="levelLoadTimeOut",e["LEVEL_SWITCH_ERROR"]="levelSwitchError",e["AUDIO_TRACK_LOAD_ERROR"]="audioTrackLoadError",e["AUDIO_TRACK_LOAD_TIMEOUT"]="audioTrackLoadTimeOut",e["FRAG_LOAD_ERROR"]="fragLoadError",e["FRAG_LOAD_TIMEOUT"]="fragLoadTimeOut",e["FRAG_DECRYPT_ERROR"]="fragDecryptError",e["FRAG_PARSING_ERROR"]="fragParsingError",e["REMUX_ALLOC_ERROR"]="remuxAllocError",e["KEY_LOAD_ERROR"]="keyLoadError",e["KEY_LOAD_TIMEOUT"]="keyLoadTimeOut",e["BUFFER_ADD_CODEC_ERROR"]="bufferAddCodecError",e["BUFFER_APPEND_ERROR"]="bufferAppendError",e["BUFFER_APPENDING_ERROR"]="bufferAppendingError",e["BUFFER_STALLED_ERROR"]="bufferStalledError",e["BUFFER_FULL_ERROR"]="bufferFullError",e["BUFFER_SEEK_OVER_HOLE"]="bufferSeekOverHole",e["BUFFER_NUDGE_ON_STALL"]="bufferNudgeOnStall",e["INTERNAL_EXCEPTION"]="internalException"}(n||(n={}))},"./src/events.js": -/*!***********************!*\ - !*** ./src/events.js ***! - \***********************/ -/*! exports provided: default */function(e,t,i){"use strict";i.r(t);var r={MEDIA_ATTACHING:"hlsMediaAttaching",MEDIA_ATTACHED:"hlsMediaAttached",MEDIA_DETACHING:"hlsMediaDetaching",MEDIA_DETACHED:"hlsMediaDetached",BUFFER_RESET:"hlsBufferReset",BUFFER_CODECS:"hlsBufferCodecs",BUFFER_CREATED:"hlsBufferCreated",BUFFER_APPENDING:"hlsBufferAppending",BUFFER_APPENDED:"hlsBufferAppended",BUFFER_EOS:"hlsBufferEos",BUFFER_FLUSHING:"hlsBufferFlushing",BUFFER_FLUSHED:"hlsBufferFlushed",MANIFEST_LOADING:"hlsManifestLoading",MANIFEST_LOADED:"hlsManifestLoaded",MANIFEST_PARSED:"hlsManifestParsed",LEVEL_SWITCHING:"hlsLevelSwitching",LEVEL_SWITCHED:"hlsLevelSwitched",LEVEL_LOADING:"hlsLevelLoading",LEVEL_LOADED:"hlsLevelLoaded",LEVEL_UPDATED:"hlsLevelUpdated",LEVEL_PTS_UPDATED:"hlsLevelPtsUpdated",AUDIO_TRACKS_UPDATED:"hlsAudioTracksUpdated",AUDIO_TRACK_SWITCHING:"hlsAudioTrackSwitching",AUDIO_TRACK_SWITCHED:"hlsAudioTrackSwitched",AUDIO_TRACK_LOADING:"hlsAudioTrackLoading",AUDIO_TRACK_LOADED:"hlsAudioTrackLoaded",SUBTITLE_TRACKS_UPDATED:"hlsSubtitleTracksUpdated",SUBTITLE_TRACK_SWITCH:"hlsSubtitleTrackSwitch",SUBTITLE_TRACK_LOADING:"hlsSubtitleTrackLoading",SUBTITLE_TRACK_LOADED:"hlsSubtitleTrackLoaded",SUBTITLE_FRAG_PROCESSED:"hlsSubtitleFragProcessed",INIT_PTS_FOUND:"hlsInitPtsFound",FRAG_LOADING:"hlsFragLoading",FRAG_LOAD_PROGRESS:"hlsFragLoadProgress",FRAG_LOAD_EMERGENCY_ABORTED:"hlsFragLoadEmergencyAborted",FRAG_LOADED:"hlsFragLoaded",FRAG_DECRYPTED:"hlsFragDecrypted",FRAG_PARSING_INIT_SEGMENT:"hlsFragParsingInitSegment",FRAG_PARSING_USERDATA:"hlsFragParsingUserdata",FRAG_PARSING_METADATA:"hlsFragParsingMetadata",FRAG_PARSING_DATA:"hlsFragParsingData",FRAG_PARSED:"hlsFragParsed",FRAG_BUFFERED:"hlsFragBuffered",FRAG_CHANGED:"hlsFragChanged",FPS_DROP:"hlsFpsDrop",FPS_DROP_LEVEL_CAPPING:"hlsFpsDropLevelCapping",ERROR:"hlsError",DESTROYING:"hlsDestroying",KEY_LOADING:"hlsKeyLoading",KEY_LOADED:"hlsKeyLoaded",STREAM_STATE_TRANSITION:"hlsStreamStateTransition",LIVE_BACK_BUFFER_REACHED:"hlsLiveBackBufferReached"};t["default"]=r},"./src/hls.ts": -/*!*********************************!*\ - !*** ./src/hls.ts + 50 modules ***! - \*********************************/ -/*! exports provided: default */ -/*! ModuleConcatenation bailout: Cannot concat with ./src/crypt/decrypter.js because of ./src/demux/demuxer-worker.js */ -/*! ModuleConcatenation bailout: Cannot concat with ./src/demux/demuxer-inline.js because of ./src/demux/demuxer-worker.js */ -/*! ModuleConcatenation bailout: Cannot concat with ./src/demux/id3.js because of ./src/demux/demuxer-worker.js */ -/*! ModuleConcatenation bailout: Cannot concat with ./src/demux/mp4demuxer.js because of ./src/demux/demuxer-worker.js */ -/*! ModuleConcatenation bailout: Cannot concat with ./src/errors.ts because of ./src/demux/demuxer-worker.js */ -/*! ModuleConcatenation bailout: Cannot concat with ./src/events.js because of ./src/demux/demuxer-worker.js */ -/*! ModuleConcatenation bailout: Cannot concat with ./src/polyfills/number-isFinite.js because of ./src/demux/demuxer-worker.js */ -/*! ModuleConcatenation bailout: Cannot concat with ./src/utils/get-self-scope.js because of ./src/demux/demuxer-worker.js */ -/*! ModuleConcatenation bailout: Cannot concat with ./src/utils/logger.js because of ./src/demux/demuxer-worker.js */ -/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/eventemitter3/index.js (<- Module is not an ECMAScript module) */ -/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/url-toolkit/src/url-toolkit.js (<- Module is not an ECMAScript module) */function(e,t,i){"use strict";i.r(t);var r={};i.r(r),i.d(r,"newCue",(function(){return pi}));var n,a,s=i("./node_modules/url-toolkit/src/url-toolkit.js"),o=i("./src/errors.ts"),l=i("./src/polyfills/number-isFinite.js"),u=i("./src/events.js"),d=i("./src/utils/logger.js"),c={hlsEventGeneric:!0,hlsHandlerDestroying:!0,hlsHandlerDestroyed:!0},h=function(){function e(e){this.hls=void 0,this.handledEvents=void 0,this.useGenericHandler=void 0,this.hls=e,this.onEvent=this.onEvent.bind(this);for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r>8*(15-i)&255;return t},t.setDecryptDataFromLevelKey=function(e,t){var i=e;return e&&e.method&&e.uri&&!e.iv&&(i=new y(e.baseuri,e.reluri),i.method=e.method,i.iv=this.createInitializationVector(t)),i},E(e,[{key:"url",get:function(){return!this._url&&this.relurl&&(this._url=Object(s["buildAbsoluteURL"])(this.baseurl,this.relurl,{alwaysNormalize:!0})),this._url},set:function(e){this._url=e}},{key:"byteRange",get:function(){return this._byteRange?this._byteRange:[]}},{key:"byteRangeStartOffset",get:function(){return this.byteRange[0]}},{key:"byteRangeEndOffset",get:function(){return this.byteRange[1]}},{key:"decryptdata",get:function(){if(!this.levelkey&&!this._decryptdata)return null;if(!this._decryptdata&&this.levelkey){var e=this.sn;"number"!==typeof e&&(this.levelkey&&"AES-128"===this.levelkey.method&&!this.levelkey.iv&&d["logger"].warn('missing IV for initialization segment with method="'+this.levelkey.method+'" - compliance issue'),e=0),this._decryptdata=this.setDecryptDataFromLevelKey(this.levelkey,e)}return this._decryptdata}},{key:"endProgramDateTime",get:function(){if(null===this.programDateTime)return null;if(!Object(l["isFiniteNumber"])(this.programDateTime))return null;var e=Object(l["isFiniteNumber"])(this.duration)?this.duration:0;return this.programDateTime+1e3*e}},{key:"encrypted",get:function(){return!(!this.decryptdata||null===this.decryptdata.uri||null!==this.decryptdata.key)}}]),e}();function S(e,t){for(var i=0;iNumber.MAX_SAFE_INTEGER?1/0:t},t.hexadecimalInteger=function(e){if(this[e]){var t=(this[e]||"0x").slice(2);t=(1&t.length?"0":"")+t;for(var i=new Uint8Array(t.length/2),r=0;rNumber.MAX_SAFE_INTEGER?1/0:t},t.decimalFloatingPoint=function(e){return parseFloat(this[e])},t.enumeratedString=function(e){return this[e]},t.decimalResolution=function(e){var t=A.exec(this[e]);if(null!==t)return{width:parseInt(t[1],10),height:parseInt(t[2],10)}},e.parseAttrList=function(e){var t,i={};k.lastIndex=0;while(null!==(t=k.exec(e))){var r=t[2],n='"';0===r.indexOf(n)&&r.lastIndexOf(n)===r.length-1&&(r=r.slice(1,-1)),i[t[1]]=r}return i},e}(),L=R,D={audio:{a3ds:!0,"ac-3":!0,"ac-4":!0,alac:!0,alaw:!0,dra1:!0,"dts+":!0,"dts-":!0,dtsc:!0,dtse:!0,dtsh:!0,"ec-3":!0,enca:!0,g719:!0,g726:!0,m4ae:!0,mha1:!0,mha2:!0,mhm1:!0,mhm2:!0,mlpa:!0,mp4a:!0,"raw ":!0,Opus:!0,samr:!0,sawb:!0,sawp:!0,sevc:!0,sqcp:!0,ssmv:!0,twos:!0,ulaw:!0},video:{avc1:!0,avc2:!0,avc3:!0,avc4:!0,avcp:!0,drac:!0,dvav:!0,dvhe:!0,encv:!0,hev1:!0,hvc1:!0,mjp2:!0,mp4v:!0,mvc1:!0,mvc2:!0,mvc3:!0,mvc4:!0,resv:!0,rv60:!0,s263:!0,svc1:!0,svc2:!0,"vc-1":!0,vp08:!0,vp09:!0}};function I(e,t){var i=D[t];return!!i&&!0===i[e.slice(0,4)]}function C(e,t){return MediaSource.isTypeSupported((t||"video")+'/mp4;codecs="'+e+'"')}var O=/#EXT-X-STREAM-INF:([^\n\r]*)[\r\n]+([^\r\n]+)/g,x=/#EXT-X-MEDIA:(.*)/g,M=new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,/|(?!#)([\S+ ?]+)/.source,/|#EXT-X-BYTERANGE:*(.+)/.source,/|#EXT-X-PROGRAM-DATE-TIME:(.+)/.source,/|#.*/.source].join(""),"g"),P=/(?:(?:#(EXTM3U))|(?:#EXT-X-(PLAYLIST-TYPE):(.+))|(?:#EXT-X-(MEDIA-SEQUENCE): *(\d+))|(?:#EXT-X-(TARGETDURATION): *(\d+))|(?:#EXT-X-(KEY):(.+))|(?:#EXT-X-(START):(.+))|(?:#EXT-X-(ENDLIST))|(?:#EXT-X-(DISCONTINUITY-SEQ)UENCE:(\d+))|(?:#EXT-X-(DIS)CONTINUITY))|(?:#EXT-X-(VERSION):(\d+))|(?:#EXT-X-(MAP):(.+))|(?:(#)([^:]*):(.*))|(?:(#)(.*))(?:.*)\r?\n?/,F=/\.(mp4|m4s|m4v|m4a)$/i,B=function(){function e(){}return e.findGroup=function(e,t){for(var i=0;i2?(t=i.shift()+".",t+=parseInt(i.shift()).toString(16),t+=("000"+parseInt(i.shift()).toString(16)).substr(-4)):t=e,t},e.resolve=function(e,t){return s["buildAbsoluteURL"](t,e,{alwaysNormalize:!0})},e.parseMasterPlaylist=function(t,i){var r,n=[];function a(e,t){["video","audio"].forEach((function(i){var r=e.filter((function(e){return I(e,i)}));if(r.length){var n=r.filter((function(e){return 0===e.lastIndexOf("avc1",0)||0===e.lastIndexOf("mp4a",0)}));t[i+"Codec"]=n.length>0?n[0]:r[0],e=e.filter((function(e){return-1===r.indexOf(e)}))}})),t.unknownCodecs=e}O.lastIndex=0;while(null!=(r=O.exec(t))){var s={},o=s.attrs=new L(r[1]);s.url=e.resolve(r[2],i);var l=o.decimalResolution("RESOLUTION");l&&(s.width=l.width,s.height=l.height),s.bitrate=o.decimalInteger("AVERAGE-BANDWIDTH")||o.decimalInteger("BANDWIDTH"),s.name=o.NAME,a([].concat((o.CODECS||"").split(/[ ,]+/)),s),s.videoCodec&&-1!==s.videoCodec.indexOf("avc1")&&(s.videoCodec=e.convertAVC1ToAVCOTI(s.videoCodec)),n.push(s)}return n},e.parseMasterPlaylistMedia=function(t,i,r,n){var a;void 0===n&&(n=[]);var s=[],o=0;x.lastIndex=0;while(null!==(a=x.exec(t))){var l=new L(a[1]);if(l.TYPE===r){var u={id:o++,groupId:l["GROUP-ID"],name:l.NAME||l.LANGUAGE,type:r,default:"YES"===l.DEFAULT,autoselect:"YES"===l.AUTOSELECT,forced:"YES"===l.FORCED,lang:l.LANGUAGE};if(l.URI&&(u.url=e.resolve(l.URI,i)),n.length){var d=e.findGroup(n,u.groupId);u.audioCodec=d?d.codec:n[0].codec}s.push(u)}}return s},e.parseLevelPlaylist=function(e,t,i,r,n){var a,s,o,u=0,c=0,h=new w(t),f=0,p=null,m=new b,g=null;M.lastIndex=0;while(null!==(a=M.exec(e))){var v=a[1];if(v){m.duration=parseFloat(v);var _=(" "+a[2]).slice(1);m.title=_||null,m.tagList.push(_?["INF",v,_]:["INF",v])}else if(a[3]){if(Object(l["isFiniteNumber"])(m.duration)){var E=u++;m.type=r,m.start=c,o&&(m.levelkey=o),m.sn=E,m.level=i,m.cc=f,m.urlId=n,m.baseurl=t,m.relurl=(" "+a[3]).slice(1),U(m,p),h.fragments.push(m),p=m,c+=m.duration,m=new b}}else if(a[4]){var S=(" "+a[4]).slice(1);p?m.setByteRange(S,p):m.setByteRange(S)}else if(a[5])m.rawProgramDateTime=(" "+a[5]).slice(1),m.tagList.push(["PROGRAM-DATE-TIME",m.rawProgramDateTime]),null===g&&(g=h.fragments.length);else{if(a=a[0].match(P),!a){d["logger"].warn("No matches on slow regex match for level playlist!");continue}for(s=1;s=0&&(o.method=D,o.key=null,o.iv=C));break;case"START":var O=new L(T),x=O.decimalFloatingPoint("TIME-OFFSET");Object(l["isFiniteNumber"])(x)&&(h.startTimeOffset=x);break;case"MAP":var B=new L(T);m.relurl=B.URI,B.BYTERANGE&&m.setByteRange(B.BYTERANGE),m.baseurl=t,m.level=i,m.type=r,m.sn="initSegment",h.initSegment=m,m=new b,m.rawProgramDateTime=h.initSegment.rawProgramDateTime;break;default:d["logger"].warn("line parsed but not handled: "+a);break}}}return m=p,m&&!m.relurl&&(h.fragments.pop(),c-=m.duration),h.totalduration=c,h.averagetargetduration=c/h.fragments.length,h.endSN=u-1,h.startCC=h.fragments[0]?h.fragments[0].cc:0,h.endCC=f,!h.initSegment&&h.fragments.length&&h.fragments.every((function(e){return F.test(e.relurl)}))&&(d["logger"].warn("MP4 fragments found but no init segment (probably no MAP, incomplete M3U8), trying to fetch SIDX"),m=new b,m.relurl=h.fragments[0].relurl,m.baseurl=t,m.level=i,m.type=r,m.sn="initSegment",h.initSegment=m,h.needSidxRanges=!0),g&&N(h.fragments,g),h},e}();function N(e,t){for(var i=e[t],r=t-1;r>=0;r--){var n=e[r];n.programDateTime=i.programDateTime-1e3*n.duration,i=n}}function U(e,t){e.rawProgramDateTime?e.programDateTime=Date.parse(e.rawProgramDateTime):t&&t.programDateTime&&(e.programDateTime=t.endProgramDateTime),Object(l["isFiniteNumber"])(e.programDateTime)||(e.programDateTime=null,e.rawProgramDateTime=null)}function G(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var j=window,V=j.performance,q=function(e){function t(t){var i;return i=e.call(this,t,u["default"].MANIFEST_LOADING,u["default"].LEVEL_LOADING,u["default"].AUDIO_TRACK_LOADING,u["default"].SUBTITLE_TRACK_LOADING)||this,i.loaders={},i}G(t,e),t.canHaveQualityLevels=function(e){return e!==n.AUDIO_TRACK&&e!==n.SUBTITLE_TRACK},t.mapContextToLevelType=function(e){var t=e.type;switch(t){case n.AUDIO_TRACK:return a.AUDIO;case n.SUBTITLE_TRACK:return a.SUBTITLE;default:return a.MAIN}},t.getResponseUrl=function(e,t){var i=e.url;return void 0!==i&&0!==i.indexOf("data:")||(i=t.url),i};var i=t.prototype;return i.createInternalLoader=function(e){var t=this.hls.config,i=t.pLoader,r=t.loader,n=i||r,a=new n(t);return e.loader=a,this.loaders[e.type]=a,a},i.getInternalLoader=function(e){return this.loaders[e.type]},i.resetInternalLoader=function(e){this.loaders[e]&&delete this.loaders[e]},i.destroyInternalLoaders=function(){for(var e in this.loaders){var t=this.loaders[e];t&&t.destroy(),this.resetInternalLoader(e)}},i.destroy=function(){this.destroyInternalLoaders(),e.prototype.destroy.call(this)},i.onManifestLoading=function(e){this.load({url:e.url,type:n.MANIFEST,level:0,id:null,responseType:"text"})},i.onLevelLoading=function(e){this.load({url:e.url,type:n.LEVEL,level:e.level,id:e.id,responseType:"text"})},i.onAudioTrackLoading=function(e){this.load({url:e.url,type:n.AUDIO_TRACK,level:null,id:e.id,responseType:"text"})},i.onSubtitleTrackLoading=function(e){this.load({url:e.url,type:n.SUBTITLE_TRACK,level:null,id:e.id,responseType:"text"})},i.load=function(e){var t=this.hls.config;d["logger"].debug("Loading playlist of type "+e.type+", level: "+e.level+", id: "+e.id);var i,r,a,s,o=this.getInternalLoader(e);if(o){var l=o.context;if(l&&l.url===e.url)return d["logger"].trace("playlist request ongoing"),!1;d["logger"].warn("aborting previous loader for type: "+e.type),o.abort()}switch(e.type){case n.MANIFEST:i=t.manifestLoadingMaxRetry,r=t.manifestLoadingTimeOut,a=t.manifestLoadingRetryDelay,s=t.manifestLoadingMaxRetryTimeout;break;case n.LEVEL:i=0,s=0,a=0,r=t.levelLoadingTimeOut;break;default:i=t.levelLoadingMaxRetry,r=t.levelLoadingTimeOut,a=t.levelLoadingRetryDelay,s=t.levelLoadingMaxRetryTimeout;break}o=this.createInternalLoader(e);var u={timeout:r,maxRetry:i,retryDelay:a,maxRetryDelay:s},c={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this)};return d["logger"].debug("Calling internal loader delegate for URL: "+e.url),o.load(e,u,c),!0},i.loadsuccess=function(e,t,i,r){if(void 0===r&&(r=null),i.isSidxRequest)return this._handleSidxRequest(e,i),void this._handlePlaylistLoaded(e,t,i,r);if(this.resetInternalLoader(i.type),"string"!==typeof e.data)throw new Error('expected responseType of "text" for PlaylistLoader');var n=e.data;t.tload=V.now(),0===n.indexOf("#EXTM3U")?n.indexOf("#EXTINF:")>0||n.indexOf("#EXT-X-TARGETDURATION:")>0?this._handleTrackOrLevelPlaylist(e,t,i,r):this._handleMasterPlaylist(e,t,i,r):this._handleManifestParsingError(e,i,"no EXTM3U delimiter",r)},i.loaderror=function(e,t,i){void 0===i&&(i=null),this._handleNetworkError(t,i,!1,e)},i.loadtimeout=function(e,t,i){void 0===i&&(i=null),this._handleNetworkError(t,i,!0)},i._handleMasterPlaylist=function(e,i,r,n){var a=this.hls,s=e.data,o=t.getResponseUrl(e,r),l=B.parseMasterPlaylist(s,o);if(l.length){var c=l.map((function(e){return{id:e.attrs.AUDIO,codec:e.audioCodec}})),h=B.parseMasterPlaylistMedia(s,o,"AUDIO",c),f=B.parseMasterPlaylistMedia(s,o,"SUBTITLES");if(h.length){var p=!1;h.forEach((function(e){e.url||(p=!0)})),!1===p&&l[0].audioCodec&&!l[0].attrs.AUDIO&&(d["logger"].log("audio codec signaled in quality level, but no embedded audio track signaled, create one"),h.unshift({type:"main",name:"main",default:!1,autoselect:!1,forced:!1,id:-1}))}a.trigger(u["default"].MANIFEST_LOADED,{levels:l,audioTracks:h,subtitles:f,url:o,stats:i,networkDetails:n})}else this._handleManifestParsingError(e,r,"no level found in manifest",n)},i._handleTrackOrLevelPlaylist=function(e,i,r,a){var s=this.hls,o=r.id,d=r.level,c=r.type,h=t.getResponseUrl(e,r),f=Object(l["isFiniteNumber"])(o)?o:0,p=Object(l["isFiniteNumber"])(d)?d:f,m=t.mapContextToLevelType(r),g=B.parseLevelPlaylist(e.data,h,p,m,f);if(g.tload=i.tload,c===n.MANIFEST){var v={url:h,details:g};s.trigger(u["default"].MANIFEST_LOADED,{levels:[v],audioTracks:[],url:h,stats:i,networkDetails:a})}if(i.tparsed=V.now(),g.needSidxRanges){var y=g.initSegment.url;this.load({url:y,isSidxRequest:!0,type:c,level:d,levelDetails:g,id:o,rangeStart:0,rangeEnd:2048,responseType:"arraybuffer"})}else r.levelDetails=g,this._handlePlaylistLoaded(e,i,r,a)},i._handleSidxRequest=function(e,t){if("string"===typeof e.data)throw new Error("sidx request must be made with responseType of array buffer");var i=p["default"].parseSegmentIndex(new Uint8Array(e.data));if(i){var r=i.references,n=t.levelDetails;r.forEach((function(e,t){var i=e.info;if(n){var r=n.fragments[t];0===r.byteRange.length&&r.setByteRange(String(1+i.end-i.start)+"@"+String(i.start))}})),n&&n.initSegment.setByteRange(String(i.moovEndOffset)+"@0")}},i._handleManifestParsingError=function(e,t,i,r){this.hls.trigger(u["default"].ERROR,{type:o["ErrorTypes"].NETWORK_ERROR,details:o["ErrorDetails"].MANIFEST_PARSING_ERROR,fatal:!0,url:e.url,reason:i,networkDetails:r})},i._handleNetworkError=function(e,t,i,r){var a,s;void 0===i&&(i=!1),void 0===r&&(r=null),d["logger"].info("A network error occured while loading a "+e.type+"-type playlist");var l=this.getInternalLoader(e);switch(e.type){case n.MANIFEST:a=i?o["ErrorDetails"].MANIFEST_LOAD_TIMEOUT:o["ErrorDetails"].MANIFEST_LOAD_ERROR,s=!0;break;case n.LEVEL:a=i?o["ErrorDetails"].LEVEL_LOAD_TIMEOUT:o["ErrorDetails"].LEVEL_LOAD_ERROR,s=!1;break;case n.AUDIO_TRACK:a=i?o["ErrorDetails"].AUDIO_TRACK_LOAD_TIMEOUT:o["ErrorDetails"].AUDIO_TRACK_LOAD_ERROR,s=!1;break;default:s=!1}l&&(l.abort(),this.resetInternalLoader(e.type));var c={type:o["ErrorTypes"].NETWORK_ERROR,details:a,fatal:s,url:e.url,loader:l,context:e,networkDetails:t};r&&(c.response=r),this.hls.trigger(u["default"].ERROR,c)},i._handlePlaylistLoaded=function(e,i,r,a){var s=r.type,o=r.level,l=r.id,d=r.levelDetails;if(d&&d.targetduration){var c=t.canHaveQualityLevels(r.type);if(c)this.hls.trigger(u["default"].LEVEL_LOADED,{details:d,level:o||0,id:l||0,stats:i,networkDetails:a});else switch(s){case n.AUDIO_TRACK:this.hls.trigger(u["default"].AUDIO_TRACK_LOADED,{details:d,id:l,stats:i,networkDetails:a});break;case n.SUBTITLE_TRACK:this.hls.trigger(u["default"].SUBTITLE_TRACK_LOADED,{details:d,id:l,stats:i,networkDetails:a});break}}else this._handleManifestParsingError(e,r,"invalid target duration",a)},t}(f),K=q;function H(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var z=function(e){function t(t){var i;return i=e.call(this,t,u["default"].FRAG_LOADING)||this,i.loaders={},i}H(t,e);var i=t.prototype;return i.destroy=function(){var t=this.loaders;for(var i in t){var r=t[i];r&&r.destroy()}this.loaders={},e.prototype.destroy.call(this)},i.onFragLoading=function(e){var t=e.frag,i=t.type,r=this.loaders,n=this.hls.config,a=n.fLoader,s=n.loader;t.loaded=0;var o,u,c,h=r[i];h&&(d["logger"].warn("abort previous fragment loader for type: "+i),h.abort()),h=r[i]=t.loader=n.fLoader?new a(n):new s(n),o={url:t.url,frag:t,responseType:"arraybuffer",progressData:!1};var f=t.byteRangeStartOffset,p=t.byteRangeEndOffset;Object(l["isFiniteNumber"])(f)&&Object(l["isFiniteNumber"])(p)&&(o.rangeStart=f,o.rangeEnd=p),u={timeout:n.fragLoadingTimeOut,maxRetry:0,retryDelay:0,maxRetryDelay:n.fragLoadingMaxRetryTimeout},c={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this),onProgress:this.loadprogress.bind(this)},h.load(o,u,c)},i.loadsuccess=function(e,t,i,r){void 0===r&&(r=null);var n=e.data,a=i.frag;a.loader=void 0,this.loaders[a.type]=void 0,this.hls.trigger(u["default"].FRAG_LOADED,{payload:n,frag:a,stats:t,networkDetails:r})},i.loaderror=function(e,t,i){void 0===i&&(i=null);var r=t.frag,n=r.loader;n&&n.abort(),this.loaders[r.type]=void 0,this.hls.trigger(u["default"].ERROR,{type:o["ErrorTypes"].NETWORK_ERROR,details:o["ErrorDetails"].FRAG_LOAD_ERROR,fatal:!1,frag:t.frag,response:e,networkDetails:i})},i.loadtimeout=function(e,t,i){void 0===i&&(i=null);var r=t.frag,n=r.loader;n&&n.abort(),this.loaders[r.type]=void 0,this.hls.trigger(u["default"].ERROR,{type:o["ErrorTypes"].NETWORK_ERROR,details:o["ErrorDetails"].FRAG_LOAD_TIMEOUT,fatal:!1,frag:t.frag,networkDetails:i})},i.loadprogress=function(e,t,i,r){void 0===r&&(r=null);var n=t.frag;n.loaded=e.loaded,this.hls.trigger(u["default"].FRAG_LOAD_PROGRESS,{frag:n,stats:e,networkDetails:r})},t}(f),W=z;function Y(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var X=function(e){function t(t){var i;return i=e.call(this,t,u["default"].KEY_LOADING)||this,i.loaders={},i.decryptkey=null,i.decrypturl=null,i}Y(t,e);var i=t.prototype;return i.destroy=function(){for(var t in this.loaders){var i=this.loaders[t];i&&i.destroy()}this.loaders={},e.prototype.destroy.call(this)},i.onKeyLoading=function(e){var t=e.frag,i=t.type,r=this.loaders[i];if(t.decryptdata){var n=t.decryptdata.uri;if(n!==this.decrypturl||null===this.decryptkey){var a=this.hls.config;if(r&&(d["logger"].warn("abort previous key loader for type:"+i),r.abort()),!n)return void d["logger"].warn("key uri is falsy");t.loader=this.loaders[i]=new a.loader(a),this.decrypturl=n,this.decryptkey=null;var s={url:n,frag:t,responseType:"arraybuffer"},o={timeout:a.fragLoadingTimeOut,maxRetry:0,retryDelay:a.fragLoadingRetryDelay,maxRetryDelay:a.fragLoadingMaxRetryTimeout},l={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this)};t.loader.load(s,o,l)}else this.decryptkey&&(t.decryptdata.key=this.decryptkey,this.hls.trigger(u["default"].KEY_LOADED,{frag:t}))}else d["logger"].warn("Missing decryption data on fragment in onKeyLoading")},i.loadsuccess=function(e,t,i){var r=i.frag;r.decryptdata?(this.decryptkey=r.decryptdata.key=new Uint8Array(e.data),r.loader=void 0,delete this.loaders[r.type],this.hls.trigger(u["default"].KEY_LOADED,{frag:r})):d["logger"].error("after key load, decryptdata unset")},i.loaderror=function(e,t){var i=t.frag,r=i.loader;r&&r.abort(),delete this.loaders[i.type],this.hls.trigger(u["default"].ERROR,{type:o["ErrorTypes"].NETWORK_ERROR,details:o["ErrorDetails"].KEY_LOAD_ERROR,fatal:!1,frag:i,response:e})},i.loadtimeout=function(e,t){var i=t.frag,r=i.loader;r&&r.abort(),delete this.loaders[i.type],this.hls.trigger(u["default"].ERROR,{type:o["ErrorTypes"].NETWORK_ERROR,details:o["ErrorDetails"].KEY_LOAD_TIMEOUT,fatal:!1,frag:i})},t}(f),$=X;function Q(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var J={NOT_LOADED:"NOT_LOADED",APPENDING:"APPENDING",PARTIAL:"PARTIAL",OK:"OK"},Z=function(e){function t(t){var i;return i=e.call(this,t,u["default"].BUFFER_APPENDED,u["default"].FRAG_BUFFERED,u["default"].FRAG_LOADED)||this,i.bufferPadding=.2,i.fragments=Object.create(null),i.timeRanges=Object.create(null),i.config=t.config,i}Q(t,e);var i=t.prototype;return i.destroy=function(){this.fragments=Object.create(null),this.timeRanges=Object.create(null),this.config=null,f.prototype.destroy.call(this),e.prototype.destroy.call(this)},i.getBufferedFrag=function(e,t){var i=this.fragments,r=Object.keys(i).filter((function(r){var n=i[r];if(n.body.type!==t)return!1;if(!n.buffered)return!1;var a=n.body;return a.startPTS<=e&&e<=a.endPTS}));if(0===r.length)return null;var n=r.pop();return i[n].body},i.detectEvictedFragments=function(e,t){var i,r,n=this;Object.keys(this.fragments).forEach((function(a){var s=n.fragments[a];if(!0===s.buffered){var o=s.range[e];if(o){i=o.time;for(var l=0;l=r&&t<=n){a.push({startPTS:Math.max(e,i.start(o)),endPTS:Math.min(t,i.end(o))});break}if(er)a.push({startPTS:Math.max(e,i.start(o)),endPTS:Math.min(t,i.end(o))}),s=!0;else if(t<=r)break}return{time:a,partial:s}},i.getFragmentKey=function(e){return e.type+"_"+e.level+"_"+e.urlId+"_"+e.sn},i.getPartialFragment=function(e){var t,i,r,n=this,a=null,s=0;return Object.keys(this.fragments).forEach((function(o){var l=n.fragments[o];n.isPartial(l)&&(i=l.body.startPTS-n.bufferPadding,r=l.body.endPTS+n.bufferPadding,e>=i&&e<=r&&(t=Math.min(e-i,r-e),s<=t&&(a=l.body,s=t)))})),a},i.getState=function(e){var t=this.getFragmentKey(e),i=this.fragments[t],r=J.NOT_LOADED;return void 0!==i&&(r=i.buffered?!0===this.isPartial(i)?J.PARTIAL:J.OK:J.APPENDING),r},i.isPartial=function(e){return!0===e.buffered&&(void 0!==e.range.video&&!0===e.range.video.partial||void 0!==e.range.audio&&!0===e.range.audio.partial)},i.isTimeBuffered=function(e,t,i){for(var r,n,a=0;a=r&&t<=n)return!0;if(t<=r)return!1}return!1},i.onFragLoaded=function(e){var t=e.frag;Object(l["isFiniteNumber"])(t.sn)&&!t.bitrateTest&&(this.fragments[this.getFragmentKey(t)]={body:t,range:Object.create(null),buffered:!1})},i.onBufferAppended=function(e){var t=this;this.timeRanges=e.timeRanges,Object.keys(this.timeRanges).forEach((function(e){var i=t.timeRanges[e];t.detectEvictedFragments(e,i)}))},i.onFragBuffered=function(e){this.detectPartialFragments(e.frag)},i.hasFragment=function(e){var t=this.getFragmentKey(e);return void 0!==this.fragments[t]},i.removeFragment=function(e){var t=this.getFragmentKey(e);delete this.fragments[t]},i.removeAllFragments=function(){this.fragments=Object.create(null)},t}(f),ee={search:function(e,t){var i=0,r=e.length-1,n=null,a=null;while(i<=r){n=(i+r)/2|0,a=e[n];var s=t(a);if(s>0)i=n+1;else{if(!(s<0))return a;r=n-1}}return null}},te=ee,ie=function(){function e(){}return e.isBuffered=function(e,t){try{if(e)for(var i=e.buffered,r=0;r=i.start(r)&&t<=i.end(r))return!0}catch(n){}return!1},e.bufferInfo=function(e,t,i){try{if(e){var r,n=e.buffered,a=[];for(r=0;rs&&(r[a-1].end=e[n].end):r.push(e[n])}else r.push(e[n])}else r=e;for(var o,l=0,u=t,d=t,c=0;c=h&&t1?t-1:0),r=1;rt?(r.duration=a-r.start,r.duration<0&&d["logger"].warn("negative duration computed for frag "+r.sn+",level "+r.level+", there should be some duration drift between playlist and fragment!")):(n.duration=r.start-a,n.duration<0&&d["logger"].warn("negative duration computed for frag "+n.sn+",level "+n.level+", there should be some duration drift between playlist and fragment!")):n.start=i>t?r.start+r.duration:Math.max(r.start-n.duration,0)}function ge(e,t,i,r,n,a){var s=i;if(Object(l["isFiniteNumber"])(t.startPTS)){var o=Math.abs(t.startPTS-i);Object(l["isFiniteNumber"])(t.deltaPTS)?t.deltaPTS=Math.max(o,t.deltaPTS):t.deltaPTS=o,s=Math.max(i,t.startPTS),i=Math.min(i,t.startPTS),r=Math.max(r,t.endPTS),n=Math.min(n,t.startDTS),a=Math.max(a,t.endDTS)}var u=i-t.start;t.start=t.startPTS=i,t.maxStartPTS=s,t.endPTS=r,t.startDTS=n,t.endDTS=a,t.duration=r-i;var d,c,h,f=t.sn;if(!e||fe.endSN)return 0;for(d=f-e.startSN,c=e.fragments,c[d]=t,h=d;h>0;h--)me(c,h,h-1);for(h=d;hr.length))for(var a=0;at?-1:0}))}function ke(e,t,i){var r=!1;return t&&t.details&&i&&(i.endCC>i.startCC||e&&e.cc=(n||0))return null;i=i||0;for(var a=0;ae&&i.start?-1:0}function Pe(e,t,i){var r=1e3*Math.min(t,i.duration+(i.deltaPTS?i.deltaPTS:0)),n=i.endProgramDateTime||0;return n-r>e}var Fe=250,Be=2,Ne=.1,Ue=.05,Ge=function(){function e(e,t,i,r){this.config=e,this.media=t,this.fragmentTracker=i,this.hls=r,this.nudgeRetry=0,this.stallReported=!1,this.stalled=null,this.moved=!1,this.seeking=!1}var t=e.prototype;return t.poll=function(e){var t=this.config,i=this.media,r=this.stalled,n=i.currentTime,a=i.seeking,s=this.seeking&&!a,o=!this.seeking&&a;if(this.seeking=a,n===e){if((o||s)&&(this.stalled=null),!i.paused&&!i.ended&&0!==i.playbackRate&&i.buffered.length){var l=ie.bufferInfo(i,n,0),u=l.len>0,c=l.nextStart||0;if(u||c){if(a){var h=l.len>Be,f=!c||c-n>Be;if(h||f)return;this.moved=!1}if(!this.moved&&this.stalled){var p=Math.max(c,l.start||0)-n;if(p>0&&p<=Be)return void this._trySkipBufferHole(null)}var m=self.performance.now();if(null!==r){var g=m-r;!a&&g>=Fe&&this._reportStall(l.len);var v=ie.bufferInfo(i,n,t.maxBufferHole);this._tryFixBufferStall(v,g)}else this.stalled=m}}}else if(this.moved=!0,null!==r){if(this.stallReported){var y=self.performance.now()-r;d["logger"].warn("playback not stuck anymore @"+n+", after "+Math.round(y)+"ms"),this.stallReported=!1}this.stalled=null,this.nudgeRetry=0}},t._tryFixBufferStall=function(e,t){var i=this.config,r=this.fragmentTracker,n=this.media,a=n.currentTime,s=r.getPartialFragment(a);if(s){var o=this._trySkipBufferHole(s);if(o)return}e.len>i.maxBufferHole&&t>1e3*i.highBufferWatchdogPeriod&&(d["logger"].warn("Trying to nudge playhead over buffer-hole"),this.stalled=null,this._tryNudgeBuffer())},t._reportStall=function(e){var t=this.hls,i=this.media,r=this.stallReported;r||(this.stallReported=!0,d["logger"].warn("Playback stalling at @"+i.currentTime+" due to low buffer"),t.trigger(u["default"].ERROR,{type:o["ErrorTypes"].MEDIA_ERROR,details:o["ErrorDetails"].BUFFER_STALLED_ERROR,fatal:!1,buffer:e}))},t._trySkipBufferHole=function(e){for(var t=this.config,i=this.hls,r=this.media,n=r.currentTime,a=0,s=0;s=a&&n1?r-1:0),a=1;a1&&(this.clearNextTick(),this._tickTimer=self.setTimeout(this._boundTick,0)),this._tickCallCount=0)},i.doTick=function(){},t}(f);function Ke(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var He={STOPPED:"STOPPED",STARTING:"STARTING",IDLE:"IDLE",PAUSED:"PAUSED",KEY_LOADING:"KEY_LOADING",FRAG_LOADING:"FRAG_LOADING",FRAG_LOADING_WAITING_RETRY:"FRAG_LOADING_WAITING_RETRY",WAITING_TRACK:"WAITING_TRACK",PARSING:"PARSING",PARSED:"PARSED",BUFFER_FLUSHING:"BUFFER_FLUSHING",ENDED:"ENDED",ERROR:"ERROR",WAITING_INIT_PTS:"WAITING_INIT_PTS",WAITING_LEVEL:"WAITING_LEVEL"},ze=function(e){function t(){return e.apply(this,arguments)||this}Ke(t,e);var i=t.prototype;return i.doTick=function(){},i.startLoad=function(){},i.stopLoad=function(){var e=this.fragCurrent;e&&(e.loader&&e.loader.abort(),this.fragmentTracker.removeFragment(e)),this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),this.fragCurrent=null,this.fragPrevious=null,this.clearInterval(),this.clearNextTick(),this.state=He.STOPPED},i._streamEnded=function(e,t){var i=this.fragCurrent,r=this.fragmentTracker;if(!t.live&&i&&!i.backtracked&&i.sn===t.endSN&&!e.nextStart){var n=r.getState(i);return n===J.PARTIAL||n===J.OK}return!1},i.onMediaSeeking=function(){var e=this.config,t=this.media,i=this.mediaBuffer,r=this.state,n=t?t.currentTime:null,a=ie.bufferInfo(i||t,n,this.config.maxBufferHole);if(Object(l["isFiniteNumber"])(n)&&d["logger"].log("media seeking to "+n.toFixed(3)),r===He.FRAG_LOADING){var s=this.fragCurrent;if(0===a.len&&s){var o=e.maxFragLookUpTolerance,u=s.start-o,c=s.start+s.duration+o;nc?(s.loader&&(d["logger"].log("seeking outside of buffer while fragment load in progress, cancel fragment load"),s.loader.abort()),this.fragCurrent=null,this.fragPrevious=null,this.state=He.IDLE):d["logger"].log("seeking outside of buffer but within currently loaded fragment range")}}else r===He.ENDED&&(0===a.len&&(this.fragPrevious=null,this.fragCurrent=null),this.state=He.IDLE);t&&(this.lastCurrentTime=n),this.loadedmetadata||(this.nextLoadPosition=this.startPosition=n),this.tick()},i.onMediaEnded=function(){this.startPosition=this.lastCurrentTime=0},i.onHandlerDestroying=function(){this.stopLoad(),e.prototype.onHandlerDestroying.call(this)},i.onHandlerDestroyed=function(){this.state=He.STOPPED,this.fragmentTracker=null},i.computeLivePosition=function(e,t){var i=void 0!==this.config.liveSyncDuration?this.config.liveSyncDuration:this.config.liveSyncDurationCount*t.targetduration;return e+Math.max(0,t.totalduration-i)},t}(qe);function We(e,t){for(var i=0;i0&&-1===e&&(d["logger"].log("override startPosition with lastCurrentTime @"+t.toFixed(3)),e=t),this.state=He.IDLE,this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()}else this.forceStartLoad=!0,this.state=He.STOPPED},i.stopLoad=function(){this.forceStartLoad=!1,e.prototype.stopLoad.call(this)},i.doTick=function(){switch(this.state){case He.BUFFER_FLUSHING:this.fragLoadError=0;break;case He.IDLE:this._doTickIdle();break;case He.WAITING_LEVEL:var e=this.levels[this.level];e&&e.details&&(this.state=He.IDLE);break;case He.FRAG_LOADING_WAITING_RETRY:var t=window.performance.now(),i=this.retryDate;(!i||t>=i||this.media&&this.media.seeking)&&(d["logger"].log("mediaController: retryDate reached, switch back to IDLE state"),this.state=He.IDLE);break;case He.ERROR:case He.STOPPED:case He.FRAG_LOADING:case He.PARSING:case He.PARSED:case He.ENDED:break;default:break}this._checkBuffer(),this._checkFragmentChanged()},i._doTickIdle=function(){var e=this.hls,t=e.config,i=this.media;if(void 0!==this.levelLastLoaded&&(i||!this.startFragRequested&&t.startFragPrefetch)){var r;r=this.loadedmetadata?i.currentTime:this.nextLoadPosition;var n=e.nextLoadLevel,a=this.levels[n];if(a){var s,o=a.bitrate;s=o?Math.max(8*t.maxBufferSize/o,t.maxBufferLength):t.maxBufferLength,s=Math.min(s,t.maxMaxBufferLength);var l=ie.bufferInfo(this.mediaBuffer?this.mediaBuffer:i,r,t.maxBufferHole),c=l.len;if(!(c>=s)){d["logger"].trace("buffer length of "+c.toFixed(3)+" is below max of "+s.toFixed(3)+". checking for more payload ..."),this.level=e.nextLoadLevel=n;var h=a.details;if(!h||h.live&&this.levelLastLoaded!==n)this.state=He.WAITING_LEVEL;else{if(this._streamEnded(l,h)){var f={};return this.altAudio&&(f.type="video"),this.hls.trigger(u["default"].BUFFER_EOS,f),void(this.state=He.ENDED)}this._fetchPayloadOrEos(r,l,h)}}}}},i._fetchPayloadOrEos=function(e,t,i){var r=this.fragPrevious,n=this.level,a=i.fragments,s=a.length;if(0!==s){var o,l=a[0].start,u=a[s-1].start+a[s-1].duration,c=t.end;if(i.initSegment&&!i.initSegment.data)o=i.initSegment;else if(i.live){var h=this.config.initialLiveManifestSize;if(sh&&(u.currentTime=h),this.nextLoadPosition=h}if(e.PTSKnown&&t>r&&u&&u.readyState)return null;if(this.startFragRequested&&!e.PTSKnown){if(n)if(e.hasProgramDateTime)d["logger"].log("live playlist, switching playlist, load frag with same PDT: "+n.programDateTime),o=Oe(a,n.endProgramDateTime,l.maxFragLookUpTolerance);else{var f=n.sn+1;if(f>=e.startSN&&f<=e.endSN){var p=a[f-e.startSN];n.cc===p.cc&&(o=p,d["logger"].log("live playlist, switching playlist, load frag with next SN: "+o.sn))}o||(o=te.search(a,(function(e){return n.cc-e.cc})),o&&d["logger"].log("live playlist, switching playlist, load frag with same CC: "+o.sn))}o||(o=a[Math.min(s-1,Math.round(s/2))],d["logger"].log("live playlist, switching playlist, unknown, load middle frag : "+o.sn))}return o},i._findFragment=function(e,t,i,r,n,a,s){var o,l=this.hls.config;if(na-l.maxFragLookUpTolerance?0:l.maxFragLookUpTolerance;o=xe(t,r,n,u)}else o=r[i-1];if(o){var c=o.sn-s.startSN,h=t&&o.level===t.level,f=r[c-1],p=r[c+1];if(t&&o.sn===t.sn)if(h&&!o.backtracked)if(o.snl.maxBufferHole&&t.dropped&&c?(o=f,d["logger"].warn("Previous fragment was dropped with large PTS gap between audio and video. Maybe fragment is not starting with a keyframe? Loading previous one to try to overcome this")):(o=p,d["logger"].log("Re-loading fragment with SN: "+o.sn))}else o=null;else o.backtracked&&(p&&p.backtracked?(d["logger"].warn("Already backtracked from fragment "+p.sn+", will not backtrack to fragment "+o.sn+". Loading fragment "+p.sn),o=p):(d["logger"].warn("Loaded fragment with dropped frames, backtracking 1 segment to find a keyframe"),o.dropped=0,f?(o=f,o.backtracked=!0):c&&(o=null)))}return o},i._loadKey=function(e){this.state=He.KEY_LOADING,this.hls.trigger(u["default"].KEY_LOADING,{frag:e})},i._loadFragment=function(e){var t=this.fragmentTracker.getState(e);this.fragCurrent=e,"initSegment"!==e.sn&&(this.startFragRequested=!0),Object(l["isFiniteNumber"])(e.sn)&&!e.bitrateTest&&(this.nextLoadPosition=e.start+e.duration),e.backtracked||t===J.NOT_LOADED||t===J.PARTIAL?(e.autoLevel=this.hls.autoLevelEnabled,e.bitrateTest=this.bitrateTest,this.hls.trigger(u["default"].FRAG_LOADING,{frag:e}),this.demuxer||(this.demuxer=new fe(this.hls,"main")),this.state=He.FRAG_LOADING):t===J.APPENDING&&this._reduceMaxBufferLength(e.duration)&&this.fragmentTracker.removeFragment(e)},i.getBufferedFrag=function(e){return this.fragmentTracker.getBufferedFrag(e,a.MAIN)},i.followingBufferedFrag=function(e){return e?this.getBufferedFrag(e.endPTS+.5):null},i._checkFragmentChanged=function(){var e,t,i=this.media;if(i&&i.readyState&&!1===i.seeking&&(t=i.currentTime,t>this.lastCurrentTime&&(this.lastCurrentTime=t),ie.isBuffered(i,t)?e=this.getBufferedFrag(t):ie.isBuffered(i,t+.1)&&(e=this.getBufferedFrag(t+.1)),e)){var r=e;if(r!==this.fragPlaying){this.hls.trigger(u["default"].FRAG_CHANGED,{frag:r});var n=r.level;this.fragPlaying&&this.fragPlaying.level===n||this.hls.trigger(u["default"].LEVEL_SWITCHED,{level:n}),this.fragPlaying=r}}},i.immediateLevelSwitch=function(){if(d["logger"].log("immediateLevelSwitch"),!this.immediateSwitch){this.immediateSwitch=!0;var e,t=this.media;t?(e=t.paused,t.pause()):e=!0,this.previouslyPaused=e}var i=this.fragCurrent;i&&i.loader&&i.loader.abort(),this.fragCurrent=null,this.flushMainBuffer(0,Number.POSITIVE_INFINITY)},i.immediateLevelSwitchEnd=function(){var e=this.media;e&&e.buffered.length&&(this.immediateSwitch=!1,ie.isBuffered(e,e.currentTime)&&(e.currentTime-=1e-4),this.previouslyPaused||e.play())},i.nextLevelSwitch=function(){var e=this.media;if(e&&e.readyState){var t,i,r;if(i=this.getBufferedFrag(e.currentTime),i&&i.startPTS>1&&this.flushMainBuffer(0,i.startPTS-1),e.paused)t=0;else{var n=this.hls.nextLoadLevel,a=this.levels[n],s=this.fragLastKbps;t=s&&this.fragCurrent?this.fragCurrent.duration*a.bitrate/(1e3*s)+1:0}if(r=this.getBufferedFrag(e.currentTime+t),r&&(r=this.followingBufferedFrag(r),r)){var o=this.fragCurrent;o&&o.loader&&o.loader.abort(),this.fragCurrent=null,this.flushMainBuffer(r.maxStartPTS,Number.POSITIVE_INFINITY)}}},i.flushMainBuffer=function(e,t){this.state=He.BUFFER_FLUSHING;var i={startOffset:e,endOffset:t};this.altAudio&&(i.type="video"),this.hls.trigger(u["default"].BUFFER_FLUSHING,i)},i.onMediaAttached=function(e){var t=this.media=this.mediaBuffer=e.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvseeked=this.onMediaSeeked.bind(this),this.onvended=this.onMediaEnded.bind(this),t.addEventListener("seeking",this.onvseeking),t.addEventListener("seeked",this.onvseeked),t.addEventListener("ended",this.onvended);var i=this.config;this.levels&&i.autoStartLoad&&this.hls.startLoad(i.startPosition),this.gapController=new Ge(i,t,this.fragmentTracker,this.hls)},i.onMediaDetaching=function(){var e=this.media;e&&e.ended&&(d["logger"].log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0);var t=this.levels;t&&t.forEach((function(e){e.details&&e.details.fragments.forEach((function(e){e.backtracked=void 0}))})),e&&(e.removeEventListener("seeking",this.onvseeking),e.removeEventListener("seeked",this.onvseeked),e.removeEventListener("ended",this.onvended),this.onvseeking=this.onvseeked=this.onvended=null),this.fragmentTracker.removeAllFragments(),this.media=this.mediaBuffer=null,this.loadedmetadata=!1,this.stopLoad()},i.onMediaSeeked=function(){var e=this.media,t=e?e.currentTime:void 0;Object(l["isFiniteNumber"])(t)&&d["logger"].log("media seeked to "+t.toFixed(3)),this.tick()},i.onManifestLoading=function(){d["logger"].log("trigger BUFFER_RESET"),this.hls.trigger(u["default"].BUFFER_RESET),this.fragmentTracker.removeAllFragments(),this.stalled=!1,this.startPosition=this.lastCurrentTime=0},i.onManifestParsed=function(e){var t,i=!1,r=!1;e.levels.forEach((function(e){t=e.audioCodec,t&&(-1!==t.indexOf("mp4a.40.2")&&(i=!0),-1!==t.indexOf("mp4a.40.5")&&(r=!0))})),this.audioCodecSwitch=i&&r,this.audioCodecSwitch&&d["logger"].log("both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"),this.altAudio=e.altAudio,this.levels=e.levels,this.startFragRequested=!1;var n=this.config;(n.autoStartLoad||this.forceStartLoad)&&this.hls.startLoad(n.startPosition)},i.onLevelLoaded=function(e){var t=e.details,i=e.level,r=this.levels[this.levelLastLoaded],n=this.levels[i],a=t.totalduration,s=0;if(d["logger"].log("level "+i+" loaded ["+t.startSN+","+t.endSN+"],duration:"+a),t.live){var o=n.details;o&&t.fragments.length>0?(ve(o,t),s=t.fragments[0].start,this.liveSyncPosition=this.computeLivePosition(s,o),t.PTSKnown&&Object(l["isFiniteNumber"])(s)?d["logger"].log("live playlist sliding:"+s.toFixed(3)):(d["logger"].log("live playlist - outdated PTS, unknown sliding"),De(this.fragPrevious,r,t))):(d["logger"].log("live playlist - first load, unknown sliding"),t.PTSKnown=!1,De(this.fragPrevious,r,t))}else t.PTSKnown=!1;if(n.details=t,this.levelLastLoaded=i,this.hls.trigger(u["default"].LEVEL_UPDATED,{details:t,level:i}),!1===this.startFragRequested){if(-1===this.startPosition||-1===this.lastCurrentTime){var c=t.startTimeOffset;Object(l["isFiniteNumber"])(c)?(c<0&&(d["logger"].log("negative start time offset "+c+", count from end of last fragment"),c=s+a+c),d["logger"].log("start time offset found in playlist, adjust startPosition to "+c),this.startPosition=c):t.live?(this.startPosition=this.computeLivePosition(s,t),d["logger"].log("configure startPosition to "+this.startPosition)):this.startPosition=0,this.lastCurrentTime=this.startPosition}this.nextLoadPosition=this.startPosition}this.state===He.WAITING_LEVEL&&(this.state=He.IDLE),this.tick()},i.onKeyLoaded=function(){this.state===He.KEY_LOADING&&(this.state=He.IDLE,this.tick())},i.onFragLoaded=function(e){var t=this.fragCurrent,i=this.hls,r=this.levels,n=this.media,a=e.frag;if(this.state===He.FRAG_LOADING&&t&&"main"===a.type&&a.level===t.level&&a.sn===t.sn){var s=e.stats,o=r[t.level],l=o.details;if(this.bitrateTest=!1,this.stats=s,d["logger"].log("Loaded "+t.sn+" of ["+l.startSN+" ,"+l.endSN+"],level "+t.level),a.bitrateTest&&i.nextLoadLevel)this.state=He.IDLE,this.startFragRequested=!1,s.tparsed=s.tbuffered=window.performance.now(),i.trigger(u["default"].FRAG_BUFFERED,{stats:s,frag:t,id:"main"}),this.tick();else if("initSegment"===a.sn)this.state=He.IDLE,s.tparsed=s.tbuffered=window.performance.now(),l.initSegment.data=e.payload,i.trigger(u["default"].FRAG_BUFFERED,{stats:s,frag:t,id:"main"}),this.tick();else{d["logger"].log("Parsing "+t.sn+" of ["+l.startSN+" ,"+l.endSN+"],level "+t.level+", cc "+t.cc),this.state=He.PARSING,this.pendingBuffering=!0,this.appended=!1,a.bitrateTest&&(a.bitrateTest=!1,this.fragmentTracker.onFragLoaded({frag:a}));var c=!(n&&n.seeking)&&(l.PTSKnown||!l.live),h=l.initSegment?l.initSegment.data:[],f=this._getAudioCodec(o),p=this.demuxer=this.demuxer||new fe(this.hls,"main");p.push(e.payload,h,f,o.videoCodec,t,l.totalduration,c)}}this.fragLoadError=0},i.onFragParsingInitSegment=function(e){var t=this.fragCurrent,i=e.frag;if(t&&"main"===e.id&&i.sn===t.sn&&i.level===t.level&&this.state===He.PARSING){var r,n,a=e.tracks;if(a.audio&&this.altAudio&&delete a.audio,n=a.audio,n){var s=this.levels[this.level].audioCodec,o=navigator.userAgent.toLowerCase();s&&this.audioCodecSwap&&(d["logger"].log("swapping playlist audio codec"),s=-1!==s.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5"),this.audioCodecSwitch&&1!==n.metadata.channelCount&&-1===o.indexOf("firefox")&&(s="mp4a.40.5"),-1!==o.indexOf("android")&&"audio/mpeg"!==n.container&&(s="mp4a.40.2",d["logger"].log("Android: force audio codec to "+s)),n.levelCodec=s,n.id=e.id}for(r in n=a.video,n&&(n.levelCodec=this.levels[this.level].videoCodec,n.id=e.id),this.hls.trigger(u["default"].BUFFER_CODECS,a),a){n=a[r],d["logger"].log("main track:"+r+",container:"+n.container+",codecs[level/parsed]=["+n.levelCodec+"/"+n.codec+"]");var l=n.initSegment;l&&(this.appended=!0,this.pendingBuffering=!0,this.hls.trigger(u["default"].BUFFER_APPENDING,{type:r,data:l,parent:"main",content:"initSegment"}))}this.tick()}},i.onFragParsingData=function(e){var t=this,i=this.fragCurrent,r=e.frag;if(i&&"main"===e.id&&r.sn===i.sn&&r.level===i.level&&("audio"!==e.type||!this.altAudio)&&this.state===He.PARSING){var n=this.levels[this.level],a=i;if(Object(l["isFiniteNumber"])(e.endPTS)||(e.endPTS=e.startPTS+i.duration,e.endDTS=e.startDTS+i.duration),!0===e.hasAudio&&a.addElementaryStream(v.AUDIO),!0===e.hasVideo&&a.addElementaryStream(v.VIDEO),d["logger"].log("Parsed "+e.type+",PTS:["+e.startPTS.toFixed(3)+","+e.endPTS.toFixed(3)+"],DTS:["+e.startDTS.toFixed(3)+"/"+e.endDTS.toFixed(3)+"],nb:"+e.nb+",dropped:"+(e.dropped||0)),"video"===e.type)if(a.dropped=e.dropped,a.dropped)if(a.backtracked)d["logger"].warn("Already backtracked on this fragment, appending with the gap",a.sn);else{var s=n.details;if(!s||a.sn!==s.startSN)return d["logger"].warn("missing video frame(s), backtracking fragment",a.sn),this.fragmentTracker.removeFragment(a),a.backtracked=!0,this.nextLoadPosition=e.startPTS,this.state=He.IDLE,this.fragPrevious=a,void this.tick();d["logger"].warn("missing video frame(s) on first frag, appending with gap",a.sn)}else a.backtracked=!1;var o=ge(n.details,a,e.startPTS,e.endPTS,e.startDTS,e.endDTS),c=this.hls;c.trigger(u["default"].LEVEL_PTS_UPDATED,{details:n.details,level:this.level,drift:o,type:e.type,start:e.startPTS,end:e.endPTS}),[e.data1,e.data2].forEach((function(i){i&&i.length&&t.state===He.PARSING&&(t.appended=!0,t.pendingBuffering=!0,c.trigger(u["default"].BUFFER_APPENDING,{type:e.type,data:i,parent:"main",content:"data"}))})),this.tick()}},i.onFragParsed=function(e){var t=this.fragCurrent,i=e.frag;t&&"main"===e.id&&i.sn===t.sn&&i.level===t.level&&this.state===He.PARSING&&(this.stats.tparsed=window.performance.now(),this.state=He.PARSED,this._checkAppendedParsed())},i.onAudioTrackSwitching=function(e){var t=!!e.url,i=e.id;if(!t){if(this.mediaBuffer!==this.media){d["logger"].log("switching on main audio, use media.buffered to schedule main fragment loading"),this.mediaBuffer=this.media;var r=this.fragCurrent;r.loader&&(d["logger"].log("switching to main audio track, cancel main fragment load"),r.loader.abort()),this.fragCurrent=null,this.fragPrevious=null,this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),this.state=He.IDLE}var n=this.hls;n.trigger(u["default"].BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"}),n.trigger(u["default"].AUDIO_TRACK_SWITCHED,{id:i}),this.altAudio=!1}},i.onAudioTrackSwitched=function(e){var t=e.id,i=!!this.hls.audioTracks[t].url;if(i){var r=this.videoBuffer;r&&this.mediaBuffer!==r&&(d["logger"].log("switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=r)}this.altAudio=i,this.tick()},i.onBufferCreated=function(e){var t,i,r=e.tracks,n=!1;for(var a in r){var s=r[a];"main"===s.id?(i=a,t=s,"video"===a&&(this.videoBuffer=r[a].buffer)):n=!0}n&&t?(d["logger"].log("alternate track found, use "+i+".buffered to schedule main fragment loading"),this.mediaBuffer=t.buffer):this.mediaBuffer=this.media},i.onBufferAppended=function(e){if("main"===e.parent){var t=this.state;t!==He.PARSING&&t!==He.PARSED||(this.pendingBuffering=e.pending>0,this._checkAppendedParsed())}},i._checkAppendedParsed=function(){if(this.state===He.PARSED&&(!this.appended||!this.pendingBuffering)){var e=this.fragCurrent;if(e){var t=this.mediaBuffer?this.mediaBuffer:this.media;d["logger"].log("main buffered : "+Te.toString(t.buffered)),this.fragPrevious=e;var i=this.stats;i.tbuffered=window.performance.now(),this.fragLastKbps=Math.round(8*i.total/(i.tbuffered-i.tfirst)),this.hls.trigger(u["default"].FRAG_BUFFERED,{stats:i,frag:e,id:"main"}),this.state=He.IDLE}this.tick()}},i.onError=function(e){var t=e.frag||this.fragCurrent;if(!t||"main"===t.type){var i=!!this.media&&ie.isBuffered(this.media,this.media.currentTime)&&ie.isBuffered(this.media,this.media.currentTime+.5);switch(e.details){case o["ErrorDetails"].FRAG_LOAD_ERROR:case o["ErrorDetails"].FRAG_LOAD_TIMEOUT:case o["ErrorDetails"].KEY_LOAD_ERROR:case o["ErrorDetails"].KEY_LOAD_TIMEOUT:if(!e.fatal)if(this.fragLoadError+1<=this.config.fragLoadingMaxRetry){var r=Math.min(Math.pow(2,this.fragLoadError)*this.config.fragLoadingRetryDelay,this.config.fragLoadingMaxRetryTimeout);d["logger"].warn("mediaController: frag loading failed, retry in "+r+" ms"),this.retryDate=window.performance.now()+r,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.fragLoadError++,this.state=He.FRAG_LOADING_WAITING_RETRY}else d["logger"].error("mediaController: "+e.details+" reaches max retry, redispatch as fatal ..."),e.fatal=!0,this.state=He.ERROR;break;case o["ErrorDetails"].LEVEL_LOAD_ERROR:case o["ErrorDetails"].LEVEL_LOAD_TIMEOUT:this.state!==He.ERROR&&(e.fatal?(this.state=He.ERROR,d["logger"].warn("streamController: "+e.details+",switch to "+this.state+" state ...")):e.levelRetry||this.state!==He.WAITING_LEVEL||(this.state=He.IDLE));break;case o["ErrorDetails"].BUFFER_FULL_ERROR:"main"!==e.parent||this.state!==He.PARSING&&this.state!==He.PARSED||(i?(this._reduceMaxBufferLength(this.config.maxBufferLength),this.state=He.IDLE):(d["logger"].warn("buffer full error also media.currentTime is not buffered, flush everything"),this.fragCurrent=null,this.flushMainBuffer(0,Number.POSITIVE_INFINITY)));break;default:break}}},i._reduceMaxBufferLength=function(e){var t=this.config;return t.maxMaxBufferLength>=e&&(t.maxMaxBufferLength/=2,d["logger"].warn("main:reduce max buffer length to "+t.maxMaxBufferLength+"s"),!0)},i._checkBuffer=function(){var e=this.media;if(e&&0!==e.readyState){var t=this.mediaBuffer?this.mediaBuffer:e,i=t.buffered;!this.loadedmetadata&&i.length?(this.loadedmetadata=!0,this._seekToStartPos()):this.immediateSwitch?this.immediateLevelSwitchEnd():this.gapController.poll(this.lastCurrentTime,i)}},i.onFragLoadEmergencyAborted=function(){this.state=He.IDLE,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.tick()},i.onBufferFlushed=function(){var e=this.mediaBuffer?this.mediaBuffer:this.media;e&&this.fragmentTracker.detectEvictedFragments(v.VIDEO,e.buffered),this.state=He.IDLE,this.fragPrevious=null},i.swapAudioCodec=function(){this.audioCodecSwap=!this.audioCodecSwap},i._seekToStartPos=function(){var e=this.media,t=e.currentTime,i=e.seeking?t:this.startPosition;t!==i&&i>=0&&(d["logger"].log("target start position not buffered, seek to buffered.start(0) "+i+" from current time "+t+" "),e.currentTime=i)},i._getAudioCodec=function(e){var t=this.config.defaultAudioCodec||e.audioCodec;return this.audioCodecSwap&&(d["logger"].log("swapping playlist audio codec"),t&&(t=-1!==t.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5")),t},Ye(t,[{key:"state",set:function(e){if(this.state!==e){var t=this.state;this._state=e,d["logger"].log("main stream-controller: "+t+"->"+e),this.hls.trigger(u["default"].STREAM_STATE_TRANSITION,{previousState:t,nextState:e})}},get:function(){return this._state}},{key:"currentLevel",get:function(){var e=this.media;if(e){var t=this.getBufferedFrag(e.currentTime);if(t)return t.level}return-1}},{key:"nextBufferedFrag",get:function(){var e=this.media;return e?this.followingBufferedFrag(this.getBufferedFrag(e.currentTime)):null}},{key:"nextLevel",get:function(){var e=this.nextBufferedFrag;return e?e.level:-1}},{key:"liveSyncPosition",get:function(){return this._liveSyncPosition},set:function(e){this._liveSyncPosition=e}}]),t}(ze),Je=Qe;function Ze(e,t){for(var i=0;i0){t=i[0].bitrate,i.sort((function(e,t){return e.bitrate-t.bitrate})),this._levels=i;for(var c=0;c=0&&e1&&c.loadError0){var t=this.currentLevelIndex,i=e.urlId,r=e.url[i];d["logger"].log("Attempt loading level index "+t+" with URL-id "+i),this.hls.trigger(u["default"].LEVEL_LOADING,{url:r,level:t,id:i})}}},et(t,[{key:"levels",get:function(){return this._levels}},{key:"level",get:function(){return this.currentLevelIndex},set:function(e){var t=this._levels;t&&(e=Math.min(e,t.length-1),this.currentLevelIndex===e&&t[e].details||this.setLevelInternal(e))}},{key:"manualLevel",get:function(){return this.manualLevelIndex},set:function(e){this.manualLevelIndex=e,void 0===this._startLevel&&(this._startLevel=e),-1!==e&&(this.level=e)}},{key:"firstLevel",get:function(){return this._firstLevel},set:function(e){this._firstLevel=e}},{key:"startLevel",get:function(){if(void 0===this._startLevel){var e=this.hls.config.startLevel;return void 0!==e?e:this._firstLevel}return this._startLevel},set:function(e){this._startLevel=e}},{key:"nextLoadLevel",get:function(){return-1!==this.manualLevelIndex?this.manualLevelIndex:this.hls.nextAutoLevel},set:function(e){this.level=e,-1===this.manualLevelIndex&&(this.hls.nextAutoLevel=e)}}]),t}(f)),at=i("./src/demux/id3.js");function st(e,t){var i;try{i=new Event("addtrack")}catch(r){i=document.createEvent("Event"),i.initEvent("addtrack",!1,!1)}i.track=e,t.dispatchEvent(i)}function ot(e){if(e&&e.cues)while(e.cues.length>0)e.removeCue(e.cues[0])}function lt(e,t){if(te[e.length-1].endTime)return e[e.length-1];var i=0,r=e.length-1;while(i<=r){var n=Math.floor((r+i)/2);if(te[n].endTime))return e[n];i=n+1}}return e[i].endTime-to&&(d["logger"].warn("detected an id3 sample with endTime < startTime, adjusting endTime to (startTime + 0.25)"),o=s+.25);for(var l=0;l=this.minWeight_},t.getEstimate=function(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_},t.destroy=function(){},e}(),gt=mt;function vt(e,t){for(var i=0;i500*i.duration/o){var l=e.levels,c=Math.max(1,a.bw?a.bw/8:1e3*a.loaded/s),h=l[i.level],f=h.realBitrate?Math.max(h.realBitrate,h.bitrate):h.bitrate,p=a.total?a.total:Math.max(a.loaded,Math.round(i.duration*f/8)),m=t.currentTime,g=(p-a.loaded)/c,v=(ie.bufferInfo(t,m,e.config.maxBufferHole).end-m)/o;if(v<2*i.duration/o&&g>v){var y,_;for(_=i.level-1;_>n;_--){var E=l[_].realBitrate?Math.max(l[_].realBitrate,l[_].bitrate):l[_].bitrate,b=i.duration*E/(6.4*c);if(b=r;u--){var c=l[u];if(c){var h=c.details,f=h?h.totalduration/h.fragments.length:t,p=!!h&&h.live,m=void 0;m=u<=e?s*i:o*i;var g=l[u].realBitrate?Math.max(l[u].realBitrate,l[u].bitrate):l[u].bitrate,v=g*f/m;if(d["logger"].trace("level/adjustedbw/bitrate/avgDuration/maxFetchDuration/fetchDuration: "+u+"/"+Math.round(m)+"/"+g+"/"+f+"/"+a+"/"+v),m>g&&(!v||p&&!this.bitrateTestDelay||v=0)return f;d["logger"].trace("rebuffering expected to happen, lets try to find a quality level minimizing the rebuffering");var p=o?Math.min(o,r.maxStarvationDelay):r.maxStarvationDelay,m=r.abrBandWidthFactor,g=r.abrBandWidthUpFactor;if(0===h){var v=this.bitrateTestDelay;if(v){var y=o?Math.min(o,r.maxLoadingDelay):r.maxLoadingDelay;p=y-v,d["logger"].trace("bitrate test took "+Math.round(1e3*v)+"ms, set first fragment max fetchDuration to "+Math.round(1e3*p)+" ms"),m=g=1}}return f=this._findBestLevel(s,o,c,n,t,h+p,m,g,i),Math.max(f,0)}}]),t}(f),wt=Tt;function At(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var kt=se(),Rt=function(e){function t(t){var i;return i=e.call(this,t,u["default"].MEDIA_ATTACHING,u["default"].MEDIA_DETACHING,u["default"].MANIFEST_PARSED,u["default"].BUFFER_RESET,u["default"].BUFFER_APPENDING,u["default"].BUFFER_CODECS,u["default"].BUFFER_EOS,u["default"].BUFFER_FLUSHING,u["default"].LEVEL_PTS_UPDATED,u["default"].LEVEL_UPDATED)||this,i._msDuration=null,i._levelDuration=null,i._levelTargetDuration=10,i._live=null,i._objectUrl=null,i._needsFlush=!1,i._needsEos=!1,i.config=void 0,i.audioTimestampOffset=void 0,i.bufferCodecEventsExpected=0,i._bufferCodecEventsTotal=0,i.media=null,i.mediaSource=null,i.segments=[],i.parent=void 0,i.appending=!1,i.appended=0,i.appendError=0,i.flushBufferCounter=0,i.tracks={},i.pendingTracks={},i.sourceBuffer={},i.flushRange=[],i._onMediaSourceOpen=function(){d["logger"].log("media source opened"),i.hls.trigger(u["default"].MEDIA_ATTACHED,{media:i.media});var e=i.mediaSource;e&&e.removeEventListener("sourceopen",i._onMediaSourceOpen),i.checkPendingTracks()},i._onMediaSourceClose=function(){d["logger"].log("media source closed")},i._onMediaSourceEnded=function(){d["logger"].log("media source ended")},i._onSBUpdateEnd=function(){if(i.audioTimestampOffset&&i.sourceBuffer.audio){var e=i.sourceBuffer.audio;d["logger"].warn("change mpeg audio timestamp offset from "+e.timestampOffset+" to "+i.audioTimestampOffset),e.timestampOffset=i.audioTimestampOffset,delete i.audioTimestampOffset}i._needsFlush&&i.doFlush(),i._needsEos&&i.checkEos(),i.appending=!1;var t=i.parent,r=i.segments.reduce((function(e,i){return i.parent===t?e+1:e}),0),n={},a=i.sourceBuffer;for(var s in a){var o=a[s];if(!o)throw Error("handling source buffer update end error: source buffer for "+s+" uninitilized and unable to update buffered TimeRanges.");n[s]=o.buffered}i.hls.trigger(u["default"].BUFFER_APPENDED,{parent:t,pending:r,timeRanges:n}),i._needsFlush||i.doAppending(),i.updateMediaElementDuration(),0===r&&i.flushLiveBackBuffer()},i._onSBUpdateError=function(e){d["logger"].error("sourceBuffer error:",e),i.hls.trigger(u["default"].ERROR,{type:o["ErrorTypes"].MEDIA_ERROR,details:o["ErrorDetails"].BUFFER_APPENDING_ERROR,fatal:!1})},i.config=t.config,i}At(t,e);var i=t.prototype;return i.destroy=function(){f.prototype.destroy.call(this)},i.onLevelPtsUpdated=function(e){var t=e.type,i=this.tracks.audio;if("audio"===t&&i&&"audio/mpeg"===i.container){var r=this.sourceBuffer.audio;if(!r)throw Error("Level PTS Updated and source buffer for audio uninitalized");var n=Math.abs(r.timestampOffset-e.start);if(n>.1){var a=r.updating;try{r.abort()}catch(s){d["logger"].warn("can not abort audio buffer: "+s)}a?this.audioTimestampOffset=e.start:(d["logger"].warn("change mpeg audio timestamp offset from "+r.timestampOffset+" to "+e.start),r.timestampOffset=e.start)}}},i.onManifestParsed=function(e){this.bufferCodecEventsExpected=this._bufferCodecEventsTotal=e.altAudio?2:1,d["logger"].log(this.bufferCodecEventsExpected+" bufferCodec event(s) expected")},i.onMediaAttaching=function(e){var t=this.media=e.media;if(t&&kt){var i=this.mediaSource=new kt;i.addEventListener("sourceopen",this._onMediaSourceOpen),i.addEventListener("sourceended",this._onMediaSourceEnded),i.addEventListener("sourceclose",this._onMediaSourceClose),t.src=window.URL.createObjectURL(i),this._objectUrl=t.src}},i.onMediaDetaching=function(){d["logger"].log("media source detaching");var e=this.mediaSource;if(e){if("open"===e.readyState)try{e.endOfStream()}catch(t){d["logger"].warn("onMediaDetaching:"+t.message+" while calling endOfStream")}e.removeEventListener("sourceopen",this._onMediaSourceOpen),e.removeEventListener("sourceended",this._onMediaSourceEnded),e.removeEventListener("sourceclose",this._onMediaSourceClose),this.media&&(this._objectUrl&&window.URL.revokeObjectURL(this._objectUrl),this.media.src===this._objectUrl?(this.media.removeAttribute("src"),this.media.load()):d["logger"].warn("media.src was changed by a third party - skip cleanup")),this.mediaSource=null,this.media=null,this._objectUrl=null,this.bufferCodecEventsExpected=this._bufferCodecEventsTotal,this.pendingTracks={},this.tracks={},this.sourceBuffer={},this.flushRange=[],this.segments=[],this.appended=0}this.hls.trigger(u["default"].MEDIA_DETACHED)},i.checkPendingTracks=function(){var e=this.bufferCodecEventsExpected,t=this.pendingTracks,i=Object.keys(t).length;(i&&!e||2===i)&&(this.createSourceBuffers(t),this.pendingTracks={},this.doAppending())},i.onBufferReset=function(){var e=this.sourceBuffer;for(var t in e){var i=e[t];try{i&&(this.mediaSource&&this.mediaSource.removeSourceBuffer(i),i.removeEventListener("updateend",this._onSBUpdateEnd),i.removeEventListener("error",this._onSBUpdateError))}catch(r){}}this.sourceBuffer={},this.flushRange=[],this.segments=[],this.appended=0},i.onBufferCodecs=function(e){var t=this;Object.keys(this.sourceBuffer).length||(Object.keys(e).forEach((function(i){t.pendingTracks[i]=e[i]})),this.bufferCodecEventsExpected=Math.max(this.bufferCodecEventsExpected-1,0),this.mediaSource&&"open"===this.mediaSource.readyState&&this.checkPendingTracks())},i.createSourceBuffers=function(e){var t=this.sourceBuffer,i=this.mediaSource;if(!i)throw Error("createSourceBuffers called when mediaSource was null");for(var r in e)if(!t[r]){var n=e[r];if(!n)throw Error("source buffer exists for track "+r+", however track does not");var a=n.levelCodec||n.codec,s=n.container+";codecs="+a;d["logger"].log("creating sourceBuffer("+s+")");try{var l=t[r]=i.addSourceBuffer(s);l.addEventListener("updateend",this._onSBUpdateEnd),l.addEventListener("error",this._onSBUpdateError),this.tracks[r]={buffer:l,codec:a,id:n.id,container:n.container,levelCodec:n.levelCodec}}catch(c){d["logger"].error("error while trying to add sourceBuffer:"+c.message),this.hls.trigger(u["default"].ERROR,{type:o["ErrorTypes"].MEDIA_ERROR,details:o["ErrorDetails"].BUFFER_ADD_CODEC_ERROR,fatal:!1,err:c,mimeType:s})}}this.hls.trigger(u["default"].BUFFER_CREATED,{tracks:this.tracks})},i.onBufferAppending=function(e){this._needsFlush||(this.segments?this.segments.push(e):this.segments=[e],this.doAppending())},i.onBufferEos=function(e){for(var t in this.sourceBuffer)if(!e.type||e.type===t){var i=this.sourceBuffer[t];i&&!i.ended&&(i.ended=!0,d["logger"].log(t+" sourceBuffer now EOS"))}this.checkEos()},i.checkEos=function(){var e=this.sourceBuffer,t=this.mediaSource;if(t&&"open"===t.readyState){for(var i in e){var r=e[i];if(r){if(!r.ended)return;if(r.updating)return void(this._needsEos=!0)}}d["logger"].log("all media data are available, signal endOfStream() to MediaSource and stop loading fragment");try{t.endOfStream()}catch(n){d["logger"].warn("exception while calling mediaSource.endOfStream()")}this._needsEos=!1}else this._needsEos=!1},i.onBufferFlushing=function(e){e.type?this.flushRange.push({start:e.startOffset,end:e.endOffset,type:e.type}):(this.flushRange.push({start:e.startOffset,end:e.endOffset,type:"video"}),this.flushRange.push({start:e.startOffset,end:e.endOffset,type:"audio"})),this.flushBufferCounter=0,this.doFlush()},i.flushLiveBackBuffer=function(){if(this._live){var e=this.config.liveBackBufferLength;if(isFinite(e)&&!(e<0))if(this.media)for(var t=this.media.currentTime,i=this.sourceBuffer,r=Object.keys(i),n=t-Math.max(e,this._levelTargetDuration),a=r.length-1;a>=0;a--){var s=r[a],o=i[s];if(o){var l=o.buffered;l.length>0&&n>l.start(0)&&this.removeBufferRange(s,o,0,n)&&this.hls.trigger(u["default"].LIVE_BACK_BUFFER_REACHED,{bufferEnd:n})}}else d["logger"].error("flushLiveBackBuffer called without attaching media")}},i.onLevelUpdated=function(e){var t=e.details;t.fragments.length>0&&(this._levelDuration=t.totalduration+t.fragments[0].start,this._levelTargetDuration=t.averagetargetduration||t.targetduration||10,this._live=t.live,this.updateMediaElementDuration())},i.updateMediaElementDuration=function(){var e,t=this.config;if(null!==this._levelDuration&&this.media&&this.mediaSource&&this.sourceBuffer&&0!==this.media.readyState&&"open"===this.mediaSource.readyState){for(var i in this.sourceBuffer){var r=this.sourceBuffer[i];if(r&&!0===r.updating)return}e=this.media.duration,null===this._msDuration&&(this._msDuration=this.mediaSource.duration),!0===this._live&&!0===t.liveDurationInfinity?(d["logger"].log("Media Source duration is set to Infinity"),this._msDuration=this.mediaSource.duration=1/0):(this._levelDuration>this._msDuration&&this._levelDuration>e||!Object(l["isFiniteNumber"])(e))&&(d["logger"].log("Updating Media Source duration to "+this._levelDuration.toFixed(3)),this._msDuration=this.mediaSource.duration=this._levelDuration)}},i.doFlush=function(){while(this.flushRange.length){var e=this.flushRange[0];if(!this.flushBuffer(e.start,e.end,e.type))return void(this._needsFlush=!0);this.flushRange.shift(),this.flushBufferCounter=0}if(0===this.flushRange.length){this._needsFlush=!1;var t=0,i=this.sourceBuffer;try{for(var r in i){var n=i[r];n&&(t+=n.buffered.length)}}catch(a){d["logger"].error("error while accessing sourceBuffer.buffered")}this.appended=t,this.hls.trigger(u["default"].BUFFER_FLUSHED)}},i.doAppending=function(){var e=this.config,t=this.hls,i=this.segments,r=this.sourceBuffer;if(Object.keys(r).length){if(!this.media||this.media.error)return this.segments=[],void d["logger"].error("trying to append although a media error occured, flush segment and abort");if(!this.appending){var n=i.shift();if(n)try{var a=r[n.type];if(!a)return void this._onSBUpdateEnd();if(a.updating)return void i.unshift(n);a.ended=!1,this.parent=n.parent,a.appendBuffer(n.data),this.appendError=0,this.appended++,this.appending=!0}catch(l){d["logger"].error("error while trying to append buffer:"+l.message),i.unshift(n);var s={type:o["ErrorTypes"].MEDIA_ERROR,parent:n.parent,details:"",fatal:!1};22===l.code?(this.segments=[],s.details=o["ErrorDetails"].BUFFER_FULL_ERROR):(this.appendError++,s.details=o["ErrorDetails"].BUFFER_APPEND_ERROR,this.appendError>e.appendErrorMaxRetry&&(d["logger"].log("fail "+e.appendErrorMaxRetry+" times to append segment in sourceBuffer"),this.segments=[],s.fatal=!0)),t.trigger(u["default"].ERROR,s)}}}},i.flushBuffer=function(e,t,i){var r=this.sourceBuffer;if(!Object.keys(r).length)return!0;var n="null";if(this.media&&(n=this.media.currentTime.toFixed(3)),d["logger"].log("flushBuffer,pos/start/end: "+n+"/"+e+"/"+t),this.flushBufferCounter>=this.appended)return d["logger"].warn("abort flushing too many retries"),!0;var a=r[i];if(a){if(a.ended=!1,a.updating)return d["logger"].warn("cannot flush, sb updating in progress"),!1;if(this.removeBufferRange(i,a,e,t))return this.flushBufferCounter++,!1}return d["logger"].log("buffer flushed"),!0},i.removeBufferRange=function(e,t,i,r){try{for(var n=0;n.5){var u="null";return this.media&&(u=this.media.currentTime.toString()),d["logger"].log("sb remove "+e+" ["+o+","+l+"], of ["+a+","+s+"], pos:"+u),t.remove(o,l),!0}}}catch(c){d["logger"].warn("removeBufferRange failed",c)}return!1},t}(f),Lt=Rt;function Dt(e,t){for(var i=0;ithis.autoLevelCapping&&t.streamController.nextLevelSwitch(),this.autoLevelCapping=t.autoLevelCapping}}},i.getMaxLevel=function(e){var i=this;if(!this.levels)return-1;var r=this.levels.filter((function(r,n){return t.isLevelAllowed(n,i.restrictedLevels)&&n<=e}));return t.getMaxLevelByMediaSize(r,this.mediaWidth,this.mediaHeight)},i.startCapping=function(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,this.hls.firstLevel=this.getMaxLevel(this.firstLevel),clearInterval(this.timer),this.timer=setInterval(this.detectPlayerSize.bind(this),1e3),this.detectPlayerSize())},i.stopCapping=function(){this.restrictedLevels=[],this.firstLevel=null,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer&&(this.timer=clearInterval(this.timer),this.timer=null)},t.isLevelAllowed=function(e,t){return void 0===t&&(t=[]),-1===t.indexOf(e)},t.getMaxLevelByMediaSize=function(e,t,i){if(!e||e&&!e.length)return-1;for(var r=function(e,t){return!t||(e.width!==t.width||e.height!==t.height)},n=e.length-1,a=0;a=t||s.height>=i)&&r(s,e[a+1])){n=a;break}}return n},It(t,[{key:"mediaWidth",get:function(){var e,i=this.media;return i&&(e=i.width||i.clientWidth||i.offsetWidth,e*=t.contentScaleFactor),e}},{key:"mediaHeight",get:function(){var e,i=this.media;return i&&(e=i.height||i.clientHeight||i.offsetHeight,e*=t.contentScaleFactor),e}}],[{key:"contentScaleFactor",get:function(){var e=1;try{e=window.devicePixelRatio}catch(t){}return e}}]),t}(f),xt=Ot;function Mt(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var Pt=window,Ft=Pt.performance,Bt=function(e){function t(t){return e.call(this,t,u["default"].MEDIA_ATTACHING)||this}Mt(t,e);var i=t.prototype;return i.destroy=function(){this.timer&&clearInterval(this.timer),this.isVideoPlaybackQualityAvailable=!1},i.onMediaAttaching=function(e){var t=this.hls.config;if(t.capLevelOnFPSDrop){var i=this.video=e.media instanceof window.HTMLVideoElement?e.media:null;"function"===typeof i.getVideoPlaybackQuality&&(this.isVideoPlaybackQualityAvailable=!0),clearInterval(this.timer),this.timer=setInterval(this.checkFPSInterval.bind(this),t.fpsDroppedMonitoringPeriod)}},i.checkFPS=function(e,t,i){var r=Ft.now();if(t){if(this.lastTime){var n=r-this.lastTime,a=i-this.lastDroppedFrames,s=t-this.lastDecodedFrames,o=1e3*a/n,l=this.hls;if(l.trigger(u["default"].FPS_DROP,{currentDropped:a,currentDecoded:s,totalDroppedFrames:i}),o>0&&a>l.config.fpsDroppedMonitoringThreshold*s){var c=l.currentLevel;d["logger"].warn("drop FPS ratio greater than max allowed value for currentLevel: "+c),c>0&&(-1===l.autoLevelCapping||l.autoLevelCapping>=c)&&(c-=1,l.trigger(u["default"].FPS_DROP_LEVEL_CAPPING,{level:c,droppedLevel:l.currentLevel}),l.autoLevelCapping=c,l.streamController.nextLevelSwitch())}}this.lastTime=r,this.lastDroppedFrames=i,this.lastDecodedFrames=t}},i.checkFPSInterval=function(){var e=this.video;if(e)if(this.isVideoPlaybackQualityAvailable){var t=e.getVideoPlaybackQuality();this.checkFPS(e,t.totalVideoFrames,t.droppedVideoFrames)}else this.checkFPS(e,e.webkitDecodedFrameCount,e.webkitDroppedFrameCount)},t}(f),Nt=Bt,Ut=window,Gt=Ut.performance,jt=Ut.XMLHttpRequest,Vt=function(){function e(e){e&&e.xhrSetup&&(this.xhrSetup=e.xhrSetup)}var t=e.prototype;return t.destroy=function(){this.abort(),this.loader=null},t.abort=function(){var e=this.loader;e&&4!==e.readyState&&(this.stats.aborted=!0,e.abort()),window.clearTimeout(this.requestTimeout),this.requestTimeout=null,window.clearTimeout(this.retryTimeout),this.retryTimeout=null},t.load=function(e,t,i){this.context=e,this.config=t,this.callbacks=i,this.stats={trequest:Gt.now(),retry:0},this.retryDelay=t.retryDelay,this.loadInternal()},t.loadInternal=function(){var e,t=this.context;e=this.loader=new jt;var i=this.stats;i.tfirst=0,i.loaded=0;var r=this.xhrSetup;try{if(r)try{r(e,t.url)}catch(n){e.open("GET",t.url,!0),r(e,t.url)}e.readyState||e.open("GET",t.url,!0)}catch(n){return void this.callbacks.onError({code:e.status,text:n.message},t,e)}t.rangeEnd&&e.setRequestHeader("Range","bytes="+t.rangeStart+"-"+(t.rangeEnd-1)),e.onreadystatechange=this.readystatechange.bind(this),e.onprogress=this.loadprogress.bind(this),e.responseType=t.responseType,this.requestTimeout=window.setTimeout(this.loadtimeout.bind(this),this.config.timeout),e.send()},t.readystatechange=function(e){var t=e.currentTarget,i=t.readyState,r=this.stats,n=this.context,a=this.config;if(!r.aborted&&i>=2)if(window.clearTimeout(this.requestTimeout),0===r.tfirst&&(r.tfirst=Math.max(Gt.now(),r.trequest)),4===i){var s=t.status;if(s>=200&&s<300){var o,l;r.tload=Math.max(r.tfirst,Gt.now()),"arraybuffer"===n.responseType?(o=t.response,l=o.byteLength):(o=t.responseText,l=o.length),r.loaded=r.total=l;var u={url:t.responseURL,data:o};this.callbacks.onSuccess(u,r,n,t)}else r.retry>=a.maxRetry||s>=400&&s<499?(d["logger"].error(s+" while loading "+n.url),this.callbacks.onError({code:s,text:t.statusText},n,t)):(d["logger"].warn(s+" while loading "+n.url+", retrying in "+this.retryDelay+"..."),this.destroy(),this.retryTimeout=window.setTimeout(this.loadInternal.bind(this),this.retryDelay),this.retryDelay=Math.min(2*this.retryDelay,a.maxRetryDelay),r.retry++)}else this.requestTimeout=window.setTimeout(this.loadtimeout.bind(this),a.timeout)},t.loadtimeout=function(){d["logger"].warn("timeout while loading "+this.context.url),this.callbacks.onTimeout(this.stats,this.context,null)},t.loadprogress=function(e){var t=e.currentTarget,i=this.stats;i.loaded=e.loaded,e.lengthComputable&&(i.total=e.total);var r=this.callbacks.onProgress;r&&r(i,this.context,null,t)},e}(),qt=Vt;function Kt(e,t){for(var i=0;i=this.tracks.length)d["logger"].warn("Invalid audio track id:",e.id);else{if(d["logger"].log("audioTrack "+e.id+" loaded"),this.tracks[e.id].details=e.details,e.details.live&&!this.hasInterval()){var t=1e3*e.details.targetduration;this.setInterval(t)}!e.details.live&&this.hasInterval()&&this.clearInterval()}},i.onAudioTrackSwitched=function(e){var t=this.tracks[e.id].groupId;t&&this.audioGroupId!==t&&(this.audioGroupId=t)},i.onLevelLoaded=function(e){var t=this.hls.levels[e.level];if(t.audioGroupIds){var i=t.audioGroupIds[t.urlId];this.audioGroupId!==i&&(this.audioGroupId=i,this._selectInitialAudioTrack())}},i.onError=function(e){e.type===o["ErrorTypes"].NETWORK_ERROR&&(e.fatal&&this.clearInterval(),e.details===o["ErrorDetails"].AUDIO_TRACK_LOAD_ERROR&&(d["logger"].warn("Network failure on audio-track id:",e.context.id),this._handleLoadError()))},i._setAudioTrack=function(e){if(this._trackId===e&&this.tracks[this._trackId].details)d["logger"].debug("Same id as current audio-track passed, and track details available -> no-op");else if(e<0||e>=this.tracks.length)d["logger"].warn("Invalid id passed to audio-track controller");else{var t=this.tracks[e];d["logger"].log("Now switching to audio-track index "+e),this.clearInterval(),this._trackId=e;var i=t.url,r=t.type,n=t.id;this.hls.trigger(u["default"].AUDIO_TRACK_SWITCHING,{id:n,type:r,url:i}),this._loadTrackDetailsIfNeeded(t)}},i.doTick=function(){this._updateTrack(this._trackId)},i._selectInitialAudioTrack=function(){var e=this,t=this.tracks;if(t.length){var i=this.tracks[this._trackId],r=null;if(i&&(r=i.name),this._selectDefaultTrack){var n=t.filter((function(e){return e.default}));n.length?t=n:d["logger"].warn("No default audio tracks defined")}var a=!1,s=function(){t.forEach((function(t){a||e.audioGroupId&&t.groupId!==e.audioGroupId||r&&r!==t.name||(e._setAudioTrack(t.id),a=!0)}))};s(),a||(r=null,s()),a||(d["logger"].error("No track found for running audio group-ID: "+this.audioGroupId),this.hls.trigger(u["default"].ERROR,{type:o["ErrorTypes"].MEDIA_ERROR,details:o["ErrorDetails"].AUDIO_TRACK_LOAD_ERROR,fatal:!0}))}},i._needsTrackLoading=function(e){var t=e.details,i=e.url;return!(t&&!t.live)&&!!i},i._loadTrackDetailsIfNeeded=function(e){if(this._needsTrackLoading(e)){var t=e.url,i=e.id;d["logger"].log("loading audio-track playlist for id: "+i),this.hls.trigger(u["default"].AUDIO_TRACK_LOADING,{url:t,id:i})}},i._updateTrack=function(e){if(!(e<0||e>=this.tracks.length)){this.clearInterval(),this._trackId=e,d["logger"].log("trying to update audio-track "+e);var t=this.tracks[e];this._loadTrackDetailsIfNeeded(t)}},i._handleLoadError=function(){this.trackIdBlacklist[this._trackId]=!0;var e=this._trackId,t=this.tracks[e],i=t.name,r=t.language,n=t.groupId;d["logger"].warn("Loading failed on audio track id: "+e+", group-id: "+n+', name/language: "'+i+'" / "'+r+'"');for(var a=e,s=0;s0&&-1===e?(d["logger"].log("audio:override startPosition with lastCurrentTime @"+t.toFixed(3)),this.state=He.IDLE):(this.lastCurrentTime=this.startPosition?this.startPosition:e,this.state=He.STARTING),this.nextLoadPosition=this.startPosition=this.lastCurrentTime,this.tick()}else this.startPosition=e,this.state=He.STOPPED},i.doTick=function(){var e,t,i,r=this.hls,n=r.config;switch(this.state){case He.ERROR:case He.PAUSED:case He.BUFFER_FLUSHING:break;case He.STARTING:this.state=He.WAITING_TRACK,this.loadedmetadata=!1;break;case He.IDLE:var a=this.tracks;if(!a)break;if(!this.media&&(this.startFragRequested||!n.startFragPrefetch))break;if(this.loadedmetadata)e=this.media.currentTime;else if(e=this.nextLoadPosition,void 0===e)break;var s=this.mediaBuffer?this.mediaBuffer:this.media,o=this.videoBuffer?this.videoBuffer:this.media,c=ie.bufferInfo(s,e,n.maxBufferHole),h=ie.bufferInfo(o,e,n.maxBufferHole),f=c.len,p=c.end,m=this.fragPrevious,g=Math.min(n.maxBufferLength,n.maxMaxBufferLength),v=Math.max(g,h.len),y=this.audioSwitch,_=this.trackId;if((fT||c.nextStart))return;d["logger"].log("alt audio track ahead of main track, seek to start of alt audio track"),this.media.currentTime=T+.05}if(i.initSegment&&!i.initSegment.data)E=i.initSegment;else if(p<=T){if(E=b[0],null!==this.videoTrackCC&&E.cc!==this.videoTrackCC&&(E=Ae(b,this.videoTrackCC)),i.live&&E.loadIdx&&E.loadIdx===this.fragLoadIdx){var A=c.nextStart?c.nextStart:T;return d["logger"].log("no alt audio available @currentTime:"+this.media.currentTime+", seeking @"+(A+.05)),void(this.media.currentTime=A+.05)}}else{var k,R=n.maxFragLookUpTolerance,L=m?b[m.sn-b[0].sn+1]:void 0,D=function(e){var t=Math.min(R,e.duration);return e.start+e.duration-t<=p?1:e.start-t>p&&e.start?-1:0};pw-R&&(R=0),k=L&&!D(L)?L:te.search(b,D)):k=b[S-1],k&&(E=k,T=k.start,m&&E.level===m.level&&E.sn===m.sn&&(E.sn=C||O)&&(d["logger"].log("audioStreamController: retryDate reached, switch back to IDLE state"),this.state=He.IDLE);break;case He.WAITING_INIT_PTS:var x=this.videoTrackCC;if(void 0===this.initPTS[x])break;var M=this.waitingFragment;if(M){var P=M.frag.cc;x!==P?(t=this.tracks[this.trackId],t.details&&t.details.live&&(d["logger"].warn("Waiting fragment CC ("+P+") does not match video track CC ("+x+")"),this.waitingFragment=null,this.state=He.IDLE)):(this.state=He.FRAG_LOADING,this.onFragLoaded(this.waitingFragment),this.waitingFragment=null)}else this.state=He.IDLE;break;case He.STOPPED:case He.FRAG_LOADING:case He.PARSING:case He.PARSED:case He.ENDED:break;default:break}},i.onMediaAttached=function(e){var t=this.media=this.mediaBuffer=e.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvended=this.onMediaEnded.bind(this),t.addEventListener("seeking",this.onvseeking),t.addEventListener("ended",this.onvended);var i=this.config;this.tracks&&i.autoStartLoad&&this.startLoad(i.startPosition)},i.onMediaDetaching=function(){var e=this.media;e&&e.ended&&(d["logger"].log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0),e&&(e.removeEventListener("seeking",this.onvseeking),e.removeEventListener("ended",this.onvended),this.onvseeking=this.onvseeked=this.onvended=null),this.media=this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1,this.fragmentTracker.removeAllFragments(),this.stopLoad()},i.onAudioTracksUpdated=function(e){d["logger"].log("audio tracks updated"),this.tracks=e.audioTracks},i.onAudioTrackSwitching=function(e){var t=!!e.url;this.trackId=e.id,this.fragCurrent=null,this.state=He.PAUSED,this.waitingFragment=null,t?this.setInterval(ei):this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),t&&(this.audioSwitch=!0,this.state=He.IDLE),this.tick()},i.onAudioTrackLoaded=function(e){var t=e.details,i=e.id,r=this.tracks[i],n=t.totalduration,a=0;if(d["logger"].log("track "+i+" loaded ["+t.startSN+","+t.endSN+"],duration:"+n),t.live){var s=r.details;s&&t.fragments.length>0?(ve(s,t),a=t.fragments[0].start,t.PTSKnown?d["logger"].log("live audio playlist sliding:"+a.toFixed(3)):d["logger"].log("live audio playlist - outdated PTS, unknown sliding")):(t.PTSKnown=!1,d["logger"].log("live audio playlist - first load, unknown sliding"))}else t.PTSKnown=!1;if(r.details=t,!this.startFragRequested){if(-1===this.startPosition){var o=t.startTimeOffset;Object(l["isFiniteNumber"])(o)?(d["logger"].log("start time offset found in playlist, adjust startPosition to "+o),this.startPosition=o):t.live?(this.startPosition=this.computeLivePosition(a,t),d["logger"].log("compute startPosition for audio-track to "+this.startPosition)):this.startPosition=0}this.nextLoadPosition=this.startPosition}this.state===He.WAITING_TRACK&&(this.state=He.IDLE),this.tick()},i.onKeyLoaded=function(){this.state===He.KEY_LOADING&&(this.state=He.IDLE,this.tick())},i.onFragLoaded=function(e){var t=this.fragCurrent,i=e.frag;if(this.state===He.FRAG_LOADING&&t&&"audio"===i.type&&i.level===t.level&&i.sn===t.sn){var r=this.tracks[this.trackId],n=r.details,a=n.totalduration,s=t.level,o=t.sn,l=t.cc,c=this.config.defaultAudioCodec||r.audioCodec||"mp4a.40.2",h=this.stats=e.stats;if("initSegment"===o)this.state=He.IDLE,h.tparsed=h.tbuffered=Zt.now(),n.initSegment.data=e.payload,this.hls.trigger(u["default"].FRAG_BUFFERED,{stats:h,frag:t,id:"audio"}),this.tick();else{this.state=He.PARSING,this.appended=!1,this.demuxer||(this.demuxer=new fe(this.hls,"audio"));var f=this.initPTS[l],p=n.initSegment?n.initSegment.data:[];if(n.initSegment||void 0!==f){this.pendingBuffering=!0,d["logger"].log("Demuxing "+o+" of ["+n.startSN+" ,"+n.endSN+"],track "+s);var m=!1;this.demuxer.push(e.payload,p,c,null,t,a,m,f)}else d["logger"].log("unknown video PTS for continuity counter "+l+", waiting for video PTS before demuxing audio frag "+o+" of ["+n.startSN+" ,"+n.endSN+"],track "+s),this.waitingFragment=e,this.state=He.WAITING_INIT_PTS}}this.fragLoadError=0},i.onFragParsingInitSegment=function(e){var t=this.fragCurrent,i=e.frag;if(t&&"audio"===e.id&&i.sn===t.sn&&i.level===t.level&&this.state===He.PARSING){var r,n=e.tracks;if(n.video&&delete n.video,r=n.audio,r){r.levelCodec=r.codec,r.id=e.id,this.hls.trigger(u["default"].BUFFER_CODECS,n),d["logger"].log("audio track:audio,container:"+r.container+",codecs[level/parsed]=["+r.levelCodec+"/"+r.codec+"]");var a=r.initSegment;if(a){var s={type:"audio",data:a,parent:"audio",content:"initSegment"};this.audioSwitch?this.pendingData=[s]:(this.appended=!0,this.pendingBuffering=!0,this.hls.trigger(u["default"].BUFFER_APPENDING,s))}this.tick()}}},i.onFragParsingData=function(e){var t=this,i=this.fragCurrent,r=e.frag;if(i&&"audio"===e.id&&"audio"===e.type&&r.sn===i.sn&&r.level===i.level&&this.state===He.PARSING){var n=this.trackId,a=this.tracks[n],s=this.hls;Object(l["isFiniteNumber"])(e.endPTS)||(e.endPTS=e.startPTS+i.duration,e.endDTS=e.startDTS+i.duration),i.addElementaryStream(v.AUDIO),d["logger"].log("parsed "+e.type+",PTS:["+e.startPTS.toFixed(3)+","+e.endPTS.toFixed(3)+"],DTS:["+e.startDTS.toFixed(3)+"/"+e.endDTS.toFixed(3)+"],nb:"+e.nb),ge(a.details,i,e.startPTS,e.endPTS);var c=this.audioSwitch,h=this.media,f=!1;if(c)if(h&&h.readyState){var p=h.currentTime;d["logger"].log("switching audio track : currentTime:"+p),p>=e.startPTS&&(d["logger"].log("switching audio track : flushing all audio"),this.state=He.BUFFER_FLUSHING,s.trigger(u["default"].BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"}),f=!0,this.audioSwitch=!1,s.trigger(u["default"].AUDIO_TRACK_SWITCHED,{id:n}))}else this.audioSwitch=!1,s.trigger(u["default"].AUDIO_TRACK_SWITCHED,{id:n});var m=this.pendingData;if(!m)return d["logger"].warn("Apparently attempt to enqueue media payload without codec initialization data upfront"),void s.trigger(u["default"].ERROR,{type:o["ErrorTypes"].MEDIA_ERROR,details:null,fatal:!0});this.audioSwitch||([e.data1,e.data2].forEach((function(t){t&&t.length&&m.push({type:e.type,data:t,parent:"audio",content:"data"})})),!f&&m.length&&(m.forEach((function(e){t.state===He.PARSING&&(t.pendingBuffering=!0,t.hls.trigger(u["default"].BUFFER_APPENDING,e))})),this.pendingData=[],this.appended=!0)),this.tick()}},i.onFragParsed=function(e){var t=this.fragCurrent,i=e.frag;t&&"audio"===e.id&&i.sn===t.sn&&i.level===t.level&&this.state===He.PARSING&&(this.stats.tparsed=Zt.now(),this.state=He.PARSED,this._checkAppendedParsed())},i.onBufferReset=function(){this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1},i.onBufferCreated=function(e){var t=e.tracks.audio;t&&(this.mediaBuffer=t.buffer,this.loadedmetadata=!0),e.tracks.video&&(this.videoBuffer=e.tracks.video.buffer)},i.onBufferAppended=function(e){if("audio"===e.parent){var t=this.state;t!==He.PARSING&&t!==He.PARSED||(this.pendingBuffering=e.pending>0,this._checkAppendedParsed())}},i._checkAppendedParsed=function(){if(this.state===He.PARSED&&(!this.appended||!this.pendingBuffering)){var e=this.fragCurrent,t=this.stats,i=this.hls;if(e){this.fragPrevious=e,t.tbuffered=Zt.now(),i.trigger(u["default"].FRAG_BUFFERED,{stats:t,frag:e,id:"audio"});var r=this.mediaBuffer?this.mediaBuffer:this.media;r&&d["logger"].log("audio buffered : "+Te.toString(r.buffered)),this.audioSwitch&&this.appended&&(this.audioSwitch=!1,i.trigger(u["default"].AUDIO_TRACK_SWITCHED,{id:this.trackId})),this.state=He.IDLE}this.tick()}},i.onError=function(e){var t=e.frag;if(!t||"audio"===t.type)switch(e.details){case o["ErrorDetails"].FRAG_LOAD_ERROR:case o["ErrorDetails"].FRAG_LOAD_TIMEOUT:var i=e.frag;if(i&&"audio"!==i.type)break;if(!e.fatal){var r=this.fragLoadError;r?r++:r=1;var n=this.config;if(r<=n.fragLoadingMaxRetry){this.fragLoadError=r;var a=Math.min(Math.pow(2,r-1)*n.fragLoadingRetryDelay,n.fragLoadingMaxRetryTimeout);d["logger"].warn("AudioStreamController: frag loading failed, retry in "+a+" ms"),this.retryDate=Zt.now()+a,this.state=He.FRAG_LOADING_WAITING_RETRY}else d["logger"].error("AudioStreamController: "+e.details+" reaches max retry, redispatch as fatal ..."),e.fatal=!0,this.state=He.ERROR}break;case o["ErrorDetails"].AUDIO_TRACK_LOAD_ERROR:case o["ErrorDetails"].AUDIO_TRACK_LOAD_TIMEOUT:case o["ErrorDetails"].KEY_LOAD_ERROR:case o["ErrorDetails"].KEY_LOAD_TIMEOUT:this.state!==He.ERROR&&(this.state=e.fatal?He.ERROR:He.IDLE,d["logger"].warn("AudioStreamController: "+e.details+" while loading frag, now switching to "+this.state+" state ..."));break;case o["ErrorDetails"].BUFFER_FULL_ERROR:if("audio"===e.parent&&(this.state===He.PARSING||this.state===He.PARSED)){var s=this.mediaBuffer,l=this.media.currentTime,c=s&&ie.isBuffered(s,l)&&ie.isBuffered(s,l+.5);if(c){var h=this.config;h.maxMaxBufferLength>=h.maxBufferLength&&(h.maxMaxBufferLength/=2,d["logger"].warn("AudioStreamController: reduce max buffer length to "+h.maxMaxBufferLength+"s")),this.state=He.IDLE}else d["logger"].warn("AudioStreamController: buffer full error also media.currentTime is not buffered, flush audio buffer"),this.fragCurrent=null,this.state=He.BUFFER_FLUSHING,this.hls.trigger(u["default"].BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"})}break;default:break}},i.onBufferFlushed=function(){var e=this,t=this.pendingData;t&&t.length?(d["logger"].log("AudioStreamController: appending pending audio data after buffer flushed"),t.forEach((function(t){e.hls.trigger(u["default"].BUFFER_APPENDING,t)})),this.appended=!0,this.pendingData=[],this.state=He.PARSED):(this.state=He.IDLE,this.fragPrevious=null,this.tick())},$t(t,[{key:"state",set:function(e){if(this.state!==e){var t=this.state;this._state=e,d["logger"].log("audio stream:"+t+"->"+e)}},get:function(){return this._state}}]),t}(ze),ii=ti,ri=function(){if("undefined"!==typeof window&&window.VTTCue)return window.VTTCue;var e="auto",t={"":!0,lr:!0,rl:!0},i={start:!0,middle:!0,end:!0,left:!0,right:!0};function r(e){if("string"!==typeof e)return!1;var i=t[e.toLowerCase()];return!!i&&e.toLowerCase()}function n(e){if("string"!==typeof e)return!1;var t=i[e.toLowerCase()];return!!t&&e.toLowerCase()}function a(e){for(var t=1;t100)throw new Error("Position must be between 0 and 100.");_=e,this.hasBeenReset=!0}})),Object.defineProperty(o,"positionAlign",a({},l,{get:function(){return E},set:function(e){var t=n(e);if(!t)throw new SyntaxError("An invalid or illegal string was specified.");E=t,this.hasBeenReset=!0}})),Object.defineProperty(o,"size",a({},l,{get:function(){return b},set:function(e){if(e<0||e>100)throw new Error("Size must be between 0 and 100.");b=e,this.hasBeenReset=!0}})),Object.defineProperty(o,"align",a({},l,{get:function(){return S},set:function(e){var t=n(e);if(!t)throw new SyntaxError("An invalid or illegal string was specified.");S=t,this.hasBeenReset=!0}})),o.displayState=void 0}return s.prototype.getCueAsHTML=function(){var e=window.WebVTT;return e.convertCueToDOMTree(window,this.text)},s}(),ni=function(){return{decode:function(e){if(!e)return"";if("string"!==typeof e)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(e))}}};function ai(){this.window=window,this.state="INITIAL",this.buffer="",this.decoder=new ni,this.regionList=[]}function si(e){function t(e,t,i,r){return 3600*(0|e)+60*(0|t)+(0|i)+(0|r)/1e3}var i=e.match(/^(\d+):(\d{2})(:\d{2})?\.(\d{3})/);return i?i[3]?t(i[1],i[2],i[3].replace(":",""),i[4]):i[1]>59?t(i[1],i[2],0,i[4]):t(0,i[1],i[2],i[4]):null}function oi(){this.values=Object.create(null)}function li(e,t,i,r){var n=r?e.split(r):[e];for(var a in n)if("string"===typeof n[a]){var s=n[a].split(i);if(2===s.length){var o=s[0],l=s[1];t(o,l)}}}oi.prototype={set:function(e,t){this.get(e)||""===t||(this.values[e]=t)},get:function(e,t,i){return i?this.has(e)?this.values[e]:t[i]:this.has(e)?this.values[e]:t},has:function(e){return e in this.values},alt:function(e,t,i){for(var r=0;r=0&&t<=100))&&(this.set(e,t),!0)}};var ui=new ri(0,0,0),di="middle"===ui.align?"middle":"center";function ci(e,t,i){var r=e;function n(){var t=si(e);if(null===t)throw new Error("Malformed timestamp: "+r);return e=e.replace(/^[^\sa-zA-Z-]+/,""),t}function a(e,t){var r=new oi;li(e,(function(e,t){switch(e){case"region":for(var n=i.length-1;n>=0;n--)if(i[n].id===t){r.set(e,i[n].region);break}break;case"vertical":r.alt(e,t,["rl","lr"]);break;case"line":var a=t.split(","),s=a[0];r.integer(e,s),r.percent(e,s)&&r.set("snapToLines",!1),r.alt(e,s,["auto"]),2===a.length&&r.alt("lineAlign",a[1],["start",di,"end"]);break;case"position":a=t.split(","),r.percent(e,a[0]),2===a.length&&r.alt("positionAlign",a[1],["start",di,"end","line-left","line-right","auto"]);break;case"size":r.percent(e,t);break;case"align":r.alt(e,t,["start",di,"end","left","right"]);break}}),/:/,/\s/),t.region=r.get("region",null),t.vertical=r.get("vertical","");var n=r.get("line","auto");"auto"===n&&-1===ui.line&&(n=-1),t.line=n,t.lineAlign=r.get("lineAlign","start"),t.snapToLines=r.get("snapToLines",!0),t.size=r.get("size",100),t.align=r.get("align",di);var a=r.get("position","auto");"auto"===a&&50===ui.position&&(a="start"===t.align||"left"===t.align?0:"end"===t.align||"right"===t.align?100:50),t.position=a}function s(){e=e.replace(/^\s+/,"")}if(s(),t.startTime=n(),s(),"--\x3e"!==e.substr(0,3))throw new Error("Malformed time stamp (time stamps must be separated by '--\x3e'): "+r);e=e.substr(3),s(),t.endTime=n(),s(),a(e,t)}function hi(e){return e.replace(//gi,"\n")}ai.prototype={parse:function(e){var t=this;function i(){var e=t.buffer,i=0;e=hi(e);while(i=16?o--:o++,navigator.userAgent.match(/Firefox\//)?a.line=d+1:a.line=d>7?d-2:d+1,a.align="left",a.position=Math.max(0,Math.min(100,o/32*100)),e.addCue(a)}}var mi,gi={42:225,92:233,94:237,95:243,96:250,123:231,124:247,125:209,126:241,127:9608,128:174,129:176,130:189,131:191,132:8482,133:162,134:163,135:9834,136:224,137:32,138:232,139:226,140:234,141:238,142:244,143:251,144:193,145:201,146:211,147:218,148:220,149:252,150:8216,151:161,152:42,153:8217,154:9473,155:169,156:8480,157:8226,158:8220,159:8221,160:192,161:194,162:199,163:200,164:202,165:203,166:235,167:206,168:207,169:239,170:212,171:217,172:249,173:219,174:171,175:187,176:195,177:227,178:205,179:204,180:236,181:210,182:242,183:213,184:245,185:123,186:125,187:92,188:94,189:95,190:124,191:8764,192:196,193:228,194:214,195:246,196:223,197:165,198:164,199:9475,200:197,201:229,202:216,203:248,204:9487,205:9491,206:9495,207:9499},vi=function(e){var t=e;return gi.hasOwnProperty(e)&&(t=gi[e]),String.fromCharCode(t)},yi=15,_i=100,Ei={17:1,18:3,21:5,22:7,23:9,16:11,19:12,20:14},bi={17:2,18:4,21:6,22:8,23:10,19:13,20:15},Si={25:1,26:3,29:5,30:7,31:9,24:11,27:12,28:14},Ti={25:2,26:4,29:6,30:8,31:10,27:13,28:15},wi=["white","green","blue","cyan","red","yellow","magenta","black","transparent"];(function(e){e[e["ERROR"]=0]="ERROR",e[e["TEXT"]=1]="TEXT",e[e["WARNING"]=2]="WARNING",e[e["INFO"]=2]="INFO",e[e["DEBUG"]=3]="DEBUG",e[e["DATA"]=3]="DATA"})(mi||(mi={}));var Ai={verboseFilter:{DATA:3,DEBUG:3,INFO:2,WARNING:2,TEXT:1,ERROR:0},time:null,verboseLevel:0,setTime:function(e){this.time=e},log:function(e,t){this.verboseFilter[e];this.verboseLevel}},ki=function(e){for(var t=[],i=0;i_i&&(Ai.log("ERROR","Too large cursor position "+this.pos),this.pos=_i)},t.moveCursor=function(e){var t=this.pos+e;if(e>1)for(var i=this.pos+1;i=144&&this.backSpace();var t=vi(e);this.pos>=_i?Ai.log("ERROR","Cannot insert "+e.toString(16)+" ("+t+") at position "+this.pos+". Skipping it!"):(this.chars[this.pos].setChar(t,this.currPenState),this.moveCursor(1))},t.clearFromPos=function(e){var t;for(t=e;t<_i;t++)this.chars[t].reset()},t.clear=function(){this.clearFromPos(0),this.pos=0,this.currPenState.reset()},t.clearToEndOfRow=function(){this.clearFromPos(this.pos)},t.getTextString=function(){for(var e=[],t=!0,i=0;i<_i;i++){var r=this.chars[i].uchar;" "!==r&&(t=!1),e.push(r)}return t?"":e.join("")},t.setPenStyles=function(e){this.currPenState.setStyles(e);var t=this.chars[this.pos];t.setPenState(this.currPenState)},e}(),Ii=function(){function e(){this.rows=void 0,this.currRow=void 0,this.nrRollUpRows=void 0,this.lastOutputScreen=void 0,this.rows=[];for(var e=0;e0&&(i=e?"["+t.join(" | ")+"]":t.join("\n")),i},t.getTextAndFormat=function(){return this.rows},e}(),Ci=function(){function e(e,t){this.chNr=void 0,this.outputFilter=void 0,this.mode=void 0,this.verbose=void 0,this.displayedMemory=void 0,this.nonDisplayedMemory=void 0,this.lastOutputScreen=void 0,this.currRollUpRow=void 0,this.writeScreen=void 0,this.cueStartTime=void 0,this.lastCueEndTime=void 0,this.chNr=e,this.outputFilter=t,this.mode=null,this.verbose=0,this.displayedMemory=new Ii,this.nonDisplayedMemory=new Ii,this.lastOutputScreen=new Ii,this.currRollUpRow=this.displayedMemory.rows[yi-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null}var t=e.prototype;return t.reset=function(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.currRollUpRow=this.displayedMemory.rows[yi-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null},t.getHandler=function(){return this.outputFilter},t.setHandler=function(e){this.outputFilter=e},t.setPAC=function(e){this.writeScreen.setPAC(e)},t.setBkgData=function(e){this.writeScreen.setBkgData(e)},t.setMode=function(e){e!==this.mode&&(this.mode=e,Ai.log("INFO","MODE="+e),"MODE_POP-ON"===this.mode?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),"MODE_ROLL-UP"!==this.mode&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=e)},t.insertChars=function(e){for(var t=0;t=46,t.italics)t.foreground="white";else{var i=Math.floor(e/2)-16,r=["white","green","blue","cyan","red","yellow","magenta"];t.foreground=r[i]}Ai.log("INFO","MIDROW: "+JSON.stringify(t)),this.writeScreen.setPen(t)},t.outputDataUpdate=function(e){void 0===e&&(e=!1);var t=Ai.time;null!==t&&this.outputFilter&&(null!==this.cueStartTime||this.displayedMemory.isEmpty()?this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue(this.cueStartTime,t,this.lastOutputScreen),e&&this.outputFilter.dispatchCue&&this.outputFilter.dispatchCue(),this.cueStartTime=this.displayedMemory.isEmpty()?null:t):this.cueStartTime=t,this.lastOutputScreen.copy(this.displayedMemory))},t.cueSplitAtTime=function(e){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,e,this.displayedMemory),this.cueStartTime=e))},e}(),Oi=function(){function e(e,t,i){this.field=void 0,this.outputs=void 0,this.channels=void 0,this.currChNr=void 0,this.lastCmdA=void 0,this.lastCmdB=void 0,this.lastTime=void 0,this.dataCounters=void 0,this.field=e||1,this.outputs=[t,i],this.channels=[new Ci(1,t),new Ci(2,i)],this.currChNr=-1,this.lastCmdA=null,this.lastCmdB=null,this.lastTime=null,this.dataCounters={padding:0,char:0,cmd:0,other:0}}var t=e.prototype;return t.getHandler=function(e){return this.channels[e].getHandler()},t.setHandler=function(e,t){this.channels[e].setHandler(t)},t.addData=function(e,t){var i,r,n,a=!1;this.lastTime=e,Ai.setTime(e);for(var s=0;s ("+ki([r,n])+")"),i=this.parseCmd(r,n),i||(i=this.parseMidrow(r,n)),i||(i=this.parsePAC(r,n)),i||(i=this.parseBackgroundAttributes(r,n)),!i&&(a=this.parseChars(r,n),a))if(this.currChNr&&this.currChNr>=0){var o=this.channels[this.currChNr-1];o.insertChars(a)}else Ai.log("WARNING","No channel found yet. TEXT-MODE?");i?this.dataCounters.cmd+=2:a?this.dataCounters.char+=2:(this.dataCounters.other+=2,Ai.log("WARNING","Couldn't parse cleaned data "+ki([r,n])+" orig: "+ki([t[s],t[s+1]])))}else this.dataCounters.padding+=2},t.parseCmd=function(e,t){var i=null,r=(20===e||28===e)&&t>=32&&t<=47,n=(23===e||31===e)&&t>=33&&t<=35;if(!r&&!n)return!1;if(e===this.lastCmdA&&t===this.lastCmdB)return this.lastCmdA=null,this.lastCmdB=null,Ai.log("DEBUG","Repeated command ("+ki([e,t])+") is dropped"),!0;i=20===e||23===e?1:2;var a=this.channels[i-1];return 20===e||28===e?32===t?a.ccRCL():33===t?a.ccBS():34===t?a.ccAOF():35===t?a.ccAON():36===t?a.ccDER():37===t?a.ccRU(2):38===t?a.ccRU(3):39===t?a.ccRU(4):40===t?a.ccFON():41===t?a.ccRDC():42===t?a.ccTR():43===t?a.ccRTD():44===t?a.ccEDM():45===t?a.ccCR():46===t?a.ccENM():47===t&&a.ccEOC():a.ccTO(t-32),this.lastCmdA=e,this.lastCmdB=t,this.currChNr=i,!0},t.parseMidrow=function(e,t){var i=null;if((17===e||25===e)&&t>=32&&t<=47){if(i=17===e?1:2,i!==this.currChNr)return Ai.log("ERROR","Mismatch channel in midrow parsing"),!1;var r=this.channels[i-1];return r.ccMIDROW(t),Ai.log("DEBUG","MIDROW ("+ki([e,t])+")"),!0}return!1},t.parsePAC=function(e,t){var i=null,r=null,n=(e>=17&&e<=23||e>=25&&e<=31)&&t>=64&&t<=127,a=(16===e||24===e)&&t>=64&&t<=95;if(!n&&!a)return!1;if(e===this.lastCmdA&&t===this.lastCmdB)return this.lastCmdA=null,this.lastCmdB=null,!0;i=e<=23?1:2,r=t>=64&&t<=95?1===i?Ei[e]:Si[e]:1===i?bi[e]:Ti[e];var s=this.interpretPAC(r,t),o=this.channels[i-1];return o.setPAC(s),this.lastCmdA=e,this.lastCmdB=t,this.currChNr=i,!0},t.interpretPAC=function(e,t){var i=t,r={color:null,italics:!1,indent:null,underline:!1,row:e};return i=t>95?t-96:t-64,r.underline=1===(1&i),i<=13?r.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(i/2)]:i<=15?(r.italics=!0,r.color="white"):r.indent=4*Math.floor((i-16)/2),r},t.parseChars=function(e,t){var i=null,r=null,n=null;if(e>=25?(i=2,n=e-8):(i=1,n=e),n>=17&&n<=19){var a=t;a=17===n?t+80:18===n?t+112:t+144,Ai.log("INFO","Special char '"+vi(a)+"' in channel "+i),r=[a]}else e>=32&&e<=127&&(r=0===t?[e]:[e,t]);if(r){var s=ki(r);Ai.log("DEBUG","Char codes = "+s.join(",")),this.lastCmdA=null,this.lastCmdB=null}return r},t.parseBackgroundAttributes=function(e,t){var i,r,n,a,s=(16===e||24===e)&&t>=32&&t<=47,o=(23===e||31===e)&&t>=45&&t<=47;return!(!s&&!o)&&(i={},16===e||24===e?(r=Math.floor((t-32)/2),i.background=wi[r],t%2===1&&(i.background=i.background+"_semi")):45===t?i.background="transparent":(i.foreground="black",47===t&&(i.underline=!0)),n=e<24?1:2,a=this.channels[n-1],a.setBkgData(i),this.lastCmdA=null,this.lastCmdB=null,!0)},t.reset=function(){for(var e=0;ee)&&(this.startTime=e),this.endTime=t,this.screen=i,this.timelineController.createCaptionsTrack(this.trackName)},e}(),Pi=function(e,t,i){return e.substr(i||0,t.length)===t},Fi=function(e){var t=parseInt(e.substr(-3)),i=parseInt(e.substr(-6,2)),r=parseInt(e.substr(-9,2)),n=e.length>9?parseInt(e.substr(0,e.indexOf(":"))):0;if(!Object(l["isFiniteNumber"])(t)||!Object(l["isFiniteNumber"])(i)||!Object(l["isFiniteNumber"])(r)||!Object(l["isFiniteNumber"])(n))throw Error("Malformed X-TIMESTAMP-MAP: Local:"+e);return t+=1e3*i,t+=6e4*r,t+=36e5*n,t},Bi=function(e){var t=5381,i=e.length;while(i)t=33*t^e.charCodeAt(--i);return(t>>>0).toString()},Ni=function(e,t,i){var r=e[t],n=e[r.prevCC];if(!n||!n.new&&r.new)return e.ccOffset=e.presentationOffset=r.start,void(r.new=!1);while(n&&n.new)e.ccOffset+=r.start-n.start,r.new=!1,r=n,n=e[r.prevCC];e.presentationOffset=i},Ui={parse:function(e,t,i,r,n,a){var s,o=/\r\n|\n\r|\n|\r/g,l=Object(at["utf8ArrayToStr"])(new Uint8Array(e)).trim().replace(o,"\n").split("\n"),u="00:00.000",d=0,c=0,h=0,f=[],p=!0,m=!1,g=new fi;g.oncue=function(e){var t=i[r],n=i.ccOffset;t&&t.new&&(void 0!==c?n=i.ccOffset=t.start:Ni(i,r,h)),h&&(n=h-i.presentationOffset),m&&(e.startTime+=n-c,e.endTime+=n-c),e.id=Bi(e.startTime.toString())+Bi(e.endTime.toString())+Bi(e.text),e.text=decodeURIComponent(encodeURIComponent(e.text)),e.endTime>0&&f.push(e)},g.onparsingerror=function(e){s=e},g.onflush=function(){s&&a?a(s):n(f)},l.forEach((function(e){if(p){if(Pi(e,"X-TIMESTAMP-MAP=")){p=!1,m=!0,e.substr(16).split(",").forEach((function(e){Pi(e,"LOCAL:")?u=e.substr(6):Pi(e,"MPEGTS:")&&(d=parseInt(e.substr(7)))}));try{t+(9e4*i[r].start||0)<0&&(t+=8589934592),d-=t,c=Fi(u)/1e3,h=d/9e4}catch(n){m=!1,s=n}return}""===e&&(p=!1)}g.parse(e+"\n")})),g.flush()}},Gi=Ui;function ji(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Vi(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var qi=function(e){function t(t){var i;if(i=e.call(this,t,u["default"].MEDIA_ATTACHING,u["default"].MEDIA_DETACHING,u["default"].FRAG_PARSING_USERDATA,u["default"].FRAG_DECRYPTED,u["default"].MANIFEST_LOADING,u["default"].MANIFEST_LOADED,u["default"].FRAG_LOADED,u["default"].INIT_PTS_FOUND)||this,i.media=null,i.config=void 0,i.enabled=!0,i.Cues=void 0,i.textTracks=[],i.tracks=[],i.initPTS=[],i.unparsedVttFrags=[],i.cueRanges=[],i.captionsTracks={},i.captionsProperties=void 0,i.cea608Parser=void 0,i.lastSn=-1,i.prevCC=-1,i.vttCCs=null,i.hls=t,i.config=t.config,i.Cues=t.config.cueHandler,i.captionsProperties={textTrack1:{label:i.config.captionsTextTrack1Label,languageCode:i.config.captionsTextTrack1LanguageCode},textTrack2:{label:i.config.captionsTextTrack2Label,languageCode:i.config.captionsTextTrack2LanguageCode}},i.config.enableCEA708Captions){var r=new Mi(ji(i),"textTrack1"),n=new Mi(ji(i),"textTrack2");i.cea608Parser=new xi(0,r,n)}return i}Vi(t,e);var i=t.prototype;return i.addCues=function(e,t,i,r){for(var n=this.cueRanges,a=!1,s=n.length;s--;){var o=n[s],l=Hi(o[0],o[1],t,i);if(l>=0&&(o[0]=Math.min(o[0],t),o[1]=Math.max(o[1],i),a=!0,l/(i-t)>.5))return}a||n.push([t,i]),this.Cues.newCue(this.captionsTracks[e],t,i,r)},i.onInitPtsFound=function(e){var t=this,i=e.frag,r=e.id,n=e.initPTS,a=this.unparsedVttFrags;"main"===r&&(this.initPTS[i.cc]=n),a.length&&(this.unparsedVttFrags=[],a.forEach((function(e){t.onFragLoaded(e)})))},i.getExistingTrack=function(e){var t=this.media;if(t)for(var i=0;i=a.length||i!==n||!s||this.stopped)this._clearReloadTimer();else if(d["logger"].log("subtitle track "+i+" loaded"),r.live){var o=be(s.details,r,e.stats.trequest);d["logger"].log("Reloading live subtitle playlist in "+o+"ms"),this.timer=setTimeout((function(){t._loadCurrentTrack()}),o)}else this._clearReloadTimer()},i.startLoad=function(){this.stopped=!1,this._loadCurrentTrack()},i.stopLoad=function(){this.stopped=!0,this._clearReloadTimer()},i._clearReloadTimer=function(){this.timer&&(clearTimeout(this.timer),this.timer=null)},i._loadCurrentTrack=function(){var e=this.trackId,t=this.tracks,i=this.hls,r=t[e];e<0||!r||r.details&&!r.details.live||(d["logger"].log("Loading subtitle track "+e),i.trigger(u["default"].SUBTITLE_TRACK_LOADING,{url:r.url,id:e}))},i._toggleTrackModes=function(e){var t=this.media,i=this.subtitleDisplay,r=this.trackId;if(t){var n=Qi(t.textTracks);if(-1===e)[].slice.call(n).forEach((function(e){e.mode="disabled"}));else{var a=n[r];a&&(a.mode="disabled")}var s=n[e];s&&(s.mode=i?"showing":"hidden")}},i._setSubtitleTrackInternal=function(e){var t=this.hls,i=this.tracks;!Object(l["isFiniteNumber"])(e)||e<-1||e>=i.length||(this.trackId=e,d["logger"].log("Switching to subtitle track "+e),t.trigger(u["default"].SUBTITLE_TRACK_SWITCH,{id:e}),this._loadCurrentTrack())},i._onTextTracksChanged=function(){if(this.media){for(var e=-1,t=Qi(this.media.textTracks),i=0;i=r[s].start&&a<=r[s].end){n=r[s];break}var o=t.start+t.duration;n?n.end=o:(n={start:a,end:o},r.push(n))}}},i.onMediaAttached=function(e){var t=e.media;this.media=t,t.addEventListener("seeking",this._onMediaSeeking),this.state=He.IDLE},i.onMediaDetaching=function(){var e=this;this.media&&(this.media.removeEventListener("seeking",this._onMediaSeeking),this.fragmentTracker.removeAllFragments(),this.currentTrackId=-1,this.tracks.forEach((function(t){e.tracksBuffered[t.id]=[]})),this.media=null,this.state=He.STOPPED)},i.onError=function(e){var t=e.frag;t&&"subtitle"===t.type&&(this.state=He.IDLE)},i.onSubtitleTracksUpdated=function(e){var t=this;d["logger"].log("subtitle tracks updated"),this.tracksBuffered=[],this.tracks=e.subtitleTracks,this.tracks.forEach((function(e){t.tracksBuffered[e.id]=[]}))},i.onSubtitleTrackSwitch=function(e){if(this.currentTrackId=e.id,this.tracks&&this.tracks.length&&-1!==this.currentTrackId){var t=this.tracks[this.currentTrackId];t&&t.details&&this.setInterval(ar)}else this.clearInterval()},i.onSubtitleTrackLoaded=function(e){var t=e.id,i=e.details,r=this.currentTrackId,n=this.tracks,a=n[r];t>=n.length||t!==r||!a||(i.live&&ye(a.details,i,this.lastAVStart),a.details=i,this.setInterval(ar))},i.onKeyLoaded=function(){this.state===He.KEY_LOADING&&(this.state=He.IDLE)},i.onFragLoaded=function(e){var t=this.fragCurrent,i=e.frag.decryptdata,r=e.frag,n=this.hls;if(this.state===He.FRAG_LOADING&&t&&"subtitle"===e.frag.type&&t.sn===e.frag.sn&&e.payload.byteLength>0&&i&&i.key&&"AES-128"===i.method){var a=nr.now();this.decrypter.decrypt(e.payload,i.key.buffer,i.iv.buffer,(function(e){var t=nr.now();n.trigger(u["default"].FRAG_DECRYPTED,{frag:r,payload:e,stats:{tstart:a,tdecrypt:t}})}))}},i.onLevelUpdated=function(e){var t=e.details,i=t.fragments;this.lastAVStart=i.length?i[0].start:0},i.doTick=function(){if(this.media)switch(this.state){case He.IDLE:var e=this.config,t=this.currentTrackId,i=this.fragmentTracker,r=this.media,n=this.tracks;if(!n||!n[t]||!n[t].details)break;var a,s=e.maxBufferHole,o=e.maxFragLookUpTolerance,l=Math.min(e.maxBufferLength,e.maxMaxBufferLength),c=ie.bufferedInfo(this._getBuffered(),r.currentTime,s),h=c.end,f=c.len,p=n[t].details,m=p.fragments,g=m.length,v=m[g-1].start+m[g-1].duration;if(f>l)return;var y=this.fragPrevious;hcr)return void this.hls.trigger(u["default"].ERROR,{type:o["ErrorTypes"].KEY_SYSTEM_ERROR,details:o["ErrorDetails"].KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0});var n=cr-this._requestLicenseFailureCount+1;d["logger"].warn("Retrying license request, "+n+" attempts left"),this._requestLicense(i,r)}break}},i._generateLicenseRequestChallenge=function(e,t){switch(e.mediaKeySystemDomain){case ir.WIDEVINE:return t}throw new Error("unsupported key-system: "+e.mediaKeySystemDomain)},i._requestLicense=function(e,t){d["logger"].log("Requesting content license for key-system");var i=this._mediaKeysList[0];if(!i)return d["logger"].error("Fatal error: Media is encrypted but no key-system access has been obtained yet"),void this.hls.trigger(u["default"].ERROR,{type:o["ErrorTypes"].KEY_SYSTEM_ERROR,details:o["ErrorDetails"].KEY_SYSTEM_NO_ACCESS,fatal:!0});try{var r=this.getLicenseServerUrl(i.mediaKeySystemDomain),n=this._createLicenseXhr(r,e,t);d["logger"].log("Sending license request to URL: "+r);var a=this._generateLicenseRequestChallenge(i,e);n.send(a)}catch(s){d["logger"].error("Failure requesting DRM license: "+s),this.hls.trigger(u["default"].ERROR,{type:o["ErrorTypes"].KEY_SYSTEM_ERROR,details:o["ErrorDetails"].KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0})}},i.onMediaAttached=function(e){if(this._emeEnabled){var t=e.media;this._media=t,t.addEventListener("encrypted",this._onMediaEncrypted)}},i.onMediaDetached=function(){this._media&&(this._media.removeEventListener("encrypted",this._onMediaEncrypted),this._media=null)},i.onManifestParsed=function(e){if(this._emeEnabled){var t=e.levels.map((function(e){return e.audioCodec})),i=e.levels.map((function(e){return e.videoCodec}));this._attemptKeySystemAccess(ir.WIDEVINE,t,i)}},ur(t,[{key:"requestMediaKeySystemAccess",get:function(){if(!this._requestMediaKeySystemAccess)throw new Error("No requestMediaKeySystemAccess function configured");return this._requestMediaKeySystemAccess}}]),t}(f),mr=pr;function gr(e){for(var t=1;tt)return r}return 0}},{key:"maxAutoLevel",get:function(){var e,t=this.levels,i=this.autoLevelCapping;return e=-1===i&&t&&t.length?t.length-1:i,e}},{key:"nextAutoLevel",get:function(){return Math.min(Math.max(this.abrController.nextAutoLevel,this.minAutoLevel),this.maxAutoLevel)},set:function(e){this.abrController.nextAutoLevel=Math.max(this.minAutoLevel,e)}},{key:"audioTracks",get:function(){var e=this.audioTrackController;return e?e.audioTracks:[]}},{key:"audioTrack",get:function(){var e=this.audioTrackController;return e?e.audioTrack:-1},set:function(e){var t=this.audioTrackController;t&&(t.audioTrack=e)}},{key:"liveSyncPosition",get:function(){return this.streamController.liveSyncPosition}},{key:"subtitleTracks",get:function(){var e=this.subtitleTrackController;return e?e.subtitleTracks:[]}},{key:"subtitleTrack",get:function(){var e=this.subtitleTrackController;return e?e.subtitleTrack:-1},set:function(e){var t=this.subtitleTrackController;t&&(t.subtitleTrack=e)}},{key:"subtitleDisplay",get:function(){var e=this.subtitleTrackController;return!!e&&e.subtitleDisplay},set:function(e){var t=this.subtitleTrackController;t&&(t.subtitleDisplay=e)}}]),t}(ue);kr.defaultConfig=void 0},"./src/polyfills/number-isFinite.js": -/*!******************************************!*\ - !*** ./src/polyfills/number-isFinite.js ***! - \******************************************/ -/*! exports provided: isFiniteNumber */function(e,t,i){"use strict";i.r(t),i.d(t,"isFiniteNumber",(function(){return r}));var r=Number.isFinite||function(e){return"number"===typeof e&&isFinite(e)}},"./src/utils/get-self-scope.js": -/*!*************************************!*\ - !*** ./src/utils/get-self-scope.js ***! - \*************************************/ -/*! exports provided: getSelfScope */function(e,t,i){"use strict";function r(){return"undefined"===typeof window?self:window}i.r(t),i.d(t,"getSelfScope",(function(){return r}))},"./src/utils/logger.js": -/*!*****************************!*\ - !*** ./src/utils/logger.js ***! - \*****************************/ -/*! exports provided: enableLogs, logger */function(e,t,i){"use strict";i.r(t),i.d(t,"enableLogs",(function(){return c})),i.d(t,"logger",(function(){return h}));var r=i(/*! ./get-self-scope */"./src/utils/get-self-scope.js");function n(){}var a={trace:n,debug:n,log:n,warn:n,info:n,error:n},s=a;function o(e,t){return t="["+e+"] > "+t,t}var l=Object(r["getSelfScope"])();function u(e){var t=l.console[e];return t?function(){for(var i=arguments.length,r=new Array(i),n=0;n1?t-1:0),r=1;r0?[t,i,r]:[i,r]).map((function(e){return e<10?"0"+e:""+e})).join(":")},getElementViewLeft:function(e){var t=e.offsetLeft,i=e.offsetParent,r=document.body.scrollLeft+document.documentElement.scrollLeft;if(document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement)for(;null!==i&&i!==e;)t+=i.offsetLeft,i=i.offsetParent;else for(;null!==i;)t+=i.offsetLeft,i=i.offsetParent;return t-r},getBoundingClientRectViewLeft:function(e){var t=document.documentElement.scrollTop;if(e.getBoundingClientRect){if("number"!=typeof this.getBoundingClientRectViewLeft.offset){var i=document.createElement("div");i.style.cssText="position:absolute;top:0;left:0;",document.body.appendChild(i),this.getBoundingClientRectViewLeft.offset=-i.getBoundingClientRect().top-t,document.body.removeChild(i),i=null}var r=e.getBoundingClientRect(),n=this.getBoundingClientRectViewLeft.offset;return r.left+n}return this.getElementViewLeft(e)},getScrollPosition:function(){return{left:window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0,top:window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0}},setScrollPosition:function(e){var t=e.left,i=void 0===t?0:t,r=e.top,n=void 0===r?0:r;this.isFirefox?(document.documentElement.scrollLeft=i,document.documentElement.scrollTop=n):window.scrollTo(i,n)},isMobile:r,isFirefox:/firefox/i.test(window.navigator.userAgent),isChrome:/chrome/i.test(window.navigator.userAgent),storage:{set:function(e,t){localStorage.setItem(e,t)},get:function(e){return localStorage.getItem(e)}},cumulativeOffset:function(e){var t=0,i=0;do{t+=e.offsetTop||0,i+=e.offsetLeft||0,e=e.offsetParent}while(e);return{top:t,left:i}},nameMap:{dragStart:r?"touchstart":"mousedown",dragMove:r?"touchmove":"mousemove",dragEnd:r?"touchend":"mouseup"},color2Number:function(e){return"#"===e[0]&&(e=e.substr(1)),3===e.length&&(e=""+e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),parseInt(e,16)+0&16777215},number2Color:function(e){return"#"+("00000"+e.toString(16)).slice(-6)},number2Type:function(e){switch(e){case 0:return"right";case 1:return"top";case 2:return"bottom";default:return"right"}}};t.default=n},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=_(i(46)),n=_(i(45)),a=_(i(44)),s=_(i(43)),o=_(i(42)),l=_(i(41)),u=_(i(40)),d=_(i(39)),c=_(i(38)),h=_(i(37)),f=_(i(36)),p=_(i(35)),m=_(i(34)),g=_(i(33)),v=_(i(32)),y=_(i(31));function _(e){return e&&e.__esModule?e:{default:e}}var E={play:r.default,pause:n.default,volumeUp:a.default,volumeDown:s.default,volumeOff:o.default,full:l.default,fullWeb:u.default,setting:d.default,right:c.default,comment:h.default,commentOff:f.default,send:p.default,pallette:m.default,camera:g.default,subtitle:v.default,loading:y.default};t.default=E},function(e,t,i){"use strict";(function(t){var r=i(0),n=i(63),a={"Content-Type":"application/x-www-form-urlencoded"};function s(e,t){!r.isUndefined(e)&&r.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var o,l={adapter:("undefined"!=typeof XMLHttpRequest?o=i(10):void 0!==t&&(o=i(10)),o),transformRequest:[function(e,t){return n(t,"Content-Type"),r.isFormData(e)||r.isArrayBuffer(e)||r.isBuffer(e)||r.isStream(e)||r.isFile(e)||r.isBlob(e)?e:r.isArrayBufferView(e)?e.buffer:r.isURLSearchParams(e)?(s(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):r.isObject(e)?(s(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],(function(e){l.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){l.headers[e]=r.merge(a)})),e.exports=l}).call(this,i(12))},function(e,t,i){"use strict";var r,n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(e){"object"===("undefined"==typeof window?"undefined":n(window))&&(r=window)}e.exports=r},function(e,t,i){var r=i(6);e.exports=function(e){"use strict";var t="",i=(e=e||{}).enableSubtitle,n=e.subtitle,a=e.current,s=e.pic,o=r.$escape,l=e.screenshot,u=e.preload,d=e.url;return i=n&&"webvtt"===n.type,t+='\n\n ",i&&(t+='\n \n '),t+"\n"}},function(e,t,i){"use strict";e.exports=i(29)},function(e,t,i){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,e.exports=r},function(e,t,i){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},function(e,t,i){"use strict";var r=i(61);e.exports=function(e,t,i,n,a){var s=new Error(e);return r(s,t,i,n,a)}},function(e,t,i){"use strict";var r=i(0),n=i(62),a=i(60),s=i(59),o=i(58),l=i(9),u="undefined"!=typeof window&&window.btoa&&window.btoa.bind(window)||i(57);e.exports=function(e){return new Promise((function(t,d){var c=e.data,h=e.headers;r.isFormData(c)&&delete h["Content-Type"];var f=new XMLHttpRequest,p="onreadystatechange",m=!1;if("undefined"==typeof window||!window.XDomainRequest||"withCredentials"in f||o(e.url)||(f=new window.XDomainRequest,p="onload",m=!0,f.onprogress=function(){},f.ontimeout=function(){}),e.auth){var g=e.auth.username||"",v=e.auth.password||"";h.Authorization="Basic "+u(g+":"+v)}if(f.open(e.method.toUpperCase(),a(e.url,e.params,e.paramsSerializer),!0),f.timeout=e.timeout,f[p]=function(){if(f&&(4===f.readyState||m)&&(0!==f.status||f.responseURL&&0===f.responseURL.indexOf("file:"))){var i="getAllResponseHeaders"in f?s(f.getAllResponseHeaders()):null,r={data:e.responseType&&"text"!==e.responseType?f.response:f.responseText,status:1223===f.status?204:f.status,statusText:1223===f.status?"No Content":f.statusText,headers:i,config:e,request:f};n(t,d,r),f=null}},f.onerror=function(){d(l("Network Error",e,null,f)),f=null},f.ontimeout=function(){d(l("timeout of "+e.timeout+"ms exceeded",e,"ECONNABORTED",f)),f=null},r.isStandardBrowserEnv()){var y=i(56),_=(e.withCredentials||o(e.url))&&e.xsrfCookieName?y.read(e.xsrfCookieName):void 0;_&&(h[e.xsrfHeaderName]=_)}if("setRequestHeader"in f&&r.forEach(h,(function(e,t){void 0===c&&"content-type"===t.toLowerCase()?delete h[t]:f.setRequestHeader(t,e)})),e.withCredentials&&(f.withCredentials=!0),e.responseType)try{f.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&f.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&f.upload&&f.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function(e){f&&(f.abort(),d(e),f=null)})),void 0===c&&(c=null),f.send(c)}))}},function(e,t,i){"use strict";e.exports=function(e,t){return function(){for(var i=new Array(arguments.length),r=0;r1)for(var i=1;i=i.width?(this.player.template.menu.style.right=i.width-e+"px",this.player.template.menu.style.left="initial"):(this.player.template.menu.style.left=e+"px",this.player.template.menu.style.right="initial"),t+this.player.template.menu.offsetHeight>=i.height?(this.player.template.menu.style.bottom=i.height-t+"px",this.player.template.menu.style.top="initial"):(this.player.template.menu.style.top=t+"px",this.player.template.menu.style.bottom="initial"),this.player.template.mask.classList.add("dplayer-mask-show"),this.shown=!0,this.player.events.trigger("contextmenu_show")}},{key:"hide",value:function(){this.player.template.mask.classList.remove("dplayer-mask-show"),this.player.template.menu.classList.remove("dplayer-menu-show"),this.shown=!1,this.player.events.trigger("contextmenu_hide")}}]),e}();t.default=n},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),t.options.hotkey&&document.addEventListener("keydown",(function(e){if(t.focus){var i=document.activeElement.tagName.toUpperCase(),r=document.activeElement.getAttribute("contenteditable");if("INPUT"!==i&&"TEXTAREA"!==i&&""!==r&&"true"!==r){var n=e||window.event,a=void 0;switch(n.keyCode){case 32:n.preventDefault(),t.toggle();break;case 37:n.preventDefault(),t.seek(t.video.currentTime-5),t.controller.setAutoHide();break;case 39:n.preventDefault(),t.seek(t.video.currentTime+5),t.controller.setAutoHide();break;case 38:n.preventDefault(),a=t.volume()+.1,t.volume(a);break;case 40:n.preventDefault(),a=t.volume()-.1,t.volume(a)}}}})),document.addEventListener("keydown",(function(e){switch((e||window.event).keyCode){case 27:t.fullScreen.isFullScreen("web")&&t.fullScreen.cancel("web")}}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,n=function(){function e(e,t){for(var i=0;i'+e.player.options.highlight[i].text+"",e.player.template.playedBarWrap.insertBefore(r,e.player.template.playedBarTime)}}}))}},{key:"initThumbnails",value:function(){var e=this;this.player.options.video.thumbnails&&(this.thumbnails=new a.default({container:this.player.template.barPreview,barWidth:this.player.template.barWrap.offsetWidth,url:this.player.options.video.thumbnails,events:this.player.events}),this.player.on("loadedmetadata",(function(){e.thumbnails.resize(160,e.player.video.videoHeight/e.player.video.videoWidth*160)})))}},{key:"initPlayedBar",value:function(){var e=this,t=function(t){var i=((t.clientX||t.changedTouches[0].clientX)-n.default.getBoundingClientRectViewLeft(e.player.template.playedBarWrap))/e.player.template.playedBarWrap.clientWidth;i=Math.max(i,0),i=Math.min(i,1),e.player.bar.set("played",i,"width"),e.player.template.ptime.innerHTML=n.default.secondToTime(i*e.player.video.duration)},i=function i(r){document.removeEventListener(n.default.nameMap.dragEnd,i),document.removeEventListener(n.default.nameMap.dragMove,t);var a=((r.clientX||r.changedTouches[0].clientX)-n.default.getBoundingClientRectViewLeft(e.player.template.playedBarWrap))/e.player.template.playedBarWrap.clientWidth;a=Math.max(a,0),a=Math.min(a,1),e.player.bar.set("played",a,"width"),e.player.seek(e.player.bar.get("played")*e.player.video.duration),e.player.timer.enable("progress")};this.player.template.playedBarWrap.addEventListener(n.default.nameMap.dragStart,(function(){e.player.timer.disable("progress"),document.addEventListener(n.default.nameMap.dragMove,t),document.addEventListener(n.default.nameMap.dragEnd,i)})),this.player.template.playedBarWrap.addEventListener(n.default.nameMap.dragMove,(function(t){if(e.player.video.duration){var i=n.default.cumulativeOffset(e.player.template.playedBarWrap).left,r=(t.clientX||t.changedTouches[0].clientX)-i;if(r<0||r>e.player.template.playedBarWrap.offsetWidth)return;var a=e.player.video.duration*(r/e.player.template.playedBarWrap.offsetWidth);n.default.isMobile&&e.thumbnails&&e.thumbnails.show(),e.thumbnails&&e.thumbnails.move(r),e.player.template.playedBarTime.style.left=r-(a>=3600?25:20)+"px",e.player.template.playedBarTime.innerText=n.default.secondToTime(a),e.player.template.playedBarTime.classList.remove("hidden")}})),this.player.template.playedBarWrap.addEventListener(n.default.nameMap.dragEnd,(function(){n.default.isMobile&&e.thumbnails&&e.thumbnails.hide()})),n.default.isMobile||(this.player.template.playedBarWrap.addEventListener("mouseenter",(function(){e.player.video.duration&&(e.thumbnails&&e.thumbnails.show(),e.player.template.playedBarTime.classList.remove("hidden"))})),this.player.template.playedBarWrap.addEventListener("mouseleave",(function(){e.player.video.duration&&(e.thumbnails&&e.thumbnails.hide(),e.player.template.playedBarTime.classList.add("hidden"))})))}},{key:"initFullButton",value:function(){var e=this;this.player.template.browserFullButton.addEventListener("click",(function(){e.player.fullScreen.toggle("browser")})),this.player.template.webFullButton.addEventListener("click",(function(){e.player.fullScreen.toggle("web")}))}},{key:"initVolumeButton",value:function(){var e=this,t=function(t){var i=t||window.event,r=((i.clientX||i.changedTouches[0].clientX)-n.default.getBoundingClientRectViewLeft(e.player.template.volumeBarWrap)-5.5)/35;e.player.volume(r)},i=function i(){document.removeEventListener(n.default.nameMap.dragEnd,i),document.removeEventListener(n.default.nameMap.dragMove,t),e.player.template.volumeButton.classList.remove("dplayer-volume-active")};this.player.template.volumeBarWrapWrap.addEventListener("click",(function(t){var i=t||window.event,r=((i.clientX||i.changedTouches[0].clientX)-n.default.getBoundingClientRectViewLeft(e.player.template.volumeBarWrap)-5.5)/35;e.player.volume(r)})),this.player.template.volumeBarWrapWrap.addEventListener(n.default.nameMap.dragStart,(function(){document.addEventListener(n.default.nameMap.dragMove,t),document.addEventListener(n.default.nameMap.dragEnd,i),e.player.template.volumeButton.classList.add("dplayer-volume-active")})),this.player.template.volumeButtonIcon.addEventListener("click",(function(){e.player.video.muted?(e.player.video.muted=!1,e.player.switchVolumeIcon(),e.player.bar.set("volume",e.player.volume(),"width")):(e.player.video.muted=!0,e.player.template.volumeIcon.innerHTML=s.default.volumeOff,e.player.bar.set("volume",0,"width"))}))}},{key:"initQualityButton",value:function(){var e=this;this.player.options.video.quality&&this.player.template.qualityList.addEventListener("click",(function(t){t.target.classList.contains("dplayer-quality-item")&&e.player.switchQuality(t.target.dataset.index)}))}},{key:"initScreenshotButton",value:function(){var e=this;this.player.options.screenshot&&this.player.template.camareButton.addEventListener("click",(function(){var t=document.createElement("canvas");t.width=e.player.video.videoWidth,t.height=e.player.video.videoHeight,t.getContext("2d").drawImage(e.player.video,0,0,t.width,t.height);var i=void 0;t.toBlob((function(e){i=URL.createObjectURL(e);var t=document.createElement("a");t.href=i,t.download="DPlayer.png",t.style.display="none",document.body.appendChild(t),t.click(),document.body.removeChild(t),URL.revokeObjectURL(i)})),e.player.events.trigger("screenshot",i)}))}},{key:"initSubtitleButton",value:function(){var e=this;this.player.options.subtitle&&(this.player.events.on("subtitle_show",(function(){e.player.template.subtitleButton.dataset.balloon=e.player.tran("Hide subtitle"),e.player.template.subtitleButtonInner.style.opacity="",e.player.user.set("subtitle",1)})),this.player.events.on("subtitle_hide",(function(){e.player.template.subtitleButton.dataset.balloon=e.player.tran("Show subtitle"),e.player.template.subtitleButtonInner.style.opacity="0.4",e.player.user.set("subtitle",0)})),this.player.template.subtitleButton.addEventListener("click",(function(){e.player.subtitle.toggle()})))}},{key:"setAutoHide",value:function(){var e=this;this.show(),clearTimeout(this.autoHideTimer),this.autoHideTimer=setTimeout((function(){!e.player.video.played.length||e.player.paused||e.disableAutoHide||e.hide()}),3e3)}},{key:"show",value:function(){this.player.container.classList.remove("dplayer-hide-controller")}},{key:"hide",value:function(){this.player.container.classList.add("dplayer-hide-controller"),this.player.setting.hide(),this.player.comment&&this.player.comment.hide()}},{key:"isShow",value:function(){return!this.player.container.classList.contains("dplayer-hide-controller")}},{key:"toggle",value:function(){this.isShow()?this.hide():this.show()}},{key:"destroy",value:function(){clearTimeout(this.autoHideTimer)}}]),e}();t.default=l},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var i=0;it&&!e.player.video.paused&&(e.player.container.classList.remove("dplayer-loading"),r=!1),t=i)}),100)}},{key:"initfpsChecker",value:function(){var e=this;window.requestAnimationFrame((function(){if(e.enablefpsChecker)if(e.initfpsChecker(),e.fpsStart){e.fpsIndex++;var t=new Date;t-e.fpsStart>1e3&&(e.player.infoPanel.fps(e.fpsIndex/(t-e.fpsStart)*1e3),e.fpsStart=new Date,e.fpsIndex=0)}else e.fpsStart=new Date,e.fpsIndex=0;else e.fpsStart=0,e.fpsIndex=0}))}},{key:"initinfoChecker",value:function(){var e=this;this.infoChecker=setInterval((function(){e.enableinfoChecker&&e.player.infoPanel.update()}),1e3)}},{key:"enable",value:function(e){this["enable"+e+"Checker"]=!0,"fps"===e&&this.initfpsChecker()}},{key:"disable",value:function(e){this["enable"+e+"Checker"]=!1}},{key:"destroy",value:function(){var e=this;this.types.map((function(t){return e["enable"+t+"Checker"]=!1,e[t+"Checker"]&&clearInterval(e[t+"Checker"]),t}))}}]),e}();t.default=n},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:"browser"){case"browser":return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement;case"web":return this.player.container.classList.contains("dplayer-fulled")}}},{key:"request",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"browser",t="browser"===e?"web":"browser",i=this.isFullScreen(t);switch(i||(this.lastScrollPosition=s.default.getScrollPosition()),e){case"browser":this.player.container.requestFullscreen?this.player.container.requestFullscreen():this.player.container.mozRequestFullScreen?this.player.container.mozRequestFullScreen():this.player.container.webkitRequestFullscreen?this.player.container.webkitRequestFullscreen():this.player.video.webkitEnterFullscreen?this.player.video.webkitEnterFullscreen():this.player.video.webkitEnterFullScreen?this.player.video.webkitEnterFullScreen():this.player.container.msRequestFullscreen&&this.player.container.msRequestFullscreen();break;case"web":this.player.container.classList.add("dplayer-fulled"),document.body.classList.add("dplayer-web-fullscreen-fix"),this.player.events.trigger("webfullscreen")}i&&this.cancel(t)}},{key:"cancel",value:function(){switch(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"browser"){case"browser":document.cancelFullScreen?document.cancelFullScreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitCancelFullScreen?document.webkitCancelFullScreen():document.webkitCancelFullscreen?document.webkitCancelFullscreen():document.msCancelFullScreen?document.msCancelFullScreen():document.msExitFullscreen&&document.msExitFullscreen();break;case"web":this.player.container.classList.remove("dplayer-fulled"),document.body.classList.remove("dplayer-web-fullscreen-fix"),this.player.events.trigger("webfullscreen_cancel")}}},{key:"toggle",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"browser";this.isFullScreen(e)?this.cancel(e):this.request(e)}}]),e}();t.default=o},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var i=0;iparseFloat(t.time);)i.push(t),t=this.dan[++this.danIndex];this.draw(i)}window.requestAnimationFrame((function(){e.frame()}))}},{key:"opacity",value:function(e){if(void 0!==e){for(var t=this.container.getElementsByClassName("dplayer-danmaku-item"),i=0;i'+e[n].text+"":a.innerHTML=e[n].text,a.style.opacity=t._opacity,a.style.color=o.default.number2Color(e[n].color),a.addEventListener("animationend",(function(){t.container.removeChild(a)}));var s=t._measure(e[n].text),l=void 0;switch(e[n].type){case"right":(l=d(a,e[n].type,s))>=0&&(a.style.width=s+1+"px",a.style.top=i*l+"px",a.style.transform="translateX(-"+r+"px)");break;case"top":(l=d(a,e[n].type))>=0&&(a.style.top=i*l+"px");break;case"bottom":(l=d(a,e[n].type))>=0&&(a.style.bottom=i*l+"px");break;default:console.error("Can't handled danmaku type: "+e[n].type)}l>=0&&(a.classList.add("dplayer-danmaku-move"),c.appendChild(a))},f=0;f=this.options.time()){this.danIndex=e;break}this.danIndex=this.dan.length}}},{key:"clear",value:function(){this.danTunnel={right:{},top:{},bottom:{}},this.danIndex=0,this.options.container.innerHTML="",this.events&&this.events.trigger("danmaku_clear")}},{key:"htmlEncode",value:function(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")}},{key:"resize",value:function(){for(var e=this.container.offsetWidth,t=this.container.getElementsByClassName("dplayer-danmaku-item"),i=0;i]/;n.$escape=function(e){return function(e){var t=""+e,i=a.exec(t);if(!i)return e;var r="",n=void 0,s=void 0,o=void 0;for(n=i.index,s=0;n\n \n '),n+='\n
\n
\n
\n
\n
\n \n ',s.danmaku&&(n+='\n ',n+=o(l("Danmaku is loading")),n+="\n "),n+='\n ',n+=u.loading,n+='\n
\n\n
\n
\n
\n \n
\n
\n
',n+=o(l("Set danmaku color")),n+='
\n \n \n \n \n \n \n
\n
\n
',n+=o(l("Set danmaku type")),n+='
\n \n \n \n
\n
\n \n ',n+=u.send,n+='\n \n
\n
\n \n
\n \n
\n
\n
\n \n
\n
\n
\n
\n \n 0:00 /\n 0:00\n \n ',s.live&&(n+='\n ',n+=o(l("Live")),n+="\n "),n+='\n
\n
\n ',s.video.quality&&(n+='\n
\n \n
\n
\n ',c(s.video.quality,(function(e,t){n+='\n
',n+=o(e.name),n+="
\n "})),n+="\n
\n
\n
\n "),n+="\n ",s.screenshot&&(n+='\n
\n
\n "),n+='\n
\n \n
\n ",s.subtitle&&(n+='\n
\n \n
\n "),n+='\n
\n \n
\n
\n
\n ',n+=o(l("Speed")),n+='\n
',n+=u.right,n+='
\n
\n
\n ',n+=o(l("Loop")),n+='\n
\n \n \n
\n
\n
\n ',n+=o(l("Show danmaku")),n+='\n
\n \n \n
\n
\n
\n ',n+=o(l("Unlimited danmaku")),n+='\n
\n \n \n
\n
\n
\n ',n+=o(l("Opacity for danmaku")),n+='\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n 0.5\n
\n
\n 0.75\n
\n
\n ',n+=o(l("Normal")),n+='\n
\n
\n 1.25\n
\n
\n 1.5\n
\n
\n 2\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
[x]
\n
\n Player version\n \n
\n
\n Player FPS\n \n
\n
\n Video type\n \n
\n
\n Video url\n \n
\n
\n Video resolution\n \n
\n
\n Video duration\n \n
\n ',s.danmaku&&(n+='\n
\n Danamku id\n \n
\n
\n Danamku api\n \n
\n
\n Danamku amount\n \n
\n '),n+='\n
\n
\n ',c(s.contextmenu,(function(e,t){n+='\n
\n ',n+=o(l(e.text)),n+="\n
\n "})),n+='\n
\n
'}},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var i=0;i>8-o%1*8)){if((i=a.charCodeAt(o+=.75))>255)throw new n;t=t<<8|i}return s}},function(e,t,i){"use strict";var r=i(0);e.exports=r.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),i=document.createElement("a");function n(e){var r=e;return t&&(i.setAttribute("href",r),r=i.href),i.setAttribute("href",r),{href:i.href,protocol:i.protocol?i.protocol.replace(/:$/,""):"",host:i.host,search:i.search?i.search.replace(/^\?/,""):"",hash:i.hash?i.hash.replace(/^#/,""):"",hostname:i.hostname,port:i.port,pathname:"/"===i.pathname.charAt(0)?i.pathname:"/"+i.pathname}}return e=n(window.location.href),function(t){var i=r.isString(t)?n(t):t;return i.protocol===e.protocol&&i.host===e.host}}():function(){return!0}},function(e,t,i){"use strict";var r=i(0),n=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,i,a,s={};return e?(r.forEach(e.split("\n"),(function(e){if(a=e.indexOf(":"),t=r.trim(e.substr(0,a)).toLowerCase(),i=r.trim(e.substr(a+1)),t){if(s[t]&&n.indexOf(t)>=0)return;s[t]="set-cookie"===t?(s[t]?s[t]:[]).concat([i]):s[t]?s[t]+", "+i:i}})),s):s}},function(e,t,i){"use strict";var r=i(0);function n(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,i){if(!t)return e;var a;if(i)a=i(t);else if(r.isURLSearchParams(t))a=t.toString();else{var s=[];r.forEach(t,(function(e,t){null!==e&&void 0!==e&&(r.isArray(e)?t+="[]":e=[e],r.forEach(e,(function(e){r.isDate(e)?e=e.toISOString():r.isObject(e)&&(e=JSON.stringify(e)),s.push(n(t)+"="+n(e))})))})),a=s.join("&")}return a&&(e+=(-1===e.indexOf("?")?"?":"&")+a),e}},function(e,t,i){"use strict";e.exports=function(e,t,i,r,n){return e.config=t,i&&(e.code=i),e.request=r,e.response=n,e}},function(e,t,i){"use strict";var r=i(9);e.exports=function(e,t,i){var n=i.config.validateStatus;i.status&&n&&!n(i.status)?t(r("Request failed with status code "+i.status,i.config,null,i.request,i)):e(i)}},function(e,t,i){"use strict";var r=i(0);e.exports=function(e,t){r.forEach(e,(function(i,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=i,delete e[r])}))}},function(e,t,i){"use strict";var r=i(3),n=i(0),a=i(55),s=i(54);function o(e){this.defaults=e,this.interceptors={request:new a,response:new a}}o.prototype.request=function(e){"string"==typeof e&&(e=n.merge({url:arguments[0]},arguments[1])),(e=n.merge(r,{method:"get"},this.defaults,e)).method=e.method.toLowerCase();var t=[s,void 0],i=Promise.resolve(e);for(this.interceptors.request.forEach((function(e){t.unshift(e.fulfilled,e.rejected)})),this.interceptors.response.forEach((function(e){t.push(e.fulfilled,e.rejected)}));t.length;)i=i.then(t.shift(),t.shift());return i},n.forEach(["delete","get","head","options"],(function(e){o.prototype[e]=function(t,i){return this.request(n.merge(i||{},{method:e,url:t}))}})),n.forEach(["post","put","patch"],(function(e){o.prototype[e]=function(t,i,r){return this.request(n.merge(r||{},{method:e,url:t,data:i}))}})),e.exports=o},function(e,t,i){"use strict";function r(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}e.exports=function(e){return null!=e&&(r(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&r(e.slice(0,0))}(e)||!!e._isBuffer)}},function(e,t,i){"use strict";var r=i(0),n=i(11),a=i(64),s=i(3);function o(e){var t=new a(e),i=n(a.prototype.request,t);return r.extend(i,a.prototype,t),r.extend(i,t),i}var l=o(s);l.Axios=a,l.create=function(e){return o(r.merge(s,e))},l.Cancel=i(7),l.CancelToken=i(50),l.isCancel=i(8),l.all=function(e){return Promise.all(e)},l.spread=i(49),e.exports=l,e.exports.default=l},function(e,t,i){"use strict";e.exports=i(66)},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,n=i(67),a=(r=n)&&r.__esModule?r:{default:r};t.default={send:function(e){a.default.post(e.url,e.data).then((function(t){var i=t.data;i&&0===i.code?e.success&&e.success(i):e.error&&e.error(i&&i.msg)})).catch((function(t){console.error(t),e.error&&e.error()}))},read:function(e){a.default.get(e.url).then((function(t){var i=t.data;i&&0===i.code?e.success&&e.success(i.data.map((function(e){return{time:e[0],type:e[1],color:e[2],author:e[3],text:e[4]}}))):e.error&&e.error(i&&i.msg)})).catch((function(t){console.error(t),e.error&&e.error()}))}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=i(68),s=(r=a)&&r.__esModule?r:{default:r};t.default=function(e){var t={container:e.element||document.getElementsByClassName("dplayer")[0],live:!1,autoplay:!1,theme:"#b7daff",loop:!1,lang:(navigator.language||navigator.browserLanguage).toLowerCase(),screenshot:!1,hotkey:!0,preload:"metadata",volume:.7,apiBackend:s.default,video:{},contextmenu:[],mutex:!0};for(var i in t)t.hasOwnProperty(i)&&!e.hasOwnProperty(i)&&(e[i]=t[i]);return e.video&&!e.video.type&&(e.video.type="auto"),"object"===n(e.danmaku)&&e.danmaku&&!e.danmaku.user&&(e.danmaku.user="DIYgod"),e.subtitle&&(!e.subtitle.type&&(e.subtitle.type="webvtt"),!e.subtitle.fontSize&&(e.subtitle.fontSize="20px"),!e.subtitle.bottom&&(e.subtitle.bottom="40px"),!e.subtitle.color&&(e.subtitle.color="#fff")),e.video.quality&&(e.video.url=e.video.quality[e.video.defaultQuality].url),e.lang&&(e.lang=e.lang.toLowerCase()),e.contextmenu=e.contextmenu.concat([{text:"Video info",click:function(e){e.infoPanel.triggle()}},{text:"About author",link:"https://diygod.me"},{text:"DPlayer v1.25.0",link:"https://github.com/MoePlayer/DPlayer"}]),e}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=this.constructor;return this.then((function(i){return t.resolve(e()).then((function(){return i}))}),(function(i){return t.resolve(e()).then((function(){return t.reject(i)}))}))}},function(e,t,i){"use strict";(function(e,t){!function(e,i){if(!e.setImmediate){var r,n,a,s,o,l=1,u={},d=!1,c=e.document,h=Object.getPrototypeOf&&Object.getPrototypeOf(e);h=h&&h.setTimeout?h:e,"[object process]"==={}.toString.call(e.process)?r=function(e){t.nextTick((function(){p(e)}))}:function(){if(e.postMessage&&!e.importScripts){var t=!0,i=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=i,t}}()?(s="setImmediate$"+Math.random()+"$",o=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(s)&&p(+t.data.slice(s.length))},e.addEventListener?e.addEventListener("message",o,!1):e.attachEvent("onmessage",o),r=function(t){e.postMessage(s+t,"*")}):e.MessageChannel?((a=new MessageChannel).port1.onmessage=function(e){p(e.data)},r=function(e){a.port2.postMessage(e)}):c&&"onreadystatechange"in c.createElement("script")?(n=c.documentElement,r=function(e){var t=c.createElement("script");t.onreadystatechange=function(){p(e),t.onreadystatechange=null,n.removeChild(t),t=null},n.appendChild(t)}):r=function(e){setTimeout(p,0,e)},h.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),i=0;i=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},i(71),t.setImmediate=setImmediate,t.clearImmediate=clearImmediate},function(e,t,i){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});var r,n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=i(70),s=(r=a)&&r.__esModule?r:{default:r},o=setTimeout;function l(){}function u(e){if(!(this instanceof u))throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],p(e,this)}function d(e,t){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,u._immediateFn((function(){var i=1===e._state?t.onFulfilled:t.onRejected;if(null!==i){var r;try{r=i(e._value)}catch(e){return void h(t.promise,e)}c(t.promise,r)}else(1===e._state?c:h)(t.promise,e._value)}))):e._deferreds.push(t)}function c(e,t){try{if(t===e)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"===(void 0===t?"undefined":n(t))||"function"==typeof t)){var i=t.then;if(t instanceof u)return e._state=3,e._value=t,void f(e);if("function"==typeof i)return void p((r=i,a=t,function(){r.apply(a,arguments)}),e)}e._state=1,e._value=t,f(e)}catch(t){h(e,t)}var r,a}function h(e,t){e._state=2,e._value=t,f(e)}function f(e){2===e._state&&0===e._deferreds.length&&u._immediateFn((function(){e._handled||u._unhandledRejectionFn(e._value)}));for(var t=0,i=e._deferreds.length;te&&this.notice(this.tran("REW")+" "+(this.video.currentTime-e).toFixed(0)+" "+this.tran("s")),this.video.currentTime=e,this.danmaku&&this.danmaku.seek(),this.bar.set("played",e/this.video.duration,"width"),this.template.ptime.innerHTML=a.default.secondToTime(e)}},{key:"play",value:function(){var e=this;if(this.paused=!1,this.video.paused&&this.bezel.switch(u.default.play),this.template.playButton.innerHTML=u.default.pause,n.default.resolve(this.video.play()).catch((function(){e.pause()})).then((function(){})),this.timer.enable("loading"),this.container.classList.remove("dplayer-paused"),this.container.classList.add("dplayer-playing"),this.danmaku&&this.danmaku.play(),this.options.mutex)for(var t=0;t=.95?this.template.volumeIcon.innerHTML=u.default.volumeUp:this.volume()>0?this.template.volumeIcon.innerHTML=u.default.volumeDown:this.template.volumeIcon.innerHTML=u.default.volumeOff}},{key:"volume",value:function(e,t,i){if(e=parseFloat(e),!isNaN(e)){e=Math.max(e,0),e=Math.min(e,1),this.bar.set("volume",e,"width");var r=(100*e).toFixed(0)+"%";this.template.volumeBarWrapWrap.dataset.balloon=r,t||this.user.set("volume",e),i||this.notice(this.tran("Volume")+" "+(100*e).toFixed(0)+"%"),this.video.volume=e,this.video.muted&&(this.video.muted=!1),this.switchVolumeIcon()}return this.video.volume}},{key:"toggle",value:function(){this.video.paused?this.play():this.pause()}},{key:"on",value:function(e,t){this.events.on(e,t)}},{key:"switchVideo",value:function(e,t){this.pause(),this.video.poster=e.pic?e.pic:"",this.video.src=e.url,this.initMSE(this.video,e.type||"auto"),t&&(this.template.danmakuLoading.style.display="block",this.bar.set("played",0,"width"),this.bar.set("loaded",0,"width"),this.template.ptime.innerHTML="00:00",this.template.danmaku.innerHTML="",this.danmaku&&this.danmaku.reload({id:t.id,address:t.api,token:t.token,maximum:t.maximum,addition:t.addition,user:t.user}))}},{key:"initMSE",value:function(e,t){var i=this;if(this.type=t,this.options.video.customType&&this.options.video.customType[t])"[object Function]"===Object.prototype.toString.call(this.options.video.customType[t])?this.options.video.customType[t](this.video,this):console.error("Illegal customType: "+t);else switch("auto"===this.type&&(/m3u8(#|\?|$)/i.exec(e.src)?this.type="hls":/.flv(#|\?|$)/i.exec(e.src)?this.type="flv":/.mpd(#|\?|$)/i.exec(e.src)?this.type="dash":this.type="normal"),"hls"===this.type&&(e.canPlayType("application/x-mpegURL")||e.canPlayType("application/vnd.apple.mpegURL"))&&(this.type="normal"),this.type){case"hls":if(Hls)if(Hls.isSupported()){var r=new Hls;r.loadSource(e.src),r.attachMedia(e)}else this.notice("Error: Hls is not supported.");else this.notice("Error: Can't find Hls.");break;case"flv":if(flvjs&&flvjs.isSupported())if(flvjs.isSupported()){var n=flvjs.createPlayer({type:"flv",url:e.src});n.attachMediaElement(e),n.load()}else this.notice("Error: flvjs is not supported.");else this.notice("Error: Can't find flvjs.");break;case"dash":dashjs?dashjs.MediaPlayer().create().initialize(e,e.src,!1):this.notice("Error: Can't find dashjs.");break;case"webtorrent":if(WebTorrent)if(WebTorrent.WEBRTC_SUPPORT){this.container.classList.add("dplayer-loading");var a=new WebTorrent,s=e.src;a.add(s,(function(e){e.files.find((function(e){return e.name.endsWith(".mp4")})).renderTo(i.video,{autoplay:i.options.autoplay},(function(){i.container.classList.remove("dplayer-loading")}))}))}else this.notice("Error: Webtorrent is not supported.");else this.notice("Error: Can't find Webtorrent.")}}},{key:"initVideo",value:function(e,t){var i=this;this.initMSE(e,t),this.on("durationchange",(function(){1!==e.duration&&e.duration!==1/0&&(i.template.dtime.innerHTML=a.default.secondToTime(e.duration))})),this.on("progress",(function(){var t=e.buffered.length?e.buffered.end(e.buffered.length-1)/e.duration:0;i.bar.set("loaded",t,"width")})),this.on("error",(function(){i.video.error&&i.tran&&i.notice&&(i.type,i.notice(i.tran("Video load failed"),-1))})),this.on("ended",(function(){i.bar.set("played",1,"width"),i.setting.loop?(i.seek(0),i.play()):i.pause(),i.danmaku&&(i.danmaku.danIndex=0)})),this.on("play",(function(){i.paused&&i.play()})),this.on("pause",(function(){i.paused||i.pause()})),this.on("timeupdate",(function(){i.bar.set("played",i.video.currentTime/i.video.duration,"width");var e=a.default.secondToTime(i.video.currentTime);i.template.ptime.innerHTML!==e&&(i.template.ptime.innerHTML=e)}));for(var r=function(t){e.addEventListener(i.events.videoEvents[t],(function(){i.events.trigger(i.events.videoEvents[t])}))},n=0;n1&&void 0!==arguments[1]?arguments[1]:2e3,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.8;this.template.notice.innerHTML=e,this.template.notice.style.opacity=r,this.noticeTime&&clearTimeout(this.noticeTime),this.events.trigger("notice_show",e),i>0&&(this.noticeTime=setTimeout((function(){t.template.notice.style.opacity=0,t.events.trigger("notice_hide")}),i))}},{key:"resize",value:function(){this.danmaku&&this.danmaku.resize(),this.events.trigger("resize")}},{key:"speed",value:function(e){this.video.playbackRate=e}},{key:"destroy",value:function(){R.splice(R.indexOf(this),1),this.pause(),this.controller.destroy(),this.timer.destroy(),this.video.src="",this.container.innerHTML="",this.events.trigger("destroy")}}],[{key:"version",get:function(){return"1.25.0"}}]),e}();t.default=L},,,function(e,t,i){},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),i(77);var r,n=i(74),a=(r=n)&&r.__esModule?r:{default:r};console.log("\n %c DPlayer v1.25.0 fdcf45b %c http://dplayer.js.org \n\n","color: #fadfa3; background: #030307; padding:5px 0;","background: #fadfa3; padding:5px 0;"),t.default=a.default}]).default}))},faa1:function(e,t,i){"use strict";var r,n="object"===typeof Reflect?Reflect:null,a=n&&"function"===typeof n.apply?n.apply:function(e,t,i){return Function.prototype.apply.call(e,t,i)};function s(e){console&&console.warn&&console.warn(e)}r=n&&"function"===typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var o=Number.isNaN||function(e){return e!==e};function l(){l.init.call(this)}e.exports=l,l.EventEmitter=l,l.prototype._events=void 0,l.prototype._eventsCount=0,l.prototype._maxListeners=void 0;var u=10;function d(e){return void 0===e._maxListeners?l.defaultMaxListeners:e._maxListeners}function c(e,t,i,r){var n,a,o;if("function"!==typeof i)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof i);if(a=e._events,void 0===a?(a=e._events=Object.create(null),e._eventsCount=0):(void 0!==a.newListener&&(e.emit("newListener",t,i.listener?i.listener:i),a=e._events),o=a[t]),void 0===o)o=a[t]=i,++e._eventsCount;else if("function"===typeof o?o=a[t]=r?[i,o]:[o,i]:r?o.unshift(i):o.push(i),n=d(e),n>0&&o.length>n&&!o.warned){o.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=o.length,s(l)}return e}function h(){for(var e=[],t=0;t0&&(s=t[0]),s instanceof Error)throw s;var o=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw o.context=s,o}var l=n[e];if(void 0===l)return!1;if("function"===typeof l)a(l,this,t);else{var u=l.length,d=g(l,u);for(i=0;i=0;a--)if(i[a]===t||i[a].listener===t){s=i[a].listener,n=a;break}if(n<0)return this;0===n?i.shift():v(i,n),1===i.length&&(r[e]=i[0]),void 0!==r.removeListener&&this.emit("removeListener",e,s||t)}return this},l.prototype.off=l.prototype.removeListener,l.prototype.removeAllListeners=function(e){var t,i,r;if(i=this._events,void 0===i)return this;if(void 0===i.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==i[e]&&(0===--this._eventsCount?this._events=Object.create(null):delete i[e]),this;if(0===arguments.length){var n,a=Object.keys(i);for(r=0;r=0;r--)this.removeListener(e,t[r]);return this},l.prototype.listeners=function(e){return p(this,e,!0)},l.prototype.rawListeners=function(e){return p(this,e,!1)},l.listenerCount=function(e,t){return"function"===typeof e.listenerCount?e.listenerCount(t):m.call(e,t)},l.prototype.listenerCount=m,l.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}}}]); \ No newline at end of file diff --git a/src/main/resources/static/js/chunk-1f0cfb2a.05b8606a.js b/src/main/resources/static/js/chunk-2136f455.e499e949.js similarity index 99% rename from src/main/resources/static/js/chunk-1f0cfb2a.05b8606a.js rename to src/main/resources/static/js/chunk-2136f455.e499e949.js index 2904166..a40fcb2 100644 --- a/src/main/resources/static/js/chunk-1f0cfb2a.05b8606a.js +++ b/src/main/resources/static/js/chunk-2136f455.e499e949.js @@ -1,6 +1,6 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-1f0cfb2a"],{"0876":function(e,t,n){},"0baa":function(e,t,n){},"0d30":function(e,t,n){},"1fa1":function(e,t,n){"use strict";n.r(t);var i=n("fa12");Object(i["a"])({id:"php",extensions:[".php",".php4",".php5",".phtml",".ctp"],aliases:["PHP","php"],mimetypes:["application/x-php"],loader:function(){return n.e("chunk-2d0e57ec").then(n.bind(null,"9571"))}})},"27e6":function(e,t,n){},"2ab7":function(e,t,n){},"30db":function(e,t,n){"use strict";(function(e,i){n.d(t,"h",(function(){return v})),n.d(t,"e",(function(){return _})),n.d(t,"d",(function(){return y})),n.d(t,"f",(function(){return b})),n.d(t,"g",(function(){return C})),n.d(t,"c",(function(){return w})),n.d(t,"b",(function(){return L})),n.d(t,"i",(function(){return N})),n.d(t,"a",(function(){return D}));var o="en",r=!1,s=!1,a=!1,u=!1,l=!1,c=!1,h=void 0,d=void 0,f="undefined"!==typeof e&&"undefined"!==typeof e.versions&&"undefined"!==typeof e.versions.electron&&"renderer"===e.type;if("object"!==typeof navigator||f){if("object"===typeof e){r="win32"===e.platform,s="darwin"===e.platform,a="linux"===e.platform,h=o,o;var p=Object({NODE_ENV:"production",BASE_URL:"/"})["VSCODE_NLS_CONFIG"];if(p)try{var g=JSON.parse(p),m=g.availableLanguages["*"];h=g.locale,m||o,g._translationsConfigFile}catch(E){}u=!0}}else d=navigator.userAgent,r=d.indexOf("Windows")>=0,s=d.indexOf("Macintosh")>=0,c=d.indexOf("Macintosh")>=0&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,a=d.indexOf("Linux")>=0,l=!0,h=navigator.language,h;var v=r,_=s,y=a,b=u,C=l,w=c,S="object"===typeof self?self:"object"===typeof i?i:{},L=S,N=function(){if(L.setImmediate)return L.setImmediate.bind(L);if("function"===typeof L.postMessage&&!L.importScripts){var t=[];L.addEventListener("message",(function(e){if(e.data&&e.data.vscodeSetImmediateId)for(var n=0,i=t.length;n=0,s=d.indexOf("Macintosh")>=0,c=d.indexOf("Macintosh")>=0&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,a=d.indexOf("Linux")>=0,l=!0,h=navigator.language,h;var v=r,_=s,y=a,b=u,C=l,w=c,S="object"===typeof self?self:"object"===typeof i?i:{},L=S,N=function(){if(L.setImmediate)return L.setImmediate.bind(L);if("function"===typeof L.postMessage&&!L.importScripts){var t=[];L.addEventListener("message",(function(e){if(e.data&&e.data.vscodeSetImmediateId)for(var n=0,i=t.length;n/?";function u(e){void 0===e&&(e="");for(var t="(-?\\d*\\.\\d\\w*)|([^",n=0,i=a;n=0||(t+="\\"+o)}return t+="\\s]+)",new RegExp(t,"g")}var l=u();function c(e){var t=l;if(e&&e instanceof RegExp)if(e.global)t=e;else{var n="g";e.ignoreCase&&(n+="i"),e.multiline&&(n+="m"),e.unicode&&(n+="u"),t=new RegExp(e.source,n)}return t.lastIndex=0,t}function h(e,t,n,i){var o,r=e-1-i,s=n.lastIndexOf(" ",r-1)+1;t.lastIndex=s;while(o=t.exec(n)){var a=o.index||0;if(a<=r&&t.lastIndex>=r)return{word:o[0],startColumn:i+1+a,endColumn:i+1+t.lastIndex}}return null}function d(e,t,n,i){var o,r=e-1-i;t.lastIndex=0;while(o=t.exec(n)){var s=o.index||0;if(s>r)return null;if(t.lastIndex>=r)return{word:o[0],startColumn:i+1+s,endColumn:i+1+t.lastIndex}}return null}function f(e,t,n,i){t.lastIndex=0;var o=t.exec(n);if(!o)return null;var r=o[0].indexOf(" ")>=0?d(e,t,n,i):h(e,t,n,i);return t.lastIndex=0,r}var p=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),g=function(){return g=Object.assign||function(e){for(var t,n=1,i=arguments.length;nn?n:e},t.float=function(e,t){if("number"===typeof e)return e;if("undefined"===typeof e)return t;var n=parseFloat(e);return isNaN(n)?t:n},t.prototype.validate=function(e){return this.validationFn(t.float(e,this.defaultValue))},t}(C),N=function(e){function t(t,n,i,o){void 0===o&&(o=void 0);var r=this;return"undefined"!==typeof o&&(o.type="string",o.default=i),r=e.call(this,t,n,i,o)||this,r}return p(t,e),t.string=function(e,t){return"string"!==typeof e?t:e},t.prototype.validate=function(e){return t.string(e,this.defaultValue)},t}(C),D=function(e){function t(t,n,i,o,r){void 0===r&&(r=void 0);var s=this;return"undefined"!==typeof r&&(r.type="string",r.enum=o,r.default=i),s=e.call(this,t,n,i,r)||this,s._allowedValues=o,s}return p(t,e),t.stringSet=function(e,t,n){return"string"!==typeof e?t:-1===n.indexOf(e)?t:e},t.prototype.validate=function(e){return t.stringSet(e,this.defaultValue,this._allowedValues)},t}(C),E=function(e){function t(t,n,i,o,r,s,a){void 0===a&&(a=void 0);var u=this;return"undefined"!==typeof a&&(a.type="string",a.enum=r,a.default=o),u=e.call(this,t,n,i,a)||this,u._allowedValues=r,u._convert=s,u}return p(t,e),t.prototype.validate=function(e){return"string"!==typeof e?this.defaultValue:-1===this._allowedValues.indexOf(e)?this.defaultValue:this._convert(e)},t}(y);function x(e){switch(e){case"none":return 0;case"keep":return 1;case"brackets":return 2;case"advanced":return 3;case"full":return 4}}var k,O=function(e){function t(){return e.call(this,2,"accessibilitySupport",0,{type:"string",enum:["auto","on","off"],enumDescriptions:[r("accessibilitySupport.auto","The editor will use platform APIs to detect when a Screen Reader is attached."),r("accessibilitySupport.on","The editor will be permanently optimized for usage with a Screen Reader."),r("accessibilitySupport.off","The editor will never be optimized for usage with a Screen Reader.")],default:"auto",description:r("accessibilitySupport","Controls whether the editor should run in a mode where it is optimized for screen readers.")})||this}return p(t,e),t.prototype.validate=function(e){switch(e){case"auto":return 0;case"off":return 1;case"on":return 2}return this.defaultValue},t.prototype.compute=function(e,t,n){return 0===n?e.accessibilitySupport:n},t}(y),T=function(e){function t(){var t=this,n={insertSpace:!0};return t=e.call(this,13,"comments",n,{"editor.comments.insertSpace":{type:"boolean",default:n.insertSpace,description:r("comments.insertSpace","Controls whether a space character is inserted when commenting.")}})||this,t}return p(t,e),t.prototype.validate=function(e){if("object"!==typeof e)return this.defaultValue;var t=e;return{insertSpace:w.boolean(t.insertSpace,this.defaultValue.insertSpace)}},t}(y);function M(e){switch(e){case"blink":return 1;case"smooth":return 2;case"phase":return 3;case"expand":return 4;case"solid":return 5}}function I(e){switch(e){case"line":return k.Line;case"block":return k.Block;case"underline":return k.Underline;case"line-thin":return k.LineThin;case"block-outline":return k.BlockOutline;case"underline-thin":return k.UnderlineThin}}(function(e){e[e["Line"]=1]="Line",e[e["Block"]=2]="Block",e[e["Underline"]=3]="Underline",e[e["LineThin"]=4]="LineThin",e[e["BlockOutline"]=5]="BlockOutline",e[e["UnderlineThin"]=6]="UnderlineThin"})(k||(k={}));var A=function(e){function t(){return e.call(this,104,[55,26])||this}return p(t,e),t.prototype.compute=function(e,t,n){var i="monaco-editor";return t.get(26)&&(i+=" "+t.get(26)),e.extraEditorClassName&&(i+=" "+e.extraEditorClassName),"default"===t.get(55)?i+=" mouse-default":"copy"===t.get(55)&&(i+=" mouse-copy"),t.get(85)&&(i+=" showUnused"),i},t}(b),P=function(e){function t(){return e.call(this,25,"emptySelectionClipboard",!0,{description:r("emptySelectionClipboard","Controls whether copying without a selection copies the current line.")})||this}return p(t,e),t.prototype.compute=function(e,t,n){return n&&e.emptySelectionClipboard},t}(w),R=function(e){function t(){var t=this,n={seedSearchStringFromSelection:!0,autoFindInSelection:"never",globalFindClipboard:!1,addExtraSpaceOnTop:!0};return t=e.call(this,28,"find",n,{"editor.find.seedSearchStringFromSelection":{type:"boolean",default:n.seedSearchStringFromSelection,description:r("find.seedSearchStringFromSelection","Controls whether the search string in the Find Widget is seeded from the editor selection.")},"editor.find.autoFindInSelection":{type:"string",enum:["never","always","multiline"],default:n.autoFindInSelection,enumDescriptions:[r("editor.find.autoFindInSelection.never","Never turn on Find in selection automatically (default)"),r("editor.find.autoFindInSelection.always","Always turn on Find in selection automatically"),r("editor.find.autoFindInSelection.multiline","Turn on Find in selection automatically when multiple lines of content are selected.")],description:r("find.autoFindInSelection","Controls whether the find operation is carried out on selected text or the entire file in the editor.")},"editor.find.globalFindClipboard":{type:"boolean",default:n.globalFindClipboard,description:r("find.globalFindClipboard","Controls whether the Find Widget should read or modify the shared find clipboard on macOS."),included:s["e"]},"editor.find.addExtraSpaceOnTop":{type:"boolean",default:n.addExtraSpaceOnTop,description:r("find.addExtraSpaceOnTop","Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.")}})||this,t}return p(t,e),t.prototype.validate=function(e){if("object"!==typeof e)return this.defaultValue;var t=e;return{seedSearchStringFromSelection:w.boolean(t.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection),autoFindInSelection:"boolean"===typeof e.autoFindInSelection?e.autoFindInSelection?"always":"never":D.stringSet(t.autoFindInSelection,this.defaultValue.autoFindInSelection,["never","always","multiline"]),globalFindClipboard:w.boolean(t.globalFindClipboard,this.defaultValue.globalFindClipboard),addExtraSpaceOnTop:w.boolean(t.addExtraSpaceOnTop,this.defaultValue.addExtraSpaceOnTop)}},t}(y),F=function(e){function t(){return e.call(this,35,"fontLigatures",t.OFF,{anyOf:[{type:"boolean",description:r("fontLigatures","Enables/Disables font ligatures.")},{type:"string",description:r("fontFeatureSettings","Explicit font-feature-settings.")}],description:r("fontLigaturesGeneral","Configures font ligatures."),default:!1})||this}return p(t,e),t.prototype.validate=function(e){return"undefined"===typeof e?this.defaultValue:"string"===typeof e?"false"===e?t.OFF:"true"===e?t.ON:e:Boolean(e)?t.ON:t.OFF},t.OFF='"liga" off, "calt" off',t.ON='"liga" on, "calt" on',t}(y),W=function(e){function t(){return e.call(this,34)||this}return p(t,e),t.prototype.compute=function(e,t,n){return e.fontInfo},t}(b),V=function(e){function t(){return e.call(this,36,"fontSize",ue.fontSize,{type:"number",minimum:6,maximum:100,default:ue.fontSize,description:r("fontSize","Controls the font size in pixels.")})||this}return p(t,e),t.prototype.validate=function(e){var t=L.float(e,this.defaultValue);return 0===t?ue.fontSize:L.clamp(t,6,100)},t.prototype.compute=function(e,t,n){return e.fontInfo.fontSize},t}(C),B=function(e){function t(){var t=this,n={multiple:"peek",multipleDefinitions:"peek",multipleTypeDefinitions:"peek",multipleDeclarations:"peek",multipleImplementations:"peek",multipleReferences:"peek",alternativeDefinitionCommand:"editor.action.goToReferences",alternativeTypeDefinitionCommand:"editor.action.goToReferences",alternativeDeclarationCommand:"editor.action.goToReferences",alternativeImplementationCommand:"",alternativeReferenceCommand:""},i={type:"string",enum:["peek","gotoAndPeek","goto"],default:n.multiple,enumDescriptions:[r("editor.gotoLocation.multiple.peek","Show peek view of the results (default)"),r("editor.gotoLocation.multiple.gotoAndPeek","Go to the primary result and show a peek view"),r("editor.gotoLocation.multiple.goto","Go to the primary result and enable peek-less navigation to others")]};return t=e.call(this,41,"gotoLocation",n,{"editor.gotoLocation.multiple":{deprecationMessage:r("editor.gotoLocation.multiple.deprecated","This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.")},"editor.gotoLocation.multipleDefinitions":g({description:r("editor.editor.gotoLocation.multipleDefinitions","Controls the behavior the 'Go to Definition'-command when multiple target locations exist.")},i),"editor.gotoLocation.multipleTypeDefinitions":g({description:r("editor.editor.gotoLocation.multipleTypeDefinitions","Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist.")},i),"editor.gotoLocation.multipleDeclarations":g({description:r("editor.editor.gotoLocation.multipleDeclarations","Controls the behavior the 'Go to Declaration'-command when multiple target locations exist.")},i),"editor.gotoLocation.multipleImplementations":g({description:r("editor.editor.gotoLocation.multipleImplemenattions","Controls the behavior the 'Go to Implementations'-command when multiple target locations exist.")},i),"editor.gotoLocation.multipleReferences":g({description:r("editor.editor.gotoLocation.multipleReferences","Controls the behavior the 'Go to References'-command when multiple target locations exist.")},i),"editor.gotoLocation.alternativeDefinitionCommand":{type:"string",default:n.alternativeDefinitionCommand,description:r("alternativeDefinitionCommand","Alternative command id that is being executed when the result of 'Go to Definition' is the current location.")},"editor.gotoLocation.alternativeTypeDefinitionCommand":{type:"string",default:n.alternativeTypeDefinitionCommand,description:r("alternativeTypeDefinitionCommand","Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.")},"editor.gotoLocation.alternativeDeclarationCommand":{type:"string",default:n.alternativeDeclarationCommand,description:r("alternativeDeclarationCommand","Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.")},"editor.gotoLocation.alternativeImplementationCommand":{type:"string",default:n.alternativeImplementationCommand,description:r("alternativeImplementationCommand","Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.")},"editor.gotoLocation.alternativeReferenceCommand":{type:"string",default:n.alternativeReferenceCommand,description:r("alternativeReferenceCommand","Alternative command id that is being executed when the result of 'Go to Reference' is the current location.")}})||this,t}return p(t,e),t.prototype.validate=function(e){var t,n,i,o,r;if("object"!==typeof e)return this.defaultValue;var s=e;return{multiple:D.stringSet(s.multiple,this.defaultValue.multiple,["peek","gotoAndPeek","goto"]),multipleDefinitions:null!==(t=s.multipleDefinitions)&&void 0!==t?t:D.stringSet(s.multipleDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleTypeDefinitions:null!==(n=s.multipleTypeDefinitions)&&void 0!==n?n:D.stringSet(s.multipleTypeDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleDeclarations:null!==(i=s.multipleDeclarations)&&void 0!==i?i:D.stringSet(s.multipleDeclarations,"peek",["peek","gotoAndPeek","goto"]),multipleImplementations:null!==(o=s.multipleImplementations)&&void 0!==o?o:D.stringSet(s.multipleImplementations,"peek",["peek","gotoAndPeek","goto"]),multipleReferences:null!==(r=s.multipleReferences)&&void 0!==r?r:D.stringSet(s.multipleReferences,"peek",["peek","gotoAndPeek","goto"]),alternativeDefinitionCommand:N.string(s.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:N.string(s.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand),alternativeDeclarationCommand:N.string(s.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:N.string(s.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:N.string(s.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand)}},t}(y),H=function(e){function t(){var t=this,n={enabled:!0,delay:300,sticky:!0};return t=e.call(this,44,"hover",n,{"editor.hover.enabled":{type:"boolean",default:n.enabled,description:r("hover.enabled","Controls whether the hover is shown.")},"editor.hover.delay":{type:"number",default:n.delay,description:r("hover.delay","Controls the delay in milliseconds after which the hover is shown.")},"editor.hover.sticky":{type:"boolean",default:n.sticky,description:r("hover.sticky","Controls whether the hover should remain visible when mouse is moved over it.")}})||this,t}return p(t,e),t.prototype.validate=function(e){if("object"!==typeof e)return this.defaultValue;var t=e;return{enabled:w.boolean(t.enabled,this.defaultValue.enabled),delay:S.clampedInt(t.delay,this.defaultValue.delay,0,1e4),sticky:w.boolean(t.sticky,this.defaultValue.sticky)}},t}(y),z=function(e){function t(){return e.call(this,107,[40,48,30,54,78,50])||this}return p(t,e),t.prototype.compute=function(e,n,i){return t.computeLayout(n,{outerWidth:e.outerWidth,outerHeight:e.outerHeight,lineHeight:e.fontInfo.lineHeight,lineNumbersDigitCount:e.lineNumbersDigitCount,typicalHalfwidthCharacterWidth:e.fontInfo.typicalHalfwidthCharacterWidth,maxDigitWidth:e.fontInfo.maxDigitWidth,pixelRatio:e.pixelRatio})},t.computeLayout=function(e,t){var n,i=0|t.outerWidth,o=0|t.outerHeight,r=0|t.lineHeight,s=0|t.lineNumbersDigitCount,a=t.typicalHalfwidthCharacterWidth,u=t.maxDigitWidth,l=t.pixelRatio,c=e.get(40),h=0!==e.get(50).renderType,d=0|e.get(51),f=e.get(54),p=f.enabled,g=f.side,v=f.renderCharacters,_=l>=2?Math.round(2*f.scale):f.scale,y=0|f.maxColumn,b=e.get(78),C=0|b.verticalScrollbarSize,w=b.verticalHasArrows,L=0|b.arrowSize,N=0|b.horizontalScrollbarSize,D=e.get(48),E=e.get(30);if("string"===typeof D&&/^\d+(\.\d+)?ch$/.test(D)){var x=parseFloat(D.substr(0,D.length-2));n=S.clampedInt(x*a,0,0,1e3)}else n=S.clampedInt(D,0,0,1e3);E&&(n+=16);var k=0;if(h){var O=Math.max(s,d);k=Math.round(O*u)}var T=0;c&&(T=r);var M,I,A,P,R=0,F=R+T,W=F+k,V=W+n,B=i-T-k-n;if(p){var H=_/l;M=v?1:2,A=Math.max(0,Math.floor((B-C-2)*H/(a+H)))+m;var z=A/H;z>y&&(A=Math.floor(y*H)),P=B-A,"left"===g?(I=0,R+=A,F+=A,W+=A,V+=A):I=i-A-C}else I=0,A=0,M=0,P=B;var j=Math.max(1,Math.floor((P-C-2)/a)),U=w?L:0;return{width:i,height:o,glyphMarginLeft:R,glyphMarginWidth:T,lineNumbersLeft:F,lineNumbersWidth:k,decorationsLeft:W,decorationsWidth:n,contentLeft:V,contentWidth:P,renderMinimap:M,minimapLeft:I,minimapWidth:A,viewportColumn:j,verticalScrollbarWidth:C,horizontalScrollbarHeight:N,overviewRuler:{top:U,width:C,height:o-2*U,right:0}}},t}(b),j=function(e){function t(){var t=this,n={enabled:!0};return t=e.call(this,47,"lightbulb",n,{"editor.lightbulb.enabled":{type:"boolean",default:n.enabled,description:r("codeActions","Enables the code action lightbulb in the editor.")}})||this,t}return p(t,e),t.prototype.validate=function(e){if("object"!==typeof e)return this.defaultValue;var t=e;return{enabled:w.boolean(t.enabled,this.defaultValue.enabled)}},t}(y),U=function(e){function t(){return e.call(this,49,"lineHeight",ue.lineHeight,0,150,{description:r("lineHeight","Controls the line height. Use 0 to compute the line height from the font size.")})||this}return p(t,e),t.prototype.compute=function(e,t,n){return e.fontInfo.lineHeight},t}(S),K=function(e){function t(){var t=this,n={enabled:!0,side:"right",showSlider:"mouseover",renderCharacters:!0,maxColumn:120,scale:1};return t=e.call(this,54,"minimap",n,{"editor.minimap.enabled":{type:"boolean",default:n.enabled,description:r("minimap.enabled","Controls whether the minimap is shown.")},"editor.minimap.side":{type:"string",enum:["left","right"],default:n.side,description:r("minimap.side","Controls the side where to render the minimap.")},"editor.minimap.showSlider":{type:"string",enum:["always","mouseover"],default:n.showSlider,description:r("minimap.showSlider","Controls when the minimap slider is shown.")},"editor.minimap.scale":{type:"number",default:n.scale,minimum:1,maximum:3,description:r("minimap.scale","Scale of content drawn in the minimap.")},"editor.minimap.renderCharacters":{type:"boolean",default:n.renderCharacters,description:r("minimap.renderCharacters","Render the actual characters on a line as opposed to color blocks.")},"editor.minimap.maxColumn":{type:"number",default:n.maxColumn,description:r("minimap.maxColumn","Limit the width of the minimap to render at most a certain number of columns.")}})||this,t}return p(t,e),t.prototype.validate=function(e){if("object"!==typeof e)return this.defaultValue;var t=e;return{enabled:w.boolean(t.enabled,this.defaultValue.enabled),side:D.stringSet(t.side,this.defaultValue.side,["right","left"]),showSlider:D.stringSet(t.showSlider,this.defaultValue.showSlider,["always","mouseover"]),renderCharacters:w.boolean(t.renderCharacters,this.defaultValue.renderCharacters),scale:S.clampedInt(t.scale,1,1,3),maxColumn:S.clampedInt(t.maxColumn,this.defaultValue.maxColumn,1,1e4)}},t}(y);function q(e){return"ctrlCmd"===e?s["e"]?"metaKey":"ctrlKey":"altKey"}var G=function(e){function t(){var t=this,n={enabled:!0,cycle:!1};return t=e.call(this,64,"parameterHints",n,{"editor.parameterHints.enabled":{type:"boolean",default:n.enabled,description:r("parameterHints.enabled","Enables a pop-up that shows parameter documentation and type information as you type.")},"editor.parameterHints.cycle":{type:"boolean",default:n.cycle,description:r("parameterHints.cycle","Controls whether the parameter hints menu cycles or closes when reaching the end of the list.")}})||this,t}return p(t,e),t.prototype.validate=function(e){if("object"!==typeof e)return this.defaultValue;var t=e;return{enabled:w.boolean(t.enabled,this.defaultValue.enabled),cycle:w.boolean(t.cycle,this.defaultValue.cycle)}},t}(y),Y=function(e){function t(){return e.call(this,105)||this}return p(t,e),t.prototype.compute=function(e,t,n){return e.pixelRatio},t}(b),Z=function(e){function t(){var t=this,n={other:!0,comments:!1,strings:!1};return t=e.call(this,66,"quickSuggestions",n,{anyOf:[{type:"boolean"},{type:"object",properties:{strings:{type:"boolean",default:n.strings,description:r("quickSuggestions.strings","Enable quick suggestions inside strings.")},comments:{type:"boolean",default:n.comments,description:r("quickSuggestions.comments","Enable quick suggestions inside comments.")},other:{type:"boolean",default:n.other,description:r("quickSuggestions.other","Enable quick suggestions outside of strings and comments.")}}}],default:n,description:r("quickSuggestions","Controls whether suggestions should automatically show up while typing.")})||this,t.defaultValue=n,t}return p(t,e),t.prototype.validate=function(e){if("boolean"===typeof e)return e;if("object"===typeof e){var t=e,n={other:w.boolean(t.other,this.defaultValue.other),comments:w.boolean(t.comments,this.defaultValue.comments),strings:w.boolean(t.strings,this.defaultValue.strings)};return!!(n.other&&n.comments&&n.strings)||!!(n.other||n.comments||n.strings)&&n}return this.defaultValue},t}(y),X=function(e){function t(){return e.call(this,50,"lineNumbers",{renderType:1,renderFn:null},{type:"string",enum:["off","on","relative","interval"],enumDescriptions:[r("lineNumbers.off","Line numbers are not rendered."),r("lineNumbers.on","Line numbers are rendered as absolute number."),r("lineNumbers.relative","Line numbers are rendered as distance in lines to cursor position."),r("lineNumbers.interval","Line numbers are rendered every 10 lines.")],default:"on",description:r("lineNumbers","Controls the display of line numbers.")})||this}return p(t,e),t.prototype.validate=function(e){var t=this.defaultValue.renderType,n=this.defaultValue.renderFn;return"undefined"!==typeof e&&("function"===typeof e?(t=4,n=e):t="interval"===e?3:"relative"===e?2:"on"===e?1:0),{renderType:t,renderFn:n}},t}(y);function $(e){var t=e.get(73);return"editable"===t?e.get(68):"on"!==t}var Q=function(e){function t(){var t=this,n=[];return t=e.call(this,77,"rulers",n,{type:"array",items:{type:"number"},default:n,description:r("rulers","Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.")})||this,t}return p(t,e),t.prototype.validate=function(e){if(Array.isArray(e)){for(var t=[],n=0,i=e;n