diff --git a/.github/workflows/build-base-image.yml b/.github/workflows/build-base-image.yml index 7b6fec6b..03c45954 100644 --- a/.github/workflows/build-base-image.yml +++ b/.github/workflows/build-base-image.yml @@ -37,7 +37,7 @@ jobs: file: Dockerfile-server-base push: true tags: ghcr.io/${{ github.repository }}:server-base - platforms: linux/amd64 + platforms: linux/amd64,linux/arm64 cache-from: type=gha,scope=server-base cache-to: type=gha,mode=max,scope=server-base build-args: | diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index f795fd5a..7fe789b7 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -66,7 +66,7 @@ jobs: push: true tags: | ${{ env.IS_VERSION == 'true' && format('ghcr.io/{0}:server_{1},ghcr.io/{0}:server_latest', github.repository, env.VERSION) || format('ghcr.io/{0}:server_latest', github.repository) }} - platforms: linux/amd64 + platforms: linux/amd64,linux/arm64 cache-from: type=gha cache-to: type=gha,mode=max build-args: | @@ -81,7 +81,7 @@ jobs: push: true tags: | ${{ env.IS_VERSION == 'true' && format('ghcr.io/{0}:web_{1},ghcr.io/{0}:web_latest', github.repository, env.VERSION) || format('ghcr.io/{0}:web_latest', github.repository) }} - platforms: linux/amd64 + platforms: linux/amd64,linux/arm64 cache-from: type=gha cache-to: type=gha,mode=max build-args: | diff --git a/Dockerfile-web b/Dockerfile-web index 583d2e6b..fd0eb017 100644 --- a/Dockerfile-web +++ b/Dockerfile-web @@ -1,5 +1,5 @@ # 第一阶段:构建Vue前端 -FROM node:18 as web-builder +FROM node:18 AS web-builder WORKDIR /app COPY main/manager-web/package*.json ./ RUN npm install @@ -7,7 +7,7 @@ COPY main/manager-web . RUN npm run build # 第二阶段:构建Java后端 -FROM maven:3.9.4-eclipse-temurin-21 as api-builder +FROM maven:3.9.4-eclipse-temurin-21 AS api-builder WORKDIR /app COPY main/manager-api/pom.xml . COPY main/manager-api/src ./src @@ -18,18 +18,19 @@ FROM bellsoft/liberica-runtime-container:jre-21-glibc # 安装Nginx和字体库 RUN apk update && \ - apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing/ \ + apk add --no-cache --no-scripts \ nginx \ bash \ fontconfig \ ttf-dejavu \ - msttcorefonts-installer \ - && ACCEPT_EULA=Y apk add --no-cache msttcorefonts-installer \ - && fc-cache -f -v \ - && rm -rf /var/cache/apk/* + && rm -rf /var/cache/apk/* \ + && mkdir -p /run/nginx /var/log/nginx /var/tmp/nginx /etc/nginx/conf.d + +# 复制项目自带的中文字体 +COPY main/manager-web/public/generator/static/fonts/*.ttf /usr/share/fonts/ # 更新字体缓存 -RUN (printf 'YES\n' | update-ms-fonts || true) && fc-cache -f -v +RUN fc-cache -f -v # 配置Nginx COPY docs/docker/nginx.conf /etc/nginx/nginx.conf diff --git a/main/manager-api/src/main/java/xiaozhi/common/config/SwaggerConfig.java b/main/manager-api/src/main/java/xiaozhi/common/config/SwaggerConfig.java index 8fb31641..25d1ad45 100644 --- a/main/manager-api/src/main/java/xiaozhi/common/config/SwaggerConfig.java +++ b/main/manager-api/src/main/java/xiaozhi/common/config/SwaggerConfig.java @@ -43,7 +43,7 @@ public class SwaggerConfig { public GroupedOpenApi oatApi() { return GroupedOpenApi.builder() .group("ota") - .pathsToMatch("/ota/**") + .pathsToMatch("/ota/**", "/otaMag/**") .build(); } diff --git a/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java b/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java index 8bd59229..fe71c05f 100644 --- a/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java +++ b/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java @@ -304,7 +304,7 @@ public interface Constant { /** * 版本号 */ - public static final String VERSION = "0.8.11"; + public static final String VERSION = "0.9.1"; /** * 无效固件URL diff --git a/main/manager-api/src/main/java/xiaozhi/common/exception/ErrorCode.java b/main/manager-api/src/main/java/xiaozhi/common/exception/ErrorCode.java index c0f49754..3f914e4c 100644 --- a/main/manager-api/src/main/java/xiaozhi/common/exception/ErrorCode.java +++ b/main/manager-api/src/main/java/xiaozhi/common/exception/ErrorCode.java @@ -240,4 +240,9 @@ public interface ErrorCode { int RAG_ADAPTER_CACHE_ERROR = 10191; // 适配器缓存错误 int RAG_ADAPTER_TYPE_NOT_FOUND = 10192; // 适配器类型未找到 + // 设备工具相关错误码 + int DEVICE_ID_NOT_NULL = 10193; // 设备ID不能为空 + int DEVICE_NOT_EXIST = 10194; // 设备不存在 + int OTA_UPLOAD_COUNT_EXCEED = 10195; // OTA上传次数超过限制 + } diff --git a/main/manager-api/src/main/java/xiaozhi/common/redis/RedisKeys.java b/main/manager-api/src/main/java/xiaozhi/common/redis/RedisKeys.java index 281472e0..6b143930 100644 --- a/main/manager-api/src/main/java/xiaozhi/common/redis/RedisKeys.java +++ b/main/manager-api/src/main/java/xiaozhi/common/redis/RedisKeys.java @@ -166,4 +166,25 @@ public class RedisKeys { public static String getTmpRegisterMacKey(String deviceId) { return "tmp_register_mac:" + deviceId; } + + /** + * OTA绑定设备 + */ + public static String getOtaActivationCode(String activationCode) { + return "ota:activation:code:" + activationCode; + } + + /** + * OTA获取设备mac相关信息 + */ + public static String getOtaDeviceActivationInfo(String deviceId) { + return "ota:activation:data:" + deviceId; + } + + /** + * OTA上传次数 + */ + public static String getOtaUploadCountKey(Long username) { + return "ota:upload:count:" + username; + } } diff --git a/main/manager-api/src/main/java/xiaozhi/common/utils/ToolUtil.java b/main/manager-api/src/main/java/xiaozhi/common/utils/ToolUtil.java new file mode 100644 index 00000000..40888965 --- /dev/null +++ b/main/manager-api/src/main/java/xiaozhi/common/utils/ToolUtil.java @@ -0,0 +1,89 @@ +package xiaozhi.common.utils; + +import cn.hutool.core.util.ReUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * 通用工具类 + */ +public class ToolUtil { + private static final Logger logger = LoggerFactory.getLogger(ToolUtil.class); + + /** + * 对象是否不为空(新增) + */ + public static boolean isNotEmpty(Object o) { + return !isEmpty(o); + } + + /** + * 对象是否为空 + */ + public static boolean isEmpty(Object o) { + if (o == null) { + return true; + } + if (o instanceof String) { + if (o.toString().trim().equals("")) { + return true; + } + } else if (o instanceof List) { + if (((List) o).size() == 0) { + return true; + } + } else if (o instanceof Map) { + if (((Map) o).size() == 0) { + return true; + } + } else if (o instanceof Set) { + if (((Set) o).size() == 0) { + return true; + } + } else if (o instanceof Object[]) { + if (((Object[]) o).length == 0) { + return true; + } + } else if (o instanceof int[]) { + if (((int[]) o).length == 0) { + return true; + } + } else if (o instanceof long[]) { + if (((long[]) o).length == 0) { + return true; + } + } + return false; + } + + /** + * 对象组中是否存在空对象 + */ + public static boolean isOneEmpty(Object... os) { + for (Object o : os) { + if (isEmpty(o)) { + return true; + } + } + return false; + } + + /** + * 对象组中是否全是空对象 + */ + public static boolean isAllEmpty(Object... os) { + for (Object o : os) { + if (!isEmpty(o)) { + return false; + } + } + return true; + } +} diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/controller/AgentMcpAccessPointController.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/controller/AgentMcpAccessPointController.java index 3f369774..bee728f5 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/controller/AgentMcpAccessPointController.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/controller/AgentMcpAccessPointController.java @@ -28,7 +28,7 @@ public class AgentMcpAccessPointController { /** * 获取智能体的Mcp接入点地址 * - * @param audioId 智能体id + * @param agentId 智能体id * @return 返回错误提醒或者Mcp接入点地址 */ @Operation(summary = "获取智能体的Mcp接入点地址") diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentChatHistoryServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentChatHistoryServiceImpl.java index 63b820c9..494107a2 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentChatHistoryServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentChatHistoryServiceImpl.java @@ -5,6 +5,7 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; +import cn.hutool.core.collection.ListUtil; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -18,6 +19,7 @@ import xiaozhi.common.constant.Constant; import xiaozhi.common.page.PageData; import xiaozhi.common.utils.ConvertUtils; import xiaozhi.common.utils.JsonUtils; +import xiaozhi.common.utils.ToolUtil; import xiaozhi.modules.agent.Enums.AgentChatHistoryType; import xiaozhi.modules.agent.dao.AiAgentChatHistoryDao; import xiaozhi.modules.agent.dto.AgentChatHistoryDTO; @@ -86,13 +88,12 @@ public class AgentChatHistoryServiceImpl extends ServiceImpl audioIds = baseMapper.getAudioIdsByAgentId(agentId); - if (audioIds != null && !audioIds.isEmpty()) { - int batchSize = 1000; // 每批删除1000条 - for (int i = 0; i < audioIds.size(); i += batchSize) { - int end = Math.min(i + batchSize, audioIds.size()); - List batch = audioIds.subList(i, end); - baseMapper.deleteAudioByIds(batch); - } + if (ToolUtil.isNotEmpty(audioIds)) { + // 每批删除1000条 + List> batch = ListUtil.split(audioIds, 1000); + batch.forEach(dataList->{ + baseMapper.deleteAudioByIds(dataList); + }); } } if (deleteAudio && !deleteText) { diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentChatSummaryServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentChatSummaryServiceImpl.java index f367891f..38fef94b 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentChatSummaryServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentChatSummaryServiceImpl.java @@ -78,11 +78,11 @@ public class AgentChatSummaryServiceImpl implements AgentChatSummaryService { // 4. 生成总结(generateSummaryFromMessages方法已包含长度限制逻辑) String summary = generateSummaryFromMessages(meaningfulMessages, agentId); - System.out.println("成功生成会话 " + sessionId + " 的聊天记录总结,长度: " + summary.length() + " 字符"); + log.info("成功生成会话 {} 的聊天记录总结,长度: {} 字符", sessionId, summary.length()); return new AgentChatSummaryDTO(sessionId, agentId, summary); } catch (Exception e) { - System.err.println("生成会话 " + sessionId + " 的聊天记录总结时发生错误: " + e.getMessage()); + log.error("生成会话 {} 的聊天记录总结时发生错误: {}", sessionId, e.getMessage()); return new AgentChatSummaryDTO(sessionId, "生成总结时发生错误: " + e.getMessage()); } } @@ -93,14 +93,14 @@ public class AgentChatSummaryServiceImpl implements AgentChatSummaryService { // 1. 生成总结 AgentChatSummaryDTO summaryDTO = generateChatSummary(sessionId); if (!summaryDTO.isSuccess()) { - System.err.println("生成总结失败: " + summaryDTO.getErrorMessage()); + log.info("生成总结失败: {}", summaryDTO.getErrorMessage()); return false; } // 2. 获取设备信息(通过会话关联的设备) DeviceEntity device = getDeviceBySessionId(sessionId); if (device == null) { - System.err.println("未找到与会话 " + sessionId + " 关联的设备"); + log.info("未找到与会话 {} 关联的设备", sessionId); return false; } @@ -116,11 +116,11 @@ public class AgentChatSummaryServiceImpl implements AgentChatSummaryService { } }); - System.out.println("成功保存会话 " + sessionId + " 的聊天记录总结到智能体 " + device.getAgentId()); + log.info("成功保存会话 {} 的聊天记录总结到智能体 {}", sessionId, device.getAgentId()); return true; } catch (Exception e) { - System.err.println("保存会话 " + sessionId + " 的聊天记录总结时发生错误: " + e.getMessage()); + log.error("保存会话 {} 的聊天记录总结时发生错误: {}", sessionId, e.getMessage()); return false; } } @@ -138,7 +138,7 @@ public class AgentChatSummaryServiceImpl implements AgentChatSummaryService { } return agentChatHistoryService.getChatHistoryBySessionId(agentId, sessionId); } catch (Exception e) { - System.err.println("获取会话 " + sessionId + " 的聊天记录失败: " + e.getMessage()); + log.error("获取会话 {} 的聊天记录失败: {}", sessionId, e.getMessage()); return null; } } @@ -157,7 +157,7 @@ public class AgentChatSummaryServiceImpl implements AgentChatSummaryService { AgentChatHistoryEntity entity = agentChatHistoryService.getOne(wrapper); return entity != null ? entity.getAgentId() : null; } catch (Exception e) { - System.err.println("根据会话ID " + sessionId + " 查找智能体ID失败: " + e.getMessage()); + log.error("根据会话ID {} 查找智能体ID失败: {}", sessionId, e.getMessage()); return null; } } @@ -272,7 +272,7 @@ public class AgentChatSummaryServiceImpl implements AgentChatSummaryService { return summary; } catch (Exception e) { - System.err.println("调用Java端LLM服务失败: " + e.getMessage()); + log.error("调用Java端LLM服务失败: {}", e.getMessage()); throw new RuntimeException("LLM服务不可用,无法生成聊天总结"); } } @@ -295,7 +295,7 @@ public class AgentChatSummaryServiceImpl implements AgentChatSummaryService { // 返回智能体的当前总结记忆 return agentInfo.getSummaryMemory(); } catch (Exception e) { - System.err.println("获取智能体历史记忆失败,agentId: " + agentId + ", 错误: " + e.getMessage()); + log.error("获取智能体历史记忆失败,agentId: {}, 错误: {}", agentId, e.getMessage()); return null; } } @@ -309,7 +309,7 @@ public class AgentChatSummaryServiceImpl implements AgentChatSummaryService { String modelId = getMemorySummaryModelId(agentId); if (StringUtils.isBlank(modelId)) { - System.out.println("未找到记忆总结的LLM模型配置,使用默认LLM服务"); + log.info("未找到记忆总结的LLM模型配置,使用默认LLM服务"); return llmService.generateSummaryWithHistory(conversation, historyMemory, null, null); } @@ -323,7 +323,7 @@ public class AgentChatSummaryServiceImpl implements AgentChatSummaryService { throw new RuntimeException("Java端LLM服务返回异常: " + summary); } catch (Exception e) { - System.err.println("调用Java端LLM服务异常,agentId: " + agentId + ", 错误: " + e.getMessage()); + log.error("调用Java端LLM服务异常,agentId: {}, 错误: {}", agentId, e.getMessage()); throw e; } } @@ -337,7 +337,7 @@ public class AgentChatSummaryServiceImpl implements AgentChatSummaryService { String modelId = getMemorySummaryModelId(agentId); if (StringUtils.isBlank(modelId)) { - System.out.println("未找到记忆总结的LLM模型配置,使用默认LLM服务"); + log.info("未找到记忆总结的LLM模型配置,使用默认LLM服务"); return llmService.generateSummary(conversation); } @@ -351,7 +351,7 @@ public class AgentChatSummaryServiceImpl implements AgentChatSummaryService { throw new RuntimeException("Java端LLM服务返回异常: " + summary); } catch (Exception e) { - System.err.println("调用Java端LLM服务异常,agentId: " + agentId + ", 错误: " + e.getMessage()); + log.error("调用Java端LLM服务异常,agentId: {}, 错误: {}", agentId, e.getMessage()); throw e; } } @@ -394,7 +394,7 @@ public class AgentChatSummaryServiceImpl implements AgentChatSummaryService { return llmModelId; } catch (Exception e) { - System.err.println("获取记忆总结LLM模型ID失败,agentId: " + agentId + ", 错误: " + e.getMessage()); + log.error("获取记忆总结LLM模型ID失败,agentId: {}, 错误: {}", agentId, e.getMessage()); return null; } } @@ -416,7 +416,7 @@ public class AgentChatSummaryServiceImpl implements AgentChatSummaryService { } return null; } catch (Exception e) { - System.err.println("根据会话ID " + sessionId + " 查找设备信息失败: " + e.getMessage()); + log.error("根据会话ID {} 查找设备信息失败: {}", sessionId, e.getMessage()); return null; } } diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentMcpAccessPointServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentMcpAccessPointServiceImpl.java index 7d96f748..f1cdf94c 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentMcpAccessPointServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentMcpAccessPointServiceImpl.java @@ -147,6 +147,7 @@ public class AgentMcpAccessPointServiceImpl implements AgentMcpAccessPointServic List result = toolsList.stream() .map(tool -> (String) tool.get("name")) .filter(name -> name != null) + .sorted() .collect(Collectors.toList()); log.info("成功获取MCP工具列表,智能体ID: {}, 工具数量: {}", id, result.size()); return result; diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentServiceImpl.java index 71a4641a..5485e425 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentServiceImpl.java @@ -5,6 +5,7 @@ import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.UUID; import java.util.function.Function; import java.util.stream.Collectors; @@ -28,6 +29,7 @@ import xiaozhi.common.service.impl.BaseServiceImpl; import xiaozhi.common.user.UserDetail; import xiaozhi.common.utils.ConvertUtils; import xiaozhi.common.utils.JsonUtils; +import xiaozhi.common.utils.ToolUtil; import xiaozhi.modules.agent.dao.AgentDao; import xiaozhi.modules.agent.dto.AgentCreateDTO; import xiaozhi.modules.agent.dto.AgentDTO; @@ -85,9 +87,9 @@ public class AgentServiceImpl extends BaseServiceImpl imp if (agent.getMemModelId() != null && agent.getMemModelId().equals(Constant.MEMORY_NO_MEM)) { agent.setChatHistoryConf(Constant.ChatHistoryConfEnum.IGNORE.getCode()); - if (agent.getChatHistoryConf() == null) { - agent.setChatHistoryConf(Constant.ChatHistoryConfEnum.RECORD_TEXT_AUDIO.getCode()); - } + } + if (agent.getChatHistoryConf() == null) { + agent.setChatHistoryConf(Constant.ChatHistoryConfEnum.RECORD_TEXT_AUDIO.getCode()); } // 查询上下文源配置 @@ -130,26 +132,21 @@ public class AgentServiceImpl extends BaseServiceImpl imp @Override public List getUserAgents(Long userId, String keyword, String searchType) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("user_id", userId); + queryWrapper.eq("user_id", userId).orderByDesc("created_at"); // 如果有搜索关键词,根据搜索类型添加相应的查询条件 if (StringUtils.isNotBlank(keyword)) { if ("mac".equals(searchType)) { // 按MAC地址搜索:先搜索设备,再获取对应的智能体 - List devices = deviceService.searchDevicesByMacAddress(keyword, userId); - - if (!devices.isEmpty()) { - // 获取设备对应的智能体ID列表 - List agentIds = devices.stream() - .map(DeviceEntity::getAgentId) - .distinct() - .collect(Collectors.toList()); - - if (!agentIds.isEmpty()) { - queryWrapper.in("id", agentIds); - } else { - return new ArrayList<>(); - } + List devices = Optional + .ofNullable(deviceService.searchDevicesByMacAddress(keyword, userId)).orElseGet(ArrayList::new); + // 获取设备对应的智能体ID列表 + List agentIds = devices.stream() + .map(DeviceEntity::getAgentId) + .distinct() + .collect(Collectors.toList()); + if (ToolUtil.isNotEmpty(agentIds)) { + queryWrapper.in("id", agentIds); } else { return new ArrayList<>(); } diff --git a/main/manager-api/src/main/java/xiaozhi/modules/config/service/impl/ConfigServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/config/service/impl/ConfigServiceImpl.java index ead30b70..49885614 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/config/service/impl/ConfigServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/config/service/impl/ConfigServiceImpl.java @@ -163,11 +163,11 @@ public class ConfigServiceImpl implements ConfigService { } result.put("chat_history_conf", chatHistoryConf); // 如果客户端已实例化模型,则不返回 - String alreadySelectedVadModelId = (String) selectedModule.get("VAD"); + String alreadySelectedVadModelId = selectedModule.get("VAD"); if (alreadySelectedVadModelId != null && alreadySelectedVadModelId.equals(agent.getVadModelId())) { agent.setVadModelId(null); } - String alreadySelectedAsrModelId = (String) selectedModule.get("ASR"); + String alreadySelectedAsrModelId = selectedModule.get("ASR"); if (alreadySelectedAsrModelId != null && alreadySelectedAsrModelId.equals(agent.getAsrModelId())) { agent.setAsrModelId(null); } @@ -302,7 +302,7 @@ public class ConfigServiceImpl implements ConfigService { private void buildVoiceprintConfig(String agentId, Map result) { try { // 获取声纹接口地址 - String voiceprintUrl = sysParamsService.getValue("server.voice_print", true); + String voiceprintUrl = sysParamsService.getValue(Constant.SERVER_VOICE_PRINT, true); if (StringUtils.isBlank(voiceprintUrl) || "null".equals(voiceprintUrl)) { return; } diff --git a/main/manager-api/src/main/java/xiaozhi/modules/device/controller/DeviceController.java b/main/manager-api/src/main/java/xiaozhi/modules/device/controller/DeviceController.java index 78a17b02..629ba80f 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/device/controller/DeviceController.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/device/controller/DeviceController.java @@ -1,14 +1,11 @@ package xiaozhi.modules.device.controller; import java.util.List; +import java.util.Map; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.BeanUtils; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -16,9 +13,6 @@ import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.client.RestTemplate; - -import com.fasterxml.jackson.databind.ObjectMapper; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -30,6 +24,7 @@ import xiaozhi.common.user.UserDetail; import xiaozhi.common.utils.Result; import xiaozhi.modules.device.dto.DeviceManualAddDTO; import xiaozhi.modules.device.dto.DeviceRegisterDTO; +import xiaozhi.modules.device.dto.DeviceToolsCallReqDTO; import xiaozhi.modules.device.dto.DeviceUnBindDTO; import xiaozhi.modules.device.dto.DeviceUpdateDTO; import xiaozhi.modules.device.entity.DeviceEntity; @@ -44,16 +39,11 @@ public class DeviceController { private final DeviceService deviceService; private final RedisUtils redisUtils; private final SysParamsService sysParamsService; - private final RestTemplate restTemplate; - private final ObjectMapper objectMapper; - public DeviceController(DeviceService deviceService, RedisUtils redisUtils, SysParamsService sysParamsService, - RestTemplate restTemplate, ObjectMapper objectMapper) { + public DeviceController(DeviceService deviceService, RedisUtils redisUtils, SysParamsService sysParamsService) { this.deviceService = deviceService; this.redisUtils = redisUtils; this.sysParamsService = sysParamsService; - this.restTemplate = restTemplate; - this.objectMapper = objectMapper; } @PostMapping("/bind/{agentId}/{deviceCode}") @@ -99,83 +89,12 @@ public class DeviceController { @RequiresPermissions("sys:role:normal") public Result forwardToMqttGateway(@PathVariable String agentId, @RequestBody String requestBody) { try { - // 从系统参数中获取MQTT网关地址 - String mqttGatewayUrl = sysParamsService.getValue("server.mqtt_manager_api", true); - if (StringUtils.isBlank(mqttGatewayUrl) || "null".equals(mqttGatewayUrl)) { - return new Result<>(); - } - - // 获取当前用户的设备列表 - UserDetail user = SecurityUser.getUser(); - List devices = deviceService.getUserDevices(user.getId(), agentId); - - // 构建deviceIds数组 - java.util.List deviceIds = new java.util.ArrayList<>(); - for (DeviceEntity device : devices) { - String macAddress = device.getMacAddress() != null ? device.getMacAddress() : "unknown"; - String groupId = device.getBoard() != null ? device.getBoard() : "GID_default"; - - // 替换冒号为下划线 - groupId = groupId.replace(":", "_"); - macAddress = macAddress.replace(":", "_"); - - // 构建mqtt客户端ID格式:groupId@@@macAddress@@@macAddress - String mqttClientId = groupId + "@@@" + macAddress + "@@@" + macAddress; - deviceIds.add(mqttClientId); - } - - // 构建完整的URL - String url = "http://" + mqttGatewayUrl + "/api/devices/status"; - - // 设置请求头 - HttpHeaders headers = new HttpHeaders(); - headers.set("Content-Type", "application/json"); - - // 生成Bearer令牌 - String token = generateBearerToken(); - if (token == null) { - return new Result().error("令牌生成失败"); - } - headers.set("Authorization", "Bearer " + token); - - // 构建请求体JSON - String jsonBody = "{\"clientIds\":" + objectMapper.writeValueAsString(deviceIds) + "}"; - HttpEntity requestEntity = new HttpEntity<>(jsonBody, headers); - - // 发送POST请求 - ResponseEntity response = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class); - - // 返回响应 - return new Result().ok(response.getBody()); + return new Result().ok(deviceService.getDeviceOnlineData(agentId)); } catch (Exception e) { return new Result().error("转发请求失败: " + e.getMessage()); } } - private String generateBearerToken() { - try { - // 获取当前日期,格式为yyyy-MM-dd - String dateStr = java.time.LocalDate.now() - .format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd")); - - // 获取MQTT签名密钥 - String signatureKey = sysParamsService.getValue("server.mqtt_signature_key", false); - if (StringUtils.isBlank(signatureKey)) { - return null; - } - - // 将日期字符串与MQTT_SIGNATURE_KEY连接 - String tokenContent = dateStr + signatureKey; - - // 对连接后的字符串进行SHA256哈希计算 - String token = org.apache.commons.codec.digest.DigestUtils.sha256Hex(tokenContent); - - return token; - } catch (Exception e) { - return null; - } - } - @PostMapping("/unbind") @Operation(summary = "解绑设备") @RequiresPermissions("sys:role:normal") @@ -210,4 +129,34 @@ public class DeviceController { deviceService.manualAddDevice(user.getId(), dto); return new Result<>(); } + + @PostMapping("/tools/list/{deviceId}") + @Operation(summary = "获取设备工具列表") + @RequiresPermissions("sys:role:normal") + public Result getDeviceTools(@PathVariable String deviceId) { + Object toolsData = deviceService.getDeviceTools(deviceId); + if (toolsData == null) { + return new Result().error(ErrorCode.DEVICE_NOT_EXIST); + } + + return new Result().ok(toolsData); + } + + @PostMapping("/tools/call/{deviceId}") + @Operation(summary = "调用设备工具") + @RequiresPermissions("sys:role:normal") + public Result callDeviceTool(@PathVariable String deviceId, + @Valid @RequestBody DeviceToolsCallReqDTO request) { + String toolName = request.getName(); + Map arguments = request.getArguments(); + + Object result = deviceService.callDeviceTool(deviceId, toolName, arguments); + if (result == null) { + return new Result().error(ErrorCode.DEVICE_NOT_EXIST); + } + + Result response = new Result(); + response.setMsg("Tools called successfully"); + return response.ok(result); + } } \ No newline at end of file diff --git a/main/manager-api/src/main/java/xiaozhi/modules/device/controller/OTAMagController.java b/main/manager-api/src/main/java/xiaozhi/modules/device/controller/OTAMagController.java index bbe0c66a..cfdf3913 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/device/controller/OTAMagController.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/device/controller/OTAMagController.java @@ -7,7 +7,9 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; +import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.UUID; import org.apache.commons.lang3.StringUtils; @@ -36,6 +38,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import xiaozhi.common.constant.Constant; +import xiaozhi.common.exception.ErrorCode; import xiaozhi.common.page.PageData; import xiaozhi.common.redis.RedisKeys; import xiaozhi.common.redis.RedisUtils; @@ -43,8 +46,11 @@ import xiaozhi.common.utils.Result; import xiaozhi.common.validator.ValidatorUtils; import xiaozhi.modules.device.entity.OtaEntity; import xiaozhi.modules.device.service.OtaService; +import xiaozhi.modules.security.user.SecurityUser; +import xiaozhi.modules.sys.enums.SuperAdminEnum; +import xiaozhi.modules.sys.service.SysParamsService; -@Tag(name = "设备管理", description = "OTA 相关接口") +@Tag(name = "固件升级管理", description = "OTA 相关接口") @Slf4j @RestController @RequiredArgsConstructor @@ -53,6 +59,7 @@ public class OTAMagController { private static final Logger logger = LoggerFactory.getLogger(OTAController.class); private final OtaService otaService; private final RedisUtils redisUtils; + private final SysParamsService sysParamsService; @GetMapping @Operation(summary = "分页查询 OTA 固件信息") @@ -145,15 +152,11 @@ public class OTAMagController { // 检查下载次数 String downloadCountKey = RedisKeys.getOtaDownloadCountKey(uuid); - Integer downloadCount = (Integer) redisUtils.get(downloadCountKey); - if (downloadCount == null) { - downloadCount = 0; - } + Integer downloadCount = (Integer) Optional.ofNullable(redisUtils.get(downloadCountKey)).orElse(0); // 如果下载次数超过3次,返回404 if (downloadCount >= 3) { - redisUtils.delete(downloadCountKey); - redisUtils.delete(RedisKeys.getOtaIdKey(uuid)); + redisUtils.delete(List.of(downloadCountKey, RedisKeys.getOtaIdKey(uuid))); logger.warn("Download limit exceeded for UUID: {}", uuid); return ResponseEntity.notFound().build(); } @@ -162,7 +165,17 @@ public class OTAMagController { try { // 获取固件信息 - OtaEntity otaEntity = otaService.selectById(id); + OtaEntity otaEntity = null; + if (id.indexOf("file:") == 0) { + id = id.substring(5); + otaEntity = new OtaEntity(); + otaEntity.setFirmwarePath(id); + otaEntity.setType("assets"); + otaEntity.setVersion("1.0.0"); + } else { + otaEntity = otaService.selectById(id); + } + if (otaEntity == null || StringUtils.isBlank(otaEntity.getFirmwarePath())) { logger.warn("Firmware not found or path is empty for ID: {}", id); return ResponseEntity.notFound().build(); @@ -170,6 +183,7 @@ public class OTAMagController { // 获取文件路径 - 确保路径是绝对路径或正确的相对路径 String firmwarePath = otaEntity.getFirmwarePath(); + String originalFilename = otaEntity.getType() + "_" + otaEntity.getVersion(); Path path; // 检查是否是绝对路径 @@ -203,7 +217,7 @@ public class OTAMagController { byte[] fileContent = Files.readAllBytes(path); // 设置响应头 - String originalFilename = otaEntity.getType() + "_" + otaEntity.getVersion(); + if (firmwarePath.contains(".")) { String extension = firmwarePath.substring(firmwarePath.lastIndexOf(".")); originalFilename += extension; @@ -279,6 +293,42 @@ public class OTAMagController { } } + @PostMapping("/uploadAssetsBin") + @Operation(summary = "上传资源固件文件") + @RequiresPermissions("sys:role:normal") + public Result uploadAssetsBin(@RequestParam("file") MultipartFile file) { + String otaUrl = sysParamsService.getValue(Constant.SERVER_OTA, true); + if (StringUtils.isBlank(otaUrl) || otaUrl.equals("null")) { + return new Result().error(ErrorCode.OTA_URL_EMPTY); + } + logger.info("username:{},uploadAssetsBin size: {}", SecurityUser.getUser().getUsername(), file.getSize()); + // 验证文件大小 (资源固件最大20MB) + if (file.getSize() > 20 * 1024 * 1024) { + return new Result().error(ErrorCode.VOICE_CLONE_AUDIO_TOO_LARGE); + } + // 普通用户只能每天上传50次 + if (SecurityUser.getUser().getSuperAdmin() == SuperAdminEnum.NO.value()) { + String uploadCountKey = RedisKeys.getOtaUploadCountKey(SecurityUser.getUser().getId()); + Integer uploadCount = (Integer) Optional.ofNullable(redisUtils.get(uploadCountKey)).orElse(0); + if (uploadCount >= 50) { + return new Result().error(ErrorCode.OTA_UPLOAD_COUNT_EXCEED); + } + // 增加上传次数 + redisUtils.increment(RedisKeys.getOtaUploadCountKey(SecurityUser.getUser().getId()), + RedisUtils.DEFAULT_EXPIRE); + } + Result result = uploadFirmware(file); + + // 生成资源文件路径 + if (StringUtils.isNotBlank(result.getData())) { + String uuid = UUID.randomUUID().toString(); + redisUtils.set(RedisKeys.getOtaIdKey(uuid), "file:" + result.getData()); + String downloadUrl = otaUrl.replace("/ota/", "/otaMag/download/") + uuid; + result.setData(downloadUrl); + } + return result; + } + private String calculateMD5(MultipartFile file) throws IOException, NoSuchAlgorithmException { MessageDigest md = MessageDigest.getInstance("MD5"); byte[] digest = md.digest(file.getBytes()); diff --git a/main/manager-api/src/main/java/xiaozhi/modules/device/dto/DeviceToolsCallReqDTO.java b/main/manager-api/src/main/java/xiaozhi/modules/device/dto/DeviceToolsCallReqDTO.java new file mode 100644 index 00000000..777bee03 --- /dev/null +++ b/main/manager-api/src/main/java/xiaozhi/modules/device/dto/DeviceToolsCallReqDTO.java @@ -0,0 +1,15 @@ +package xiaozhi.modules.device.dto; + +import java.util.Map; + +import jakarta.validation.constraints.NotBlank; +import lombok.Data; + +@Data +public class DeviceToolsCallReqDTO { + + @NotBlank(message = "工具名称不能为空") + private String name; + + private Map arguments; +} \ No newline at end of file diff --git a/main/manager-api/src/main/java/xiaozhi/modules/device/service/DeviceService.java b/main/manager-api/src/main/java/xiaozhi/modules/device/service/DeviceService.java index f4debba9..ecbf719c 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/device/service/DeviceService.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/device/service/DeviceService.java @@ -2,17 +2,22 @@ package xiaozhi.modules.device.service; import java.util.Date; import java.util.List; +import java.util.Map; import xiaozhi.common.page.PageData; import xiaozhi.common.service.BaseService; +import xiaozhi.modules.device.dto.DeviceManualAddDTO; import xiaozhi.modules.device.dto.DevicePageUserDTO; import xiaozhi.modules.device.dto.DeviceReportReqDTO; import xiaozhi.modules.device.dto.DeviceReportRespDTO; -import xiaozhi.modules.device.dto.DeviceManualAddDTO; import xiaozhi.modules.device.entity.DeviceEntity; import xiaozhi.modules.device.vo.UserShowDeviceListVO; public interface DeviceService extends BaseService { + /** + * 获取设备在线数据 + */ + String getDeviceOnlineData(String agentId); /** * 检查设备是否激活 @@ -83,6 +88,7 @@ public interface DeviceService extends BaseService { /** * 获取这个智能体设备理的最近的最后连接时间 + * * @param agentId 智能体id * @return 返回设备最近的最后连接时间 */ @@ -112,9 +118,19 @@ public interface DeviceService extends BaseService { * 根据MAC地址搜索设备 * * @param macAddress MAC地址关键词 - * @param userId 用户ID + * @param userId 用户ID * @return 设备列表 */ List searchDevicesByMacAddress(String macAddress, Long userId); + /** + * 获取设备工具列表 + */ + Object getDeviceTools(String deviceId); + + /** + * 调用设备工具 + */ + Object callDeviceTool(String deviceId, String toolName, Map arguments); + } \ No newline at end of file diff --git a/main/manager-api/src/main/java/xiaozhi/modules/device/service/impl/DeviceServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/device/service/impl/DeviceServiceImpl.java index ea0d20eb..57e7247e 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/device/service/impl/DeviceServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/device/service/impl/DeviceServiceImpl.java @@ -9,8 +9,11 @@ import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; +import java.util.Set; import java.util.TimeZone; import java.util.UUID; +import java.util.stream.Collectors; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; @@ -26,7 +29,16 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.RandomUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.crypto.digest.DigestUtil; +import cn.hutool.http.ContentType; +import cn.hutool.http.Header; +import cn.hutool.http.HttpRequest; +import cn.hutool.json.JSONUtil; import jakarta.servlet.http.HttpServletRequest; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -40,6 +52,7 @@ import xiaozhi.common.service.impl.BaseServiceImpl; import xiaozhi.common.user.UserDetail; import xiaozhi.common.utils.ConvertUtils; import xiaozhi.common.utils.DateUtils; +import xiaozhi.common.utils.ToolUtil; import xiaozhi.modules.device.dao.DeviceDao; import xiaozhi.modules.device.dto.DeviceManualAddDTO; import xiaozhi.modules.device.dto.DevicePageUserDTO; @@ -88,16 +101,16 @@ public class DeviceServiceImpl extends BaseServiceImpl if (StringUtils.isBlank(activationCode)) { throw new RenException(ErrorCode.ACTIVATION_CODE_EMPTY); } - String deviceKey = "ota:activation:code:" + activationCode; + String deviceKey = RedisKeys.getOtaActivationCode(activationCode); Object cacheDeviceId = redisUtils.get(deviceKey); - if (cacheDeviceId == null) { + if (ToolUtil.isEmpty(cacheDeviceId)) { throw new RenException(ErrorCode.ACTIVATION_CODE_ERROR); } String deviceId = (String) cacheDeviceId; String safeDeviceId = deviceId.replace(":", "_").toLowerCase(); - String cacheDeviceKey = String.format("ota:activation:data:%s", safeDeviceId); + String cacheDeviceKey = RedisKeys.getOtaDeviceActivationInfo(safeDeviceId); Map cacheMap = (Map) redisUtils.get(cacheDeviceKey); - if (cacheMap == null) { + if (ToolUtil.isEmpty(cacheMap)) { throw new RenException(ErrorCode.ACTIVATION_CODE_ERROR); } String cachedCode = (String) cacheMap.get("activation_code"); @@ -133,19 +146,56 @@ public class DeviceServiceImpl extends BaseServiceImpl deviceEntity.setLastConnectedAt(currentTime); deviceDao.insert(deviceEntity); - // 清理redis缓存 - redisUtils.delete(cacheDeviceKey); - redisUtils.delete(deviceKey); - - // 添加:清除智能体设备数量缓存 - redisUtils.delete(RedisKeys.getAgentDeviceCountById(agentId)); - + // 清理redis缓存、清除智能体设备数量缓存 + redisUtils.delete(List.of(cacheDeviceKey, deviceKey, RedisKeys.getAgentDeviceCountById(agentId))); return true; } + /** + * 获取设备在线数据 + */ @Override - public DeviceReportRespDTO checkDeviceActive(String macAddress, String clientId, - DeviceReportReqDTO deviceReport) { + public String getDeviceOnlineData(String agentId) { + // 从系统参数中获取MQTT网关地址 + String mqttGatewayUrl = sysParamsService.getValue("server.mqtt_manager_api", true); + if (StringUtils.isBlank(mqttGatewayUrl) || "null".equals(mqttGatewayUrl)) { + return ""; + } + // 构建完整的URL + String url = StrUtil.format("http://{}/api/devices/status", mqttGatewayUrl); + + // 获取当前用户的设备列表 + UserDetail user = SecurityUser.getUser(); + List devices = getUserDevices(user.getId(), agentId); + + // 构建deviceIds数组 + Set deviceIds = devices.stream().map(o -> { + String macAddress = Optional.ofNullable(o.getMacAddress()).orElse("unknown").replace(":", "_"); + String groupId = Optional.ofNullable(o.getBoard()).orElse("GID_default").replace(":", "_"); + return StrUtil.format("{}@@@{}@@@{}", groupId, macAddress, macAddress); + }).collect(Collectors.toSet()); + + // 构建请求入参 + Map> params = MapUtil + .builder(new HashMap>()) + .put("clientIds", deviceIds).build(); + + if (ToolUtil.isNotEmpty(deviceIds)) { + // 发送请求 + String resultMessage = HttpRequest.post(url) + .header(Header.CONTENT_TYPE, ContentType.JSON.getValue()) + .header(Header.AUTHORIZATION, "Bearer " + generateBearerToken()) + .body(JSONUtil.toJsonStr(params)) + .timeout(10000) // 超时,毫秒 + .execute().body(); + return resultMessage; + } + // 返回响应 + return ""; + } + + @Override + public DeviceReportRespDTO checkDeviceActive(String macAddress, String clientId, DeviceReportReqDTO deviceReport) { DeviceReportRespDTO response = new DeviceReportRespDTO(); response.setServer_time(buildServerTime()); @@ -356,8 +406,7 @@ public class DeviceServiceImpl extends BaseServiceImpl private String getDeviceCacheKey(String deviceId) { String safeDeviceId = deviceId.replace(":", "_").toLowerCase(); - String dataKey = String.format("ota:activation:data:%s", safeDeviceId); - return dataKey; + return RedisKeys.getOtaDeviceActivationInfo(safeDeviceId); } public DeviceReportRespDTO.Activation buildActivation(String deviceId, DeviceReportReqDTO deviceReport) { @@ -396,7 +445,7 @@ public class DeviceServiceImpl extends BaseServiceImpl redisUtils.set(dataKey, dataMap); // 写入反查激活码 key - String codeKey = "ota:activation:code:" + newCode; + String codeKey = RedisKeys.getOtaActivationCode(newCode); redisUtils.set(codeKey, deviceId); } return code; @@ -606,4 +655,176 @@ public class DeviceServiceImpl extends BaseServiceImpl return mqtt; } + + /** + * 生成BearerToken + */ + private String generateBearerToken() { + try { + String dateStr = DateUtil.format(new Date(), DatePattern.NORM_DATE_PATTERN); + String signatureKey = sysParamsService.getValue(Constant.SERVER_MQTT_SECRET, false); + if (ToolUtil.isEmpty(signatureKey)) { + return null; + } + return DigestUtil.sha256Hex(dateStr + signatureKey); + } catch (Exception e) { + return null; + } + } + + @Override + public Object getDeviceTools(String deviceId) { + // 从系统参数中获取MQTT网关地址 + String mqttGatewayUrl = sysParamsService.getValue("server.mqtt_manager_api", true); + if (StringUtils.isBlank(mqttGatewayUrl) || "null".equals(mqttGatewayUrl)) { + return null; + } + + // 获取设备信息 + DeviceEntity device = baseDao.selectById(deviceId); + if (device == null) { + return null; + } + + // 检查设备是否属于当前用户 + UserDetail user = SecurityUser.getUser(); + if (!device.getUserId().equals(user.getId())) { + return null; + } + + // 构建clientId + String macAddress = Optional.ofNullable(device.getMacAddress()).orElse("unknown").replace(":", "_"); + String groupId = Optional.ofNullable(device.getBoard()).orElse("GID_default").replace(":", "_"); + String clientId = StrUtil.format("{}@@@{}@@@{}", groupId, macAddress, macAddress); + + // 构建完整的URL + String url = StrUtil.format("http://{}/api/commands/{}", mqttGatewayUrl, clientId); + + // 构建请求体 + Map payload = MapUtil + .builder(new HashMap()) + .put("jsonrpc", "2.0") + .put("id", 2) + .put("method", "tools/list") + .put("params", MapUtil.builder(new HashMap()) + .put("withUserTools", true) + .build()) + .build(); + + Map requestBody = MapUtil + .builder(new HashMap()) + .put("type", "mcp") + .put("payload", payload) + .build(); + + // 发送请求 + String resultMessage = HttpRequest.post(url) + .header(Header.CONTENT_TYPE, ContentType.JSON.getValue()) + .header(Header.AUTHORIZATION, "Bearer " + generateBearerToken()) + .body(JSONUtil.toJsonStr(requestBody)) + .timeout(10000) // 超时,毫秒 + .execute().body(); + + // 解析响应 + if (StringUtils.isNotBlank(resultMessage)) { + cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(resultMessage); + if (jsonObject.getBool("success", false)) { + return jsonObject.get("data"); + } + } + + return null; + } + + @Override + public Object callDeviceTool(String deviceId, String toolName, Map arguments) { + // 从系统参数中获取MQTT网关地址 + String mqttGatewayUrl = sysParamsService.getValue("server.mqtt_manager_api", true); + if (StringUtils.isBlank(mqttGatewayUrl) || "null".equals(mqttGatewayUrl)) { + return null; + } + + // 获取设备信息 + DeviceEntity device = baseDao.selectById(deviceId); + if (device == null) { + return null; + } + + // 检查设备是否属于当前用户 + UserDetail user = SecurityUser.getUser(); + if (!device.getUserId().equals(user.getId())) { + return null; + } + + // 构建clientId + String macAddress = Optional.ofNullable(device.getMacAddress()).orElse("unknown").replace(":", "_"); + String groupId = Optional.ofNullable(device.getBoard()).orElse("GID_default").replace(":", "_"); + String clientId = StrUtil.format("{}@@@{}@@@{}", groupId, macAddress, macAddress); + + // 构建完整的URL + String url = StrUtil.format("http://{}/api/commands/{}", mqttGatewayUrl, clientId); + + // 构建请求体 + Map params = MapUtil + .builder(new HashMap()) + .put("name", toolName) + .put("arguments", arguments) + .build(); + + Map payload = MapUtil + .builder(new HashMap()) + .put("jsonrpc", "2.0") + .put("id", 2) + .put("method", "tools/call") + .put("params", params) + .build(); + + Map requestBody = MapUtil + .builder(new HashMap()) + .put("type", "mcp") + .put("payload", payload) + .build(); + + // 发送请求 + String resultMessage = HttpRequest.post(url) + .header(Header.CONTENT_TYPE, ContentType.JSON.getValue()) + .header(Header.AUTHORIZATION, "Bearer " + generateBearerToken()) + .body(JSONUtil.toJsonStr(requestBody)) + .timeout(10000) // 超时,毫秒 + .execute().body(); + + // 解析响应 + if (StringUtils.isNotBlank(resultMessage)) { + cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(resultMessage); + if (jsonObject.getBool("success", false)) { + cn.hutool.json.JSONObject data = jsonObject.getJSONObject("data"); + if (data != null) { + cn.hutool.json.JSONArray content = data.getJSONArray("content"); + if (content != null && content.size() > 0) { + cn.hutool.json.JSONObject firstContent = content.getJSONObject(0); + if (firstContent != null && "text".equals(firstContent.getStr("type"))) { + String text = firstContent.getStr("text"); + if (StringUtils.isNotBlank(text)) { + String trimmedText = text.trim(); + if (trimmedText.startsWith("{") || trimmedText.startsWith("[")) { + try { + return JSONUtil.parseObj(trimmedText); + } catch (Exception e) { + return trimmedText; + } + } else if ("true".equals(trimmedText)) { + return true; + } else if ("false".equals(trimmedText)) { + return false; + } else { + return trimmedText; + } + } + } + } + } + } + } + return null; + } } diff --git a/main/manager-api/src/main/java/xiaozhi/modules/knowledge/controller/KnowledgeBaseController.java b/main/manager-api/src/main/java/xiaozhi/modules/knowledge/controller/KnowledgeBaseController.java index cddfead5..d5e03cd7 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/knowledge/controller/KnowledgeBaseController.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/knowledge/controller/KnowledgeBaseController.java @@ -1,7 +1,6 @@ package xiaozhi.modules.knowledge.controller; -import java.util.List; -import java.util.Map; +import java.util.*; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -24,8 +23,10 @@ import xiaozhi.common.exception.ErrorCode; import xiaozhi.common.exception.RenException; import xiaozhi.common.page.PageData; import xiaozhi.common.utils.Result; +import xiaozhi.common.utils.ToolUtil; import xiaozhi.modules.knowledge.dto.KnowledgeBaseDTO; import xiaozhi.modules.knowledge.service.KnowledgeBaseService; +import xiaozhi.modules.model.entity.ModelConfigEntity; import xiaozhi.modules.security.user.SecurityUser; @AllArgsConstructor @@ -131,20 +132,17 @@ public class KnowledgeBaseController { // 获取当前登录用户ID Long currentUserId = SecurityUser.getUserId(); - String[] idArray = ids.split(","); - for (String datasetId : idArray) { - if (StringUtils.isNotBlank(datasetId)) { - // 先获取现有知识库信息以检查权限 - KnowledgeBaseDTO existingKnowledgeBase = knowledgeBaseService.getByDatasetId(datasetId.trim()); - + List idList = Arrays.asList(ids.split(",")); + List knowledgeBaseDTOs = Optional.ofNullable(knowledgeBaseService.getByDatasetIdList(idList)).orElseGet(ArrayList::new); + if (ToolUtil.isNotEmpty(knowledgeBaseDTOs)) { + knowledgeBaseDTOs.forEach(item->{ // 检查权限:用户只能删除自己创建的知识库 - if (existingKnowledgeBase.getCreator() == null - || !existingKnowledgeBase.getCreator().equals(currentUserId)) { + if (item.getCreator() == null || !item.getCreator().equals(currentUserId)) { throw new RenException(ErrorCode.NO_PERMISSION); } - - knowledgeBaseService.deleteByDatasetId(datasetId.trim()); - } + //删除 + knowledgeBaseService.deleteByDatasetId(item.getDatasetId()); + }); } return new Result<>(); } @@ -152,8 +150,8 @@ public class KnowledgeBaseController { @GetMapping("/rag-models") @Operation(summary = "获取RAG模型列表") @RequiresPermissions("sys:role:normal") - public Result>> getRAGModels() { - List> result = knowledgeBaseService.getRAGModels(); - return new Result>>().ok(result); + public Result> getRAGModels() { + List result = knowledgeBaseService.getRAGModels(); + return new Result>().ok(result); } } \ No newline at end of file diff --git a/main/manager-api/src/main/java/xiaozhi/modules/knowledge/controller/KnowledgeFilesController.java b/main/manager-api/src/main/java/xiaozhi/modules/knowledge/controller/KnowledgeFilesController.java index fbc62309..515f4ec0 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/knowledge/controller/KnowledgeFilesController.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/knowledge/controller/KnowledgeFilesController.java @@ -63,16 +63,11 @@ public class KnowledgeFilesController { // 验证知识库权限 validateKnowledgeBasePermission(datasetId); - // 如果指定了状态参数,使用状态查询接口 - if (status != null) { - PageData pageData = knowledgeFilesService.getPageListByStatus(datasetId, status, page, page_size); - return new Result>().ok(pageData); - } - - // 否则使用通用查询接口 + //组装参数 KnowledgeFilesDTO knowledgeFilesDTO = new KnowledgeFilesDTO(); knowledgeFilesDTO.setDatasetId(datasetId); knowledgeFilesDTO.setName(name); + knowledgeFilesDTO.setStatus(status); PageData pageData = knowledgeFilesService.getPageList(knowledgeFilesDTO, page, page_size); return new Result>().ok(pageData); } @@ -87,8 +82,11 @@ public class KnowledgeFilesController { @RequestParam(required = false, defaultValue = "10") Integer page_size) { // 验证知识库权限 validateKnowledgeBasePermission(datasetId); - - PageData pageData = knowledgeFilesService.getPageListByStatus(datasetId, status, page, page_size); + //组装参数 + KnowledgeFilesDTO knowledgeFilesDTO = new KnowledgeFilesDTO(); + knowledgeFilesDTO.setDatasetId(datasetId); + knowledgeFilesDTO.setStatus(status); + PageData pageData = knowledgeFilesService.getPageList(knowledgeFilesDTO, page, page_size); return new Result>().ok(pageData); } @@ -159,8 +157,7 @@ public class KnowledgeFilesController { // 验证知识库权限 validateKnowledgeBasePermission(datasetId); - Map result = knowledgeFilesService.listChunks(datasetId, documentId, keywords, page, page_size, - id); + Map result = knowledgeFilesService.listChunks(datasetId, documentId, keywords, page, page_size, id); return new Result>().ok(result); } diff --git a/main/manager-api/src/main/java/xiaozhi/modules/knowledge/service/KnowledgeBaseService.java b/main/manager-api/src/main/java/xiaozhi/modules/knowledge/service/KnowledgeBaseService.java index b875e87d..12577202 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/knowledge/service/KnowledgeBaseService.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/knowledge/service/KnowledgeBaseService.java @@ -7,6 +7,7 @@ import xiaozhi.common.page.PageData; import xiaozhi.common.service.BaseService; import xiaozhi.modules.knowledge.dto.KnowledgeBaseDTO; import xiaozhi.modules.knowledge.entity.KnowledgeBaseEntity; +import xiaozhi.modules.model.entity.ModelConfigEntity; /** * 知识库知识库服务接口 @@ -55,6 +56,14 @@ public interface KnowledgeBaseService extends BaseService { */ KnowledgeBaseDTO getByDatasetId(String datasetId); + /** + * 根据知识库ID集合查询知识库 + * + * @param datasetIdList 知识库ID集合 + * @return 知识库详情 + */ + List getByDatasetIdList(List datasetIdList); + /** * 根据知识库ID删除知识库 * @@ -83,5 +92,5 @@ public interface KnowledgeBaseService extends BaseService { * * @return RAG模型列表 */ - List> getRAGModels(); + List getRAGModels(); } \ No newline at end of file diff --git a/main/manager-api/src/main/java/xiaozhi/modules/knowledge/service/KnowledgeFilesService.java b/main/manager-api/src/main/java/xiaozhi/modules/knowledge/service/KnowledgeFilesService.java index fe9c16b2..3c871738 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/knowledge/service/KnowledgeFilesService.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/knowledge/service/KnowledgeFilesService.java @@ -47,17 +47,6 @@ public interface KnowledgeFilesService { Map metaFields, String chunkMethod, Map parserConfig); - /** - * 根据状态分页查询文档列表 - * - * @param datasetId 知识库ID - * @param status 文档解析状态(0-未开始,1-进行中,2-已取消,3-已完成,4-失败) - * @param page 页码 - * @param limit 每页数量 - * @return 分页数据 - */ - PageData getPageListByStatus(String datasetId, Integer status, Integer page, Integer limit); - /** * 根据文档ID和知识库ID删除文档 * diff --git a/main/manager-api/src/main/java/xiaozhi/modules/knowledge/service/impl/KnowledgeBaseServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/knowledge/service/impl/KnowledgeBaseServiceImpl.java index e3addd04..31bf99ec 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/knowledge/service/impl/KnowledgeBaseServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/knowledge/service/impl/KnowledgeBaseServiceImpl.java @@ -1,21 +1,12 @@ package xiaozhi.modules.knowledge.service.impl; -import java.io.IOException; import java.io.Serializable; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; - import org.apache.commons.lang3.StringUtils; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; - import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -32,6 +23,7 @@ import xiaozhi.common.redis.RedisUtils; import xiaozhi.common.service.impl.BaseServiceImpl; import xiaozhi.common.utils.ConvertUtils; import xiaozhi.common.utils.MessageUtils; +import xiaozhi.common.utils.ToolUtil; import xiaozhi.modules.knowledge.dao.KnowledgeBaseDao; import xiaozhi.modules.knowledge.dto.KnowledgeBaseDTO; import xiaozhi.modules.knowledge.entity.KnowledgeBaseEntity; @@ -53,8 +45,6 @@ public class KnowledgeBaseServiceImpl extends BaseServiceImpl getByDatasetIdList(List datasetIdList) { + //判断参数 + if (ToolUtil.isEmpty(datasetIdList)) { + throw new RenException(ErrorCode.PARAMS_GET_ERROR); + } + //批量查询 + List entityList = knowledgeBaseDao.selectList( + new QueryWrapper().in("dataset_id", datasetIdList)); + if (ToolUtil.isEmpty(entityList)) { + throw new RenException(ErrorCode.Knowledge_Base_RECORD_NOT_EXISTS); + } + return ConvertUtils.sourceToTarget(entityList, KnowledgeBaseDTO.class); + } + @Override public void deleteByDatasetId(String datasetId) { if (StringUtils.isBlank(datasetId)) { @@ -380,24 +390,17 @@ public class KnowledgeBaseServiceImpl extends BaseServiceImpl> getRAGModels() { + public List getRAGModels() { // 查询RAG类型的模型配置 - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("model_type", Constant.RAG_CONFIG_TYPE) + QueryWrapper queryWrapper = new QueryWrapper() + .select("id", "model_name") + .eq("model_type", Constant.RAG_CONFIG_TYPE) .eq("is_enabled", 1) .orderByDesc("is_default") .orderByDesc("create_date"); List modelConfigs = modelConfigDao.selectList(queryWrapper); - - List> modelList = new ArrayList<>(); - for (ModelConfigEntity modelConfig : modelConfigs) { - Map modelInfo = new HashMap<>(); - modelInfo.put("id", modelConfig.getId()); - modelInfo.put("modelName", modelConfig.getModelName()); - modelList.add(modelInfo); - } - return modelList; + return modelConfigs; } /** diff --git a/main/manager-api/src/main/java/xiaozhi/modules/knowledge/service/impl/KnowledgeFilesServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/knowledge/service/impl/KnowledgeFilesServiceImpl.java index 0ce841cf..924c2318 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/knowledge/service/impl/KnowledgeFilesServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/knowledge/service/impl/KnowledgeFilesServiceImpl.java @@ -3,24 +3,10 @@ package xiaozhi.modules.knowledge.service.impl; import java.io.IOException; import java.io.InputStream; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - +import java.util.*; import org.apache.commons.lang3.StringUtils; import org.springframework.core.io.AbstractResource; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; -import org.springframework.util.LinkedMultiValueMap; -import org.springframework.util.MultiValueMap; import org.springframework.web.client.RestTemplate; import org.springframework.web.multipart.MultipartFile; @@ -31,6 +17,7 @@ import lombok.extern.slf4j.Slf4j; import xiaozhi.common.exception.ErrorCode; import xiaozhi.common.exception.RenException; import xiaozhi.common.page.PageData; +import xiaozhi.common.utils.ToolUtil; import xiaozhi.modules.knowledge.dto.KnowledgeFilesDTO; import xiaozhi.modules.knowledge.rag.KnowledgeBaseAdapter; import xiaozhi.modules.knowledge.rag.KnowledgeBaseAdapterFactory; @@ -43,8 +30,6 @@ import xiaozhi.modules.knowledge.service.KnowledgeFilesService; public class KnowledgeFilesServiceImpl implements KnowledgeFilesService { private final KnowledgeBaseService knowledgeBaseService; - private RestTemplate restTemplate = new RestTemplate(); - private ObjectMapper objectMapper = new ObjectMapper(); @Override public Map getRAGConfig(String ragModelId) { @@ -55,32 +40,29 @@ public class KnowledgeFilesServiceImpl implements KnowledgeFilesService { public PageData getPageList(KnowledgeFilesDTO knowledgeFilesDTO, Integer page, Integer limit) { try { log.info("=== 开始获取文档列表 ==="); - log.info("查询条件: datasetId={}, name={}, status={}, page={}, limit={}", - knowledgeFilesDTO != null ? knowledgeFilesDTO.getDatasetId() : null, - knowledgeFilesDTO != null ? knowledgeFilesDTO.getName() : null, - knowledgeFilesDTO != null ? knowledgeFilesDTO.getStatus() : null, - page, limit); + log.info("查询条件: datasetId={}, name={}, status={}, page={}, limit={}", knowledgeFilesDTO.getDatasetId(), knowledgeFilesDTO.getName(), knowledgeFilesDTO.getStatus(), page, limit); // 获取数据集ID - String datasetId = knowledgeFilesDTO != null ? knowledgeFilesDTO.getDatasetId() : null; - if (StringUtils.isBlank(datasetId)) { + String datasetId = knowledgeFilesDTO.getDatasetId(); + if (ToolUtil.isEmpty(datasetId)) { throw new RenException(ErrorCode.RAG_DATASET_ID_NOT_NULL); } // 获取RAG配置 Map ragConfig = knowledgeBaseService.getRAGConfigByDatasetId(datasetId); - // 提取适配器类型 String adapterType = extractAdapterType(ragConfig); - // 使用适配器工厂获取适配器实例 KnowledgeBaseAdapter adapter = KnowledgeBaseAdapterFactory.getAdapter(adapterType, ragConfig); // 构建查询参数 Map queryParams = new HashMap<>(); - if (knowledgeFilesDTO != null && StringUtils.isNotBlank(knowledgeFilesDTO.getName())) { + if (ToolUtil.isNotEmpty(knowledgeFilesDTO.getName())) { queryParams.put("keywords", knowledgeFilesDTO.getName()); } + if (ToolUtil.isNotEmpty(knowledgeFilesDTO.getStatus())) { + queryParams.put("status", knowledgeFilesDTO.getStatus()); + } if (page > 0) { queryParams.put("page", page); } @@ -90,10 +72,8 @@ public class KnowledgeFilesServiceImpl implements KnowledgeFilesService { // 调用适配器获取文档列表 PageData result = adapter.getDocumentList(datasetId, queryParams, page, limit); - log.info("获取文档列表成功,共{}个文档,总数: {}", result.getList().size(), result.getTotal()); return result; - } catch (Exception e) { log.error("获取文档列表失败: {}", e.getMessage(), e); if (e instanceof RenException) { @@ -424,57 +404,6 @@ public class KnowledgeFilesServiceImpl implements KnowledgeFilesService { } } - @Override - public PageData getPageListByStatus(String datasetId, Integer status, Integer page, - Integer limit) { - if (StringUtils.isBlank(datasetId)) { - throw new RenException(ErrorCode.RAG_DATASET_ID_NOT_NULL); - } - - log.info("=== 开始根据状态查询文档列表 ==="); - log.info("datasetId: {}, status: {}, page: {}, limit: {}", datasetId, status, page, limit); - - try { - // 获取RAG配置 - Map ragConfig = knowledgeBaseService.getRAGConfigByDatasetId(datasetId); - - // 提取适配器类型 - String adapterType = extractAdapterType(ragConfig); - - // 使用适配器工厂获取适配器实例 - KnowledgeBaseAdapter adapter = KnowledgeBaseAdapterFactory.getAdapter(adapterType, ragConfig); - - // 构建查询参数 - Map queryParams = new HashMap<>(); - if (page != null && page > 0) { - queryParams.put("page", page); - } - if (limit != null && limit > 0) { - queryParams.put("page_size", limit); - } - if (status != null) { - queryParams.put("status", status); - } - - // 使用适配器获取文档列表 - PageData pageData = adapter.getDocumentList(datasetId, queryParams, page, limit); - - if (pageData != null) { - log.info("根据状态查询文档列表成功,datasetId: {}, 状态: {}, 文档数量: {}", - datasetId, status, pageData.getList().size()); - return pageData; - } else { - throw new RenException(ErrorCode.Knowledge_Base_RECORD_NOT_EXISTS); - } - - } catch (Exception e) { - log.error("根据状态查询文档列表失败: {}", e.getMessage(), e); - throw new RenException(ErrorCode.RAG_API_ERROR, e.getMessage()); - } finally { - log.info("=== 根据状态查询文档列表操作结束 ==="); - } - } - @Override public KnowledgeFilesDTO uploadDocument(String datasetId, MultipartFile file, String name, Map metaFields, String chunkMethod, diff --git a/main/manager-api/src/main/java/xiaozhi/modules/model/controller/ModelController.java b/main/manager-api/src/main/java/xiaozhi/modules/model/controller/ModelController.java index d4984530..2119f3c9 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/model/controller/ModelController.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/model/controller/ModelController.java @@ -129,6 +129,10 @@ public class ModelController { if (entity == null) { return new Result().error("模型配置不存在"); } + // 不能关闭默认模型 + if (status == 0 && entity.getIsDefault() > 0) { + return new Result().error("默认模型配置不允许关闭"); + } // 不更新ConfigJson字段 entity.setConfigJson(null); entity.setIsEnabled(status); diff --git a/main/manager-api/src/main/java/xiaozhi/modules/model/service/impl/ModelConfigServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/model/service/impl/ModelConfigServiceImpl.java index 2a291cf9..24bdb751 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/model/service/impl/ModelConfigServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/model/service/impl/ModelConfigServiceImpl.java @@ -56,7 +56,7 @@ public class ModelConfigServiceImpl extends BaseServiceImpl() .eq("model_type", modelType) .eq("is_enabled", 1) - .like(StringUtils.isNotBlank(modelName), "model_name", "%" + modelName + "%") + .like(StringUtils.isNotBlank(modelName), "model_name", modelName) .select("id", "model_name")); return ConvertUtils.sourceToTarget(entities, ModelBasicInfoDTO.class); } @@ -67,14 +67,14 @@ public class ModelConfigServiceImpl extends BaseServiceImpl() .eq("model_type", "llm") .eq("is_enabled", 1) - .like(StringUtils.isNotBlank(modelName), "model_name", "%" + modelName + "%") + .like(StringUtils.isNotBlank(modelName), "model_name", modelName) .select("id", "model_name", "config_json")); return entities.stream().map(item -> { LlmModelBasicInfoDTO dto = new LlmModelBasicInfoDTO(); dto.setId(item.getId()); dto.setModelName(item.getModelName()); - String type = item.getConfigJson().get("type").toString(); + String type = item.getConfigJson().getOrDefault("type", "").toString(); dto.setType(type); return dto; }).toList(); @@ -91,14 +91,13 @@ public class ModelConfigServiceImpl extends BaseServiceImpl pageInfo = new Page<>(curPage, pageSize); // 添加排序规则:先按is_enabled降序,再按sort升序 - pageInfo.addOrder(OrderItem.desc("is_enabled")); - pageInfo.addOrder(OrderItem.asc("sort")); + pageInfo.addOrder(OrderItem.desc("is_enabled"), OrderItem.asc("sort")); IPage modelConfigEntityIPage = modelConfigDao.selectPage( pageInfo, new QueryWrapper() .eq("model_type", modelType) - .like(StringUtils.isNotBlank(modelName), "model_name", "%" + modelName + "%")); + .like(StringUtils.isNotBlank(modelName), "model_name", modelName)); return getPageData(modelConfigEntityIPage, ModelConfigDTO.class); } @@ -346,6 +345,7 @@ public class ModelConfigServiceImpl extends BaseServiceImpl intentConfigs = modelConfigDao.selectList( new QueryWrapper() .eq("model_type", "Intent") - .like("config_json", "%" + modelId + "%")); + .like("config_json", modelId)); if (!intentConfigs.isEmpty()) { throw new RenException(ErrorCode.LLM_REFERENCED_BY_INTENT); } diff --git a/main/manager-api/src/main/java/xiaozhi/modules/model/service/impl/ModelProviderServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/model/service/impl/ModelProviderServiceImpl.java index 8b8f8672..049387c3 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/model/service/impl/ModelProviderServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/model/service/impl/ModelProviderServiceImpl.java @@ -124,12 +124,6 @@ public class ModelProviderServiceImpl extends BaseServiceImpl { * @return 字典类型编码 */ String getTypeByTypeId(Long dictTypeId); + + /** + * 根据字典数据ID集合获取字典类型编码集合 + */ + List getDictTypesByIdList(@Param("dictDataIdList") List dictDataIdList); } diff --git a/main/manager-api/src/main/java/xiaozhi/modules/sys/service/impl/SysDictDataServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/sys/service/impl/SysDictDataServiceImpl.java index a2adb150..0449061b 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/sys/service/impl/SysDictDataServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/sys/service/impl/SysDictDataServiceImpl.java @@ -1,9 +1,6 @@ package xiaozhi.modules.sys.service.impl; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -23,6 +20,7 @@ import xiaozhi.common.redis.RedisKeys; import xiaozhi.common.redis.RedisUtils; import xiaozhi.common.service.impl.BaseServiceImpl; import xiaozhi.common.utils.ConvertUtils; +import xiaozhi.common.utils.ToolUtil; import xiaozhi.modules.sys.dao.SysDictDataDao; import xiaozhi.modules.sys.dao.SysUserDao; import xiaozhi.modules.sys.dto.SysDictDataDTO; @@ -104,13 +102,19 @@ public class SysDictDataServiceImpl extends BaseServiceImpl idList = Arrays.asList(ids); + if (ToolUtil.isNotEmpty(idList)) { + //批量删除redis字典 + List redisKeyList = new ArrayList<>(); + //批量获取字典类型 + List dictTypeList = Optional.ofNullable(baseDao.getDictTypesByIdList(idList)).orElseGet(ArrayList::new); + dictTypeList.forEach(dictType -> redisKeyList.add(RedisKeys.getDictDataByTypeKey(dictType))); + if (ToolUtil.isNotEmpty(redisKeyList)) { + //清除缓存 + redisUtils.delete(redisKeyList); + } + //批量删除字典数据 + deleteBatchIds(Arrays.asList(ids)); } } diff --git a/main/manager-api/src/main/java/xiaozhi/modules/timbre/service/impl/TimbreServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/timbre/service/impl/TimbreServiceImpl.java index 9d6ca5c4..a1f018a8 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/timbre/service/impl/TimbreServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/timbre/service/impl/TimbreServiceImpl.java @@ -1,10 +1,6 @@ package xiaozhi.modules.timbre.service.impl; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import org.apache.commons.lang3.StringUtils; @@ -128,10 +124,7 @@ public class TimbreServiceImpl extends BaseServiceImpl if (StringUtils.isNotBlank(voiceName)) { queryWrapper.like("name", voiceName); } - List timbreEntities = timbreDao.selectList(queryWrapper); - if (timbreEntities == null) { - timbreEntities = new ArrayList<>(); - } + List timbreEntities = Optional.ofNullable(timbreDao.selectList(queryWrapper)).orElseGet(ArrayList::new); List voiceDTOs = timbreEntities.stream() .map(entity -> { VoiceDTO dto = new VoiceDTO(entity.getId(), entity.getName()); diff --git a/main/manager-api/src/main/java/xiaozhi/modules/voiceclone/controller/VoiceCloneController.java b/main/manager-api/src/main/java/xiaozhi/modules/voiceclone/controller/VoiceCloneController.java index a85dd34a..21370a46 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/voiceclone/controller/VoiceCloneController.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/voiceclone/controller/VoiceCloneController.java @@ -83,6 +83,13 @@ public class VoiceCloneController { return new Result().error(ErrorCode.VOICE_CLONE_NOT_AUDIO_FILE); } + // 加强验证文件扩展名 + String originalFilename = voiceFile.getOriginalFilename(); + String extension = originalFilename.substring(originalFilename.lastIndexOf(".")).toLowerCase(); + if (!extension.equals(".mp3") && !extension.equals(".wav")) { + return new Result().error("只允许上传.mp3和.wav格式的文件"); + } + // 验证文件大小 (最大10MB) if (voiceFile.getSize() > 10 * 1024 * 1024) { return new Result().error(ErrorCode.VOICE_CLONE_AUDIO_TOO_LARGE); diff --git a/main/manager-api/src/main/java/xiaozhi/modules/voiceclone/service/impl/VoiceCloneServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/voiceclone/service/impl/VoiceCloneServiceImpl.java index 3550c48b..5185b8e3 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/voiceclone/service/impl/VoiceCloneServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/voiceclone/service/impl/VoiceCloneServiceImpl.java @@ -4,12 +4,8 @@ import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Base64; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -30,8 +26,11 @@ import xiaozhi.common.page.PageData; import xiaozhi.common.service.impl.BaseServiceImpl; import xiaozhi.common.utils.ConvertUtils; import xiaozhi.common.utils.DateUtils; +import xiaozhi.common.utils.ToolUtil; import xiaozhi.modules.model.entity.ModelConfigEntity; import xiaozhi.modules.model.service.ModelConfigService; +import xiaozhi.modules.sys.dao.SysUserDao; +import xiaozhi.modules.sys.entity.SysUserEntity; import xiaozhi.modules.sys.service.SysUserService; import xiaozhi.modules.voiceclone.dao.VoiceCloneDao; import xiaozhi.modules.voiceclone.dto.VoiceCloneDTO; @@ -47,6 +46,7 @@ public class VoiceCloneServiceImpl extends BaseServiceImpl batchInsertList = new ArrayList<>(); // 遍历选择的音色ID,为每个音色ID创建一条记录 int index = 0; - String namePrefix = DateUtils.format(new java.util.Date(), "MMddHHmm"); + String namePrefix = DateUtils.format(new Date(), "MMddHHmm"); for (String voiceId : dto.getVoiceIds()) { index++; VoiceCloneEntity entity = new VoiceCloneEntity(); @@ -115,8 +117,10 @@ public class VoiceCloneServiceImpl extends BaseServiceImpl dtoList = new ArrayList<>(entityList.size()); + // 获取用户名称ID集合 + Set userIdList = entityList.stream().map(VoiceCloneEntity::getUserId).collect(Collectors.toSet()); + List userList = sysUserDao.selectList(new QueryWrapper().in("id", userIdList)); + Map userMap = userList.stream().collect(Collectors.toMap(SysUserEntity::getId, SysUserEntity::getUsername)); + // 转换每个实体为DTO for (VoiceCloneEntity entity : entityList) { VoiceCloneResponseDTO dto = ConvertUtils.sourceToTarget(entity, VoiceCloneResponseDTO.class); @@ -198,7 +207,7 @@ public class VoiceCloneServiceImpl extends BaseServiceImpl + + \ No newline at end of file diff --git a/main/manager-mobile/src/pages/settings/index.vue b/main/manager-mobile/src/pages/settings/index.vue index ae4f71ef..02436948 100644 --- a/main/manager-mobile/src/pages/settings/index.vue +++ b/main/manager-mobile/src/pages/settings/index.vue @@ -235,7 +235,7 @@ function showAbout() { title: t('settings.aboutApp', { appName: import.meta.env.VITE_APP_TITLE }), content: t('settings.aboutContent', { appName: import.meta.env.VITE_APP_TITLE, - version: '0.8.11' + version: '0.9.1' }), showCancel: false, confirmText: t('common.confirm'), diff --git a/main/manager-web/public/generator/README.md b/main/manager-web/public/generator/README.md new file mode 100644 index 00000000..c4bc72a1 --- /dev/null +++ b/main/manager-web/public/generator/README.md @@ -0,0 +1,89 @@ +# 语音盒子主题自定义 + +## 项目概述 + +本目录包含从 [xiaozhi-assets-generator](https://github.com/xinnan-tech/xiaozhi-assets-generator) 项目打包的静态文件,用于语音盒子主题的在线自定义与生成。用户可以通过此工具配置唤醒词、字体、表情和聊天背景等元素,并导出为 `assets.bin` 文件。 + +## 目录结构 + +``` +generator/ +├── assets/ # 构建生成的资源文件 +│ ├── ft_render-ByO_jG18.js +│ ├── index-CYcyz9xb.js +│ └── index-NXxBVrod.css +├── static/ # 静态资源目录 +│ ├── charsets/ # 字符集文件 +│ │ ├── deepseek.txt +│ │ ├── gb2312.txt +│ │ ├── latin1.txt +│ │ └── qwen18409.txt +│ ├── fonts/ # 字体资源 +│ │ ├── font_noto_qwen_14_1.bin +│ │ ├── font_noto_qwen_16_4.bin +│ │ ├── font_noto_qwen_20_4.bin +│ │ ├── font_noto_qwen_30_4.bin +│ │ ├── font_puhui_deepseek_14_1.bin +│ │ ├── font_puhui_deepseek_16_4.bin +│ │ ├── font_puhui_deepseek_20_4.bin +│ │ ├── font_puhui_deepseek_30_4.bin +│ │ ├── noto_qwen.ttf +│ │ └── puhui_deepseek.ttf +│ ├── multinet_model/ # 自定义唤醒词模型 +│ │ ├── fst/ +│ │ ├── mn6_cn/ +│ │ ├── mn6_en/ +│ │ ├── mn7_cn/ +│ │ └── mn7_en/ +│ ├── twemoji32/ # 32x32 表情图片 +│ ├── twemoji64/ # 64x64 表情图片 +│ ├── wakenet_model/ # 预设唤醒词模型 +│ └── README.md # 静态资源说明 +├── index.html # 主页面 +└── README.md # 项目说明文档 +``` + +## 主要功能 + +### 1. 芯片与屏幕配置 +- 支持多种芯片型号:ESP32-S3、ESP32-C3、ESP32-P4、ESP32-C6 +- 灵活的屏幕分辨率设置 +- 支持 RGB565 颜色格式 + +### 2. 唤醒词配置 +- **预设唤醒词**:基于不同芯片支持的 WakeNet 模型 +- **自定义唤醒词**:支持中文和英文命令词,可配置阈值和超时时间 + +### 3. 字体配置 +- 预设多种字体:阿里巴巴普惠体、Noto Qwen 等 +- 支持上传自定义 TTF/WOFF 字体文件 +- 可配置字号和颜色深度(bpp) + +### 4. 表情集合 +- 提供 21 种基础表情的预设方案(32x32 和 64x64 两种尺寸) +- 支持自定义表情上传 + +### 5. 聊天背景 +- 支持浅色/深色模式切换 +- 可配置纯色背景或图片背景 +- 自动适配屏幕分辨率 + +## 使用方法 + +1. 以服务方式启动 `index.html` 文件 +2. 选择芯片型号和屏幕配置 +3. 通过不同标签页配置主题元素 +4. 点击生成按钮查看资源清单 +5. 确认后生成并下载 `assets.bin` 文件 + +## 技术说明 + +- 构建后的静态资源位于 `assets/` 目录 +- 原始模型和资源文件位于 `static/` 目录 +- 支持离线使用,无需额外依赖 + +## 注意事项 + +- 本工具为离线使用设计,所有资源已包含在目录中 +- 生成的 `assets.bin` 文件需要与语音盒子硬件配合使用 +- 自定义资源需注意文件格式和大小限制,以确保兼容 \ No newline at end of file diff --git a/main/manager-web/public/generator/assets/ft_render-ByO_jG18.js b/main/manager-web/public/generator/assets/ft_render-ByO_jG18.js new file mode 100644 index 00000000..f803bf89 --- /dev/null +++ b/main/manager-web/public/generator/assets/ft_render-ByO_jG18.js @@ -0,0 +1,5 @@ +var Module=(()=>{var _scriptDir=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(_scriptDir=_scriptDir||__filename),function(Module){Module=Module||{};var Module=typeof Module<"u"?Module:{},objAssign=Object.assign,readyPromiseResolve,readyPromiseReject;Module.ready=new Promise(function(A,I){readyPromiseResolve=A,readyPromiseReject=I});var moduleOverrides=objAssign({},Module),thisProgram="./this.program",ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",scriptDirectory="";function locateFile(A){return Module.locateFile?Module.locateFile(A,scriptDirectory):scriptDirectory+A}var read_,readAsync,readBinary,fs,nodePath,requireNodeFS;ENVIRONMENT_IS_NODE?(ENVIRONMENT_IS_WORKER?scriptDirectory=require("path").dirname(scriptDirectory)+"/":scriptDirectory=__dirname+"/",requireNodeFS=function(){nodePath||(fs=require("fs"),nodePath=require("path"))},read_=function(I,g){var C=tryParseAsDataURI(I);return C?g?C:C.toString():(requireNodeFS(),I=nodePath.normalize(I),fs.readFileSync(I,g?null:"utf8"))},readBinary=function(I){var g=read_(I,!0);return g.buffer||(g=new Uint8Array(g)),g},readAsync=function(I,g,C){var Q=tryParseAsDataURI(I);Q&&g(Q),requireNodeFS(),I=nodePath.normalize(I),fs.readFile(I,function(E,B){E?C(E):g(B.buffer)})},process.argv.length>1&&(thisProgram=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),Module.inspect=function(){return"[Emscripten Module object]"}):(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&(ENVIRONMENT_IS_WORKER?scriptDirectory=self.location.href:typeof document<"u"&&document.currentScript&&(scriptDirectory=document.currentScript.src),_scriptDir&&(scriptDirectory=_scriptDir),scriptDirectory.indexOf("blob:")!==0?scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1):scriptDirectory="",read_=function(A){try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.send(null),I.responseText}catch(C){var g=tryParseAsDataURI(A);if(g)return intArrayToString(g);throw C}},ENVIRONMENT_IS_WORKER&&(readBinary=function(A){try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.responseType="arraybuffer",I.send(null),new Uint8Array(I.response)}catch(C){var g=tryParseAsDataURI(A);if(g)return g;throw C}}),readAsync=function(A,I,g){var C=new XMLHttpRequest;C.open("GET",A,!0),C.responseType="arraybuffer",C.onload=function(){if(C.status==200||C.status==0&&C.response){I(C.response);return}var Q=tryParseAsDataURI(A);if(Q){I(Q.buffer);return}g()},C.onerror=g,C.send(null)}),Module.print||console.log.bind(console);var err=Module.printErr||console.warn.bind(console);objAssign(Module,moduleOverrides),moduleOverrides=null,Module.arguments&&Module.arguments,Module.thisProgram&&(thisProgram=Module.thisProgram),Module.quit&&Module.quit;var tempRet0=0,setTempRet0=function(A){tempRet0=A},getTempRet0=function(){return tempRet0},wasmBinary;Module.wasmBinary&&(wasmBinary=Module.wasmBinary),Module.noExitRuntime,typeof WebAssembly!="object"&&abort("no native wasm support detected");function getValue(A,I,g){switch(I=I||"i8",I.charAt(I.length-1)==="*"&&(I="i32"),I){case"i1":return HEAP8[A>>0];case"i8":return HEAP8[A>>0];case"i16":return HEAP16[A>>1];case"i32":return HEAP32[A>>2];case"i64":return HEAP32[A>>2];case"float":return HEAPF32[A>>2];case"double":return Number(HEAPF64[A>>3]);default:abort("invalid type for getValue: "+I)}return null}var wasmMemory,ABORT=!1;function getCFunc(A){var I=Module["_"+A];return I}function ccall(A,I,g,C,Q){var E={string:function(h){var G=0;if(h!=null&&h!==0){var s=(h.length<<2)+1;G=stackAlloc(s),stringToUTF8(h,G,s)}return G},array:function(h){var G=stackAlloc(h.length);return writeArrayToMemory(h,G),G}};function B(h){return I==="string"?UTF8ToString(h):I==="boolean"?!!h:h}var D=getCFunc(A),i=[],o=0;if(C)for(var w=0;w=C);)++Q;if(Q-I>16&&A.subarray&&UTF8Decoder)return UTF8Decoder.decode(A.subarray(I,Q));for(var E="";I>10,56320|o&1023)}}return E}function UTF8ToString(A,I){return A?UTF8ArrayToString(HEAPU8,A,I):""}function stringToUTF8Array(A,I,g,C){if(!(C>0))return 0;for(var Q=g,E=g+C-1,B=0;B=55296&&D<=57343){var i=A.charCodeAt(++B);D=65536+((D&1023)<<10)|i&1023}if(D<=127){if(g>=E)break;I[g++]=D}else if(D<=2047){if(g+1>=E)break;I[g++]=192|D>>6,I[g++]=128|D&63}else if(D<=65535){if(g+2>=E)break;I[g++]=224|D>>12,I[g++]=128|D>>6&63,I[g++]=128|D&63}else{if(g+3>=E)break;I[g++]=240|D>>18,I[g++]=128|D>>12&63,I[g++]=128|D>>6&63,I[g++]=128|D&63}}return I[g]=0,g-Q}function stringToUTF8(A,I,g){return stringToUTF8Array(A,HEAPU8,I,g)}function lengthBytesUTF8(A){for(var I=0,g=0;g=55296&&C<=57343&&(C=65536+((C&1023)<<10)|A.charCodeAt(++g)&1023),C<=127?++I:C<=2047?I+=2:C<=65535?I+=3:I+=4}return I}var UTF16Decoder=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function UTF16ToString(A,I){for(var g=A,C=g>>1,Q=C+I/2;!(C>=Q)&&HEAPU16[C];)++C;if(g=C<<1,g-A>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(A,g));for(var E="",B=0;!(B>=I/2);++B){var D=HEAP16[A+B*2>>1];if(D==0)break;E+=String.fromCharCode(D)}return E}function stringToUTF16(A,I,g){if(g===void 0&&(g=2147483647),g<2)return 0;g-=2;for(var C=I,Q=g>1]=B,I+=2}return HEAP16[I>>1]=0,I-C}function lengthBytesUTF16(A){return A.length*2}function UTF32ToString(A,I){for(var g=0,C="";!(g>=I/4);){var Q=HEAP32[A+g*4>>2];if(Q==0)break;if(++g,Q>=65536){var E=Q-65536;C+=String.fromCharCode(55296|E>>10,56320|E&1023)}else C+=String.fromCharCode(Q)}return C}function stringToUTF32(A,I,g){if(g===void 0&&(g=2147483647),g<4)return 0;for(var C=I,Q=C+g-4,E=0;E=55296&&B<=57343){var D=A.charCodeAt(++E);B=65536+((B&1023)<<10)|D&1023}if(HEAP32[I>>2]=B,I+=4,I+4>Q)break}return HEAP32[I>>2]=0,I-C}function lengthBytesUTF32(A){for(var I=0,g=0;g=55296&&C<=57343&&++g,I+=4}return I}function writeArrayToMemory(A,I){HEAP8.set(A,I)}function writeAsciiToMemory(A,I,g){for(var C=0;C>0]=A.charCodeAt(C);HEAP8[I>>0]=0}function alignUp(A,I){return A%I>0&&(A+=I-A%I),A}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(A){buffer=A,Module.HEAP8=HEAP8=new Int8Array(A),Module.HEAP16=HEAP16=new Int16Array(A),Module.HEAP32=HEAP32=new Int32Array(A),Module.HEAPU8=HEAPU8=new Uint8Array(A),Module.HEAPU16=HEAPU16=new Uint16Array(A),Module.HEAPU32=HEAPU32=new Uint32Array(A),Module.HEAPF32=HEAPF32=new Float32Array(A),Module.HEAPF64=HEAPF64=new Float64Array(A)}Module.INITIAL_MEMORY;var wasmTable,__ATPRERUN__=[],__ATINIT__=[],__ATPOSTRUN__=[];function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(A){__ATPRERUN__.unshift(A)}function addOnInit(A){__ATINIT__.unshift(A)}function addOnPostRun(A){__ATPOSTRUN__.unshift(A)}var runDependencies=0,dependenciesFulfilled=null;function addRunDependency(A){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(A){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&dependenciesFulfilled){var I=dependenciesFulfilled;dependenciesFulfilled=null,I()}}Module.preloadedImages={},Module.preloadedAudios={};function abort(A){Module.onAbort&&Module.onAbort(A),A="Aborted("+A+")",err(A),ABORT=!0,A+=". Build with -s ASSERTIONS=1 for more info.";var I=new WebAssembly.RuntimeError(A);throw readyPromiseReject(I),I}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(A){return A.startsWith(dataURIPrefix)}function isFileURI(A){return A.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="data:application/octet-stream;base64,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KAKQWyAAKAKUWyAAKAKYWyAAKAKcW0EAEGoLIAAgAjYCyFsgACABNgLEWwsgA0EwaiQAC4ABACAAEMgBIABB2NsAaiACNgIAIAAgATYCxFsgACABNgLUWyAAQcjbAGogAjYCACAAQQE6AI9bIAAoAphbIQECQCAAQQhqIgItAAwEQCABLQAFRQ0BCyACIAAoApBbIAAoApRbIAEgACgCnFtBABBqCyAAQaQeaiACQZwe/AoAAAseACAAQgA3AgQgACABNgIAIABCADcCFCAAQgA3AgwLjQEBBX8gAC0AACEEAkADQCAEIAJBAnRBsNUCaigCACIDLQAARgRAIAJByQAgAkHJAEobIQYDQCADIAAgARBWRQRAIAIPC0HLACEFIAIgBkYNAyACQQFqIgJBAnRBsNUCaigCACIDLQAAIARGDQALDAILIAJByQBJIQMgAkEBaiECIAMNAAtBywAhBQsgBQtRAQR/IABFIAFFckUEQCABKAIIIQIgASgCDCEDIAAgACgCACIEIAEoAgAQFSAAKAIEIgUgASgCBBAVajYCACAAIAQgAhAVIAUgAxAVajYCBAsLqwMBBH8jAEEQayIDJAAgAUIANwIAIAFBADYCCCAAEEQgAyAAKAIAIgI2AgwgACgCCCIFIAJLBEACQAJAAkACQAJAAkACQCACLQAAIgRB+wBHBEAgBEHbAEYNASAEQShHDQIgASACNgIAIAFBAjYCCCADQQxqIAUQzgENAwwECyABIAI2AgAgAUEDNgIIIANBDGogBRDRAkUNAwwCCyABIAI2AgAgAUEDNgIIQQEhBCAAIAJBAWo2AgAgABBEAkAgACgCACICIAVPDQADQCAAKAIMDQECQAJAAkAgAi0AAEHbAGsOAwECAAILIARBAUoEQCAEQQFrIQQMAgsgAyACQQFqIgI2AgwgASACNgIEDAkLIARBAWohBAsgABDPASAAEEQgACgCACICIAVJDQALCyADIAI2AgwMAQsgASACNgIAIAFBBEEBIAItAABBL0YbNgIIIAAQzwEgAyAAKAIAIgI2AgwgACgCDEUNAgsgASgCBCECDAILIAMoAgwhAgsgASACNgIECyACDQAgAUEANgIIIAFBADYCAAsgACADKAIMNgIACyADQRBqJAALhAEBBX8jAEEQayICJAAgAiAAKAIAIgQ2AgwgAkEMaiAB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QYGChAhrcUGAgYKEeHENASAEIAU2AgAgBEEEaiEEIAFBBGohASADQQRrIgNBA0sNAAsLIANFDQADQCAEIAEtAAAiBToAACAFRQ0CIARBAWohBCABQQFqIQEgA0EBayIDDQALC0EAIQMLIARBACADEHwgACAIakEAOgAAIAdBAWohAQwBCyAAQQA6AAALIAAgAhDZAiABENkCIQMLIAZBEGokACADCxkAIAAgARA5IgBFBEBBAA8LIAAoAgAoAhQLNgECfwJAIABFDQAgACgCXCIDRQ0AIAMgASADKAIMKAIMEQAAIgFBACABIAAoAhBJGyECCyACC3UBBX8gAARAIAAgAC4BOCICIAAvARRqOwEUIAAgAC8BFiIDIAAvATpqOwEWIAAgACgCMCAAKAJUajYCMCACQQBKBEAgACgCRCEEA0AgBCABQQF0aiIFIAUvAQAgA2o7AQAgAUEBaiIBIAJHDQALCyAAEKECCwsKACAAKAIAQQBHCw0AIAAtAABBCnFBAEcLtQIBBH8gAEIANwIAIABBADYCECAAQgA3AggCfwJAIAEgAhBbIggoAggiASAIKAIEIglrIgpBgICwf0cEQCAKQYCArH9HDQEgBkUEQEEBDAMLIAAgATYCCEEBIQdBAAwCC0EBIAYNARogACAJNgIIQQIhB0EADAELAkACQCAKQQBIBEAgBgRAIAAgATYCCAwDCyAAIAk2AggMAQsgBgRAIAAgCTYCCAwCCyAAIAE2AggLQQghB0EADAELQQQhB0EACyEBIAAgBzYCACAAKAIIIQcgABCGAQRAIAMoAugBQQF0IAdqIQcLIAAgBTYCECAAIAI2AgQgACAEIAdqIgI2AggCQCABDQAgCC0AAEUNACAAIAhBEEEMIAAQhgEbaigCADYCDCAAEMMBDwsgACACIAUQFTYCDAsjACAAQQA2AhQgAEIANwIMIAAoAgAgACgCGBAUIABBADYCGAs5AQF/IABBAEGcHvwLACABLQC4ASEFIAAgBDYCECAAIAU6AA0gACADNgIIIAAgAjYCBCAAIAE2AgALNgAgABAoIAFJBEAgACgCBEGCARAxDwsgAUEDdCIBIAAoAghqIAI2AgAgACgCCCABakEANgIEC70DAQd/IwBBQGoiByQAIAcgASgCACIJNgIAIAcgAigCADYCBEEKQQkgBC0ACSIKGyEL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ACACQQM2AghBoAEhAyAAIAJBCGpBARBRQQFGBEAgASACKAIMNgIAQQAhAwsgAkEQaiQAIAML9wEBBX8CQAJAIAAoAhQiAEUNAAJAAkAgAC8BACIBwSIDQQJOBEAgACgCDCABQQF0akEEay4BAEEBaiECDAELIAMNACAALgECIQEMAQsgAiAALgECIgFHDQAMAgsCQCABQQJIDQAgACgCBCIEIAJBA3RqIgUoAgAgBCABQQN0akEIayIEKAIARw0AIAUoAgQgBCgCBEcNACAAKAIIIAFqQQFrLQAAQQFHDQAgACABQQFrIgE7AQILIANBAEwNACACIAHBQQFrIgJGBEAgACABQQFrOwECDAILIAAoAgwgA0EBdGpBAmsgAjsBAAsPCyAAIANBAWs7AQALMwEBfwJAIAFFDQAgACgCDCIALgEWIAFqIAAuATpqIAAoAgRNDQAgACABQQAQRSECCyACCzEBAX8gACgCCCIBBEAgASAAKAIQIgApAgA3AmwgASAAKAIQNgJ8IAEgACkCCDcCdAsLvAEBBH8CQCAAKAIAIgFFDQADQCABIAEoAggiAygCADYCACABIAEoAhBBAWs2AhAgASADQQRBfCABLwEMQQhxG2o2AgggASgCBCIBDQALIAAoAgAiAUUNACABKAIEIgJFDQAgAUEEaiEEIAAhAwNAAn8gASgCACACKAIATARAIAIhASAEDAELIAMgAjYCACAEIAIoAgQ2AgAgAiABNgIEIAAoAgAhASAACyEDIAFBBGohBCABKAIEIgINAAsLCwsAIAAoAgAgABAUCwQAQQALPAEDfyMAQRBrIgIkACAAQQQgAkEMahAiIQMgAigCDCIERQRAIAMgADYCAAsgASADNgIAIAJBEGokACAEC94BAQN/IAAgBCAFEOEBIgQEfyAEBSMAQRBrIgQkAAJAIABBDGogBSAEQQxqEOYCIgYNACAEKAIMIgAgAyAFEOABIgYNACAAIAM2AgBBACEGIANFDQAgASACQQN2aiEFQYABIAJBB3F2IQEgACgCCCECQYABIQADQCACIAAgAi0AACIHciAHIABBf3NxIAEgBS0AAHEbOgAAQYABIABBAXUgAEECSSIHGyEAQYABIAFBAXUgAUECSSIIGyEBIAIgB2ohAiAFIAhqIQUgA0EBayIDDQALCyAEQRBqJAAgBgsLUAEB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IAAoAgBBAWoiAjYCDAJAIAEgAk0NAANAIANBDGogARBSIAMoAgwiAiABTw0BIAItAAAiBEEwa0H/AXFBCU0gBEHBAGtBBklyRQRAIARB4QBrQQZPDQILIAMgAkEBaiICNgIMIAEgAksNAAsLAn8gASACSwRAQQMgAi0AAEE+Rw0BGgsgAkEBaiECQQALIQEgACACNgIAIANBEGokACABC+IBAQV/IwBBEGsiAiQAIAIgACgCACIDNgIMAn8CQAJAIAEgA00NAANAQQAhBQJAAkACQAJAIAMtAAAiBkElaw4EAgMDAQALAkACQAJAIAZB+wBrDgMBBQIACyAGQTxHDQQgAkEMaiABENACIQUMBAsgBEEBaiEEDAMLIARBAWsiBA0CIANBAWohAwwECyACQQxqIAEQzgEhBQwBCyACQQxqIAEQvAILIAIgAigCDEEBaiIDNgIMQQAgASADSyAFGw0AC0EDIAQNAhoMAQsLIAULIQEgACADNgIAIAJBEGokACABC00BAn8gACgCECICQQBKBEAgACgCACABayEBIAAoAhgiACACQQJ0aiECA0AgACgCACIDBEAgACABIANqNgIACyAAQQRqIgAgAkkNAAsLC1wBAn8jAEEQayICJAAgAkEANgIMQQYhAwJAIABFIAFFcg0AIABBECACQQxqECQhACACKAIMIgMNACAAQgA3AgAgAEIANwIIIAEgADYCAEEAIQMLIAJBEGokACADC4QBAQR/IwBBEGsiBCQAAkAgAEUgAUVyDQAgASgCACICRQ0AIAAgAigCCCIDBH8DQCAEIAM2AgwgAygCJCEDAkAgAEUgBEEMaiICRXINACACKAIAIgVFDQAgACAFEBQgAkEANgIACyADDQALIAEoAgAFIAILEBQgAUEANgIACyAEQRBqJAALTAEEf0GAgICABCEBA0AgAiABIAJqIgMgAWogACADSSIEGyECIABBACADIAQba0EBdCEAIAFBgQFLIQMgAUEBdiEBIAMNAAsgAkEIdgtfAQF/QQBBgAFB/wAgACABEBYiACAAQR91IgFqIAFzIgFBCXYiAiABQf//A0sbIAIgAEEAShsiAUH/AXEiAiABQYABSxsgAiAAQQBIIgAbIgFrIAEgABtBgAFzQf8BcQuWGwIvfwF+IwBBEGsiFyQAIwBBMGsiBCQAQQYhBwJAIAFF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ACECDAELIAAgAygCCEEBdiIENgK8BSAAIAJBBEEAIARBACADQQxqEBw2AsAFIAMoAgwiAg0AIAMgASAAKAK8BUEBdBAlIgI2AgwgAg0AIAAoArwFIgRBAEoEQCAAKALABSICIARBAnRqIQQDQCACIAEQIcFBBnQ2AgAgAkEEaiICIARJDQALCyABECMgAC0A3QVFBEAgAygCDCECDAELIAAgARDNAyECCyADQRBqJAAgAgvwAQEEfyMAQRBrIgMkACAAIANBDGoQJyEFAkAgAygCDCIEDQBBAiEEIAEgBUcNACAAIANBDGoQJxogAygCDCIEDQAgAyAAQRAQMCIENgIMIAQNACAAIANBDGoQHyEFIAMoAgwiBA0AQQIhBCAFRQ0AQQAhAQNAIAAgA0EMahAnIQYgAygCDCIEDQECQCAGQQJGBEAgACADQQxqECchBCADKAIMDQEgACADQQxqECcaIAMoAgwNASACIAQ2AgBBACEEDAMLIAMgAEEIEDAiBDYCDCAEDQILQQIhBCABQQFqIgEgBUcNAAsLIANBEGokACAECx4AIANBADYCACABRQRAQdEADwsgAUGHrBQgBBDbAwscACAAKAIcIAAoAgAQFCAAQgA3AgAgAEEANgIYCz4BAn8CQCAARSABRXINACAAKAIAIgBFBEAPCwNAIAAoAgQhAiAAQQAgAREAACIDDQEgACACIAMbIgANAAsLC0kBAX8CQCACQQJJDQADQCABLQAAIgNFDQEgACADOgAAIABBAWohACABQQFqIQEgAkEBayICQQFLDQALCyAAQQA6AAAgAS0AABoLrAQBB38jAEEQayIIJAAgACgCACEMIAggASACEBkiADYCDAJAIAANACABIAhBDGoQHyEJIAgoAgwiAA0AQQghACAJwSIKQe4fSg0AQQAhCSAKQQBIBEBBASEADAELA0AgASAIQQxqECchDSAIKAIMIgANASABIAhBDGoQHyELIAgoAgwiAA0BIAEgCEEMahAfIQ4gCCgCDCIADQEgBCANRwRAQQEhACAJIApGIQsgCUEBaiEJIAsNAgwBCwsgByALwUEBajYCAEEIIQAgC0GmFUsNACAIIAEgDsEgAmoQGSIANgIMIAANAEEAIQIgDEEIQQAgBygCAEEAIAhBDGoQHCEEIAgoAgwiAA0AAkAgBygCACIAQQBKBEAD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QEEAIQEMAQsgAiABEQQAIQELIARBEGokACABBEAgAhDwAyAIIAIQFAwCCyACIAAoAlQ2AgggACACNgJUQQAhAQsLIAVBEGokACABC7wCAAJAAkACQAJAAkACQAJAAkACQAJAAkAgAUEJaw4SAAgJCggJAQIDBAoJCgoICQUGBwsgAiACKAIAIgFBBGo2AgAgACABKAIANgIADwsgAiACKAIAIgFBBGo2AgAgACABMgEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMwEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMAAANwMADwsgAiACKAIAIgFBBGo2AgAgACABMQAANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACQQARBQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC2kBBH8jAEEQayICJAAgACgCBCgCZCEDAkAgACgCnAEiBCgCBCIFQQFxBEAgAyAAKAJYEBQgAEEANgJYDAELIAQgBUEBcjYCBAsgACADIAEgAkEMahAiNgJYIAIoAgwhACACQRBqJAAgAAsOACAAEJ0CIAAgATYCWAsiACAAIAE2ApwBIAAgAjYCoAEgACADNgKkASAAQQA2AqgBC2sBBH8gACgCACwAABB1RQRAQQAPCwNAIAAoAgAhA0F/IQEgAkHMmbPmAE0EQEF/IAMsAABBMGsiBCACQQpsIgFqIARB/////wcgAWtKGyEBCyAAIANBAWo2AgAgASECIAMsAAEQdQ0ACyABC5UCAQh/IABFBEBBIQ8LIAAoAgAhBiAABEAgACAAKALMASIBQQFrNgLMASABQQFMBEAgACgCACEHIAAoAhAiAiEBA0ACQCABRQRAQQAhAQwBCyADQQJ0QfA7aiEIQQAhBQNAIAAgBUECdGooAhQhBAJAAkAgA0EBRgRAIAQoAgAhAQwBCyAEKAIAIgEoAgggCCgCABAgDQELIAEtAABBAXFFDQAgBCgCECIBRQ0AA0AgASgCCBC8ARogBCgCECIBDQALIAAoAhAhAgsgAiIBIAVBAWoiBUsNAAsLIANBAWoiA0ECRw0ACyACBEADQCAAIAJB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IAAgAzYCAA8LIAIgASgCCCABKAIMQQAQjgEgAiABKAIQIAEoAhRBABCOASACIAEoAhggASgCHEEBEI4BCwsTACAAKAIcIgAQkwEgAEEAOgAsC2UBAn8CQAJAIAAoAhwiAi0ALA0AIAIgASgCACABKAIEELoCIgNFDQAgACgCGCIAKAIADQEgACADNgIADwsgAiABKAIIIAEoAgwQuQIiAUUNACAAKAIYIgAoAgANACAAIAE2AgALC+4EAQN/IwBBEGsiBSQAIAUgAjYCCCAFIAA2AgwgAkEAQYwF/AsAIAIgAS0ACCIEOgC8ASAEBEADQCACIANBAnRqIAEgA0EBdGouAQw2AsABIANBAWoiAyAERw0ACwsgAiABLQAJIgQ6AL0BIAQEQEEAIQMDQCACIANBAnRqIAEgA0EBdGouASg2AvgBIANBAWoiAyAERw0ACwsgAiABLQAKIgQ6AL4BIAQEQEEAIQMDQCACIANBAnRqIAEgA0EBdGouATw2AqACIANBAWoiAyAERw0ACwsgAiABLQALIgQ6AL8BIAQEQEEAIQMDQCACIANBAnRqIAEgA0EBdGouAVg2AtgCIANBAWoiAyAERw0ACwsgAiABKAJsNgKAAyACIAEoAnA2AoQDIAIgASgCdDYCiAMgAiABLwF4NgKMAyACIAEvAXo2ApADIAIgAS0AfCIEOgCUAyAEBEBBACEDA0AgAiADQQJ0aiABIANBAXRqLgGAATYCmAMgA0EBaiIDIARHDQALCyACIAEtAH0iBDoAlQMgBARAQQAhAwNAIAIgA0ECdGogASADQQF0ai4BmgE2AswDIANBAWoiAyAERw0ACwsgAiABLQB+OgCABCACIAEoAgQ2AogEIAIgASgCuAE2AowEIAEoArQBIQEgAiACNgKoBCACIAE2ApAEAkACQCAAKAKAASIAKAI8IgFBf0YNACACIAE2AogFIAFFDQADQCABEJABIgFBAEgNAAsgACABNgI8DAELIAIgBUEEaiAFQQhqIAVBDGpzcyIAQQp2IABzIABBFHZzIgBBhOcBIAAbNgKIBQsgBUEQaiQAC/ECACAAQQBBkAX8CwACQCACBEAgACABIAIQzAEgACABQeQLajYCnAQgACABKALECjYC3AQgACABKALICjYCyAQgACABKALMCjYCxAQgASgCwAshAiAAIAEoArwL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NwIIIABCADcCACAAQfzRAikCADcCJCAAQYTSAikCADcCLEEADAELIAIgACgCGBAUIABBADYCGCADKAIMCyECIANBEGokACACC58BAQN/IwBBEGsiBCQAIARBADYCDEEGIQYCQCABRSAARXIgAkUgA0Vycg0AIAMoAgQhBSADKAIAIARBDGoQSCIGDQAgBCgCDCIDQQM2AiAgAyAFKQIANwIAIAMgACkCADcCECADIAEpAgA3AhggAyACKQIANwIIIAMgBSgCCDYCJCAFIAM2AgggBSACKQIANwIAQQAhBgsgBEEQaiQAIAYLkQEBA38jAEEQayIDJAAgA0EANgIMQQYhBQJAIAJFIABFIAFFcnINACACKAIEIQQgAigCACADQQxqEEgiBQ0AIAMoAgwiAkECNgIgIAIgBCkCADcCACACIAApAgA3AhAgAiABKQIANwIIIAIgBCgCCDYCJCAEIAI2AgggBCABKQIANwIAQQAhBQsgA0EQaiQAIAULpAEBA38jAEEQayIDJAAgA0EANgIMQQYhAgJAIABFIAFFcg0AIAEoAgAhBCABKAIEIgEoAgAgACgCAEYEQEEAIQIgASgCBCAAKAIERg0BCyAEIANBDGoQSCICDQAgAygCDCICQQE2AiAgAiABKQIANwIAIAIgACkCADcCCCACIAEoAgg2AiQgASACNgIIIAEgACkCADcCAEEAIQILIANBEGokACACC2IBAn8jAEEQayIDJAAgA0EANgIMQQYhAgJAIABFIAFFcg0AIAEoAgAgA0EMahDTAiICDQAgAygCDCICIAApAgA3AgAgAiABKAIENgIMIAEgAjYCBEEAIQILIANBEGokACACC2gAAn8CQCABQckYECBFBEAgAiAAQUBrKAIANgIADAELIAFBjhMQIEUEQCACIAAtAEQ2AgAMAQsgAUG9CxAgRQRAIAIgAC0ARTYCAAwBC0EMIAFBlw8QIA0BGiACIAAtAEY2AgALQQALC38AAn8CQCABQckYECBFBEBBBiACKAIAIgFBIWtBYUkNAhogAEFAayABNgIADAELIAFBjhMQIEUEQCAAIAIoAgBBAEc6AERBAA8LIAFBvQsQIEUEQCAAIAIoAgBBAEc6AEVBAA8LQQwgAUGXDxAgDQEaIAAgAi0AADoARgtBAAsL2QwBFn8jAEEwayIEJAAgBEEANgIs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CyACKALECgsNACAAKAIIQQl2QQFxC58CAQV/IwBBEGsiBSQAIAAoAsgFIQYgBUEANgIMAkAgBkUNACAGKAK8GCIDRQRAIAAoAmRBAiAFQQxqECQhAyAFKAIMIgINASADQQA7AQACQCAGIAZB3AtqKAIAEDUiAEUNACAAQbgWEKUBIgBFDQAgAEEHaiICQdgVEKUBIgBFIAAgAkZyDQADQAJAAkAgAi0AACIEQTBrQf8BcUEJTQRAIAMvAQAiBEGXM0sNAiADIARBCmwiBDsBACADIAQgAiwAAGpBMGs7AQAMAQsCQCAEQQprDgQBAgIBAAsgBEEgRw0BCyACQQFqIgIgAEcNAQwCCwsgA0EAOwEACyAGIAM2ArwYIAUoAgwhAgsgASADLwEAOwEACyAFQRBqJAAgAguaAgEEfyMAQRBrIgQkACAAKALIBSECIARBADYCDAJAIAJFDQAgAigClBgiAwR/QQAFIAAoAmRBICAEQQxqECQhAyAEKAIMIgUNASADIAIgAigC3AoQNTYCACADIAIgAkHgCmooAgAQNTYCBCADIAIgAkHoCmooAgAQNTYCCCADIAIgAkHsCmooAgAQNTYCDCADIAIgAkHwCmooAgAQNTYCECADIAJB+ApqKAIANgIUIAMgAkH0CmotAAA6ABggAyACQfwKaigCADsBGiADIAJBgAtqKAIAOwEcIAIgAzYClBggBCgCDAshBSABIAMpAgA3AgAgASADKQIYNwIYIAEgAykCEDcCECABIAMpAgg3AggLIARBEGokACAFC5IBACAAIAEoAgggBBAzBEAgASACIAMQgAIPCwJAIAAgASgCACAEEDNFDQACQCACIAEoAhBHBEAgASgCFCACRw0BCyADQQFHDQEgAUEBNgIgDwsgASACNgIUIAEgAzYCICABIAEoAihBAWo2AigCQCABKAIkQQFHDQAgASgCGEECRw0AIAFBAToANgsgAUEENgIsCwsQACAAIAAoAqgEKAIcEQMACxQAIAAgASACIAAoAqgEKAIAEQEACxgAIAAgASACIAMgBCAAKAKkBCgCKBEIAAsUACAAIAEgAiAAKAKkBCgCJBEBAAsUACAAIAEgAiAAKAKkBCgCIBEBAAsSACAAIAEgACgCpAQoAhwRAAALFAAgACABIAIgACgCpAQoAhgRAQALFAAgACABIAIgACgC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AnT8CwALIAUL0AEBA38CQCAAKALgBSIERQRAIABBABBkIgUNASAAKALgBSEECyAEKAIERQRAIABBAEEAQQEQrwEiBQ0BCyAEKAIAIgMgASABIANLGyEDAkACQAJAIAAtAN0FBEAgAw0BDAILIANFDQEgAkEAIANBAnT8CwAMAgsgBCgCCCEEQQAhAANAIAIgAEECdCIFaiAEIAVqKAIANgIAIABBAWoiACADRw0ACwwBC0EAIQMLQQAhBSABIANNDQAgAiADQQJ0akEAIAEgA2tBAnT8CwALIAULLQAgACABIAJBARCvASICRQRAIAAgACgCCEH//31xIAFBAEdBD3RyNgIICyACCz4AIAAgAkECdGooAowCIQAgAUEATgRAIAAgAWpBQHEiAEEAIABBAEobDwtBACAAIAFrQUBxayIAQR91IABxC0QAIAAgAkECdGooAowCIQAgAUEATgRAIAAgAWpBP2pBQHEiAEEAIABBAEobDwtBACAAIAFrQT9qQUBxayIAQR91IABxC3YBAn8gACACQQJ0aigCjAIhAyAAKAKABCECIAAoAoQEIQQgAUEATgRAIAIgASADaiAEaiACayIBIAEgACgC/ANvayACaiIAIABBAEgbDwtBACACayADIARqIAEgAmprIgEgACgC/ANvIAEgAmprIgAgAEEAShsLdQECfyAAIAJBAnRqKAKMAiEDIAAoAoAEIQIgACgChAQhBCABQQBOBEAgAiABIANqIARqIAJrQQAgACgC/ANrcSACaiIAIABBAEgbDwtBACACa0EAIAIgAyAEaiABIAJqa0EAIAAoAvwDa3FqayIAIABBAEobCzIAIAAgASgCCEEAEDMEQCABIAIgAxCPAg8LIAAoAggiACABIAIgAyAAKAIAKAIcEQYAC0QAIAAgAkECdGooAowCIQAgAUEATgRAIAAgAWpBEGpBYHEiAEEAIABBAEobDwtBACAAIAFrQRBqQWBxayIAQR91IABxC0MAIAAgAkECdGooAowCIQAgAUEATgRAQSAgACABakFAcUEgciIAIABBAEgbDwtBYEFgIAAgAWtBQHEiAGsgAEFgSBsLRAAgACACQQJ0aigCjAIhACABQQBOBEAgACABakEgakFAcSIAQQAgAEEAShsPC0EAIAAgAWtBIGpBQHFrIgBBH3UgAHELGQAgACABKAII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EQEAIQQgACAAKAJYIAJqIgIoAgAgACgCNCAALwGgAkEDdGoiBSgCAGsgAigCBCAFKAIEayAAKALcBBEBACEFQQAgAWsgASABIARzQQBIGyABIAAtAMACGyECAkAgAC0A+AIiAUEEcQRAIAAgAC8B3AIgAC8B3gJGBH8gBCACIAAoAsQCIAIgBGsiAiACQR91IgJqIAJzSBsFIAILIAFBA3EgACgC2AQRAQAhAiAALQD4AiEBDAELIAAgAiABQQNxELABIQILIABByABqIQYCQCABQQhxRQ0AIAAoArgCIQEgBEEATgRAIAEgAiABIAJKGyECDAELQQAgAWsiASACIAEgAkgbIQILIAAgBiADIAIgBWsgACgC6AQRBgALIAAgAC8BoAI7AaICIAAtAPgCQRBxBEAgACADOwGgAgsgACADOwGkAgwCCyADQcABTwRAAkACQCABLwEAIgMgAC8BUEkEQCAALwGgAiIBIAAvASxJDQELIAAtANEERQ0BIABBhgE2AgwMAQsCfwJAIAAvAdwCBEAgAC8B3gINAQsgACAAKAJUIANBA3RqIgIoAgAgACgCMCABQQN0aiIBKAIAayACKAIEIAEoAgRrIAAoAuAEEQEADAELIAAoAjggAUEDdGohASAAKAJcIANBA3RqIQIgACgC4AEiBCAAKALkAUYEQCAAIAIoAgAgASgCAGsgAigCBCABKAIEayAAKALgBBEBACAAKALgARAVDAELIAAgAigCACABKAIAayAEEBUgAigCBCABKAIEayAAKALkARAVIAAoAuAEEQEACyECAkAgACgCyAIiBEEATA0AIAIgACgCzAIiASAEak4gAiABIARrTHINACABQQAgAWsgAkEAThshAgsCQCAALQD4AiIEQQRxBEAgACACIARBA3EgACgC2AQRAQAhASAALQD4AiEEDAELIAAgAiAEQQNxELABIQELIABByABqIQUCQCAEQQhxRQ0AIAAoArgCIQQgAkEATgRAIAQgASABIARIGyEBDAELQQAgBGsiAiABIAEgAkobIQELIAAgBSADIAEgACAAKAJYIANBA3RqIgEoAgAgACgCNCAALwGgAkEDdGoiAigCAGsgASgCBCACKAIEayAAKALcBBEBAGsgACgC6AQRBgALIAAgAzsBpAIgACAALwGgAjsBogIgAC0A+AJBEHEEQCAA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hCDYrSDZgADqpI0g6qSAAOKCkiDigoAAZmxpcF95AHBzYXV4AEZvbnRCQm94AC0rICAgMFgweAB1bnNpZ25lZCBzaG9ydABkZWZhdWx0LXNjcmlwdABmYWxsYmFjay1zY3JpcHQASXNCYXNlRm9udABJc0NJREZvbnQAdW5zaWduZWQgaW50AHNmbnQAU2xhbnQAaW5jcmVhc2UteC1oZWlnaHQAV2VpZ2h0AENhcEhlaWdodABYSGVpZ2h0AGludmFsaWQgbGl0ZXJhbC9sZW5ndGhzIHNldABpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQAdW5rbm93biBoZWFkZXIgZmxhZ3Mgc2V0AGludmFsaWQgZGlzdGFuY2VzIHNldABDaGFyYWN0ZXJTZXQAZ2x5cGgtZGljdABmbG9hdABmb250LWZvcm1hdABpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0AHVpbnQ2NF90AE1ldHJpY3NTZXRzAFVuZGVybGluZVRoaWNrbmVzcwBTdGFydEtlcm5QYWlycwBFbmRLZXJuUGFpcnMAbXVsdGktbWFzdGVycwBkYXJrZW5pbmctcGFyYW1ldGVycwBDaGFyYWN0ZXJzAHR0LWNtYXBzAHBvc3RzY3JpcHQtY21hcHMAb3ZlcmxhcHMAQmxlbmREZXNpZ25Qb3NpdGlvbnMAbWV0cmljcy12YXJpYXRpb25zAHRvbyBtYW55IGxlbmd0aCBvciBkaXN0YW5jZSBzeW1ib2xzAFN0YXJ0QXhpcwBFbmRBeGlzAGludmFsaWQgc3RvcmVkIGJsb2NrIGxlbmd0aHMAU3RhcnRDb21wb3NpdGVzAEVuZENvbXBvc2l0ZXMAQmxlbmRBeGlzVHlwZXMAcHNuYW1lcwBwcm9wZXJ0aWVzAFN0YXJ0Rm9udE1ldHJpY3MARW5kRm9udE1ldHJpY3MAU3RhcnRDaGFyTWV0cmljcwBFbmRDaGFyTWV0cmljcwBXZWlnaHRWZWN0b3IAVlZlY3RvcgBhdXRvZml0dGVyAHBzaGludGVyAERlc2NlbmRlcgBBc2NlbmRlcgBSZWd1bGFyAHVuc2lnbmVkIGNoYXIARXNjQ2hhcgBnbHlwaC10by1zY3JpcHQtbWFwAEJsZW5kRGVzaWduTWFwAHBvc3RzY3JpcHQtaW5mbwBTdGFydFRyYWNrS2VybgBFbmRUcmFja0tlcm4AVW5kZXJsaW5lUG9zaXRpb24AU3RhcnREaXJlY3Rpb24ARW5kRGlyZWN0aW9uAGludGVycHJldGVyLXZlcnNpb24AVmVyc2lvbgBmbGlwX3NpZ24AYm9vbABBeGlzTGFiZWwAZW1zY3JpcHRlbjo6dmFsAGludmFsaWQgY29kZSAtLSBtaXNzaW5nIGVuZC1vZi1ibG9jawBpbmNvcnJlY3QgaGVhZGVyIGNoZWNrAGluY29ycmVjdCBsZW5ndGggY2hlY2sAaW5jb3JyZWN0IGRhdGEgY2hlY2sAQmxhY2sAaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2sAc21vb3RoAENoYXJXaWR0aABJc0ZpeGVkUGl0Y2gAaGVhZGVyIGNyYyBtaXNtYXRjaAB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBuby1zdGVtLWRhcmtlbmluZwB0dC1nbHlmAGNmZgBkZWYAYnNkZgBiZGYAaW52YWxpZCB3aW5kb3cgc2l6ZQBPcHRpY2FsU2l6ZQB0cnVlAHRydWV0eXBlAGludmFsaWQgYmxvY2sgdHlwZQBBeGlzVHlwZQBUcnVlVHlwZQAvRlNUeXBlAGhpbnRpbmctZW5naW5lAHRydWV0eXBlLWVuZ2luZQBNYXBwaW5nU2NoZW1lAEVuY29kaW5nU2NoZW1lAHBvc3RzY3JpcHQtZm9udC1uYW1lAEZhbWlseU5hbWUARm9udE5hbWUARnVsbE5hbWUASXRhbGljQW5nbGUAZG91YmxlAHNmbnQtdGFibGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQBOb3RpY2UAYWRvYmUAdW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QAQm9sZAB2b2lkAGNpZAByYW5kb20tc2VlZABjZmYtbG9hZABzcHJlYWQALy4ubmFtZWRmb3JrL3JzcmMAU3RhcnRLZXJuRGF0YQBFbmRLZXJuRGF0YQAuXwBPRkZTRVRfR0xZUEhfTUVUUklDU19WRVJUX0JFQVJJTkdfWQBPRkZTRVRfR0xZUEhfTUVUUklDU19IT1JJX0JFQVJJTkdfWQBPRkZTRVRfR0xZUEhfQURWQU5DRV9ZAFdZAENIQVJTRVRfUkVHSVNUUlkAS1BZAFcxWQBXMFkAT0ZGU0VUX0dMWVBIX01FVFJJQ1NfVkVSVF9CRUFSSU5HX1gAT0ZGU0VUX0dMWVBIX01FVFJJQ1NfSE9SSV9CRUFSSU5HX1gAT0ZGU0VUX0dMWVBIX0FEVkFOQ0VfWABXWABLUFgAT0ZGU0VUX0dMWVBIX0lOREVYAFcxWABXMFgAU3RkVlcAU3RkSFcASXNGaXhlZFYARlRfTE9BRF9UQVJHRVRfTENEX1YARlRfUkVOREVSX01PREVfTENEX1YAVlYARlRfTE9BRF9OT19BVVRPSElOVABGVF9MT0FEX0ZPUkNFX0FVVE9ISU5UAEZUX0tFUk5JTkdfREVGQVVMVABGVF9MT0FEX0RFRkFVTFQARlRfTE9BRF9UQVJHRVRfTElHSFQAT0ZGU0VUX0dMWVBIX01FVFJJQ1NfSEVJR0hUAE9GRlNFVF9GQUNFX0hFSUdIVABPRkZTRVRfR0xZUEhfQklUTUFQX0xFRlQAT0ZGU0VUX0dMWVBIX0JJVE1BUF9OVU1fR1JBWVMAT0ZGU0VUX0dMWVBIX0JJVE1BUF9ST1dTAE9GRlNFVF9GQUNFX0ZBQ0VfRkxBR1MARlJFRVRZUEVfUFJPUEVSVElFUwBGVF9GQUNFX0ZMQUdfQ09MT1IARlRfTE9BRF9DT0xPUgBPRkZTRVRfR0xZUEhfQklUTUFQX0JVRkZFUgBGVF9MT0FEX1JFTkRFUgBPRkZTRVRfRkFDRV9ERVNDRU5ERVIAT0ZGU0VUX1RUX09TMl9ERVNDRU5ERVIAT0ZGU0VUX0ZBQ0VfQVNDRU5ERVIAT0ZGU0VUX1RUX09TMl9BU0NFTkRFUgBPRkZTRVRfR0xZUEhfQklUTUFQX1RPUABLUABPRkZTRVRfVFRfT1MyX0xJTkVHQVAARlRfTE9BRF9UQVJHRVRfTU9OTwBGVF9SRU5ERVJfTU9ERV9NT05PAEZUX1BJWEVMX01PREVfTU9OTwBOAE9GRlNFVF9GQUNFX1VOSVRTX1BFUl9FTQBGVF9MT0FEX1RBUkdFVF9OT1JNQUwARlRfUkVOREVSX01PREVfTk9STUFMAE9GRlNFVF9HTFlQSF9NRVRSSUNTX1dJRFRIAE9GRlNFVF9HTFlQSF9CSVRNQVBfV0lEVEgAT0ZGU0VUX0ZBQ0VfR0xZUEgAS1BIAE9GRlNFVF9HTFlQSF9CSVRNQVBfUElUQ0gARlRfTE9BRF9OT19ISU5USU5HAENIQVJTRVRfRU5DT0RJTkcAQ0ZGAEZUX0xPQURfTU9OT0NIUk9NRQBPRkZTRVRfR0xZUEhfQklUTUFQX1BJWEVMX01PREUAT0ZGU0VUX0dMWVBIX0JJVE1BUF9QQUxFVFRFX01PREUAT0ZGU0VUX0dMWVBIX01FVFJJQ1NfVkVSVF9BRFZBTkNFAE9GRlNFVF9HTFlQSF9MSU5FQVJfVkVSVF9BRFZBTkNFAE9GRlNFVF9HTFlQSF9NRVRSSUNTX0hPUklfQURWQU5DRQBPRkZTRVRfR0xZUEhfTElORUFSX0hPUklfQURWQU5DRQBDSUQARlRfS0VSTklOR19VTkZJVFRFRABGVF9LRVJOSU5HX1VOU0NBTEVEAEZUX0xPQURfVEFSR0VUX0xDRABGVF9SRU5ERVJfTU9ERV9MQ0QARlRfTE9BRF9QRURBTlRJQwBQQ0MAQgBPRkZTRVRfR0xZUEhfUlNCX0RFTFRBAE9GRlNFVF9HTFlQSF9MU0JfREVMVEEARlRfUElYRUxfTU9ERV9CR1JBAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4ATW9kdWxlLiVzID0gJWQ7AEZUX1NGTlRfT1MyAHR5cGU0MgBTdGFydEtlcm5QYWlyczEAcmFzdGVyMQB0eXBlMQBXMQAxLjIuMTEAVHlwZSAxAFN0YXJ0S2VyblBhaXJzMABXMABvIE8gMAByZXNvdXJjZS5mcmsvAC5BcHBsZURvdWJsZS8ALnJlc291cmNlLwAobnVsbCkAJQBOU3QzX18yMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQBOU3QzX18yMjFfX2Jhc2ljX3N0cmluZ19jb21tb25JTGIxRUVFAAAA3BwAAHAVAABgHQAAMRUAAAAAAAABAAAAmBUAAAAAAABOU3QzX18yMTJiYXNpY19zdHJpbmdJaE5TXzExY2hhcl90cmFpdHNJaEVFTlNfOWFsbG9jYXRvckloRUVFRQAAYB0AALgVAAAAAAAAAQAAAJgVAAAAAAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSXdOU18xMWNoYXJfdHJhaXRzSXdFRU5TXzlhbGxvY2F0b3JJd0VFRUUAAGAdAAAQFgAAAAAAAAEAAACYFQAAAAAAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0lEc05TXzExY2hhcl90cmFpdHNJRHNFRU5TXzlhbGxvY2F0b3JJRHNFRUVFAAAAYB0AAGgWAAAAAAAAAQAAAJgVAAAAAAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFjaGFyX3RyYWl0c0lEaUVFTlNfOWFsbG9jYXRvcklEaUVFRUUAAABgHQAAxBYAAAAAAAABAAAAmBUAAAAAAABOMTBlbXNjcmlwdGVuM3ZhbEUAANwcAAAg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AAAAAAAAAAAAAAAAAAAABAAAAAQQAAAUAAAABAAAAAAAAAAAAAAAAAAAAAUAAAABEQAAGAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAhEAABwAAAAEAAAAAAAAAAAAAAAAAAAAAgAAAAMRAAAgAAAABAAAAAAAAAAAAAAAAAAAAAIAAAAEEQAAJAAAAAQAAAAAAAAAAAAAAAAAAAABAAAABREAACgAAAAEAAAAAAAAAAAAAAAAAAAAAQAAAAYRAAAsAAAABAAAAAAAAAAAAAAAAAAAAAcAAAAHEQAAAAAAAAAAAACXAAAAAAAAAAAAAAABAAAADRAAAFAAAAAEAAAAAAAAAAAAAAAAAAAABwAAAAUQAAAAAAAAAAAAAJgAAAAAAAAAAAAAAAEAAAAIEQAAZAAAAAQAAAAAAAAAAAAAAAAAAAABAAAADxAAAGgAAAAEAAAAAAAAAAAAAAAAAAAAAQAAABAQAABsAAAABAAAAAAAAAAAAAAAAAAAAAEAAAAREAAAcAAAAAQAAAAAAAAAAAAAAAAAAAAHAAAAEhAAAAAAAAAAAAAAmQAAAAAAAAAAAAAAAQAAABQRAAB8AAAABAAAAAAAAAAAAAAAAAAAAAQAAAAVEQAAgAAAAAQAAAAAAAAAAAAAAAAAAAAHAAAAGBEAAAAAAAAAAAAAmgAAAAAAAAAAAAAABwAAAB4RAAAAAAAAAAAAAJsAAAAAAAAAAAAAAAEAAAAfEQAAkAAAAAQAAAAAAAAAAAAAAAAAAAABAAAAIBEAAJQAAAAEAAAAAAAAAAAAAAAAAAAAAQAAACERAACYAAAABAAAAAAAAAAAAAAAAAAAAAEAAAAiEQAAnAAAAAQAAAAAAAAAAAAAAAAAAAABAAAAIxEAAKAAAAAEAAAAAAAAAAAAAAAAAAAAAQAAACQRAACkAAAABAAAAAAAAAAAAAAAAAAAAAEAAAAlEQAAqAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAJhEAAKwAAAAEAAAAAAAAAAAAAAAAAAAABgAAAAYgAAAEAAAABAAAAAAAAAAOAAAAAAAAAAYAAAAHIAAAPAAAAAQAAAAAAAAACgAAAAEAAAAGAAAACCAAAGQAAAAEAAAAAAAAAA4AAAACAAAABgAAAAkgAACcAAAABAAAAAAAAAAKAAAAAwAAAAMAAAAJIQAAxAAAAAQAAAAA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CF4AAAgeAAAJnAAUB2MAAAh+AAAIPgAACdwAEgcbAAAIbgAACC4AAAm8AAAIDgAACI4AAAhOAAAJ/ABgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnCABAHCgAACGEAAAghAAAJogAACAEAAAiBAAAIQQAACeIAEAcGAAAIWQAACBkAAAmSABMHOwAACHkAAAg5AAAJ0gARBxEAAAhpAAAIKQAACbIAAAgJAAAIiQAACEkAAAnyABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcoAEQcNAAAIZQAACCUAAAmqAAAIBQAACIUAAAhFAAAJ6gAQBwgAAAhdAAAIHQAACZoAFAdTAAAIfQAACD0AAAnaABIHFwAACG0AAAgtAAAJugAACA0AAAiNAAAITQAACfoAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxgARBwsAAAhjAAAIIwAACaYAAAgDAAAIgwAACEMAAAnmABAHBwAACFsAAAgbAAAJlgAUB0MAAAh7AAAIOwAACdYAEgcTAAAIawAACCsAAAm2AAAICwAACIsAAAhLAAAJ9gAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnOABEHDwAACGcAAAgnAAAJrgAACAcAAAiHAAAIRwAACe4AEAcJAAAIXwAACB8AAAmeABQHYwAACH8AAAg/AAAJ3gASBxsAAAhvAAAILwAACb4AAAgPAAAIjwAACE8AAAn+AGAHAAAACFAAAAgQABQIcwASBx8AAAhwAAAIMAAACcEAEAcKAAAIYAAACCAAAAmhAAAIAAAACIAAAAhAAAAJ4QAQBwYAAAhYAAAIGAAACZEAEwc7AAAIeAAACDgAAAnRABEHEQAACGgAAAgoAAAJsQAACAgAAAiIAAAISAAACfEAEAcEAAAIVAAACBQAFQjjABMHKwAACHQAAAg0AAAJyQARBw0AAAhkAAAIJAAACakAAAgEAAAIhAAACEQAAAnpABAHCAAACFwAAAgcAAAJmQAUB1MAAAh8AAAIPAAACdkAEgcXAAAIbAAACCwAAAm5AAAIDAAACIwAAAhMAAAJ+QAQBwMAAAhSAAAIEgAVCKMAEwcjAAAIcgAACDIAAAnFABEHCwAACGIAAAgiAAAJpQAACAIAAAiCAAAIQgAACeUAEAcHAAAIWgAACBoAAAmVABQHQwAACHoAAAg6AAAJ1QASBxMAAAhqAAAIKgAACbUAAAgKAAAIigAACEoAAAn1ABAHBQAACFYAAAgWAEAIAAATBzMAAAh2AAAINgAACc0AEQcPAAAIZgAACCYAAAmtAAAIBgAACIYAAAhGAAAJ7QAQBwkAAAheAAAIHgAACZ0AFAdjAAAIfgAACD4AAAndABIHGwAACG4AAAguAAAJvQAACA4AAAiOAAAITgAACf0AYAcAAAAIUQAACBEAFQiDABIHHwAACHEAAAgxAAAJwwAQBwoAAAhhAAAIIQAACaMAAAgBAAAIgQAACEEAAAnjABAHBgAACFkAAAgZAAAJkwATBzsAAAh5AAAIOQAACdMAEQcRAAAIaQAACCkAAAmzAAAICQAACIkAAAhJAAAJ8wAQBwQAAAhVAAAIFQAQCAIBEwcrAAAIdQAACDUAAAnLABEHDQAACGUAAAglAAAJqwAACAUAAAiFAAAIRQAACesAEAcIAAAIXQAACB0AAAmbABQHUwAACH0AAAg9AAAJ2wASBxcAAAhtAAAILQAACbsAAAgNAAAIjQAACE0AAAn7ABAHAwAACFMAAAgTABUIwwATByMAAAhzAAAIMwAACccAEQcLAAAIYwAACCMAAAmnAAAIAwAACIMAAAhDAAAJ5wAQBwcAAAhbAAAIGwAACZcAFAdDAAAIewAACDsAAAnXABIHEwAACGsAAAgrAAAJtwAACAsAAAiLAAAISwAACfcAEAcFAAAIVwAACBcAQAgAABMHMwAACHcAAAg3AAAJzwARBw8AAAhnAAAIJwAACa8AAAgHAAAIhwAACEcAAAnvABAHCQAACF8AAAgfAAAJnwAUB2MAAAh/AAAIPwAACd8AEgcbAAAIbwAACC8AAAm/AAAIDwAACI8AAAhPAAAJ/wAQBQEAFwUBARMFEQAbBQEQEQUFABkFAQQVBUEAHQUBQBAFAwAYBQECFAUhABwFASASBQkAGgUBCBYFgQBABQAAEAUCABcFgQETBRkAGwUBGBEFBwAZBQEGFQVhAB0FAWAQBQQAGAUBAxQFMQAcBQEwEgUNABoFAQwWBcEAQAUAAAoAAABAAAAACAAAAK8AAACwAAAAsQAAALIAAACzAAAAtAAAALUAAAC2AAAAtwAAALgAAAC5AAAAugAAALsAAAC8AAAAvQAAAL4AAAC/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AAAAAAAAABwAAACrAQAArAEAAK0BAACuAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAArwEAALABAACxAQAAsgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhKkAAKypAADUqQAA/KkAALMBAAC0AQAAtQEAALYBAAC3AQAAuAEAALkBAAC6AQAAuwEAALwBAACiAQAA/KgAAAypAABIqQAAaKkAAL0BAAC+AQAAvwEAAMABAAAkqgAAeKkAAFSqAAAAAAAADAAAAMQFAAAAAAIAAAACAGCqAAAAAAAAAAAAAAAAAADOCAAAnQkAACYLAADzEQAAOQgAAAkJAACgBwAA8REAAPARAACIEAAAUQYAAEoKAADHBgAAcgcAAMQIAABtCwAA9gcAAIwIAAArCAAAZQkAAGwIAABwDAAAQgcAADcJAADtCAAAkQsAAMoFAACcCwAApQsAAAsGAAAWBgAAVAoAAIsNAACuCwAAiw8AAG0QAABgDQAA8gwAACQQAABfCwAAFAcAAN8PAAD+CwAA7xEAAOwHAAB7CAAAGwgAAFYJAABbCAAAYgwAADMHAADoFAAAuRQAACgJAACFDQAAfw0AADoJAABECQAAIAcAAL4NAACoCAAAhgkAAIkNAAD4FAAAew0AAPoMAADXFAAAdw0AAPYMAABdDQAA3gwAAEoGAACbCAAAWwYAAAAAAAAAAAAA////////////////////////////////////////////////////////////////AAECAwQFBgcICf////////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj//////8AAAAAAAAAAAIAAAAFAAAABAAAAAAAAAABAAAAAQAAAAQAAAACAAAAAgAAAAYAAAAEAAAAAQAAAAEAAAAAAAAAAgAAAAYAAAACAAAABgAAAAIAAAD/////AQAAAAAAAAAAAAAAAgAAAAIAAAABAAEBAQABAAEAAQABAQEBAQEBAQEBAQEBAQEBAQABAAEBAQABAQEBAQEBAQEBAAAAAAAALm51bGwAbm9ubWFya2luZ3JldHVybgBub3RlcXVhbABpbmZpbml0eQBsZXNzZXF1YWwAZ3JlYXRlcmVxdWFsAHBhcnRpYWxkaWZmAHN1bW1hdGlvbgBwcm9kdWN0AHBpAGludGVncmFsAE9tZWdhAHJhZGljYWwAYXBwcm94ZXF1YWwARGVsdGEAbm9uYnJlYWtpbmdzcGFjZQBsb3plbmdlAGFwcGxlAGZyYW5jAEdicmV2ZQBnYnJldmUASWRvdGFjY2VudABTY2VkaWxsYQBzY2VkaWxsYQBDYWN1dGUAY2FjdXRlAENjYXJvbgBjY2Fyb24AZGNyb2F0AC5ub3RkZWYAc3BhY2UAZXhjbGFtAHF1b3RlZGJsAG51bWJlcnNpZ24AZG9sbGFyAHBlcmNlbnQAYW1wZXJzYW5kAHF1b3RlcmlnaHQAcGFyZW5sZWZ0AHBhcmVucmlnaHQAYXN0ZXJpc2sAcGx1cwBjb21tYQBoeXBoZW4AcGVyaW9kAHNsYXNoAHplcm8Ab25lAHR3bwB0aHJlZQBmb3VyAGZpdmUAc2l4AHNldmVuAGVpZ2h0AG5pbmUAY29sb24Ac2VtaWNvbG9uAGxlc3MAZXF1YWwAZ3JlYXRlcgBxdWVzdGlvbgBhdABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAYnJhY2tldGxlZnQAYmFja3NsYXNoAGJyYWNrZXRyaWdodABhc2NpaWNpcmN1bQB1bmRlcnNjb3JlAHF1b3RlbGVmdABhAGIAYwBkAGUAZgBnAGgAaQBqAGsAbABtAG4AbwBwAHEAcgBzAHQAdQB2AHcAeAB5AHoAYnJhY2VsZWZ0AGJhcgBicmFjZXJpZ2h0AGFzY2lpdGlsZGUAZXhjbGFtZG93bgBjZW50AHN0ZXJsaW5nAGZyYWN0aW9uAHllbgBmbG9yaW4Ac2VjdGlvbgBjdXJyZW5jeQBxdW90ZXNpbmdsZQBxdW90ZWRibGxlZnQAZ3VpbGxlbW90bGVmdABndWlsc2luZ2xsZWZ0AGd1aWxzaW5nbHJpZ2h0AGZpAGZsAGVuZGFzaABkYWdnZXIAZGFnZ2VyZGJsAHBlcmlvZGNlbnRlcmVkAHBhcmFncmFwaABidWxsZXQAcXVvdGVzaW5nbGJhc2UAcXVvdGVkYmxiYXNlAHF1b3RlZGJscmlnaHQAZ3VpbGxlbW90cmlnaHQAZWxsaXBzaXMAcGVydGhvdXNhbmQAcXVlc3Rpb25kb3duAGdyYXZlAGFjdXRlAGNpcmN1bWZsZXgAdGlsZGUAbWFjcm9uAGJyZXZlAGRvdGFjY2VudABkaWVyZXNpcwByaW5nAGNlZGlsbGEAaHVuZ2FydW1sYXV0AG9nb25lawBjYXJvbgBlbWRhc2gAQUUAb3JkZmVtaW5pbmUATHNsYXNoAE9zbGFzaABPRQBvcmRtYXNjdWxpbmUAYWUAZG90bGVzc2kAbHNsYXNoAG9zbGFzaABvZQBnZXJtYW5kYmxzAG9uZXN1cGVyaW9yAGxvZ2ljYWxub3QAbXUAdHJhZGVtYXJrAEV0aABvbmVoYWxmAHBsdXNtaW51cwBUaG9ybgBvbmVxdWFydGVyAGRpdmlkZQBicm9rZW5iYXIAZGVncmVlAHRob3JuAHRocmVlcXVhcnRlcnMAdHdvc3VwZXJpb3IAcmVnaXN0ZXJlZABtaW51cwBldGgAbXVsdGlwbHkAdGhyZWVzdXBlcmlvcgBjb3B5cmlnaHQAQWFjdXRlAEFjaXJjdW1mbGV4AEFkaWVyZXNpcwBBZ3JhdmUAQXJpbmcAQXRpbGRlAENjZWRpbGxhAEVhY3V0ZQBFY2lyY3VtZmxleABFZGllcmVzaXMARWdyYXZlAElhY3V0ZQBJY2lyY3VtZmxleABJZGllcmVzaXMASWdyYXZlAE50aWxkZQBPYWN1dGUAT2NpcmN1bWZsZXgAT2RpZXJlc2lzAE9ncmF2ZQBPdGlsZGUAU2Nhcm9uAFVhY3V0ZQBVY2lyY3VtZmxleABVZGllcmVzaXMAVWdyYXZlAFlhY3V0ZQBZZGllcmVzaXMAWmNhcm9uAGFhY3V0ZQBhY2lyY3VtZmxleABhZGllcmVzaXMAYWdyYXZlAGFyaW5nAGF0aWxkZQBjY2VkaWxsYQBlYWN1dGUAZWNpcmN1bWZsZXgAZWRpZXJlc2lzAGVncmF2ZQBpYWN1dGUAaWNpcmN1bWZsZXgAaWRpZXJlc2lzAGlncmF2ZQBudGlsZGUAb2FjdXRlAG9jaXJjdW1mbGV4AG9kaWVyZXNpcwBvZ3JhdmUAb3RpbGRlAHNjYXJvbgB1YWN1dGUAdWNpcmN1bWZsZXgAdWRpZXJlc2lzAHVncmF2ZQB5YWN1dGUAeWRpZXJlc2lzAHpjYXJvbgBleGNsYW1zbWFsbABIdW5nYXJ1bWxhdXRzbWFsbABkb2xsYXJvbGRzdHlsZQBkb2xsYXJzdXBlcmlvcgBhbXBlcnNhbmRzbWFsbABBY3V0ZXNtYWxsAHBhcmVubGVmdHN1cGVyaW9yAHBhcmVucmlnaHRzdXBlcmlvcgB0d29kb3RlbmxlYWRlcgBvbmVkb3RlbmxlYWRlcgB6ZXJvb2xkc3R5bGUAb25lb2xkc3R5bGUAdHdvb2xkc3R5bGUAdGhyZWVvbGRzdHlsZQBmb3Vyb2xkc3R5bGUAZml2ZW9sZHN0eWxlAHNpeG9sZHN0eWxlAHNldmVub2xkc3R5bGUAZWlnaHRvbGRzdHlsZQBuaW5lb2xkc3R5bGUAY29tbWFzdXBlcmlvcgB0aHJlZXF1YXJ0ZXJzZW1kYXNoAHBlcmlvZHN1cGVyaW9yAHF1ZXN0aW9uc21hbGwAYXN1cGVyaW9yAGJzdXBlcmlvcgBjZW50c3VwZXJpb3IAZHN1cGVyaW9yAGVzdXBlcmlvcgBpc3VwZXJpb3IAbHN1cGVyaW9yAG1zdXBlcmlvcgBuc3VwZXJpb3IAb3N1cGVyaW9yAHJzdXBlcmlvcgBzc3VwZXJpb3IAdHN1cGVyaW9yAGZmAGZmaQBmZmwAcGFyZW5sZWZ0aW5mZXJpb3IAcGFyZW5yaWdodGluZmVyaW9yAENpcmN1bWZsZXhzbWFsbABoeXBoZW5zdXBlcmlvcgBHcmF2ZXNtYWxsAEFzbWFsbABCc21hbGwAQ3NtYWxsAERzbWFsbABFc21hbGwARnNtYWxsAEdzbWFsbABIc21hbGwASXNtYWxsAEpzbWFsbABLc21hbGwATHNtYWxsAE1zbWFsbABOc21hbGwAT3NtYWxsAFBzbWFsbABRc21hbGwAUnNtYWxsAFNzbWFsbABUc21hbGwAVXNtYWxsAFZzbWFsbABXc21hbGwAWHNtYWxsAFlzbWFsbABac21hbGwAY29sb25tb25ldGFyeQBvbmVmaXR0ZWQAcnVwaWFoAFRpbGRlc21hbGwAZXhjbGFtZG93bnNtYWxsAGNlbnRvbGRzdHlsZQBMc2xhc2hzbWFsbABTY2Fyb25zbWFsbABaY2Fyb25zbWFsbABEaWVyZXNpc3NtYWxsAEJyZXZlc21hbGwAQ2Fyb25zbWFsbABEb3RhY2NlbnRzbWFsbABNYWNyb25zbWFsbABmaWd1cmVkYXNoAGh5cGhlbmluZmVyaW9yAE9nb25la3NtYWxsAFJpbmdzbWFsbABDZWRpbGxhc21hbGwAcXVlc3Rpb25kb3duc21hbGwAb25lZWlnaHRoAHRocmVlZWlnaHRocwBmaXZlZWlnaHRocwBzZXZlbmVpZ2h0aHMAb25ldGhpcmQAdHdvdGhpcmRzAHplcm9zdXBlcmlvcgBmb3Vyc3VwZXJpb3IAZml2ZXN1cGVyaW9yAHNpeHN1cGVyaW9yAHNldmVuc3VwZXJpb3IAZWlnaHRzdXBlcmlvcgBuaW5lc3VwZXJpb3IAemVyb2luZmVyaW9yAG9uZWluZmVyaW9yAHR3b2luZmVyaW9yAHRocmVlaW5mZXJpb3IAZm91cmluZmVyaW9yAGZpdmVpbmZlcmlvcgBzaXhpbmZlcmlvcgBzZXZlbmluZmVyaW9yAGVpZ2h0aW5mZXJpb3IAbmluZWluZmVyaW9yAGNlbnRpbmZlcmlvcgBkb2xsYXJpbmZlcmlvcgBwZXJpb2RpbmZlcmlvcgBjb21tYWluZmVyaW9yAEFncmF2ZXNtYWxsAEFhY3V0ZXNtYWxsAEFjaXJjdW1mbGV4c21hbGwAQXRpbGRlc21hbGwAQWRpZXJlc2lzc21hbGwAQXJpbmdzbWFsbABBRXNtYWxsAENjZWRpbGxhc21hbGwARWdyYXZlc21hbGwARWFjdXRlc21hbGwARWNpcmN1bWZsZXhzbWFsbABFZGllcmVzaXNzbWFsbABJZ3JhdmVzbWFsbABJYWN1dGVzbWFsbABJY2lyY3VtZmxleHNtYWxsAElkaWVyZXNpc3NtYWxsAEV0aHNtYWxsAE50aWxkZXNtYWxsAE9ncmF2ZXNtYWxsAE9hY3V0ZXNtYWxsAE9jaXJjdW1mbGV4c21hbGwAT3RpbGRlc21hbGwAT2RpZXJlc2lzc21hbGwAT0VzbWFsbABPc2xhc2hzbWFsbABVZ3JhdmVzbWFsbABVYWN1dGVzbWFsbABVY2lyY3VtZmxleHNtYWxsAFVkaWVyZXNpc3NtYWxsAFlhY3V0ZXNtYWxsAFRob3Juc21hbGwAWWRpZXJlc2lzc21hbGwAMDAxLjAwMAAwMDEuMDAxADAwMS4wMDIAMDAxLjAwMwBCbGFjawBCb2xkAEJvb2sATGlnaHQATWVkaXVtAFJlZ3VsYXIAUm9tYW4AU2VtaWJvbGQA/QAAAAYABQELARIBGwEmAS0BNQH2AkoBVAFfAWgBbQFzAXoBgQGHAYwBkAGUAZoBnwGkAagBrgG0AbkBvwHJAc4B1AHcAeUB6AHqAewB7gHwAfIB9AH2AfgB+gH8Af4BAAICAgQCBgIIAgoCDAIOAhACEgIUAhYCGAIaAhwCKAIyAj8CSwLTA2ACYgJkAmYCaAJqAmwCbgJwAnICdAJ2AngCegJ8An4CgAKCAoQChgKIAooCjAKOApACkgKUAp4CogKtAl8FcAV9BYYFzgXoBRoGQwZgBkoGVgZtBmcGdAZ9BpoGhAaQBqEGvgaoBrQGxQbMBukG0wbfBvAG/gYbBwUHEQdHA+8EwwLIAuUCcQNnA4gEFgVCBa0E2QMHBBcAPgRUBCAAwwQpADMA2gKqBEAATABWAF4AYQBBBF4EagBrBH4ExgO4Ap8EcADeAngAhAAPA6IDsQOKAGkFdgX5BVsEhQRAAzcEAgOUA1YCPwHeBJsAKQcyBtEC7QIdAysDOgM9A04DWAN4A4cDugNTBY0FTAWZBaMFqgWxBb0FxwXVBdwFowDyBQcGDgYkBm4E3wPqA/AD9wP9AxAEFQQdBCoEMQRNBHcEAAb3BjwGMwflBLcEJwUrBiIHzQT2BCEFKwWTBAoFNAW7BNME/ASpAK8AtgC9AMgA0QDaAOEA6ADvAPYAAAAAAAAAAAAAAAAA/QAFAQsBEgEbASYBLQE1AT8BSgFUAV8BaAFtAXMBegGBAYcBjAGQAZQBmgGfAaQBqAGuAbQBuQG/AckBzgHUAdwB5QHoAeoB7AHuAfAB8gH0AfYB+AH6AfwB/gEAAgICBAIGAggCCgIMAg4CEAISAhQCFgIYAhoCHAIoAjICPwJLAlYCYAJiAmQCZgJoAmoCbAJuAnACcgJ0AnYCeAJ6AnwCfgKAAoIChAKGAogCigKMAo4CkAKSApQCngKiAq0CuALDAsgC0QLaAt4C5QLtAvYCAgMPAx0DKwM6Az0DQANHA04DWANnA3EDeAOHA5QDogOxA7oDxgPTA9kD3wPqA/AD9wP9AwcEEAQVBB0EKgQxBDcEPgRBBE0EVARbBF4EawRuBHcEfgSFBIgEkwSfBKoErQS3BLsEwwTNBNME3gTlBO8E9gT8BAoFFgUhBScFKwU0BUIFTAVTBV8FaQVwBXYFfQWG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ZTGAJmYygCZjN4AnCTiAJwg5gCcHMoomHiSyJLYkuiS+JMIkxiTKJM4k0iTWMIAkYDGAJGEygCRiM4AkYzSAJGQ1gCRlNoAkZjeAJGc4gCRoOYAkaTOKJwwk8iT2JPok/iUCJQYlCiUOJRIlFjCAJ3YxgCd3MoAneDOAJ3k0gCd6NYAnezaAJ3w3gCd9OIAnfjmAJ380iicNJTIlNiU6JT4lQiVGJUolTiVSJVYwgCeAMYAngTKAJ4IzgCeDNIAnhDWAJ4U2gCeGN4AnhziAJ4g5gCeJNYonDiVyJXYleiV+JYIlhiWKJY4lkiWWMIAnijGAJ4sygCeMM4AnjTSAJ441gCePNoAnkDeAJ5E4gCeSOYAnkzaKJw8lsiW2JbolviXCJcYlyiXOJdIl1jCAJ5QxgCGSMoAnozOAIZQ0gCGVNYAnmTaAJ5s3gCecOIAnnTmAJ543iicRJfIl9iX6Jf4mAiYGJgomDiYSJhYwgCefMYAnoDKAJ6EzgCeiNIAnpDWAJ6U2gCemN4AnpziAJ6g5gCepOIonEiYyJjYmOiY+JkImRiZKJk4mUiZWMIAnqzGAJ60ygCevM4AnsjSAJ7M1gCe1NoAnuDeAJ7o4gCe7OYAnvDmKJxMmciZ2JnomfiaCJoYmiiaOJpImljCAJ70xgCe+MoAnmjOAJ6o0gCe2NYAnuTaAJ5g3gCe0OIAntzmAJ6wyiicCJrIm4CbkJugm7CbwJvQm+Cb8JwAwhycUJsQmyCbMJtAm1CbYJtwwgCeuMYAnsTKAJwMzgCdQNIAnUjWAJ242gCdwMYAnFTKAJxYzgCcXNIAnGDWAJxk2gCcaN4AnGziAJxw5gCciM4onBCccJyAnJCcoJywnMCc0JzgnPCdAMIAnIzGAJyQygCclM4AnJjSAJyc1gCYFNoAnKTeAJyo4gCcrOYAnLDSKJg4nXCdgJ2QnaCdsJ3AndCd4J3wngDCAJy0xgCcuMoAnLzOAJzA0gCcxNYAnMjaAJzM3gCc0OIAnNTmAJzY1iicGJ5wnoCekJ6gnrCewJ7QnuCe8J8AwgCc3MYAnODKAJzkzgCc6NIAnOzWAJzw2gCc9N4AnPjiAJz85gCdANoonHSfcJ+An5CfoJ+wn8Cf0J/gn/CgAMIAnQTGAJ0IygCdDM4AnRDSAJ0U1gCdGNoAnRzeAJ0g4gCdJOYAnSjeKJx4o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",isDataURI(wasmBinaryFile)||(wasmBinaryFile=locateFile(wasmBinaryFile));function getBinary(A){try{if(A==wasmBinaryFile&&wasmBinary)return new Uint8Array(wasmBinary);var I=tryParseAsDataURI(A);if(I)return I;if(readBinary)return readBinary(A);throw"both async and sync fetching of the wasm failed"}catch(g){abort(g)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile))return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(A){if(!A.ok)throw"failed to load wasm binary file at '"+wasmBinaryFile+"'";return A.arrayBuffer()}).catch(function(){return getBinary(wasmBinaryFile)});if(readAsync)return new Promise(function(A,I){readAsync(wasmBinaryFile,function(g){A(new Uint8Array(g))},I)})}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var A={a:asmLibraryArg};function I(B,D){var i=B.exports;Module.asm=i,wasmMemory=Module.asm.u,updateGlobalBufferAndViews(wasmMemory.buffer),wasmTable=Module.asm.K,addOnInit(Module.asm.v),removeRunDependency()}addRunDependency();function g(B){I(B.instance)}function C(B){return getBinaryPromise().then(function(D){return WebAssembly.instantiate(D,A)}).then(function(D){return D}).then(B,function(D){err("failed to asynchronously prepare wasm: "+D),abort(D)})}function Q(){return!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch=="function"?fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(B){var D=WebAssembly.instantiateStreaming(B,A);return D.then(g,function(i){return err("wasm streaming compile failed: "+i),err("falling back to ArrayBuffer instantiation"),C(g)})}):C(g)}if(Module.instantiateWasm)try{var E=Module.instantiateWasm(A,I);return E}catch(B){return err("Module.instantiateWasm callback failed with error: "+B),!1}return Q().catch(readyPromiseReject),{}}function callRuntimeCallbacks(A){for(;A.length>0;){var I=A.shift();if(typeof I=="function"){I(Module);continue}var g=I.func;typeof g=="number"?I.arg===void 0?getWasmTableEntry(g)():getWasmTableEntry(g)(I.arg):g(I.arg===void 0?null:I.arg)}}function getWasmTableEntry(A){return wasmTable.get(A)}function __embind_register_bigint(A,I,g,C,Q){}function getShiftFromSize(A){switch(A){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+A)}}function embind_init_charCodes(){for(var A=new Array(256),I=0;I<256;++I)A[I]=String.fromCharCode(I);embind_charCodes=A}var embind_charCodes=void 0;function readLatin1String(A){for(var I="",g=A;HEAPU8[g];)I+=embind_charCodes[HEAPU8[g++]];return I}var awaitingDependencies={},registeredTypes={},char_0=48,char_9=57;function makeLegalFunctionName(A){if(A===void 0)return"_unknown";A=A.replace(/[^a-zA-Z0-9_]/g,"$");var I=A.charCodeAt(0);return I>=char_0&&I<=char_9?"_"+A:A}function createNamedFunction(A,I){return A=makeLegalFunctionName(A),new Function("body","return function "+A+`() { + "use strict"; return body.apply(this, arguments); +}; +`)(I)}function extendError(A,I){var g=createNamedFunction(I,function(C){this.name=I,this.message=C;var Q=new Error(C).stack;Q!==void 0&&(this.stack=this.toString()+` +`+Q.replace(/^Error(:[^\n]*)?\n/,""))});return g.prototype=Object.create(A.prototype),g.prototype.constructor=g,g.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},g}var BindingError=void 0;function throwBindingError(A){throw new BindingError(A)}function registerType(A,I,g){if(g=g||{},!("argPackAdvance"in I))throw new TypeError("registerType registeredInstance requires argPackAdvance");var C=I.name;if(A||throwBindingError('type "'+C+'" must have a positive integer typeid pointer'),registeredTypes.hasOwnProperty(A)){if(g.ignoreDuplicateRegistrations)return;throwBindingError("Cannot register type '"+C+"' twice")}if(registeredTypes[A]=I,awaitingDependencies.hasOwnProperty(A)){var Q=awaitingDependencies[A];delete awaitingDependencies[A],Q.forEach(function(E){E()})}}function __embind_register_bool(A,I,g,C,Q){var E=getShiftFromSize(g);I=readLatin1String(I),registerType(A,{name:I,fromWireType:function(B){return!!B},toWireType:function(B,D){return D?C:Q},argPackAdvance:8,readValueFromPointer:function(B){var D;if(g===1)D=HEAP8;else if(g===2)D=HEAP16;else if(g===4)D=HEAP32;else throw new TypeError("Unknown boolean type size: "+I);return this.fromWireType(D[B>>E])},destructorFunction:null})}var emval_free_list=[],emval_handle_array=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function __emval_decref(A){A>4&&--emval_handle_array[A].refcount===0&&(emval_handle_array[A]=void 0,emval_free_list.push(A))}function count_emval_handles(){for(var A=0,I=5;I>1]}:function(Q){return HEAPU16[Q>>1]};case 2:return g?function(Q){return HEAP32[Q>>2]}:function(Q){return HEAPU32[Q>>2]};default:throw new TypeError("Unknown integer type: "+A)}}function __embind_register_integer(A,I,g,C,Q){I=readLatin1String(I);var E=getShiftFromSize(g),B=function(F){return F};if(C===0){var D=32-8*g;B=function(F){return F<>>D}}var i=I.includes("unsigned"),o=function(F,y){},w;i?w=function(F,y){return o(y,this.name),y>>>0}:w=function(F,y){return o(y,this.name),y},registerType(A,{name:I,fromWireType:B,toWireType:w,argPackAdvance:8,readValueFromPointer:integerReadValueFromPointer(I,E,C!==0),destructorFunction:null})}function __embind_register_memory_view(A,I,g){var C=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],Q=C[I];function E(B){B=B>>2;var D=HEAPU32,i=D[B],o=D[B+1];return new Q(buffer,o,i)}g=readLatin1String(g),registerType(A,{name:g,fromWireType:E,argPackAdvance:8,readValueFromPointer:E},{ignoreDuplicateRegistrations:!0})}function __embind_register_std_string(A,I){I=readLatin1String(I);var g=I==="std::string";registerType(A,{name:I,fromWireType:function(C){var Q=HEAPU32[C>>2],E;if(g)for(var B=C+4,D=0;D<=Q;++D){var i=C+4+D;if(D==Q||HEAPU8[i]==0){var o=i-B,w=UTF8ToString(B,o);E===void 0?E=w:(E+="\0",E+=w),B=i+1}}else{for(var F=new Array(Q),D=0;D>2]=D,g&&B)stringToUTF8(Q,i+4,D+1);else if(B)for(var o=0;o255&&(_free(i),throwBindingError("String has UTF-16 code units that do not fit in 8 bits")),HEAPU8[i+4+o]=w}else for(var o=0;o>2],w=E(),F,y=i+4,N=0;N<=o;++N){var h=i+4+N*I;if(N==o||w[h>>D]==0){var G=h-y,s=C(y,G);F===void 0?F=s:(F+="\0",F+=s),y=h+I}}return _free(i),F},toWireType:function(i,o){typeof o!="string"&&throwBindingError("Cannot pass non-string to C++ string type "+g);var w=B(o),F=_malloc(4+w+I);return HEAPU32[F>>2]=w>>D,Q(o,F+4,w+I),i!==null&&i.push(_free,F),F},argPackAdvance:8,readValueFromPointer:simpleReadValueFromPointer,destructorFunction:function(i){_free(i)}})}function __embind_register_void(A,I){I=readLatin1String(I),registerType(A,{isVoid:!0,name:I,argPackAdvance:0,fromWireType:function(){},toWireType:function(g,C){}})}function __emscripten_throw_longjmp(){throw"longjmp"}function _emscripten_memcpy_big(A,I,g){HEAPU8.copyWithin(A,I,I+g)}function emscripten_realloc_buffer(A){try{return wasmMemory.grow(A-buffer.byteLength+65535>>>16),updateGlobalBufferAndViews(wasmMemory.buffer),1}catch{}}function _emscripten_resize_heap(A){var I=HEAPU8.length;A=A>>>0;var g=2147483648;if(A>g)return!1;for(var C=1;C<=4;C*=2){var Q=I*(1+.2/C);Q=Math.min(Q,A+100663296);var E=Math.min(g,alignUp(Math.max(A,Q),65536)),B=emscripten_realloc_buffer(E);if(B)return!0}return!1}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var A=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",I={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:A,_:getExecutableName()};for(var g in ENV)ENV[g]===void 0?delete I[g]:I[g]=ENV[g];var C=[];for(var g in I)C.push(g+"="+I[g]);getEnvStrings.strings=C}return getEnvStrings.strings}function _environ_get(A,I){var g=0;return getEnvStrings().forEach(function(C,Q){var E=I+g;HEAP32[A+Q*4>>2]=E,writeAsciiToMemory(C,E),g+=C.length+1}),0}function _environ_sizes_get(A,I){var g=getEnvStrings();HEAP32[A>>2]=g.length;var C=0;return g.forEach(function(Q){C+=Q.length+1}),HEAP32[I>>2]=C,0}function _getTempRet0(){return getTempRet0()}function _setTempRet0(A){setTempRet0(A)}embind_init_charCodes(),BindingError=Module.BindingError=extendError(Error,"BindingError"),Module.InternalError=extendError(Error,"InternalError"),init_emval();function intArrayToString(A){for(var I=[],g=0;g255&&(C&=255),I.push(String.fromCharCode(C))}return I.join("")}var decodeBase64=typeof atob=="function"?atob:function(A){var I="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",g="",C,Q,E,B,D,i,o,w=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do B=I.indexOf(A.charAt(w++)),D=I.indexOf(A.charAt(w++)),i=I.indexOf(A.charAt(w++)),o=I.indexOf(A.charAt(w++)),C=B<<2|D>>4,Q=(D&15)<<4|i>>2,E=(i&3)<<6|o,g=g+String.fromCharCode(C),i!==64&&(g=g+String.fromCharCode(Q)),o!==64&&(g=g+String.fromCharCode(E));while(w0||(preRun(),runDependencies>0))return;function I(){calledRun||(calledRun=!0,Module.calledRun=!0,!ABORT&&(initRuntime(),readyPromiseResolve(Module),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),I()},1)):I()}if(Module.run=run,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();return run(),Module.ready}})();export{Module as default}; diff --git a/main/manager-web/public/generator/assets/index-B8r0c7xg.js b/main/manager-web/public/generator/assets/index-B8r0c7xg.js new file mode 100644 index 00000000..dd4b0e58 --- /dev/null +++ b/main/manager-web/public/generator/assets/index-B8r0c7xg.js @@ -0,0 +1,81 @@ +(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))i(o);new MutationObserver(o=>{for(const n of o)if(n.type==="childList")for(const r of n.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&i(r)}).observe(document,{childList:!0,subtree:!0});function t(o){const n={};return o.integrity&&(n.integrity=o.integrity),o.referrerPolicy&&(n.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?n.credentials="include":o.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function i(o){if(o.ep)return;o.ep=!0;const n=t(o);fetch(o.href,n)}})();/** +* @vue/shared v3.5.26 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Pr(A){const e=Object.create(null);for(const t of A.split(","))e[t]=1;return t=>t in e}const _A={},hi=[],nt=()=>{},tI=()=>!1,Bn=A=>A.charCodeAt(0)===111&&A.charCodeAt(1)===110&&(A.charCodeAt(2)>122||A.charCodeAt(2)<97),Vr=A=>A.startsWith("onUpdate:"),ue=Object.assign,Wr=(A,e)=>{const t=A.indexOf(e);t>-1&&A.splice(t,1)},iB=Object.prototype.hasOwnProperty,JA=(A,e)=>iB.call(A,e),yA=Array.isArray,fi=A=>co(A)==="[object Map]",Qn=A=>co(A)==="[object Set]",Gg=A=>co(A)==="[object Date]",FA=A=>typeof A=="function",ee=A=>typeof A=="string",It=A=>typeof A=="symbol",KA=A=>A!==null&&typeof A=="object",iI=A=>(KA(A)||FA(A))&&FA(A.then)&&FA(A.catch),oI=Object.prototype.toString,co=A=>oI.call(A),oB=A=>co(A).slice(8,-1),nI=A=>co(A)==="[object Object]",qr=A=>ee(A)&&A!=="NaN"&&A[0]!=="-"&&""+parseInt(A,10)===A,Oi=Pr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cn=A=>{const e=Object.create(null);return t=>e[t]||(e[t]=A(t))},nB=/-\w/g,Je=cn(A=>A.replace(nB,e=>e.slice(1).toUpperCase())),rB=/\B([A-Z])/g,Ii=cn(A=>A.replace(rB,"-$1").toLowerCase()),En=cn(A=>A.charAt(0).toUpperCase()+A.slice(1)),xn=cn(A=>A?`on${En(A)}`:""),Yt=(A,e)=>!Object.is(A,e),To=(A,...e)=>{for(let t=0;t{Object.defineProperty(A,e,{configurable:!0,enumerable:!1,writable:i,value:t})},un=A=>{const e=parseFloat(A);return isNaN(e)?A:e};let Lg;const hn=()=>Lg||(Lg=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function VA(A){if(yA(A)){const e={};for(let t=0;t{if(t){const i=t.split(sB);i.length>1&&(e[i[0].trim()]=i[1].trim())}}),e}function kA(A){let e="";if(ee(A))e=A;else if(yA(A))for(let t=0;tfn(t,e))}const sI=A=>!!(A&&A.__v_isRef===!0),F=A=>ee(A)?A:A==null?"":yA(A)||KA(A)&&(A.toString===oI||!FA(A.toString))?sI(A)?F(A.value):JSON.stringify(A,aI,2):String(A),aI=(A,e)=>sI(e)?aI(A,e.value):fi(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((t,[i,o],n)=>(t[Jn(i,n)+" =>"]=o,t),{})}:Qn(e)?{[`Set(${e.size})`]:[...e.values()].map(t=>Jn(t))}:It(e)?Jn(e):KA(e)&&!yA(e)&&!nI(e)?String(e):e,Jn=(A,e="")=>{var t;return It(A)?`Symbol(${(t=A.description)!=null?t:e})`:A};/** +* @vue/reactivity v3.5.26 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let ke;class II{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=ke,!e&&ke&&(this.index=(ke.scopes||(ke.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes)for(e=0,t=this.scopes.length;e0&&--this._on===0&&(ke=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){this._active=!1;let t,i;for(t=0,i=this.effects.length;t0)return;if(Vi){let e=Vi;for(Vi=void 0;e;){const t=e.next;e.next=void 0,e.flags&=-9,e=t}}let A;for(;Pi;){let e=Pi;for(Pi=void 0;e;){const t=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(i){A||(A=i)}e=t}}if(A)throw A}function QI(A){for(let e=A.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function cI(A){let e,t=A.depsTail,i=t;for(;i;){const o=i.prevDep;i.version===-1?(i===t&&(t=o),Xr(i),uB(i)):e=i,i.dep.activeLink=i.prevActiveLink,i.prevActiveLink=void 0,i=o}A.deps=e,A.depsTail=t}function ar(A){for(let e=A.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(EI(e.dep.computed)||e.dep.version!==e.version))return!0;return!!A._dirty}function EI(A){if(A.flags&4&&!(A.flags&16)||(A.flags&=-17,A.globalVersion===$i)||(A.globalVersion=$i,!A.isSSR&&A.flags&128&&(!A.deps&&!A._dirty||!ar(A))))return;A.flags|=2;const e=A.dep,t=OA,i=_e;OA=A,_e=!0;try{QI(A);const o=A.fn(A._value);(e.version===0||Yt(o,A._value))&&(A.flags|=128,A._value=o,e.version++)}catch(o){throw e.version++,o}finally{OA=t,_e=i,cI(A),A.flags&=-3}}function Xr(A,e=!1){const{dep:t,prevSub:i,nextSub:o}=A;if(i&&(i.nextSub=o,A.prevSub=void 0),o&&(o.prevSub=i,A.nextSub=void 0),t.subs===A&&(t.subs=i,!i&&t.computed)){t.computed.flags&=-5;for(let n=t.computed.deps;n;n=n.nextDep)Xr(n,!0)}!e&&!--t.sc&&t.map&&t.map.delete(t.key)}function uB(A){const{prevDep:e,nextDep:t}=A;e&&(e.nextDep=t,A.prevDep=void 0),t&&(t.prevDep=e,A.nextDep=void 0)}let _e=!0;const uI=[];function wt(){uI.push(_e),_e=!1}function Dt(){const A=uI.pop();_e=A===void 0?!0:A}function Ug(A){const{cleanup:e}=A;if(A.cleanup=void 0,e){const t=OA;OA=void 0;try{e()}finally{OA=t}}}let $i=0;class hB{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class zr{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!OA||!_e||OA===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==OA)t=this.activeLink=new hB(OA,this),OA.deps?(t.prevDep=OA.depsTail,OA.depsTail.nextDep=t,OA.depsTail=t):OA.deps=OA.depsTail=t,hI(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){const i=t.nextDep;i.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=i),t.prevDep=OA.depsTail,t.nextDep=void 0,OA.depsTail.nextDep=t,OA.depsTail=t,OA.deps===t&&(OA.deps=i)}return t}trigger(e){this.version++,$i++,this.notify(e)}notify(e){jr();try{for(let t=this.subs;t;t=t.prevSub)t.sub.notify()&&t.sub.dep.notify()}finally{Zr()}}}function hI(A){if(A.dep.sc++,A.sub.flags&4){const e=A.dep.computed;if(e&&!A.dep.subs){e.flags|=20;for(let i=e.deps;i;i=i.nextDep)hI(i)}const t=A.dep.subs;t!==A&&(A.prevSub=t,t&&(t.nextSub=A)),A.dep.subs=A}}const Ir=new WeakMap,ri=Symbol(""),Cr=Symbol(""),Ao=Symbol("");function ce(A,e,t){if(_e&&OA){let i=Ir.get(A);i||Ir.set(A,i=new Map);let o=i.get(t);o||(i.set(t,o=new zr),o.map=i,o.key=t),o.track()}}function ut(A,e,t,i,o,n){const r=Ir.get(A);if(!r){$i++;return}const g=s=>{s&&s.trigger()};if(jr(),e==="clear")r.forEach(g);else{const s=yA(A),a=s&&qr(t);if(s&&t==="length"){const I=Number(i);r.forEach((l,C)=>{(C==="length"||C===Ao||!It(C)&&C>=I)&&g(l)})}else switch((t!==void 0||r.has(void 0))&&g(r.get(t)),a&&g(r.get(Ao)),e){case"add":s?a&&g(r.get("length")):(g(r.get(ri)),fi(A)&&g(r.get(Cr)));break;case"delete":s||(g(r.get(ri)),fi(A)&&g(r.get(Cr)));break;case"set":fi(A)&&g(r.get(ri));break}}Zr()}function li(A){const e=xA(A);return e===A?e:(ce(e,"iterate",Ao),xe(A)?e:e.map(Oe))}function dn(A){return ce(A=xA(A),"iterate",Ao),A}function Ut(A,e){return kt(A)?gi(A)?Di(Oe(e)):Di(e):Oe(e)}const fB={__proto__:null,[Symbol.iterator](){return Hn(this,Symbol.iterator,A=>Ut(this,A))},concat(...A){return li(this).concat(...A.map(e=>yA(e)?li(e):e))},entries(){return Hn(this,"entries",A=>(A[1]=Ut(this,A[1]),A))},every(A,e){return lt(this,"every",A,e,void 0,arguments)},filter(A,e){return lt(this,"filter",A,e,t=>t.map(i=>Ut(this,i)),arguments)},find(A,e){return lt(this,"find",A,e,t=>Ut(this,t),arguments)},findIndex(A,e){return lt(this,"findIndex",A,e,void 0,arguments)},findLast(A,e){return lt(this,"findLast",A,e,t=>Ut(this,t),arguments)},findLastIndex(A,e){return lt(this,"findLastIndex",A,e,void 0,arguments)},forEach(A,e){return lt(this,"forEach",A,e,void 0,arguments)},includes(...A){return Yn(this,"includes",A)},indexOf(...A){return Yn(this,"indexOf",A)},join(A){return li(this).join(A)},lastIndexOf(...A){return Yn(this,"lastIndexOf",A)},map(A,e){return lt(this,"map",A,e,void 0,arguments)},pop(){return Mi(this,"pop")},push(...A){return Mi(this,"push",A)},reduce(A,...e){return Mg(this,"reduce",A,e)},reduceRight(A,...e){return Mg(this,"reduceRight",A,e)},shift(){return Mi(this,"shift")},some(A,e){return lt(this,"some",A,e,void 0,arguments)},splice(...A){return Mi(this,"splice",A)},toReversed(){return li(this).toReversed()},toSorted(A){return li(this).toSorted(A)},toSpliced(...A){return li(this).toSpliced(...A)},unshift(...A){return Mi(this,"unshift",A)},values(){return Hn(this,"values",A=>Ut(this,A))}};function Hn(A,e,t){const i=dn(A),o=i[e]();return i!==A&&!xe(A)&&(o._next=o.next,o.next=()=>{const n=o._next();return n.done||(n.value=t(n.value)),n}),o}const dB=Array.prototype;function lt(A,e,t,i,o,n){const r=dn(A),g=r!==A&&!xe(A),s=r[e];if(s!==dB[e]){const l=s.apply(A,n);return g?Oe(l):l}let a=t;r!==A&&(g?a=function(l,C){return t.call(this,Ut(A,l),C,A)}:t.length>2&&(a=function(l,C){return t.call(this,l,C,A)}));const I=s.call(r,a,i);return g&&o?o(I):I}function Mg(A,e,t,i){const o=dn(A);let n=t;return o!==A&&(xe(A)?t.length>3&&(n=function(r,g,s){return t.call(this,r,g,s,A)}):n=function(r,g,s){return t.call(this,r,Ut(A,g),s,A)}),o[e](n,...i)}function Yn(A,e,t){const i=xA(A);ce(i,"iterate",Ao);const o=i[e](...t);return(o===-1||o===!1)&&eg(t[0])?(t[0]=xA(t[0]),i[e](...t)):o}function Mi(A,e,t=[]){wt(),jr();const i=xA(A)[e].apply(A,t);return Zr(),Dt(),i}const pB=Pr("__proto__,__v_isRef,__isVue"),fI=new Set(Object.getOwnPropertyNames(Symbol).filter(A=>A!=="arguments"&&A!=="caller").map(A=>Symbol[A]).filter(It));function mB(A){It(A)||(A=String(A));const e=xA(this);return ce(e,"has",A),e.hasOwnProperty(A)}class dI{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,i){if(t==="__v_skip")return e.__v_skip;const o=this._isReadonly,n=this._isShallow;if(t==="__v_isReactive")return!o;if(t==="__v_isReadonly")return o;if(t==="__v_isShallow")return n;if(t==="__v_raw")return i===(o?n?NB:wI:n?yI:mI).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(i)?e:void 0;const r=yA(e);if(!o){let s;if(r&&(s=fB[t]))return s;if(t==="hasOwnProperty")return mB}const g=Reflect.get(e,t,le(e)?e:i);if((It(t)?fI.has(t):pB(t))||(o||ce(e,"get",t),n))return g;if(le(g)){const s=r&&qr(t)?g:g.value;return o&&KA(s)?Br(s):s}return KA(g)?o?Br(g):pn(g):g}}class pI extends dI{constructor(e=!1){super(!1,e)}set(e,t,i,o){let n=e[t];const r=yA(e)&&qr(t);if(!this._isShallow){const a=kt(n);if(!xe(i)&&!kt(i)&&(n=xA(n),i=xA(i)),!r&&le(n)&&!le(i))return a||(n.value=i),!0}const g=r?Number(t)A,vo=A=>Reflect.getPrototypeOf(A);function vB(A,e,t){return function(...i){const o=this.__v_raw,n=xA(o),r=fi(n),g=A==="entries"||A===Symbol.iterator&&r,s=A==="keys"&&r,a=o[A](...i),I=t?lr:e?Di:Oe;return!e&&ce(n,"iterate",s?Cr:ri),{next(){const{value:l,done:C}=a.next();return C?{value:l,done:C}:{value:g?[I(l[0]),I(l[1])]:I(l),done:C}},[Symbol.iterator](){return this}}}}function Fo(A){return function(...e){return A==="delete"?!1:A==="clear"?void 0:this}}function FB(A,e){const t={get(o){const n=this.__v_raw,r=xA(n),g=xA(o);A||(Yt(o,g)&&ce(r,"get",o),ce(r,"get",g));const{has:s}=vo(r),a=e?lr:A?Di:Oe;if(s.call(r,o))return a(n.get(o));if(s.call(r,g))return a(n.get(g));n!==r&&n.get(o)},get size(){const o=this.__v_raw;return!A&&ce(xA(o),"iterate",ri),o.size},has(o){const n=this.__v_raw,r=xA(n),g=xA(o);return A||(Yt(o,g)&&ce(r,"has",o),ce(r,"has",g)),o===g?n.has(o):n.has(o)||n.has(g)},forEach(o,n){const r=this,g=r.__v_raw,s=xA(g),a=e?lr:A?Di:Oe;return!A&&ce(s,"iterate",ri),g.forEach((I,l)=>o.call(n,a(I),a(l),r))}};return ue(t,A?{add:Fo("add"),set:Fo("set"),delete:Fo("delete"),clear:Fo("clear")}:{add(o){!e&&!xe(o)&&!kt(o)&&(o=xA(o));const n=xA(this);return vo(n).has.call(n,o)||(n.add(o),ut(n,"add",o,o)),this},set(o,n){!e&&!xe(n)&&!kt(n)&&(n=xA(n));const r=xA(this),{has:g,get:s}=vo(r);let a=g.call(r,o);a||(o=xA(o),a=g.call(r,o));const I=s.call(r,o);return r.set(o,n),a?Yt(n,I)&&ut(r,"set",o,n):ut(r,"add",o,n),this},delete(o){const n=xA(this),{has:r,get:g}=vo(n);let s=r.call(n,o);s||(o=xA(o),s=r.call(n,o)),g&&g.call(n,o);const a=n.delete(o);return s&&ut(n,"delete",o,void 0),a},clear(){const o=xA(this),n=o.size!==0,r=o.clear();return n&&ut(o,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(o=>{t[o]=vB(o,A,e)}),t}function $r(A,e){const t=FB(A,e);return(i,o,n)=>o==="__v_isReactive"?!A:o==="__v_isReadonly"?A:o==="__v_raw"?i:Reflect.get(JA(t,o)&&o in i?t:i,o,n)}const SB={get:$r(!1,!1)},RB={get:$r(!1,!0)},bB={get:$r(!0,!1)};const mI=new WeakMap,yI=new WeakMap,wI=new WeakMap,NB=new WeakMap;function GB(A){switch(A){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function LB(A){return A.__v_skip||!Object.isExtensible(A)?0:GB(oB(A))}function pn(A){return kt(A)?A:Ag(A,!1,wB,SB,mI)}function DI(A){return Ag(A,!1,kB,RB,yI)}function Br(A){return Ag(A,!0,DB,bB,wI)}function Ag(A,e,t,i,o){if(!KA(A)||A.__v_raw&&!(e&&A.__v_isReactive))return A;const n=LB(A);if(n===0)return A;const r=o.get(A);if(r)return r;const g=new Proxy(A,n===2?i:t);return o.set(A,g),g}function gi(A){return kt(A)?gi(A.__v_raw):!!(A&&A.__v_isReactive)}function kt(A){return!!(A&&A.__v_isReadonly)}function xe(A){return!!(A&&A.__v_isShallow)}function eg(A){return A?!!A.__v_raw:!1}function xA(A){const e=A&&A.__v_raw;return e?xA(e):A}function _i(A){return!JA(A,"__v_skip")&&Object.isExtensible(A)&&rI(A,"__v_skip",!0),A}const Oe=A=>KA(A)?pn(A):A,Di=A=>KA(A)?Br(A):A;function le(A){return A?A.__v_isRef===!0:!1}function EA(A){return kI(A,!1)}function tg(A){return kI(A,!0)}function kI(A,e){return le(A)?A:new UB(A,e)}class UB{constructor(e,t){this.dep=new zr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:xA(e),this._value=t?e:Oe(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){const t=this._rawValue,i=this.__v_isShallow||xe(e)||kt(e);e=i?e:xA(e),Yt(e,t)&&(this._rawValue=e,this._value=i?e:Oe(e),this.dep.trigger())}}function BA(A){return le(A)?A.value:A}const MB={get:(A,e,t)=>e==="__v_raw"?A:BA(Reflect.get(A,e,t)),set:(A,e,t,i)=>{const o=A[e];return le(o)&&!le(t)?(o.value=t,!0):Reflect.set(A,e,t,i)}};function vI(A){return gi(A)?A:new Proxy(A,MB)}class xB{constructor(e,t,i){this.fn=e,this.setter=t,this._value=void 0,this.dep=new zr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=$i-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=i}notify(){if(this.flags|=16,!(this.flags&8)&&OA!==this)return BI(this,!0),!0}get value(){const e=this.dep.track();return EI(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function JB(A,e,t=!1){let i,o;return FA(A)?i=A:(i=A.get,o=A.set),new xB(i,o,t)}const So={},qo=new WeakMap;let ei;function TB(A,e=!1,t=ei){if(t){let i=qo.get(t);i||qo.set(t,i=[]),i.push(A)}}function HB(A,e,t=_A){const{immediate:i,deep:o,once:n,scheduler:r,augmentJob:g,call:s}=t,a=d=>o?d:xe(d)||o===!1||o===0?ht(d,1):ht(d);let I,l,C,Q,h=!1,f=!1;if(le(A)?(l=()=>A.value,h=xe(A)):gi(A)?(l=()=>a(A),h=!0):yA(A)?(f=!0,h=A.some(d=>gi(d)||xe(d)),l=()=>A.map(d=>{if(le(d))return d.value;if(gi(d))return a(d);if(FA(d))return s?s(d,2):d()})):FA(A)?e?l=s?()=>s(A,2):A:l=()=>{if(C){wt();try{C()}finally{Dt()}}const d=ei;ei=I;try{return s?s(A,3,[Q]):A(Q)}finally{ei=d}}:l=nt,e&&o){const d=l,p=o===!0?1/0:o;l=()=>ht(d(),p)}const u=EB(),E=()=>{I.stop(),u&&u.active&&Wr(u.effects,I)};if(n&&e){const d=e;e=(...p)=>{d(...p),E()}}let D=f?new Array(A.length).fill(So):So;const c=d=>{if(!(!(I.flags&1)||!I.dirty&&!d))if(e){const p=I.run();if(o||h||(f?p.some((v,N)=>Yt(v,D[N])):Yt(p,D))){C&&C();const v=ei;ei=I;try{const N=[p,D===So?void 0:f&&D[0]===So?[]:D,Q];D=p,s?s(e,3,N):e(...N)}finally{ei=v}}}else I.run()};return g&&g(c),I=new CI(l),I.scheduler=r?()=>r(c,!1):c,Q=d=>TB(d,!1,I),C=I.onStop=()=>{const d=qo.get(I);if(d){if(s)s(d,4);else for(const p of d)p();qo.delete(I)}},e?i?c(!0):D=I.run():r?r(c.bind(null,!0),!0):I.run(),E.pause=I.pause.bind(I),E.resume=I.resume.bind(I),E.stop=E,E}function ht(A,e=1/0,t){if(e<=0||!KA(A)||A.__v_skip||(t=t||new Map,(t.get(A)||0)>=e))return A;if(t.set(A,e),e--,le(A))ht(A.value,e,t);else if(yA(A))for(let i=0;i{ht(i,e,t)});else if(nI(A)){for(const i in A)ht(A[i],e,t);for(const i of Object.getOwnPropertySymbols(A))Object.prototype.propertyIsEnumerable.call(A,i)&&ht(A[i],e,t)}return A}/** +* @vue/runtime-core v3.5.26 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Eo(A,e,t,i){try{return i?A(...i):A()}catch(o){mn(o,e,t)}}function Ct(A,e,t,i){if(FA(A)){const o=Eo(A,e,t,i);return o&&iI(o)&&o.catch(n=>{mn(n,e,t)}),o}if(yA(A)){const o=[];for(let n=0;n>>1,o=me[i],n=eo(o);n=eo(t)?me.push(A):me.splice(_B(e),0,A),A.flags|=1,SI()}}function SI(){jo||(jo=FI.then(bI))}function KB(A){yA(A)?di.push(...A):Mt&&A.id===-1?Mt.splice(Qi+1,0,A):A.flags&1||(di.push(A),A.flags|=1),SI()}function xg(A,e,t=At+1){for(;teo(t)-eo(i));if(di.length=0,Mt){Mt.push(...e);return}for(Mt=e,Qi=0;QiA.id==null?A.flags&2?-1:1/0:A.id;function bI(A){try{for(At=0;At{i._d&&$o(-1);const n=Zo(e);let r;try{r=A(...o)}finally{Zo(n),i._d&&$o(1)}return r};return i._n=!0,i._c=!0,i._d=!0,i}function ZA(A,e){if(Re===null)return A;const t=kn(Re),i=A.dirs||(A.dirs=[]);for(let o=0;o1)return t&&FA(e)?e.call(i&&i.proxy):e}}const PB=Symbol.for("v-scx"),VB=()=>rt(PB);function ae(A,e,t){return GI(A,e,t)}function GI(A,e,t=_A){const{immediate:i,deep:o,flush:n,once:r}=t,g=ue({},t),s=e&&i||!e&&n!=="post";let a;if(io){if(n==="sync"){const Q=VB();a=Q.__watcherHandles||(Q.__watcherHandles=[])}else if(!s){const Q=()=>{};return Q.stop=nt,Q.resume=nt,Q.pause=nt,Q}}const I=Ee;g.call=(Q,h,f)=>Ct(Q,I,h,f);let l=!1;n==="post"?g.scheduler=Q=>{Se(Q,I&&I.suspense)}:n!=="sync"&&(l=!0,g.scheduler=(Q,h)=>{h?Q():ig(Q)}),g.augmentJob=Q=>{e&&(Q.flags|=4),l&&(Q.flags|=2,I&&(Q.id=I.uid,Q.i=I))};const C=HB(A,e,g);return io&&(a?a.push(C):s&&C()),C}function WB(A,e,t){const i=this.proxy,o=ee(A)?A.includes(".")?LI(i,A):()=>i[A]:A.bind(i,i);let n;FA(e)?n=e:(n=e.handler,t=e);const r=po(this),g=GI(o,n.bind(i),t);return r(),g}function LI(A,e){const t=e.split(".");return()=>{let i=A;for(let o=0;oA.__isTeleport,ZB=Symbol("_leaveCb");function og(A,e){A.shapeFlag&6&&A.component?(A.transition=e,og(A.component.subTree,e)):A.shapeFlag&128?(A.ssContent.transition=e.clone(A.ssContent),A.ssFallback.transition=e.clone(A.ssFallback)):A.transition=e}function ho(A,e){return FA(A)?ue({name:A.name},e,{setup:A}):A}function UI(A){A.ids=[A.ids[0]+A.ids[2]+++"-",0,0]}const Xo=new WeakMap;function Wi(A,e,t,i,o=!1){if(yA(A)){A.forEach((h,f)=>Wi(h,e&&(yA(e)?e[f]:e),t,i,o));return}if(qi(i)&&!o){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&Wi(A,e,t,i.component.subTree);return}const n=i.shapeFlag&4?kn(i.component):i.el,r=o?null:n,{i:g,r:s}=A,a=e&&e.r,I=g.refs===_A?g.refs={}:g.refs,l=g.setupState,C=xA(l),Q=l===_A?tI:h=>JA(C,h);if(a!=null&&a!==s){if(Jg(e),ee(a))I[a]=null,Q(a)&&(l[a]=null);else if(le(a)){a.value=null;const h=e;h.k&&(I[h.k]=null)}}if(FA(s))Eo(s,g,12,[r,I]);else{const h=ee(s),f=le(s);if(h||f){const u=()=>{if(A.f){const E=h?Q(s)?l[s]:I[s]:s.value;if(o)yA(E)&&Wr(E,n);else if(yA(E))E.includes(n)||E.push(n);else if(h)I[s]=[n],Q(s)&&(l[s]=I[s]);else{const D=[n];s.value=D,A.k&&(I[A.k]=D)}}else h?(I[s]=r,Q(s)&&(l[s]=r)):f&&(s.value=r,A.k&&(I[A.k]=r))};if(r){const E=()=>{u(),Xo.delete(A)};E.id=-1,Xo.set(A,E),Se(E,t)}else Jg(A),u()}}}function Jg(A){const e=Xo.get(A);e&&(e.flags|=8,Xo.delete(A))}hn().requestIdleCallback;hn().cancelIdleCallback;const qi=A=>!!A.type.__asyncLoader,MI=A=>A.type.__isKeepAlive;function XB(A,e){xI(A,"a",e)}function zB(A,e){xI(A,"da",e)}function xI(A,e,t=Ee){const i=A.__wdc||(A.__wdc=()=>{let o=t;for(;o;){if(o.isDeactivated)return;o=o.parent}return A()});if(yn(e,i,t),t){let o=t.parent;for(;o&&o.parent;)MI(o.parent.vnode)&&$B(i,e,t,o),o=o.parent}}function $B(A,e,t,i){const o=yn(e,A,i,!0);Ci(()=>{Wr(i[e],o)},t)}function yn(A,e,t=Ee,i=!1){if(t){const o=t[A]||(t[A]=[]),n=e.__weh||(e.__weh=(...r)=>{wt();const g=po(t),s=Ct(e,t,A,r);return g(),Dt(),s});return i?o.unshift(n):o.push(n),n}}const vt=A=>(e,t=Ee)=>{(!io||A==="sp")&&yn(A,(...i)=>e(...i),t)},JI=vt("bm"),Ft=vt("m"),AQ=vt("bu"),eQ=vt("u"),tQ=vt("bum"),Ci=vt("um"),iQ=vt("sp"),oQ=vt("rtg"),nQ=vt("rtc");function rQ(A,e=Ee){yn("ec",A,e)}const gQ="components",TI=Symbol.for("v-ndc");function HI(A){return ee(A)?sQ(gQ,A,!1)||A:A||TI}function sQ(A,e,t=!0,i=!1){const o=Re||Ee;if(o){const n=o.type;{const g=VQ(n,!1);if(g&&(g===e||g===Je(e)||g===En(Je(e))))return n}const r=Tg(o[A]||n[A],e)||Tg(o.appContext[A],e);return!r&&i?n:r}}function Tg(A,e){return A&&(A[e]||A[Je(e)]||A[En(Je(e))])}function Ke(A,e,t,i){let o;const n=t,r=yA(A);if(r||ee(A)){const g=r&&gi(A);let s=!1,a=!1;g&&(s=!xe(A),a=kt(A),A=dn(A)),o=new Array(A.length);for(let I=0,l=A.length;Ie(g,s,void 0,n));else{const g=Object.keys(A);o=new Array(g.length);for(let s=0,a=g.length;sA?nC(A)?kn(A):Qr(A.parent):null,ji=ue(Object.create(null),{$:A=>A,$el:A=>A.vnode.el,$data:A=>A.data,$props:A=>A.props,$attrs:A=>A.attrs,$slots:A=>A.slots,$refs:A=>A.refs,$parent:A=>Qr(A.parent),$root:A=>Qr(A.root),$host:A=>A.ce,$emit:A=>A.emit,$options:A=>_I(A),$forceUpdate:A=>A.f||(A.f=()=>{ig(A.update)}),$nextTick:A=>A.n||(A.n=uo.bind(A.proxy)),$watch:A=>WB.bind(A)}),_n=(A,e)=>A!==_A&&!A.__isScriptSetup&&JA(A,e),aQ={get({_:A},e){if(e==="__v_skip")return!0;const{ctx:t,setupState:i,data:o,props:n,accessCache:r,type:g,appContext:s}=A;if(e[0]!=="$"){const C=r[e];if(C!==void 0)switch(C){case 1:return i[e];case 2:return o[e];case 4:return t[e];case 3:return n[e]}else{if(_n(i,e))return r[e]=1,i[e];if(o!==_A&&JA(o,e))return r[e]=2,o[e];if(JA(n,e))return r[e]=3,n[e];if(t!==_A&&JA(t,e))return r[e]=4,t[e];cr&&(r[e]=0)}}const a=ji[e];let I,l;if(a)return e==="$attrs"&&ce(A.attrs,"get",""),a(A);if((I=g.__cssModules)&&(I=I[e]))return I;if(t!==_A&&JA(t,e))return r[e]=4,t[e];if(l=s.config.globalProperties,JA(l,e))return l[e]},set({_:A},e,t){const{data:i,setupState:o,ctx:n}=A;return _n(o,e)?(o[e]=t,!0):i!==_A&&JA(i,e)?(i[e]=t,!0):JA(A.props,e)||e[0]==="$"&&e.slice(1)in A?!1:(n[e]=t,!0)},has({_:{data:A,setupState:e,accessCache:t,ctx:i,appContext:o,props:n,type:r}},g){let s;return!!(t[g]||A!==_A&&g[0]!=="$"&&JA(A,g)||_n(e,g)||JA(n,g)||JA(i,g)||JA(ji,g)||JA(o.config.globalProperties,g)||(s=r.__cssModules)&&s[g])},defineProperty(A,e,t){return t.get!=null?A._.accessCache[e]=0:JA(t,"value")&&this.set(A,e,t.value,null),Reflect.defineProperty(A,e,t)}};function Hg(A){return yA(A)?A.reduce((e,t)=>(e[t]=null,e),{}):A}let cr=!0;function IQ(A){const e=_I(A),t=A.proxy,i=A.ctx;cr=!1,e.beforeCreate&&Yg(e.beforeCreate,A,"bc");const{data:o,computed:n,methods:r,watch:g,provide:s,inject:a,created:I,beforeMount:l,mounted:C,beforeUpdate:Q,updated:h,activated:f,deactivated:u,beforeDestroy:E,beforeUnmount:D,destroyed:c,unmounted:d,render:p,renderTracked:v,renderTriggered:N,errorCaptured:G,serverPrefetch:H,expose:S,inheritAttrs:b,components:L,directives:QA,filters:dA}=e;if(a&&CQ(a,i,null),r)for(const X in r){const tA=r[X];FA(tA)&&(i[X]=tA.bind(t))}if(o){const X=o.call(t,t);KA(X)&&(A.data=pn(X))}if(cr=!0,n)for(const X in n){const tA=n[X],fA=FA(tA)?tA.bind(t,t):FA(tA.get)?tA.get.bind(t,t):nt,_=!FA(tA)&&FA(tA.set)?tA.set.bind(t):nt,W=hA({get:fA,set:_});Object.defineProperty(i,X,{enumerable:!0,configurable:!0,get:()=>W.value,set:z=>W.value=z})}if(g)for(const X in g)YI(g[X],i,t,X);if(s){const X=FA(s)?s.call(t):s;Reflect.ownKeys(X).forEach(tA=>{Ho(tA,X[tA])})}I&&Yg(I,A,"c");function oA(X,tA){yA(tA)?tA.forEach(fA=>X(fA.bind(t))):tA&&X(tA.bind(t))}if(oA(JI,l),oA(Ft,C),oA(AQ,Q),oA(eQ,h),oA(XB,f),oA(zB,u),oA(rQ,G),oA(nQ,v),oA(oQ,N),oA(tQ,D),oA(Ci,d),oA(iQ,H),yA(S))if(S.length){const X=A.exposed||(A.exposed={});S.forEach(tA=>{Object.defineProperty(X,tA,{get:()=>t[tA],set:fA=>t[tA]=fA,enumerable:!0})})}else A.exposed||(A.exposed={});p&&A.render===nt&&(A.render=p),b!=null&&(A.inheritAttrs=b),L&&(A.components=L),QA&&(A.directives=QA),H&&UI(A)}function CQ(A,e,t=nt){yA(A)&&(A=Er(A));for(const i in A){const o=A[i];let n;KA(o)?"default"in o?n=rt(o.from||i,o.default,!0):n=rt(o.from||i):n=rt(o),le(n)?Object.defineProperty(e,i,{enumerable:!0,configurable:!0,get:()=>n.value,set:r=>n.value=r}):e[i]=n}}function Yg(A,e,t){Ct(yA(A)?A.map(i=>i.bind(e.proxy)):A.bind(e.proxy),e,t)}function YI(A,e,t,i){let o=i.includes(".")?LI(t,i):()=>t[i];if(ee(A)){const n=e[A];FA(n)&&ae(o,n)}else if(FA(A))ae(o,A.bind(t));else if(KA(A))if(yA(A))A.forEach(n=>YI(n,e,t,i));else{const n=FA(A.handler)?A.handler.bind(t):e[A.handler];FA(n)&&ae(o,n,A)}}function _I(A){const e=A.type,{mixins:t,extends:i}=e,{mixins:o,optionsCache:n,config:{optionMergeStrategies:r}}=A.appContext,g=n.get(e);let s;return g?s=g:!o.length&&!t&&!i?s=e:(s={},o.length&&o.forEach(a=>zo(s,a,r,!0)),zo(s,e,r)),KA(e)&&n.set(e,s),s}function zo(A,e,t,i=!1){const{mixins:o,extends:n}=e;n&&zo(A,n,t,!0),o&&o.forEach(r=>zo(A,r,t,!0));for(const r in e)if(!(i&&r==="expose")){const g=lQ[r]||t&&t[r];A[r]=g?g(A[r],e[r]):e[r]}return A}const lQ={data:_g,props:Kg,emits:Kg,methods:Ki,computed:Ki,beforeCreate:fe,created:fe,beforeMount:fe,mounted:fe,beforeUpdate:fe,updated:fe,beforeDestroy:fe,beforeUnmount:fe,destroyed:fe,unmounted:fe,activated:fe,deactivated:fe,errorCaptured:fe,serverPrefetch:fe,components:Ki,directives:Ki,watch:QQ,provide:_g,inject:BQ};function _g(A,e){return e?A?function(){return ue(FA(A)?A.call(this,this):A,FA(e)?e.call(this,this):e)}:e:A}function BQ(A,e){return Ki(Er(A),Er(e))}function Er(A){if(yA(A)){const e={};for(let t=0;te==="modelValue"||e==="model-value"?A.modelModifiers:A[`${e}Modifiers`]||A[`${Je(e)}Modifiers`]||A[`${Ii(e)}Modifiers`];function hQ(A,e,...t){if(A.isUnmounted)return;const i=A.vnode.props||_A;let o=t;const n=e.startsWith("update:"),r=n&&uQ(i,e.slice(7));r&&(r.trim&&(o=t.map(I=>ee(I)?I.trim():I)),r.number&&(o=t.map(un)));let g,s=i[g=xn(e)]||i[g=xn(Je(e))];!s&&n&&(s=i[g=xn(Ii(e))]),s&&Ct(s,A,6,o);const a=i[g+"Once"];if(a){if(!A.emitted)A.emitted={};else if(A.emitted[g])return;A.emitted[g]=!0,Ct(a,A,6,o)}}const fQ=new WeakMap;function OI(A,e,t=!1){const i=t?fQ:e.emitsCache,o=i.get(A);if(o!==void 0)return o;const n=A.emits;let r={},g=!1;if(!FA(A)){const s=a=>{const I=OI(a,e,!0);I&&(g=!0,ue(r,I))};!t&&e.mixins.length&&e.mixins.forEach(s),A.extends&&s(A.extends),A.mixins&&A.mixins.forEach(s)}return!n&&!g?(KA(A)&&i.set(A,null),null):(yA(n)?n.forEach(s=>r[s]=null):ue(r,n),KA(A)&&i.set(A,r),r)}function wn(A,e){return!A||!Bn(e)?!1:(e=e.slice(2).replace(/Once$/,""),JA(A,e[0].toLowerCase()+e.slice(1))||JA(A,Ii(e))||JA(A,e))}function Og(A){const{type:e,vnode:t,proxy:i,withProxy:o,propsOptions:[n],slots:r,attrs:g,emit:s,render:a,renderCache:I,props:l,data:C,setupState:Q,ctx:h,inheritAttrs:f}=A,u=Zo(A);let E,D;try{if(t.shapeFlag&4){const d=o||i,p=d;E=tt(a.call(p,d,I,l,Q,C,h)),D=g}else{const d=e;E=tt(d.length>1?d(l,{attrs:g,slots:r,emit:s}):d(l,null)),D=e.props?g:dQ(g)}}catch(d){Zi.length=0,mn(d,A,1),E=TA(Kt)}let c=E;if(D&&f!==!1){const d=Object.keys(D),{shapeFlag:p}=c;d.length&&p&7&&(n&&d.some(Vr)&&(D=pQ(D,n)),c=ki(c,D,!1,!0))}return t.dirs&&(c=ki(c,null,!1,!0),c.dirs=c.dirs?c.dirs.concat(t.dirs):t.dirs),t.transition&&og(c,t.transition),E=c,Zo(u),E}const dQ=A=>{let e;for(const t in A)(t==="class"||t==="style"||Bn(t))&&((e||(e={}))[t]=A[t]);return e},pQ=(A,e)=>{const t={};for(const i in A)(!Vr(i)||!(i.slice(9)in e))&&(t[i]=A[i]);return t};function mQ(A,e,t){const{props:i,children:o,component:n}=A,{props:r,children:g,patchFlag:s}=e,a=n.emitsOptions;if(e.dirs||e.transition)return!0;if(t&&s>=0){if(s&1024)return!0;if(s&16)return i?Pg(i,r,a):!!r;if(s&8){const I=e.dynamicProps;for(let l=0;lObject.create(PI),WI=A=>Object.getPrototypeOf(A)===PI;function wQ(A,e,t,i=!1){const o={},n=VI();A.propsDefaults=Object.create(null),qI(A,e,o,n);for(const r in A.propsOptions[0])r in o||(o[r]=void 0);t?A.props=i?o:DI(o):A.type.props?A.props=o:A.props=n,A.attrs=n}function DQ(A,e,t,i){const{props:o,attrs:n,vnode:{patchFlag:r}}=A,g=xA(o),[s]=A.propsOptions;let a=!1;if((i||r>0)&&!(r&16)){if(r&8){const I=A.vnode.dynamicProps;for(let l=0;l{s=!0;const[C,Q]=jI(l,e,!0);ue(r,C),Q&&g.push(...Q)};!t&&e.mixins.length&&e.mixins.forEach(I),A.extends&&I(A.extends),A.mixins&&A.mixins.forEach(I)}if(!n&&!s)return KA(A)&&i.set(A,hi),hi;if(yA(n))for(let I=0;IA==="_"||A==="_ctx"||A==="$stable",rg=A=>yA(A)?A.map(tt):[tt(A)],vQ=(A,e,t)=>{if(e._n)return e;const i=OB((...o)=>rg(e(...o)),t);return i._c=!1,i},ZI=(A,e,t)=>{const i=A._ctx;for(const o in A){if(ng(o))continue;const n=A[o];if(FA(n))e[o]=vQ(o,n,i);else if(n!=null){const r=rg(n);e[o]=()=>r}}},XI=(A,e)=>{const t=rg(e);A.slots.default=()=>t},zI=(A,e,t)=>{for(const i in e)(t||!ng(i))&&(A[i]=e[i])},FQ=(A,e,t)=>{const i=A.slots=VI();if(A.vnode.shapeFlag&32){const o=e._;o?(zI(i,e,t),t&&rI(i,"_",o,!0)):ZI(e,i)}else e&&XI(A,e)},SQ=(A,e,t)=>{const{vnode:i,slots:o}=A;let n=!0,r=_A;if(i.shapeFlag&32){const g=e._;g?t&&g===1?n=!1:zI(o,e,t):(n=!e.$stable,ZI(e,o)),r=e}else e&&(XI(A,e),r={default:1});if(n)for(const g in o)!ng(g)&&r[g]==null&&delete o[g]},Se=LQ;function RQ(A){return bQ(A)}function bQ(A,e){const t=hn();t.__VUE__=!0;const{insert:i,remove:o,patchProp:n,createElement:r,createText:g,createComment:s,setText:a,setElementText:I,parentNode:l,nextSibling:C,setScopeId:Q=nt,insertStaticContent:h}=A,f=(w,R,k,x=null,q=null,V=null,iA=void 0,eA=null,m=!!R.dynamicChildren)=>{if(w===R)return;w&&!xi(w,R)&&(x=Y(w),z(w,q,V,!0),w=null),R.patchFlag===-2&&(m=!1,R.dynamicChildren=null);const{type:y,ref:M,shapeFlag:O}=R;switch(y){case fo:u(w,R,k,x);break;case Kt:E(w,R,k,x);break;case Yo:w==null&&D(R,k,x,iA);break;case qA:L(w,R,k,x,q,V,iA,eA,m);break;default:O&1?p(w,R,k,x,q,V,iA,eA,m):O&6?QA(w,R,k,x,q,V,iA,eA,m):(O&64||O&128)&&y.process(w,R,k,x,q,V,iA,eA,m,cA)}M!=null&&q?Wi(M,w&&w.ref,V,R||w,!R):M==null&&w&&w.ref!=null&&Wi(w.ref,null,V,w,!0)},u=(w,R,k,x)=>{if(w==null)i(R.el=g(R.children),k,x);else{const q=R.el=w.el;R.children!==w.children&&a(q,R.children)}},E=(w,R,k,x)=>{w==null?i(R.el=s(R.children||""),k,x):R.el=w.el},D=(w,R,k,x)=>{[w.el,w.anchor]=h(w.children,R,k,x,w.el,w.anchor)},c=({el:w,anchor:R},k,x)=>{let q;for(;w&&w!==R;)q=C(w),i(w,k,x),w=q;i(R,k,x)},d=({el:w,anchor:R})=>{let k;for(;w&&w!==R;)k=C(w),o(w),w=k;o(R)},p=(w,R,k,x,q,V,iA,eA,m)=>{if(R.type==="svg"?iA="svg":R.type==="math"&&(iA="mathml"),w==null)v(R,k,x,q,V,iA,eA,m);else{const y=w.el&&w.el._isVueCE?w.el:null;try{y&&y._beginPatch(),H(w,R,q,V,iA,eA,m)}finally{y&&y._endPatch()}}},v=(w,R,k,x,q,V,iA,eA)=>{let m,y;const{props:M,shapeFlag:O,transition:nA,dirs:Z}=w;if(m=w.el=r(w.type,V,M&&M.is,M),O&8?I(m,w.children):O&16&&G(w.children,m,null,x,q,Kn(w,V),iA,eA),Z&&Zt(w,null,x,"created"),N(m,w,w.scopeId,iA,x),M){for(const P in M)P!=="value"&&!Oi(P)&&n(m,P,null,M[P],V,x);"value"in M&&n(m,"value",null,M.value,V),(y=M.onVnodeBeforeMount)&&ze(y,x,w)}Z&&Zt(w,null,x,"beforeMount");const U=NQ(q,nA);U&&nA.beforeEnter(m),i(m,R,k),((y=M&&M.onVnodeMounted)||U||Z)&&Se(()=>{y&&ze(y,x,w),U&&nA.enter(m),Z&&Zt(w,null,x,"mounted")},q)},N=(w,R,k,x,q)=>{if(k&&Q(w,k),x)for(let V=0;V{for(let y=m;y{const eA=R.el=w.el;let{patchFlag:m,dynamicChildren:y,dirs:M}=R;m|=w.patchFlag&16;const O=w.props||_A,nA=R.props||_A;let Z;if(k&&Xt(k,!1),(Z=nA.onVnodeBeforeUpdate)&&ze(Z,k,R,w),M&&Zt(R,w,k,"beforeUpdate"),k&&Xt(k,!0),(O.innerHTML&&nA.innerHTML==null||O.textContent&&nA.textContent==null)&&I(eA,""),y?S(w.dynamicChildren,y,eA,k,x,Kn(R,q),V):iA||tA(w,R,eA,null,k,x,Kn(R,q),V,!1),m>0){if(m&16)b(eA,O,nA,k,q);else if(m&2&&O.class!==nA.class&&n(eA,"class",null,nA.class,q),m&4&&n(eA,"style",O.style,nA.style,q),m&8){const U=R.dynamicProps;for(let P=0;P{Z&&ze(Z,k,R,w),M&&Zt(R,w,k,"updated")},x)},S=(w,R,k,x,q,V,iA)=>{for(let eA=0;eA{if(R!==k){if(R!==_A)for(const V in R)!Oi(V)&&!(V in k)&&n(w,V,R[V],null,q,x);for(const V in k){if(Oi(V))continue;const iA=k[V],eA=R[V];iA!==eA&&V!=="value"&&n(w,V,eA,iA,q,x)}"value"in k&&n(w,"value",R.value,k.value,q)}},L=(w,R,k,x,q,V,iA,eA,m)=>{const y=R.el=w?w.el:g(""),M=R.anchor=w?w.anchor:g("");let{patchFlag:O,dynamicChildren:nA,slotScopeIds:Z}=R;Z&&(eA=eA?eA.concat(Z):Z),w==null?(i(y,k,x),i(M,k,x),G(R.children||[],k,M,q,V,iA,eA,m)):O>0&&O&64&&nA&&w.dynamicChildren&&w.dynamicChildren.length===nA.length?(S(w.dynamicChildren,nA,k,q,V,iA,eA),(R.key!=null||q&&R===q.subTree)&&$I(w,R,!0)):tA(w,R,k,M,q,V,iA,eA,m)},QA=(w,R,k,x,q,V,iA,eA,m)=>{R.slotScopeIds=eA,w==null?R.shapeFlag&512?q.ctx.activate(R,k,x,iA,m):dA(R,k,x,q,V,iA,m):IA(w,R,m)},dA=(w,R,k,x,q,V,iA)=>{const eA=w.component=YQ(w,x,q);if(MI(w)&&(eA.ctx.renderer=cA),_Q(eA,!1,iA),eA.asyncDep){if(q&&q.registerDep(eA,oA,iA),!w.el){const m=eA.subTree=TA(Kt);E(null,m,R,k),w.placeholder=m.el}}else oA(eA,w,R,k,q,V,iA)},IA=(w,R,k)=>{const x=R.component=w.component;if(mQ(w,R,k))if(x.asyncDep&&!x.asyncResolved){X(x,R,k);return}else x.next=R,x.update();else R.el=w.el,x.vnode=R},oA=(w,R,k,x,q,V,iA)=>{const eA=()=>{if(w.isMounted){let{next:O,bu:nA,u:Z,parent:U,vnode:P}=w;{const Ce=AC(w);if(Ce){O&&(O.el=P.el,X(w,O,iA)),Ce.asyncDep.then(()=>{w.isUnmounted||eA()});return}}let uA=O,bA;Xt(w,!1),O?(O.el=P.el,X(w,O,iA)):O=P,nA&&To(nA),(bA=O.props&&O.props.onVnodeBeforeUpdate)&&ze(bA,U,O,P),Xt(w,!0);const jA=Og(w),he=w.subTree;w.subTree=jA,f(he,jA,l(he.el),Y(he),w,q,V),O.el=jA.el,uA===null&&yQ(w,jA.el),Z&&Se(Z,q),(bA=O.props&&O.props.onVnodeUpdated)&&Se(()=>ze(bA,U,O,P),q)}else{let O;const{el:nA,props:Z}=R,{bm:U,m:P,parent:uA,root:bA,type:jA}=w,he=qi(R);Xt(w,!1),U&&To(U),!he&&(O=Z&&Z.onVnodeBeforeMount)&&ze(O,uA,R),Xt(w,!0);{bA.ce&&bA.ce._def.shadowRoot!==!1&&bA.ce._injectChildStyle(jA);const Ce=w.subTree=Og(w);f(null,Ce,k,x,w,q,V),R.el=Ce.el}if(P&&Se(P,q),!he&&(O=Z&&Z.onVnodeMounted)){const Ce=R;Se(()=>ze(O,uA,Ce),q)}(R.shapeFlag&256||uA&&qi(uA.vnode)&&uA.vnode.shapeFlag&256)&&w.a&&Se(w.a,q),w.isMounted=!0,R=k=x=null}};w.scope.on();const m=w.effect=new CI(eA);w.scope.off();const y=w.update=m.run.bind(m),M=w.job=m.runIfDirty.bind(m);M.i=w,M.id=w.uid,m.scheduler=()=>ig(M),Xt(w,!0),y()},X=(w,R,k)=>{R.component=w;const x=w.vnode.props;w.vnode=R,w.next=null,DQ(w,R.props,x,k),SQ(w,R.children,k),wt(),xg(w),Dt()},tA=(w,R,k,x,q,V,iA,eA,m=!1)=>{const y=w&&w.children,M=w?w.shapeFlag:0,O=R.children,{patchFlag:nA,shapeFlag:Z}=R;if(nA>0){if(nA&128){_(y,O,k,x,q,V,iA,eA,m);return}else if(nA&256){fA(y,O,k,x,q,V,iA,eA,m);return}}Z&8?(M&16&&LA(y,q,V),O!==y&&I(k,O)):M&16?Z&16?_(y,O,k,x,q,V,iA,eA,m):LA(y,q,V,!0):(M&8&&I(k,""),Z&16&&G(O,k,x,q,V,iA,eA,m))},fA=(w,R,k,x,q,V,iA,eA,m)=>{w=w||hi,R=R||hi;const y=w.length,M=R.length,O=Math.min(y,M);let nA;for(nA=0;nAM?LA(w,q,V,!0,!1,O):G(R,k,x,q,V,iA,eA,m,O)},_=(w,R,k,x,q,V,iA,eA,m)=>{let y=0;const M=R.length;let O=w.length-1,nA=M-1;for(;y<=O&&y<=nA;){const Z=w[y],U=R[y]=m?xt(R[y]):tt(R[y]);if(xi(Z,U))f(Z,U,k,null,q,V,iA,eA,m);else break;y++}for(;y<=O&&y<=nA;){const Z=w[O],U=R[nA]=m?xt(R[nA]):tt(R[nA]);if(xi(Z,U))f(Z,U,k,null,q,V,iA,eA,m);else break;O--,nA--}if(y>O){if(y<=nA){const Z=nA+1,U=ZnA)for(;y<=O;)z(w[y],q,V,!0),y++;else{const Z=y,U=y,P=new Map;for(y=U;y<=nA;y++){const Fe=R[y]=m?xt(R[y]):tt(R[y]);Fe.key!=null&&P.set(Fe.key,y)}let uA,bA=0;const jA=nA-U+1;let he=!1,Ce=0;const jt=new Array(jA);for(y=0;y=jA){z(Fe,q,V,!0);continue}let Xe;if(Fe.key!=null)Xe=P.get(Fe.key);else for(uA=U;uA<=nA;uA++)if(jt[uA-U]===0&&xi(Fe,R[uA])){Xe=uA;break}Xe===void 0?z(Fe,q,V,!0):(jt[Xe-U]=y+1,Xe>=Ce?Ce=Xe:he=!0,f(Fe,R[Xe],k,null,q,V,iA,eA,m),bA++)}const Mn=he?GQ(jt):hi;for(uA=Mn.length-1,y=jA-1;y>=0;y--){const Fe=U+y,Xe=R[Fe],bg=R[Fe+1],Ng=Fe+1{const{el:V,type:iA,transition:eA,children:m,shapeFlag:y}=w;if(y&6){W(w.component.subTree,R,k,x);return}if(y&128){w.suspense.move(R,k,x);return}if(y&64){iA.move(w,R,k,cA);return}if(iA===qA){i(V,R,k);for(let O=0;OeA.enter(V),q);else{const{leave:O,delayLeave:nA,afterLeave:Z}=eA,U=()=>{w.ctx.isUnmounted?o(V):i(V,R,k)},P=()=>{V._isLeaving&&V[ZB](!0),O(V,()=>{U(),Z&&Z()})};nA?nA(V,U,P):P()}else i(V,R,k)},z=(w,R,k,x=!1,q=!1)=>{const{type:V,props:iA,ref:eA,children:m,dynamicChildren:y,shapeFlag:M,patchFlag:O,dirs:nA,cacheIndex:Z}=w;if(O===-2&&(q=!1),eA!=null&&(wt(),Wi(eA,null,k,w,!0),Dt()),Z!=null&&(R.renderCache[Z]=void 0),M&256){R.ctx.deactivate(w);return}const U=M&1&&nA,P=!qi(w);let uA;if(P&&(uA=iA&&iA.onVnodeBeforeUnmount)&&ze(uA,R,w),M&6)oe(w.component,k,x);else{if(M&128){w.suspense.unmount(k,x);return}U&&Zt(w,null,R,"beforeUnmount"),M&64?w.type.remove(w,R,k,cA,x):y&&!y.hasOnce&&(V!==qA||O>0&&O&64)?LA(y,R,k,!1,!0):(V===qA&&O&384||!q&&M&16)&&LA(m,R,k),x&&DA(w)}(P&&(uA=iA&&iA.onVnodeUnmounted)||U)&&Se(()=>{uA&&ze(uA,R,w),U&&Zt(w,null,R,"unmounted")},k)},DA=w=>{const{type:R,el:k,anchor:x,transition:q}=w;if(R===qA){NA(k,x);return}if(R===Yo){d(w);return}const V=()=>{o(k),q&&!q.persisted&&q.afterLeave&&q.afterLeave()};if(w.shapeFlag&1&&q&&!q.persisted){const{leave:iA,delayLeave:eA}=q,m=()=>iA(k,V);eA?eA(w.el,V,m):m()}else V()},NA=(w,R)=>{let k;for(;w!==R;)k=C(w),o(w),w=k;o(R)},oe=(w,R,k)=>{const{bum:x,scope:q,job:V,subTree:iA,um:eA,m,a:y}=w;Wg(m),Wg(y),x&&To(x),q.stop(),V&&(V.flags|=8,z(iA,w,R,k)),eA&&Se(eA,R),Se(()=>{w.isUnmounted=!0},R)},LA=(w,R,k,x=!1,q=!1,V=0)=>{for(let iA=V;iA{if(w.shapeFlag&6)return Y(w.component.subTree);if(w.shapeFlag&128)return w.suspense.next();const R=C(w.anchor||w.el),k=R&&R[qB];return k?C(k):R};let $=!1;const AA=(w,R,k)=>{let x;w==null?R._vnode&&(z(R._vnode,null,null,!0),x=R._vnode.component):f(R._vnode||null,w,R,null,null,null,k),R._vnode=w,$||($=!0,xg(x),RI(),$=!1)},cA={p:f,um:z,m:W,r:DA,mt:dA,mc:G,pc:tA,pbc:S,n:Y,o:A};return{render:AA,hydrate:void 0,createApp:EQ(AA)}}function Kn({type:A,props:e},t){return t==="svg"&&A==="foreignObject"||t==="mathml"&&A==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:t}function Xt({effect:A,job:e},t){t?(A.flags|=32,e.flags|=4):(A.flags&=-33,e.flags&=-5)}function NQ(A,e){return(!A||A&&!A.pendingBranch)&&e&&!e.persisted}function $I(A,e,t=!1){const i=A.children,o=e.children;if(yA(i)&&yA(o))for(let n=0;n>1,A[t[g]]0&&(e[i]=t[n-1]),t[n]=i)}}for(n=t.length,r=t[n-1];n-- >0;)t[n]=r,r=e[r];return t}function AC(A){const e=A.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:AC(e)}function Wg(A){if(A)for(let e=0;eA.__isSuspense;function LQ(A,e){e&&e.pendingBranch?yA(A)?e.effects.push(...A):e.effects.push(A):KB(A)}const qA=Symbol.for("v-fgt"),fo=Symbol.for("v-txt"),Kt=Symbol.for("v-cmt"),Yo=Symbol.for("v-stc"),Zi=[];let be=null;function T(A=!1){Zi.push(be=A?null:[])}function UQ(){Zi.pop(),be=Zi[Zi.length-1]||null}let to=1;function $o(A,e=!1){to+=A,A<0&&be&&e&&(be.hasOnce=!0)}function iC(A){return A.dynamicChildren=to>0?be||hi:null,UQ(),to>0&&be&&be.push(A),A}function K(A,e,t,i,o,n){return iC(B(A,e,t,i,o,n,!0))}function ye(A,e,t,i,o){return iC(TA(A,e,t,i,o,!0))}function An(A){return A?A.__v_isVNode===!0:!1}function xi(A,e){return A.type===e.type&&A.key===e.key}const oC=({key:A})=>A??null,_o=({ref:A,ref_key:e,ref_for:t})=>(typeof A=="number"&&(A=""+A),A!=null?ee(A)||le(A)||FA(A)?{i:Re,r:A,k:e,f:!!t}:A:null);function B(A,e=null,t=null,i=0,o=null,n=A===qA?0:1,r=!1,g=!1){const s={__v_isVNode:!0,__v_skip:!0,type:A,props:e,key:e&&oC(e),ref:e&&_o(e),scopeId:NI,slotScopeIds:null,children:t,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:n,patchFlag:i,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:Re};return g?(gg(s,t),n&128&&A.normalize(s)):t&&(s.shapeFlag|=ee(t)?8:16),to>0&&!r&&be&&(s.patchFlag>0||n&6)&&s.patchFlag!==32&&be.push(s),s}const TA=MQ;function MQ(A,e=null,t=null,i=0,o=null,n=!1){if((!A||A===TI)&&(A=Kt),An(A)){const g=ki(A,e,!0);return t&&gg(g,t),to>0&&!n&&be&&(g.shapeFlag&6?be[be.indexOf(A)]=g:be.push(g)),g.patchFlag=-2,g}if(WQ(A)&&(A=A.__vccOpts),e){e=xQ(e);let{class:g,style:s}=e;g&&!ee(g)&&(e.class=kA(g)),KA(s)&&(eg(s)&&!yA(s)&&(s=ue({},s)),e.style=VA(s))}const r=ee(A)?1:tC(A)?128:jB(A)?64:KA(A)?4:FA(A)?2:0;return B(A,e,t,i,o,r,n,!0)}function xQ(A){return A?eg(A)||WI(A)?ue({},A):A:null}function ki(A,e,t=!1,i=!1){const{props:o,ref:n,patchFlag:r,children:g,transition:s}=A,a=e?JQ(o||{},e):o,I={__v_isVNode:!0,__v_skip:!0,type:A.type,props:a,key:a&&oC(a),ref:e&&e.ref?t&&n?yA(n)?n.concat(_o(e)):[n,_o(e)]:_o(e):n,scopeId:A.scopeId,slotScopeIds:A.slotScopeIds,children:g,target:A.target,targetStart:A.targetStart,targetAnchor:A.targetAnchor,staticCount:A.staticCount,shapeFlag:A.shapeFlag,patchFlag:e&&A.type!==qA?r===-1?16:r|16:r,dynamicProps:A.dynamicProps,dynamicChildren:A.dynamicChildren,appContext:A.appContext,dirs:A.dirs,transition:s,component:A.component,suspense:A.suspense,ssContent:A.ssContent&&ki(A.ssContent),ssFallback:A.ssFallback&&ki(A.ssFallback),placeholder:A.placeholder,el:A.el,anchor:A.anchor,ctx:A.ctx,ce:A.ce};return s&&i&&og(I,s.clone(I)),I}function gt(A=" ",e=0){return TA(fo,null,A,e)}function Dn(A,e){const t=TA(Yo,null,A);return t.staticCount=e,t}function sA(A="",e=!1){return e?(T(),ye(Kt,null,A)):TA(Kt,null,A)}function tt(A){return A==null||typeof A=="boolean"?TA(Kt):yA(A)?TA(qA,null,A.slice()):An(A)?xt(A):TA(fo,null,String(A))}function xt(A){return A.el===null&&A.patchFlag!==-1||A.memo?A:ki(A)}function gg(A,e){let t=0;const{shapeFlag:i}=A;if(e==null)e=null;else if(yA(e))t=16;else if(typeof e=="object")if(i&65){const o=e.default;o&&(o._c&&(o._d=!1),gg(A,o()),o._c&&(o._d=!0));return}else{t=32;const o=e._;!o&&!WI(e)?e._ctx=Re:o===3&&Re&&(Re.slots._===1?e._=1:(e._=2,A.patchFlag|=1024))}else FA(e)?(e={default:e,_ctx:Re},t=32):(e=String(e),i&64?(t=16,e=[gt(e)]):t=8);A.children=e,A.shapeFlag|=t}function JQ(...A){const e={};for(let t=0;tEe||Re;let en,hr;{const A=hn(),e=(t,i)=>{let o;return(o=A[t])||(o=A[t]=[]),o.push(i),n=>{o.length>1?o.forEach(r=>r(n)):o[0](n)}};en=e("__VUE_INSTANCE_SETTERS__",t=>Ee=t),hr=e("__VUE_SSR_SETTERS__",t=>io=t)}const po=A=>{const e=Ee;return en(A),A.scope.on(),()=>{A.scope.off(),en(e)}},qg=()=>{Ee&&Ee.scope.off(),en(null)};function nC(A){return A.vnode.shapeFlag&4}let io=!1;function _Q(A,e=!1,t=!1){e&&hr(e);const{props:i,children:o}=A.vnode,n=nC(A);wQ(A,i,n,e),FQ(A,o,t||e);const r=n?KQ(A,e):void 0;return e&&hr(!1),r}function KQ(A,e){const t=A.type;A.accessCache=Object.create(null),A.proxy=new Proxy(A.ctx,aQ);const{setup:i}=t;if(i){wt();const o=A.setupContext=i.length>1?PQ(A):null,n=po(A),r=Eo(i,A,0,[A.props,o]),g=iI(r);if(Dt(),n(),(g||A.sp)&&!qi(A)&&UI(A),g){if(r.then(qg,qg),e)return r.then(s=>{jg(A,s)}).catch(s=>{mn(s,A,0)});A.asyncDep=r}else jg(A,r)}else rC(A)}function jg(A,e,t){FA(e)?A.type.__ssrInlineRender?A.ssrRender=e:A.render=e:KA(e)&&(A.setupState=vI(e)),rC(A)}function rC(A,e,t){const i=A.type;A.render||(A.render=i.render||nt);{const o=po(A);wt();try{IQ(A)}finally{Dt(),o()}}}const OQ={get(A,e){return ce(A,"get",""),A[e]}};function PQ(A){const e=t=>{A.exposed=t||{}};return{attrs:new Proxy(A.attrs,OQ),slots:A.slots,emit:A.emit,expose:e}}function kn(A){return A.exposed?A.exposeProxy||(A.exposeProxy=new Proxy(vI(_i(A.exposed)),{get(e,t){if(t in e)return e[t];if(t in ji)return ji[t](A)},has(e,t){return t in e||t in ji}})):A.proxy}function VQ(A,e=!0){return FA(A)?A.displayName||A.name:A.name||e&&A.__name}function WQ(A){return FA(A)&&"__vccOpts"in A}const hA=(A,e)=>JB(A,e,io);function GA(A,e,t){try{$o(-1);const i=arguments.length;return i===2?KA(e)&&!yA(e)?An(e)?TA(A,null,[e]):TA(A,e):TA(A,null,e):(i>3?t=Array.prototype.slice.call(arguments,2):i===3&&An(t)&&(t=[t]),TA(A,e,t))}finally{$o(1)}}const qQ="3.5.26";/** +* @vue/runtime-dom v3.5.26 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let fr;const Zg=typeof window<"u"&&window.trustedTypes;if(Zg)try{fr=Zg.createPolicy("vue",{createHTML:A=>A})}catch{}const gC=fr?A=>fr.createHTML(A):A=>A,jQ="http://www.w3.org/2000/svg",ZQ="http://www.w3.org/1998/Math/MathML",Et=typeof document<"u"?document:null,Xg=Et&&Et.createElement("template"),XQ={insert:(A,e,t)=>{e.insertBefore(A,t||null)},remove:A=>{const e=A.parentNode;e&&e.removeChild(A)},createElement:(A,e,t,i)=>{const o=e==="svg"?Et.createElementNS(jQ,A):e==="mathml"?Et.createElementNS(ZQ,A):t?Et.createElement(A,{is:t}):Et.createElement(A);return A==="select"&&i&&i.multiple!=null&&o.setAttribute("multiple",i.multiple),o},createText:A=>Et.createTextNode(A),createComment:A=>Et.createComment(A),setText:(A,e)=>{A.nodeValue=e},setElementText:(A,e)=>{A.textContent=e},parentNode:A=>A.parentNode,nextSibling:A=>A.nextSibling,querySelector:A=>Et.querySelector(A),setScopeId(A,e){A.setAttribute(e,"")},insertStaticContent(A,e,t,i,o,n){const r=t?t.previousSibling:e.lastChild;if(o&&(o===n||o.nextSibling))for(;e.insertBefore(o.cloneNode(!0),t),!(o===n||!(o=o.nextSibling)););else{Xg.innerHTML=gC(i==="svg"?`${A}`:i==="mathml"?`${A}`:A);const g=Xg.content;if(i==="svg"||i==="mathml"){const s=g.firstChild;for(;s.firstChild;)g.appendChild(s.firstChild);g.removeChild(s)}e.insertBefore(g,t)}return[r?r.nextSibling:e.firstChild,t?t.previousSibling:e.lastChild]}},zQ=Symbol("_vtc");function $Q(A,e,t){const i=A[zQ];i&&(e=(e?[e,...i]:[...i]).join(" ")),e==null?A.removeAttribute("class"):t?A.setAttribute("class",e):A.className=e}const zg=Symbol("_vod"),Ac=Symbol("_vsh"),ec=Symbol(""),tc=/(?:^|;)\s*display\s*:/;function ic(A,e,t){const i=A.style,o=ee(t);let n=!1;if(t&&!o){if(e)if(ee(e))for(const r of e.split(";")){const g=r.slice(0,r.indexOf(":")).trim();t[g]==null&&Ko(i,g,"")}else for(const r in e)t[r]==null&&Ko(i,r,"");for(const r in t)r==="display"&&(n=!0),Ko(i,r,t[r])}else if(o){if(e!==t){const r=i[ec];r&&(t+=";"+r),i.cssText=t,n=tc.test(t)}}else e&&A.removeAttribute("style");zg in A&&(A[zg]=n?i.display:"",A[Ac]&&(i.display="none"))}const $g=/\s*!important$/;function Ko(A,e,t){if(yA(t))t.forEach(i=>Ko(A,e,i));else if(t==null&&(t=""),e.startsWith("--"))A.setProperty(e,t);else{const i=oc(A,e);$g.test(t)?A.setProperty(Ii(i),t.replace($g,""),"important"):A[i]=t}}const As=["Webkit","Moz","ms"],On={};function oc(A,e){const t=On[e];if(t)return t;let i=Je(e);if(i!=="filter"&&i in A)return On[e]=i;i=En(i);for(let o=0;oPn||(sc.then(()=>Pn=0),Pn=Date.now());function Ic(A,e){const t=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=t.attached)return;Ct(Cc(i,t.value),e,5,[i])};return t.value=A,t.attached=ac(),t}function Cc(A,e){if(yA(e)){const t=A.stopImmediatePropagation;return A.stopImmediatePropagation=()=>{t.call(A),A._stopped=!0},e.map(i=>o=>!o._stopped&&i&&i(o))}else return e}const rs=A=>A.charCodeAt(0)===111&&A.charCodeAt(1)===110&&A.charCodeAt(2)>96&&A.charCodeAt(2)<123,lc=(A,e,t,i,o,n)=>{const r=o==="svg";e==="class"?$Q(A,i,r):e==="style"?ic(A,t,i):Bn(e)?Vr(e)||rc(A,e,t,i,n):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):Bc(A,e,i,r))?(is(A,e,i),!A.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&ts(A,e,i,r,n,e!=="value")):A._isVueCE&&(/[A-Z]/.test(e)||!ee(i))?is(A,Je(e),i,n,e):(e==="true-value"?A._trueValue=i:e==="false-value"&&(A._falseValue=i),ts(A,e,i,r))};function Bc(A,e,t,i){if(i)return!!(e==="innerHTML"||e==="textContent"||e in A&&rs(e)&&FA(t));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="autocorrect"||e==="sandbox"&&A.tagName==="IFRAME"||e==="form"||e==="list"&&A.tagName==="INPUT"||e==="type"&&A.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const o=A.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return rs(e)&&ee(t)?!1:e in A}const tn=A=>{const e=A.props["onUpdate:modelValue"]||!1;return yA(e)?t=>To(e,t):e};function Qc(A){A.target.composing=!0}function gs(A){const e=A.target;e.composing&&(e.composing=!1,e.dispatchEvent(new Event("input")))}const mi=Symbol("_assign");function ss(A,e,t){return e&&(A=A.trim()),t&&(A=un(A)),A}const te={created(A,{modifiers:{lazy:e,trim:t,number:i}},o){A[mi]=tn(o);const n=i||o.props&&o.props.type==="number";ti(A,e?"change":"input",r=>{r.target.composing||A[mi](ss(A.value,t,n))}),(t||n)&&ti(A,"change",()=>{A.value=ss(A.value,t,n)}),e||(ti(A,"compositionstart",Qc),ti(A,"compositionend",gs),ti(A,"change",gs))},mounted(A,{value:e}){A.value=e??""},beforeUpdate(A,{value:e,oldValue:t,modifiers:{lazy:i,trim:o,number:n}},r){if(A[mi]=tn(r),A.composing)return;const g=(n||A.type==="number")&&!/^0\d/.test(A.value)?un(A.value):A.value,s=e??"";g!==s&&(document.activeElement===A&&A.type!=="range"&&(i&&e===t||o&&A.value.trim()===s)||(A.value=s))}},dr={deep:!0,created(A,{value:e,modifiers:{number:t}},i){const o=Qn(e);ti(A,"change",()=>{const n=Array.prototype.filter.call(A.options,r=>r.selected).map(r=>t?un(on(r)):on(r));A[mi](A.multiple?o?new Set(n):n:n[0]),A._assigning=!0,uo(()=>{A._assigning=!1})}),A[mi]=tn(i)},mounted(A,{value:e}){as(A,e)},beforeUpdate(A,e,t){A[mi]=tn(t)},updated(A,{value:e}){A._assigning||as(A,e)}};function as(A,e){const t=A.multiple,i=yA(e);if(!(t&&!i&&!Qn(e))){for(let o=0,n=A.options.length;oString(a)===String(g)):r.selected=QB(e,g)>-1}else r.selected=e.has(g);else if(fn(on(r),e)){A.selectedIndex!==o&&(A.selectedIndex=o);return}}!t&&A.selectedIndex!==-1&&(A.selectedIndex=-1)}}function on(A){return"_value"in A?A._value:A.value}const cc=["ctrl","shift","alt","meta"],Ec={stop:A=>A.stopPropagation(),prevent:A=>A.preventDefault(),self:A=>A.target!==A.currentTarget,ctrl:A=>!A.ctrlKey,shift:A=>!A.shiftKey,alt:A=>!A.altKey,meta:A=>!A.metaKey,left:A=>"button"in A&&A.button!==0,middle:A=>"button"in A&&A.button!==1,right:A=>"button"in A&&A.button!==2,exact:(A,e)=>cc.some(t=>A[`${t}Key`]&&!e.includes(t))},dt=(A,e)=>{const t=A._withMods||(A._withMods={}),i=e.join(".");return t[i]||(t[i]=(o,...n)=>{for(let r=0;r{const e=hc().createApp(...A),{mount:t}=e;return e.mount=i=>{const o=pc(i);if(!o)return;const n=e._component;!FA(n)&&!n.render&&!n.template&&(n.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const r=t(o,!1,dc(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),r},e};function dc(A){if(A instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&A instanceof MathMLElement)return"mathml"}function pc(A){return ee(A)?document.querySelector(A):A}/*! + * shared v9.14.5 + * (c) 2025 kazuya kawaguchi + * Released under the MIT License. + */function mc(A,e){typeof console<"u"&&(console.warn("[intlify] "+A),e&&console.warn(e.stack))}const nn=typeof window<"u",Vt=(A,e=!1)=>e?Symbol.for(A):Symbol(A),yc=(A,e,t)=>wc({l:A,k:e,s:t}),wc=A=>JSON.stringify(A).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),Ae=A=>typeof A=="number"&&isFinite(A),Dc=A=>aC(A)==="[object Date]",Ot=A=>aC(A)==="[object RegExp]",vn=A=>vA(A)&&Object.keys(A).length===0,Be=Object.assign,kc=Object.create,HA=(A=null)=>kc(A);let Cs;const ft=()=>Cs||(Cs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:HA());function ls(A){return A.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Bs(A){return A.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function vc(A){return A=A.replace(/(\w+)\s*=\s*"([^"]*)"/g,(i,o,n)=>`${o}="${Bs(n)}"`),A=A.replace(/(\w+)\s*=\s*'([^']*)'/g,(i,o,n)=>`${o}='${Bs(n)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(A)&&(A=A.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(i=>{A=A.replace(i,"$1javascript:")}),A}const Fc=Object.prototype.hasOwnProperty;function He(A,e){return Fc.call(A,e)}const WA=Array.isArray,PA=A=>typeof A=="function",gA=A=>typeof A=="string",RA=A=>typeof A=="boolean",UA=A=>A!==null&&typeof A=="object",Sc=A=>UA(A)&&PA(A.then)&&PA(A.catch),sC=Object.prototype.toString,aC=A=>sC.call(A),vA=A=>{if(!UA(A))return!1;const e=Object.getPrototypeOf(A);return e===null||e.constructor===Object},Rc=A=>A==null?"":WA(A)||vA(A)&&A.toString===sC?JSON.stringify(A,null,2):String(A);function bc(A,e=""){return A.reduce((t,i,o)=>o===0?t+i:t+e+i,"")}function Fn(A){let e=A;return()=>++e}const Ro=A=>!UA(A)||WA(A);function Oo(A,e){if(Ro(A)||Ro(e))throw new Error("Invalid value");const t=[{src:A,des:e}];for(;t.length;){const{src:i,des:o}=t.pop();Object.keys(i).forEach(n=>{n!=="__proto__"&&(UA(i[n])&&!UA(o[n])&&(o[n]=Array.isArray(i[n])?[]:HA()),Ro(o[n])||Ro(i[n])?o[n]=i[n]:t.push({src:i[n],des:o[n]}))})}}/*! + * message-compiler v9.14.5 + * (c) 2025 kazuya kawaguchi + * Released under the MIT License. + */function Nc(A,e,t){return{line:A,column:e,offset:t}}function rn(A,e,t){return{start:A,end:e}}const Gc=/\{([0-9a-zA-Z]+)\}/g;function IC(A,...e){return e.length===1&&Lc(e[0])&&(e=e[0]),(!e||!e.hasOwnProperty)&&(e={}),A.replace(Gc,(t,i)=>e.hasOwnProperty(i)?e[i]:"")}const CC=Object.assign,Qs=A=>typeof A=="string",Lc=A=>A!==null&&typeof A=="object";function lC(A,e=""){return A.reduce((t,i,o)=>o===0?t+i:t+e+i,"")}const sg={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},Uc={[sg.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function Mc(A,e,...t){const i=IC(Uc[A],...t||[]),o={message:String(i),code:A};return e&&(o.location=e),o}const pA={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16,__EXTEND_POINT__:17},xc={[pA.EXPECTED_TOKEN]:"Expected token: '{0}'",[pA.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[pA.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[pA.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[pA.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[pA.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[pA.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[pA.EMPTY_PLACEHOLDER]:"Empty placeholder",[pA.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[pA.INVALID_LINKED_FORMAT]:"Invalid linked format",[pA.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[pA.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[pA.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[pA.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[pA.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[pA.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function Gi(A,e,t={}){const{domain:i,messages:o,args:n}=t,r=IC((o||xc)[A]||"",...n||[]),g=new SyntaxError(String(r));return g.code=A,e&&(g.location=e),g.domain=i,g}function Jc(A){throw A}const Bt=" ",Tc="\r",de=` +`,Hc="\u2028",Yc="\u2029";function _c(A){const e=A;let t=0,i=1,o=1,n=0;const r=N=>e[N]===Tc&&e[N+1]===de,g=N=>e[N]===de,s=N=>e[N]===Yc,a=N=>e[N]===Hc,I=N=>r(N)||g(N)||s(N)||a(N),l=()=>t,C=()=>i,Q=()=>o,h=()=>n,f=N=>r(N)||s(N)||a(N)?de:e[N],u=()=>f(t),E=()=>f(t+n);function D(){return n=0,I(t)&&(i++,o=0),r(t)&&t++,t++,o++,e[t]}function c(){return r(t+n)&&n++,n++,e[t+n]}function d(){t=0,i=1,o=1,n=0}function p(N=0){n=N}function v(){const N=t+n;for(;N!==t;)D();n=0}return{index:l,line:C,column:Q,peekOffset:h,charAt:f,currentChar:u,currentPeek:E,next:D,peek:c,reset:d,resetPeek:p,skipToPeek:v}}const Rt=void 0,Kc=".",cs="'",Oc="tokenizer";function Pc(A,e={}){const t=e.location!==!1,i=_c(A),o=()=>i.index(),n=()=>Nc(i.line(),i.column(),i.index()),r=n(),g=o(),s={currentType:14,offset:g,startLoc:r,endLoc:r,lastType:14,lastOffset:g,lastStartLoc:r,lastEndLoc:r,braceNest:0,inLinked:!1,text:""},a=()=>s,{onError:I}=e;function l(m,y,M,...O){const nA=a();if(y.column+=M,y.offset+=M,I){const Z=t?rn(nA.startLoc,y):null,U=Gi(m,Z,{domain:Oc,args:O});I(U)}}function C(m,y,M){m.endLoc=n(),m.currentType=y;const O={type:y};return t&&(O.loc=rn(m.startLoc,m.endLoc)),M!=null&&(O.value=M),O}const Q=m=>C(m,14);function h(m,y){return m.currentChar()===y?(m.next(),y):(l(pA.EXPECTED_TOKEN,n(),0,y),"")}function f(m){let y="";for(;m.currentPeek()===Bt||m.currentPeek()===de;)y+=m.currentPeek(),m.peek();return y}function u(m){const y=f(m);return m.skipToPeek(),y}function E(m){if(m===Rt)return!1;const y=m.charCodeAt(0);return y>=97&&y<=122||y>=65&&y<=90||y===95}function D(m){if(m===Rt)return!1;const y=m.charCodeAt(0);return y>=48&&y<=57}function c(m,y){const{currentType:M}=y;if(M!==2)return!1;f(m);const O=E(m.currentPeek());return m.resetPeek(),O}function d(m,y){const{currentType:M}=y;if(M!==2)return!1;f(m);const O=m.currentPeek()==="-"?m.peek():m.currentPeek(),nA=D(O);return m.resetPeek(),nA}function p(m,y){const{currentType:M}=y;if(M!==2)return!1;f(m);const O=m.currentPeek()===cs;return m.resetPeek(),O}function v(m,y){const{currentType:M}=y;if(M!==8)return!1;f(m);const O=m.currentPeek()===".";return m.resetPeek(),O}function N(m,y){const{currentType:M}=y;if(M!==9)return!1;f(m);const O=E(m.currentPeek());return m.resetPeek(),O}function G(m,y){const{currentType:M}=y;if(!(M===8||M===12))return!1;f(m);const O=m.currentPeek()===":";return m.resetPeek(),O}function H(m,y){const{currentType:M}=y;if(M!==10)return!1;const O=()=>{const Z=m.currentPeek();return Z==="{"?E(m.peek()):Z==="@"||Z==="%"||Z==="|"||Z===":"||Z==="."||Z===Bt||!Z?!1:Z===de?(m.peek(),O()):L(m,!1)},nA=O();return m.resetPeek(),nA}function S(m){f(m);const y=m.currentPeek()==="|";return m.resetPeek(),y}function b(m){const y=f(m),M=m.currentPeek()==="%"&&m.peek()==="{";return m.resetPeek(),{isModulo:M,hasSpace:y.length>0}}function L(m,y=!0){const M=(nA=!1,Z="",U=!1)=>{const P=m.currentPeek();return P==="{"?Z==="%"?!1:nA:P==="@"||!P?Z==="%"?!0:nA:P==="%"?(m.peek(),M(nA,"%",!0)):P==="|"?Z==="%"||U?!0:!(Z===Bt||Z===de):P===Bt?(m.peek(),M(!0,Bt,U)):P===de?(m.peek(),M(!0,de,U)):!0},O=M();return y&&m.resetPeek(),O}function QA(m,y){const M=m.currentChar();return M===Rt?Rt:y(M)?(m.next(),M):null}function dA(m){const y=m.charCodeAt(0);return y>=97&&y<=122||y>=65&&y<=90||y>=48&&y<=57||y===95||y===36}function IA(m){return QA(m,dA)}function oA(m){const y=m.charCodeAt(0);return y>=97&&y<=122||y>=65&&y<=90||y>=48&&y<=57||y===95||y===36||y===45}function X(m){return QA(m,oA)}function tA(m){const y=m.charCodeAt(0);return y>=48&&y<=57}function fA(m){return QA(m,tA)}function _(m){const y=m.charCodeAt(0);return y>=48&&y<=57||y>=65&&y<=70||y>=97&&y<=102}function W(m){return QA(m,_)}function z(m){let y="",M="";for(;y=fA(m);)M+=y;return M}function DA(m){u(m);const y=m.currentChar();return y!=="%"&&l(pA.EXPECTED_TOKEN,n(),0,y),m.next(),"%"}function NA(m){let y="";for(;;){const M=m.currentChar();if(M==="{"||M==="}"||M==="@"||M==="|"||!M)break;if(M==="%")if(L(m))y+=M,m.next();else break;else if(M===Bt||M===de)if(L(m))y+=M,m.next();else{if(S(m))break;y+=M,m.next()}else y+=M,m.next()}return y}function oe(m){u(m);let y="",M="";for(;y=X(m);)M+=y;return m.currentChar()===Rt&&l(pA.UNTERMINATED_CLOSING_BRACE,n(),0),M}function LA(m){u(m);let y="";return m.currentChar()==="-"?(m.next(),y+=`-${z(m)}`):y+=z(m),m.currentChar()===Rt&&l(pA.UNTERMINATED_CLOSING_BRACE,n(),0),y}function Y(m){return m!==cs&&m!==de}function $(m){u(m),h(m,"'");let y="",M="";for(;y=QA(m,Y);)y==="\\"?M+=AA(m):M+=y;const O=m.currentChar();return O===de||O===Rt?(l(pA.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,n(),0),O===de&&(m.next(),h(m,"'")),M):(h(m,"'"),M)}function AA(m){const y=m.currentChar();switch(y){case"\\":case"'":return m.next(),`\\${y}`;case"u":return cA(m,y,4);case"U":return cA(m,y,6);default:return l(pA.UNKNOWN_ESCAPE_SEQUENCE,n(),0,y),""}}function cA(m,y,M){h(m,y);let O="";for(let nA=0;nA{const O=m.currentChar();return O==="{"||O==="%"||O==="@"||O==="|"||O==="("||O===")"||!O||O===Bt?M:(M+=O,m.next(),y(M))};return y("")}function x(m){u(m);const y=h(m,"|");return u(m),y}function q(m,y){let M=null;switch(m.currentChar()){case"{":return y.braceNest>=1&&l(pA.NOT_ALLOW_NEST_PLACEHOLDER,n(),0),m.next(),M=C(y,2,"{"),u(m),y.braceNest++,M;case"}":return y.braceNest>0&&y.currentType===2&&l(pA.EMPTY_PLACEHOLDER,n(),0),m.next(),M=C(y,3,"}"),y.braceNest--,y.braceNest>0&&u(m),y.inLinked&&y.braceNest===0&&(y.inLinked=!1),M;case"@":return y.braceNest>0&&l(pA.UNTERMINATED_CLOSING_BRACE,n(),0),M=V(m,y)||Q(y),y.braceNest=0,M;default:{let nA=!0,Z=!0,U=!0;if(S(m))return y.braceNest>0&&l(pA.UNTERMINATED_CLOSING_BRACE,n(),0),M=C(y,1,x(m)),y.braceNest=0,y.inLinked=!1,M;if(y.braceNest>0&&(y.currentType===5||y.currentType===6||y.currentType===7))return l(pA.UNTERMINATED_CLOSING_BRACE,n(),0),y.braceNest=0,iA(m,y);if(nA=c(m,y))return M=C(y,5,oe(m)),u(m),M;if(Z=d(m,y))return M=C(y,6,LA(m)),u(m),M;if(U=p(m,y))return M=C(y,7,$(m)),u(m),M;if(!nA&&!Z&&!U)return M=C(y,13,w(m)),l(pA.INVALID_TOKEN_IN_PLACEHOLDER,n(),0,M.value),u(m),M;break}}return M}function V(m,y){const{currentType:M}=y;let O=null;const nA=m.currentChar();switch((M===8||M===9||M===12||M===10)&&(nA===de||nA===Bt)&&l(pA.INVALID_LINKED_FORMAT,n(),0),nA){case"@":return m.next(),O=C(y,8,"@"),y.inLinked=!0,O;case".":return u(m),m.next(),C(y,9,".");case":":return u(m),m.next(),C(y,10,":");default:return S(m)?(O=C(y,1,x(m)),y.braceNest=0,y.inLinked=!1,O):v(m,y)||G(m,y)?(u(m),V(m,y)):N(m,y)?(u(m),C(y,12,R(m))):H(m,y)?(u(m),nA==="{"?q(m,y)||O:C(y,11,k(m))):(M===8&&l(pA.INVALID_LINKED_FORMAT,n(),0),y.braceNest=0,y.inLinked=!1,iA(m,y))}}function iA(m,y){let M={type:14};if(y.braceNest>0)return q(m,y)||Q(y);if(y.inLinked)return V(m,y)||Q(y);switch(m.currentChar()){case"{":return q(m,y)||Q(y);case"}":return l(pA.UNBALANCED_CLOSING_BRACE,n(),0),m.next(),C(y,3,"}");case"@":return V(m,y)||Q(y);default:{if(S(m))return M=C(y,1,x(m)),y.braceNest=0,y.inLinked=!1,M;const{isModulo:nA,hasSpace:Z}=b(m);if(nA)return Z?C(y,0,NA(m)):C(y,4,DA(m));if(L(m))return C(y,0,NA(m));break}}return M}function eA(){const{currentType:m,offset:y,startLoc:M,endLoc:O}=s;return s.lastType=m,s.lastOffset=y,s.lastStartLoc=M,s.lastEndLoc=O,s.offset=o(),s.startLoc=n(),i.currentChar()===Rt?C(s,14):iA(i,s)}return{nextToken:eA,currentOffset:o,currentPosition:n,context:a}}const Vc="parser",Wc=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function qc(A,e,t){switch(A){case"\\\\":return"\\";case"\\'":return"'";default:{const i=parseInt(e||t,16);return i<=55295||i>=57344?String.fromCodePoint(i):"�"}}}function jc(A={}){const e=A.location!==!1,{onError:t,onWarn:i}=A;function o(c,d,p,v,...N){const G=c.currentPosition();if(G.offset+=v,G.column+=v,t){const H=e?rn(p,G):null,S=Gi(d,H,{domain:Vc,args:N});t(S)}}function n(c,d,p,v,...N){const G=c.currentPosition();if(G.offset+=v,G.column+=v,i){const H=e?rn(p,G):null;i(Mc(d,H,N))}}function r(c,d,p){const v={type:c};return e&&(v.start=d,v.end=d,v.loc={start:p,end:p}),v}function g(c,d,p,v){e&&(c.end=d,c.loc&&(c.loc.end=p))}function s(c,d){const p=c.context(),v=r(3,p.offset,p.startLoc);return v.value=d,g(v,c.currentOffset(),c.currentPosition()),v}function a(c,d){const p=c.context(),{lastOffset:v,lastStartLoc:N}=p,G=r(5,v,N);return G.index=parseInt(d,10),c.nextToken(),g(G,c.currentOffset(),c.currentPosition()),G}function I(c,d,p){const v=c.context(),{lastOffset:N,lastStartLoc:G}=v,H=r(4,N,G);return H.key=d,p===!0&&(H.modulo=!0),c.nextToken(),g(H,c.currentOffset(),c.currentPosition()),H}function l(c,d){const p=c.context(),{lastOffset:v,lastStartLoc:N}=p,G=r(9,v,N);return G.value=d.replace(Wc,qc),c.nextToken(),g(G,c.currentOffset(),c.currentPosition()),G}function C(c){const d=c.nextToken(),p=c.context(),{lastOffset:v,lastStartLoc:N}=p,G=r(8,v,N);return d.type!==12?(o(c,pA.UNEXPECTED_EMPTY_LINKED_MODIFIER,p.lastStartLoc,0),G.value="",g(G,v,N),{nextConsumeToken:d,node:G}):(d.value==null&&o(c,pA.UNEXPECTED_LEXICAL_ANALYSIS,p.lastStartLoc,0,Te(d)),G.value=d.value||"",g(G,c.currentOffset(),c.currentPosition()),{node:G})}function Q(c,d){const p=c.context(),v=r(7,p.offset,p.startLoc);return v.value=d,g(v,c.currentOffset(),c.currentPosition()),v}function h(c){const d=c.context(),p=r(6,d.offset,d.startLoc);let v=c.nextToken();if(v.type===9){const N=C(c);p.modifier=N.node,v=N.nextConsumeToken||c.nextToken()}switch(v.type!==10&&o(c,pA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Te(v)),v=c.nextToken(),v.type===2&&(v=c.nextToken()),v.type){case 11:v.value==null&&o(c,pA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Te(v)),p.key=Q(c,v.value||"");break;case 5:v.value==null&&o(c,pA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Te(v)),p.key=I(c,v.value||"");break;case 6:v.value==null&&o(c,pA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Te(v)),p.key=a(c,v.value||"");break;case 7:v.value==null&&o(c,pA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Te(v)),p.key=l(c,v.value||"");break;default:{o(c,pA.UNEXPECTED_EMPTY_LINKED_KEY,d.lastStartLoc,0);const N=c.context(),G=r(7,N.offset,N.startLoc);return G.value="",g(G,N.offset,N.startLoc),p.key=G,g(p,N.offset,N.startLoc),{nextConsumeToken:v,node:p}}}return g(p,c.currentOffset(),c.currentPosition()),{node:p}}function f(c){const d=c.context(),p=d.currentType===1?c.currentOffset():d.offset,v=d.currentType===1?d.endLoc:d.startLoc,N=r(2,p,v);N.items=[];let G=null,H=null;do{const L=G||c.nextToken();switch(G=null,L.type){case 0:L.value==null&&o(c,pA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Te(L)),N.items.push(s(c,L.value||""));break;case 6:L.value==null&&o(c,pA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Te(L)),N.items.push(a(c,L.value||""));break;case 4:H=!0;break;case 5:L.value==null&&o(c,pA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Te(L)),N.items.push(I(c,L.value||"",!!H)),H&&(n(c,sg.USE_MODULO_SYNTAX,d.lastStartLoc,0,Te(L)),H=null);break;case 7:L.value==null&&o(c,pA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Te(L)),N.items.push(l(c,L.value||""));break;case 8:{const QA=h(c);N.items.push(QA.node),G=QA.nextConsumeToken||null;break}}}while(d.currentType!==14&&d.currentType!==1);const S=d.currentType===1?d.lastOffset:c.currentOffset(),b=d.currentType===1?d.lastEndLoc:c.currentPosition();return g(N,S,b),N}function u(c,d,p,v){const N=c.context();let G=v.items.length===0;const H=r(1,d,p);H.cases=[],H.cases.push(v);do{const S=f(c);G||(G=S.items.length===0),H.cases.push(S)}while(N.currentType!==14);return G&&o(c,pA.MUST_HAVE_MESSAGES_IN_PLURAL,p,0),g(H,c.currentOffset(),c.currentPosition()),H}function E(c){const d=c.context(),{offset:p,startLoc:v}=d,N=f(c);return d.currentType===14?N:u(c,p,v,N)}function D(c){const d=Pc(c,CC({},A)),p=d.context(),v=r(0,p.offset,p.startLoc);return e&&v.loc&&(v.loc.source=c),v.body=E(d),A.onCacheKey&&(v.cacheKey=A.onCacheKey(c)),p.currentType!==14&&o(d,pA.UNEXPECTED_LEXICAL_ANALYSIS,p.lastStartLoc,0,c[p.offset]||""),g(v,d.currentOffset(),d.currentPosition()),v}return{parse:D}}function Te(A){if(A.type===14)return"EOF";const e=(A.value||"").replace(/\r?\n/gu,"\\n");return e.length>10?e.slice(0,9)+"…":e}function Zc(A,e={}){const t={ast:A,helpers:new Set};return{context:()=>t,helper:n=>(t.helpers.add(n),n)}}function Es(A,e){for(let t=0;tus(t)),A}function us(A){if(A.items.length===1){const e=A.items[0];(e.type===3||e.type===9)&&(A.static=e.value,delete e.value)}else{const e=[];for(let t=0;tr;function s(f,u){r.code+=f}function a(f,u=!0){const E=u?i:"";s(o?E+" ".repeat(f):E)}function I(f=!0){const u=++r.indentLevel;f&&a(u)}function l(f=!0){const u=--r.indentLevel;f&&a(u)}function C(){a(r.indentLevel)}return{context:g,push:s,indent:I,deindent:l,newline:C,helper:f=>`_${f}`,needIndent:()=>r.needIndent}}function tE(A,e){const{helper:t}=A;A.push(`${t("linked")}(`),Fi(A,e.key),e.modifier?(A.push(", "),Fi(A,e.modifier),A.push(", _type")):A.push(", undefined, _type"),A.push(")")}function iE(A,e){const{helper:t,needIndent:i}=A;A.push(`${t("normalize")}([`),A.indent(i());const o=e.items.length;for(let n=0;n1){A.push(`${t("plural")}([`),A.indent(i());const o=e.cases.length;for(let n=0;n{const t=Qs(e.mode)?e.mode:"normal",i=Qs(e.filename)?e.filename:"message.intl";e.sourceMap;const o=e.breakLineCode!=null?e.breakLineCode:t==="arrow"?";":` +`,n=e.needIndent?e.needIndent:t!=="arrow",r=A.helpers||[],g=eE(A,{filename:i,breakLineCode:o,needIndent:n});g.push(t==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),g.indent(n),r.length>0&&(g.push(`const { ${lC(r.map(I=>`${I}: _${I}`),", ")} } = ctx`),g.newline()),g.push("return "),Fi(g,A),g.deindent(n),g.push("}"),delete A.helpers;const{code:s,map:a}=g.context();return{ast:A,code:s,map:a?a.toJSON():void 0}};function gE(A,e={}){const t=CC({},e),i=!!t.jit,o=!!t.minify,n=t.optimize==null?!0:t.optimize,g=jc(t).parse(A);return i?(n&&zc(g),o&&ci(g),{ast:g,code:""}):(Xc(g,t),rE(g,t))}/*! + * core-base v9.14.5 + * (c) 2025 kazuya kawaguchi + * Released under the MIT License. + */function sE(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(ft().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(ft().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(ft().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function st(A){return UA(A)&&Ig(A)===0&&(He(A,"b")||He(A,"body"))}const BC=["b","body"];function aE(A){return Wt(A,BC)}const QC=["c","cases"];function IE(A){return Wt(A,QC,[])}const cC=["s","static"];function CE(A){return Wt(A,cC)}const EC=["i","items"];function lE(A){return Wt(A,EC,[])}const uC=["t","type"];function Ig(A){return Wt(A,uC)}const hC=["v","value"];function bo(A,e){const t=Wt(A,hC);if(t!=null)return t;throw oo(e)}const fC=["m","modifier"];function BE(A){return Wt(A,fC)}const dC=["k","key"];function QE(A){const e=Wt(A,dC);if(e)return e;throw oo(6)}function Wt(A,e,t){for(let i=0;i{r===void 0?r=g:r+=g},C[1]=()=>{r!==void 0&&(e.push(r),r=void 0)},C[2]=()=>{C[0](),o++},C[3]=()=>{if(o>0)o--,i=4,C[0]();else{if(o=0,r===void 0||(r=fE(r),r===!1))return!1;C[1]()}};function Q(){const h=A[t+1];if(i===5&&h==="'"||i===6&&h==='"')return t++,g="\\"+h,C[0](),!0}for(;i!==null;)if(t++,n=A[t],!(n==="\\"&&Q())){if(s=hE(n),l=qt[i],a=l[s]||l.l||8,a===8||(i=a[0],a[1]!==void 0&&(I=C[a[1]],I&&(g=n,I()===!1))))return;if(i===7)return e}}const hs=new Map;function pE(A,e){return UA(A)?A[e]:null}function mE(A,e){if(!UA(A))return null;let t=hs.get(e);if(t||(t=dE(e),t&&hs.set(e,t)),!t)return null;const i=t.length;let o=A,n=0;for(;nA,wE=A=>"",DE="text",kE=A=>A.length===0?"":bc(A),vE=Rc;function fs(A,e){return A=Math.abs(A),e===2?A?A>1?1:0:1:A?Math.min(A,2):0}function FE(A){const e=Ae(A.pluralIndex)?A.pluralIndex:-1;return A.named&&(Ae(A.named.count)||Ae(A.named.n))?Ae(A.named.count)?A.named.count:Ae(A.named.n)?A.named.n:e:e}function SE(A,e){e.count||(e.count=A),e.n||(e.n=A)}function RE(A={}){const e=A.locale,t=FE(A),i=UA(A.pluralRules)&&gA(e)&&PA(A.pluralRules[e])?A.pluralRules[e]:fs,o=UA(A.pluralRules)&&gA(e)&&PA(A.pluralRules[e])?fs:void 0,n=E=>E[i(t,E.length,o)],r=A.list||[],g=E=>r[E],s=A.named||HA();Ae(A.pluralIndex)&&SE(t,s);const a=E=>s[E];function I(E){const D=PA(A.messages)?A.messages(E):UA(A.messages)?A.messages[E]:!1;return D||(A.parent?A.parent.message(E):wE)}const l=E=>A.modifiers?A.modifiers[E]:yE,C=vA(A.processor)&&PA(A.processor.normalize)?A.processor.normalize:kE,Q=vA(A.processor)&&PA(A.processor.interpolate)?A.processor.interpolate:vE,h=vA(A.processor)&&gA(A.processor.type)?A.processor.type:DE,u={list:g,named:a,plural:n,linked:(E,...D)=>{const[c,d]=D;let p="text",v="";D.length===1?UA(c)?(v=c.modifier||v,p=c.type||p):gA(c)&&(v=c||v):D.length===2&&(gA(c)&&(v=c||v),gA(d)&&(p=d||p));const N=I(E)(u),G=p==="vnode"&&WA(N)&&v?N[0]:N;return v?l(v)(G,p):G},message:I,type:h,interpolate:Q,normalize:C,values:Be(HA(),r,s)};return u}let no=null;function bE(A){no=A}function NE(A,e,t){no&&no.emit("i18n:init",{timestamp:Date.now(),i18n:A,version:e,meta:t})}const GE=LE("function:translate");function LE(A){return e=>no&&no.emit(A,e)}const UE=sg.__EXTEND_POINT__,zt=Fn(UE),ME={FALLBACK_TO_TRANSLATE:zt(),CANNOT_FORMAT_NUMBER:zt(),FALLBACK_TO_NUMBER_FORMAT:zt(),CANNOT_FORMAT_DATE:zt(),FALLBACK_TO_DATE_FORMAT:zt(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:zt(),__EXTEND_POINT__:zt()},mC=pA.__EXTEND_POINT__,$t=Fn(mC),Ye={INVALID_ARGUMENT:mC,INVALID_DATE_ARGUMENT:$t(),INVALID_ISO_DATE_ARGUMENT:$t(),NOT_SUPPORT_NON_STRING_MESSAGE:$t(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:$t(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:$t(),NOT_SUPPORT_LOCALE_TYPE:$t(),__EXTEND_POINT__:$t()};function it(A){return Gi(A,null,void 0)}function Cg(A,e){return e.locale!=null?ds(e.locale):ds(A.locale)}let Vn;function ds(A){if(gA(A))return A;if(PA(A)){if(A.resolvedOnce&&Vn!=null)return Vn;if(A.constructor.name==="Function"){const e=A();if(Sc(e))throw it(Ye.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Vn=e}else throw it(Ye.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw it(Ye.NOT_SUPPORT_LOCALE_TYPE)}function xE(A,e,t){return[...new Set([t,...WA(e)?e:UA(e)?Object.keys(e):gA(e)?[e]:[t]])]}function yC(A,e,t){const i=gA(t)?t:Si,o=A;o.__localeChainCache||(o.__localeChainCache=new Map);let n=o.__localeChainCache.get(i);if(!n){n=[];let r=[t];for(;WA(r);)r=ps(n,r,e);const g=WA(e)||!vA(e)?e:e.default?e.default:null;r=gA(g)?[g]:g,WA(r)&&ps(n,r,!1),o.__localeChainCache.set(i,n)}return n}function ps(A,e,t){let i=!0;for(let o=0;o`${A.charAt(0).toLocaleUpperCase()}${A.substr(1)}`;function YE(){return{upper:(A,e)=>e==="text"&&gA(A)?A.toUpperCase():e==="vnode"&&UA(A)&&"__v_isVNode"in A?A.children.toUpperCase():A,lower:(A,e)=>e==="text"&&gA(A)?A.toLowerCase():e==="vnode"&&UA(A)&&"__v_isVNode"in A?A.children.toLowerCase():A,capitalize:(A,e)=>e==="text"&&gA(A)?ys(A):e==="vnode"&&UA(A)&&"__v_isVNode"in A?ys(A.children):A}}let wC;function ws(A){wC=A}let DC;function _E(A){DC=A}let kC;function KE(A){kC=A}let vC=null;const OE=A=>{vC=A},PE=()=>vC;let FC=null;const Ds=A=>{FC=A},VE=()=>FC;let ks=0;function WE(A={}){const e=PA(A.onWarn)?A.onWarn:mc,t=gA(A.version)?A.version:HE,i=gA(A.locale)||PA(A.locale)?A.locale:Si,o=PA(i)?Si:i,n=WA(A.fallbackLocale)||vA(A.fallbackLocale)||gA(A.fallbackLocale)||A.fallbackLocale===!1?A.fallbackLocale:o,r=vA(A.messages)?A.messages:Wn(o),g=vA(A.datetimeFormats)?A.datetimeFormats:Wn(o),s=vA(A.numberFormats)?A.numberFormats:Wn(o),a=Be(HA(),A.modifiers,YE()),I=A.pluralRules||HA(),l=PA(A.missing)?A.missing:null,C=RA(A.missingWarn)||Ot(A.missingWarn)?A.missingWarn:!0,Q=RA(A.fallbackWarn)||Ot(A.fallbackWarn)?A.fallbackWarn:!0,h=!!A.fallbackFormat,f=!!A.unresolving,u=PA(A.postTranslation)?A.postTranslation:null,E=vA(A.processor)?A.processor:null,D=RA(A.warnHtmlMessage)?A.warnHtmlMessage:!0,c=!!A.escapeParameter,d=PA(A.messageCompiler)?A.messageCompiler:wC,p=PA(A.messageResolver)?A.messageResolver:DC||pE,v=PA(A.localeFallbacker)?A.localeFallbacker:kC||xE,N=UA(A.fallbackContext)?A.fallbackContext:void 0,G=A,H=UA(G.__datetimeFormatters)?G.__datetimeFormatters:new Map,S=UA(G.__numberFormatters)?G.__numberFormatters:new Map,b=UA(G.__meta)?G.__meta:{};ks++;const L={version:t,cid:ks,locale:i,fallbackLocale:n,messages:r,modifiers:a,pluralRules:I,missing:l,missingWarn:C,fallbackWarn:Q,fallbackFormat:h,unresolving:f,postTranslation:u,processor:E,warnHtmlMessage:D,escapeParameter:c,messageCompiler:d,messageResolver:p,localeFallbacker:v,fallbackContext:N,onWarn:e,__meta:b};return L.datetimeFormats=g,L.numberFormats=s,L.__datetimeFormatters=H,L.__numberFormatters=S,__INTLIFY_PROD_DEVTOOLS__&&NE(L,t,b),L}const Wn=A=>({[A]:HA()});function lg(A,e,t,i,o){const{missing:n,onWarn:r}=A;if(n!==null){const g=n(A,t,e,o);return gA(g)?g:e}else return e}function Ji(A,e,t){const i=A;i.__localeChainCache=new Map,A.localeFallbacker(A,t,e)}function qE(A,e){return A===e?!1:A.split("-")[0]===e.split("-")[0]}function jE(A,e){const t=e.indexOf(A);if(t===-1)return!1;for(let i=t+1;iZE(t,A)}function ZE(A,e){const t=aE(e);if(t==null)throw oo(0);if(Ig(t)===1){const n=IE(t);return A.plural(n.reduce((r,g)=>[...r,vs(A,g)],[]))}else return vs(A,t)}function vs(A,e){const t=CE(e);if(t!=null)return A.type==="text"?t:A.normalize([t]);{const i=lE(e).reduce((o,n)=>[...o,pr(A,n)],[]);return A.normalize(i)}}function pr(A,e){const t=Ig(e);switch(t){case 3:return bo(e,t);case 9:return bo(e,t);case 4:{const i=e;if(He(i,"k")&&i.k)return A.interpolate(A.named(i.k));if(He(i,"key")&&i.key)return A.interpolate(A.named(i.key));throw oo(t)}case 5:{const i=e;if(He(i,"i")&&Ae(i.i))return A.interpolate(A.list(i.i));if(He(i,"index")&&Ae(i.index))return A.interpolate(A.list(i.index));throw oo(t)}case 6:{const i=e,o=BE(i),n=QE(i);return A.linked(pr(A,n),o?pr(A,o):void 0,A.type)}case 7:return bo(e,t);case 8:return bo(e,t);default:throw new Error(`unhandled node on format message part: ${t}`)}}const SC=A=>A;let ui=HA();function RC(A,e={}){let t=!1;const i=e.onError||Jc;return e.onError=o=>{t=!0,i(o)},{...gE(A,e),detectError:t}}const XE=(A,e)=>{if(!gA(A))throw it(Ye.NOT_SUPPORT_NON_STRING_MESSAGE);{RA(e.warnHtmlMessage)&&e.warnHtmlMessage;const i=(e.onCacheKey||SC)(A),o=ui[i];if(o)return o;const{code:n,detectError:r}=RC(A,e),g=new Function(`return ${n}`)();return r?g:ui[i]=g}};function zE(A,e){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&gA(A)){RA(e.warnHtmlMessage)&&e.warnHtmlMessage;const i=(e.onCacheKey||SC)(A),o=ui[i];if(o)return o;const{ast:n,detectError:r}=RC(A,{...e,location:!1,jit:!0}),g=qn(n);return r?g:ui[i]=g}else{const t=A.cacheKey;if(t){const i=ui[t];return i||(ui[t]=qn(A))}else return qn(A)}}const Fs=()=>"",Me=A=>PA(A);function Ss(A,...e){const{fallbackFormat:t,postTranslation:i,unresolving:o,messageCompiler:n,fallbackLocale:r,messages:g}=A,[s,a]=mr(...e),I=RA(a.missingWarn)?a.missingWarn:A.missingWarn,l=RA(a.fallbackWarn)?a.fallbackWarn:A.fallbackWarn,C=RA(a.escapeParameter)?a.escapeParameter:A.escapeParameter,Q=!!a.resolvedMessage,h=gA(a.default)||RA(a.default)?RA(a.default)?n?s:()=>s:a.default:t?n?s:()=>s:"",f=t||h!=="",u=Cg(A,a);C&&$E(a);let[E,D,c]=Q?[s,u,g[u]||HA()]:bC(A,s,u,r,l,I),d=E,p=s;if(!Q&&!(gA(d)||st(d)||Me(d))&&f&&(d=h,p=d),!Q&&(!(gA(d)||st(d)||Me(d))||!gA(D)))return o?Sn:s;let v=!1;const N=()=>{v=!0},G=Me(d)?d:NC(A,s,D,d,p,N);if(v)return d;const H=tu(A,D,c,a),S=RE(H),b=Au(A,G,S);let L=i?i(b,s):b;if(C&&gA(L)&&(L=vc(L)),__INTLIFY_PROD_DEVTOOLS__){const QA={timestamp:Date.now(),key:gA(s)?s:Me(d)?d.key:"",locale:D||(Me(d)?d.locale:""),format:gA(d)?d:Me(d)?d.source:"",message:L};QA.meta=Be({},A.__meta,PE()||{}),GE(QA)}return L}function $E(A){WA(A.list)?A.list=A.list.map(e=>gA(e)?ls(e):e):UA(A.named)&&Object.keys(A.named).forEach(e=>{gA(A.named[e])&&(A.named[e]=ls(A.named[e]))})}function bC(A,e,t,i,o,n){const{messages:r,onWarn:g,messageResolver:s,localeFallbacker:a}=A,I=a(A,i,t);let l=HA(),C,Q=null;const h="translate";for(let f=0;fi;return a.locale=t,a.key=e,a}const s=r(i,eu(A,t,o,i,g,n));return s.locale=t,s.key=e,s.source=i,s}function Au(A,e,t){return e(t)}function mr(...A){const[e,t,i]=A,o=HA();if(!gA(e)&&!Ae(e)&&!Me(e)&&!st(e))throw it(Ye.INVALID_ARGUMENT);const n=Ae(e)?String(e):(Me(e),e);return Ae(t)?o.plural=t:gA(t)?o.default=t:vA(t)&&!vn(t)?o.named=t:WA(t)&&(o.list=t),Ae(i)?o.plural=i:gA(i)?o.default=i:vA(i)&&Be(o,i),[n,o]}function eu(A,e,t,i,o,n){return{locale:e,key:t,warnHtmlMessage:o,onError:r=>{throw n&&n(r),r},onCacheKey:r=>yc(e,t,r)}}function tu(A,e,t,i){const{modifiers:o,pluralRules:n,messageResolver:r,fallbackLocale:g,fallbackWarn:s,missingWarn:a,fallbackContext:I}=A,C={locale:e,modifiers:o,pluralRules:n,messages:Q=>{let h=r(t,Q);if(h==null&&I){const[,,f]=bC(I,Q,e,g,s,a);h=r(f,Q)}if(gA(h)||st(h)){let f=!1;const E=NC(A,Q,e,h,Q,()=>{f=!0});return f?Fs:E}else return Me(h)?h:Fs}};return A.processor&&(C.processor=A.processor),i.list&&(C.list=i.list),i.named&&(C.named=i.named),Ae(i.plural)&&(C.pluralIndex=i.plural),C}function Rs(A,...e){const{datetimeFormats:t,unresolving:i,fallbackLocale:o,onWarn:n,localeFallbacker:r}=A,{__datetimeFormatters:g}=A,[s,a,I,l]=yr(...e),C=RA(I.missingWarn)?I.missingWarn:A.missingWarn;RA(I.fallbackWarn)?I.fallbackWarn:A.fallbackWarn;const Q=!!I.part,h=Cg(A,I),f=r(A,o,h);if(!gA(s)||s==="")return new Intl.DateTimeFormat(h,l).format(a);let u={},E,D=null;const c="datetime format";for(let v=0;v{GC.includes(s)?r[s]=t[s]:n[s]=t[s]}),gA(i)?n.locale=i:vA(i)&&(r=i),vA(o)&&(r=o),[n.key||"",g,n,r]}function bs(A,e,t){const i=A;for(const o in t){const n=`${e}__${o}`;i.__datetimeFormatters.has(n)&&i.__datetimeFormatters.delete(n)}}function Ns(A,...e){const{numberFormats:t,unresolving:i,fallbackLocale:o,onWarn:n,localeFallbacker:r}=A,{__numberFormatters:g}=A,[s,a,I,l]=wr(...e),C=RA(I.missingWarn)?I.missingWarn:A.missingWarn;RA(I.fallbackWarn)?I.fallbackWarn:A.fallbackWarn;const Q=!!I.part,h=Cg(A,I),f=r(A,o,h);if(!gA(s)||s==="")return new Intl.NumberFormat(h,l).format(a);let u={},E,D=null;const c="number format";for(let v=0;v{LC.includes(s)?r[s]=t[s]:n[s]=t[s]}),gA(i)?n.locale=i:vA(i)&&(r=i),vA(o)&&(r=o),[n.key||"",g,n,r]}function Gs(A,e,t){const i=A;for(const o in t){const n=`${e}__${o}`;i.__numberFormatters.has(n)&&i.__numberFormatters.delete(n)}}sE();/*! + * vue-i18n v9.14.5 + * (c) 2025 kazuya kawaguchi + * Released under the MIT License. + */const iu="9.14.5";function ou(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(ft().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(ft().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(ft().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(ft().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(ft().__INTLIFY_PROD_DEVTOOLS__=!1)}const nu=ME.__EXTEND_POINT__,Qt=Fn(nu);Qt(),Qt(),Qt(),Qt(),Qt(),Qt(),Qt(),Qt(),Qt();const UC=Ye.__EXTEND_POINT__,we=Fn(UC),re={UNEXPECTED_RETURN_TYPE:UC,INVALID_ARGUMENT:we(),MUST_BE_CALL_SETUP_TOP:we(),NOT_INSTALLED:we(),NOT_AVAILABLE_IN_LEGACY_MODE:we(),REQUIRED_VALUE:we(),INVALID_VALUE:we(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:we(),NOT_INSTALLED_WITH_PROVIDE:we(),UNEXPECTED_ERROR:we(),NOT_COMPATIBLE_LEGACY_VUE_I18N:we(),BRIDGE_SUPPORT_VUE_2_ONLY:we(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:we(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:we(),__EXTEND_POINT__:we()};function Ie(A,...e){return Gi(A,null,void 0)}const Dr=Vt("__translateVNode"),kr=Vt("__datetimeParts"),vr=Vt("__numberParts"),MC=Vt("__setPluralRules"),xC=Vt("__injectWithOption"),Fr=Vt("__dispose");function ro(A){if(!UA(A)||st(A))return A;for(const e in A)if(He(A,e))if(!e.includes("."))UA(A[e])&&ro(A[e]);else{const t=e.split("."),i=t.length-1;let o=A,n=!1;for(let r=0;r{if("locale"in g&&"resource"in g){const{locale:s,resource:a}=g;s?(r[s]=r[s]||HA(),Oo(a,r[s])):Oo(a,r)}else gA(g)&&Oo(JSON.parse(g),r)}),o==null&&n)for(const g in r)He(r,g)&&ro(r[g]);return r}function JC(A){return A.type}function TC(A,e,t){let i=UA(e.messages)?e.messages:HA();"__i18nGlobal"in t&&(i=Rn(A.locale.value,{messages:i,__i18n:t.__i18nGlobal}));const o=Object.keys(i);o.length&&o.forEach(n=>{A.mergeLocaleMessage(n,i[n])});{if(UA(e.datetimeFormats)){const n=Object.keys(e.datetimeFormats);n.length&&n.forEach(r=>{A.mergeDateTimeFormat(r,e.datetimeFormats[r])})}if(UA(e.numberFormats)){const n=Object.keys(e.numberFormats);n.length&&n.forEach(r=>{A.mergeNumberFormat(r,e.numberFormats[r])})}}}function Ls(A){return TA(fo,null,A,0)}const Us="__INTLIFY_META__",Ms=()=>[],ru=()=>!1;let xs=0;function Js(A){return(e,t,i,o)=>A(t,i,vi()||void 0,o)}const gu=()=>{const A=vi();let e=null;return A&&(e=JC(A)[Us])?{[Us]:e}:null};function Bg(A={},e){const{__root:t,__injectWithOption:i}=A,o=t===void 0,n=A.flatJson,r=nn?EA:tg,g=!!A.translateExistCompatible;let s=RA(A.inheritLocale)?A.inheritLocale:!0;const a=r(t&&s?t.locale.value:gA(A.locale)?A.locale:Si),I=r(t&&s?t.fallbackLocale.value:gA(A.fallbackLocale)||WA(A.fallbackLocale)||vA(A.fallbackLocale)||A.fallbackLocale===!1?A.fallbackLocale:a.value),l=r(Rn(a.value,A)),C=r(vA(A.datetimeFormats)?A.datetimeFormats:{[a.value]:{}}),Q=r(vA(A.numberFormats)?A.numberFormats:{[a.value]:{}});let h=t?t.missingWarn:RA(A.missingWarn)||Ot(A.missingWarn)?A.missingWarn:!0,f=t?t.fallbackWarn:RA(A.fallbackWarn)||Ot(A.fallbackWarn)?A.fallbackWarn:!0,u=t?t.fallbackRoot:RA(A.fallbackRoot)?A.fallbackRoot:!0,E=!!A.fallbackFormat,D=PA(A.missing)?A.missing:null,c=PA(A.missing)?Js(A.missing):null,d=PA(A.postTranslation)?A.postTranslation:null,p=t?t.warnHtmlMessage:RA(A.warnHtmlMessage)?A.warnHtmlMessage:!0,v=!!A.escapeParameter;const N=t?t.modifiers:vA(A.modifiers)?A.modifiers:{};let G=A.pluralRules||t&&t.pluralRules,H;H=(()=>{o&&Ds(null);const U={version:iu,locale:a.value,fallbackLocale:I.value,messages:l.value,modifiers:N,pluralRules:G,missing:c===null?void 0:c,missingWarn:h,fallbackWarn:f,fallbackFormat:E,unresolving:!0,postTranslation:d===null?void 0:d,warnHtmlMessage:p,escapeParameter:v,messageResolver:A.messageResolver,messageCompiler:A.messageCompiler,__meta:{framework:"vue"}};U.datetimeFormats=C.value,U.numberFormats=Q.value,U.__datetimeFormatters=vA(H)?H.__datetimeFormatters:void 0,U.__numberFormatters=vA(H)?H.__numberFormatters:void 0;const P=WE(U);return o&&Ds(P),P})(),Ji(H,a.value,I.value);function b(){return[a.value,I.value,l.value,C.value,Q.value]}const L=hA({get:()=>a.value,set:U=>{a.value=U,H.locale=a.value}}),QA=hA({get:()=>I.value,set:U=>{I.value=U,H.fallbackLocale=I.value,Ji(H,a.value,U)}}),dA=hA(()=>l.value),IA=hA(()=>C.value),oA=hA(()=>Q.value);function X(){return PA(d)?d:null}function tA(U){d=U,H.postTranslation=U}function fA(){return D}function _(U){U!==null&&(c=Js(U)),D=U,H.missing=c}const W=(U,P,uA,bA,jA,he)=>{b();let Ce;try{__INTLIFY_PROD_DEVTOOLS__,o||(H.fallbackContext=t?VE():void 0),Ce=U(H)}finally{__INTLIFY_PROD_DEVTOOLS__,o||(H.fallbackContext=void 0)}if(uA!=="translate exists"&&Ae(Ce)&&Ce===Sn||uA==="translate exists"&&!Ce){const[jt,Mn]=P();return t&&u?bA(t):jA(jt)}else{if(he(Ce))return Ce;throw Ie(re.UNEXPECTED_RETURN_TYPE)}};function z(...U){return W(P=>Reflect.apply(Ss,null,[P,...U]),()=>mr(...U),"translate",P=>Reflect.apply(P.t,P,[...U]),P=>P,P=>gA(P))}function DA(...U){const[P,uA,bA]=U;if(bA&&!UA(bA))throw Ie(re.INVALID_ARGUMENT);return z(P,uA,Be({resolvedMessage:!0},bA||{}))}function NA(...U){return W(P=>Reflect.apply(Rs,null,[P,...U]),()=>yr(...U),"datetime format",P=>Reflect.apply(P.d,P,[...U]),()=>ms,P=>gA(P))}function oe(...U){return W(P=>Reflect.apply(Ns,null,[P,...U]),()=>wr(...U),"number format",P=>Reflect.apply(P.n,P,[...U]),()=>ms,P=>gA(P))}function LA(U){return U.map(P=>gA(P)||Ae(P)||RA(P)?Ls(String(P)):P)}const $={normalize:LA,interpolate:U=>U,type:"vnode"};function AA(...U){return W(P=>{let uA;const bA=P;try{bA.processor=$,uA=Reflect.apply(Ss,null,[bA,...U])}finally{bA.processor=null}return uA},()=>mr(...U),"translate",P=>P[Dr](...U),P=>[Ls(P)],P=>WA(P))}function cA(...U){return W(P=>Reflect.apply(Ns,null,[P,...U]),()=>wr(...U),"number format",P=>P[vr](...U),Ms,P=>gA(P)||WA(P))}function SA(...U){return W(P=>Reflect.apply(Rs,null,[P,...U]),()=>yr(...U),"datetime format",P=>P[kr](...U),Ms,P=>gA(P)||WA(P))}function w(U){G=U,H.pluralRules=G}function R(U,P){return W(()=>{if(!U)return!1;const uA=gA(P)?P:a.value,bA=q(uA),jA=H.messageResolver(bA,U);return g?jA!=null:st(jA)||Me(jA)||gA(jA)},()=>[U],"translate exists",uA=>Reflect.apply(uA.te,uA,[U,P]),ru,uA=>RA(uA))}function k(U){let P=null;const uA=yC(H,I.value,a.value);for(let bA=0;bA{s&&(a.value=U,H.locale=U,Ji(H,a.value,I.value))}),ae(t.fallbackLocale,U=>{s&&(I.value=U,H.fallbackLocale=U,Ji(H,a.value,I.value))}));const Z={id:xs,locale:L,fallbackLocale:QA,get inheritLocale(){return s},set inheritLocale(U){s=U,U&&t&&(a.value=t.locale.value,I.value=t.fallbackLocale.value,Ji(H,a.value,I.value))},get availableLocales(){return Object.keys(l.value).sort()},messages:dA,get modifiers(){return N},get pluralRules(){return G||{}},get isGlobal(){return o},get missingWarn(){return h},set missingWarn(U){h=U,H.missingWarn=h},get fallbackWarn(){return f},set fallbackWarn(U){f=U,H.fallbackWarn=f},get fallbackRoot(){return u},set fallbackRoot(U){u=U},get fallbackFormat(){return E},set fallbackFormat(U){E=U,H.fallbackFormat=E},get warnHtmlMessage(){return p},set warnHtmlMessage(U){p=U,H.warnHtmlMessage=U},get escapeParameter(){return v},set escapeParameter(U){v=U,H.escapeParameter=U},t:z,getLocaleMessage:q,setLocaleMessage:V,mergeLocaleMessage:iA,getPostTranslationHandler:X,setPostTranslationHandler:tA,getMissingHandler:fA,setMissingHandler:_,[MC]:w};return Z.datetimeFormats=IA,Z.numberFormats=oA,Z.rt=DA,Z.te=R,Z.tm=x,Z.d=NA,Z.n=oe,Z.getDateTimeFormat=eA,Z.setDateTimeFormat=m,Z.mergeDateTimeFormat=y,Z.getNumberFormat=M,Z.setNumberFormat=O,Z.mergeNumberFormat=nA,Z[xC]=i,Z[Dr]=AA,Z[kr]=SA,Z[vr]=cA,Z}function su(A){const e=gA(A.locale)?A.locale:Si,t=gA(A.fallbackLocale)||WA(A.fallbackLocale)||vA(A.fallbackLocale)||A.fallbackLocale===!1?A.fallbackLocale:e,i=PA(A.missing)?A.missing:void 0,o=RA(A.silentTranslationWarn)||Ot(A.silentTranslationWarn)?!A.silentTranslationWarn:!0,n=RA(A.silentFallbackWarn)||Ot(A.silentFallbackWarn)?!A.silentFallbackWarn:!0,r=RA(A.fallbackRoot)?A.fallbackRoot:!0,g=!!A.formatFallbackMessages,s=vA(A.modifiers)?A.modifiers:{},a=A.pluralizationRules,I=PA(A.postTranslation)?A.postTranslation:void 0,l=gA(A.warnHtmlInMessage)?A.warnHtmlInMessage!=="off":!0,C=!!A.escapeParameterHtml,Q=RA(A.sync)?A.sync:!0;let h=A.messages;if(vA(A.sharedMessages)){const v=A.sharedMessages;h=Object.keys(v).reduce((G,H)=>{const S=G[H]||(G[H]={});return Be(S,v[H]),G},h||{})}const{__i18n:f,__root:u,__injectWithOption:E}=A,D=A.datetimeFormats,c=A.numberFormats,d=A.flatJson,p=A.translateExistCompatible;return{locale:e,fallbackLocale:t,messages:h,flatJson:d,datetimeFormats:D,numberFormats:c,missing:i,missingWarn:o,fallbackWarn:n,fallbackRoot:r,fallbackFormat:g,modifiers:s,pluralRules:a,postTranslation:I,warnHtmlMessage:l,escapeParameter:C,messageResolver:A.messageResolver,inheritLocale:Q,translateExistCompatible:p,__i18n:f,__root:u,__injectWithOption:E}}function Sr(A={},e){{const t=Bg(su(A)),{__extender:i}=A,o={id:t.id,get locale(){return t.locale.value},set locale(n){t.locale.value=n},get fallbackLocale(){return t.fallbackLocale.value},set fallbackLocale(n){t.fallbackLocale.value=n},get messages(){return t.messages.value},get datetimeFormats(){return t.datetimeFormats.value},get numberFormats(){return t.numberFormats.value},get availableLocales(){return t.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(n){},get missing(){return t.getMissingHandler()},set missing(n){t.setMissingHandler(n)},get silentTranslationWarn(){return RA(t.missingWarn)?!t.missingWarn:t.missingWarn},set silentTranslationWarn(n){t.missingWarn=RA(n)?!n:n},get silentFallbackWarn(){return RA(t.fallbackWarn)?!t.fallbackWarn:t.fallbackWarn},set silentFallbackWarn(n){t.fallbackWarn=RA(n)?!n:n},get modifiers(){return t.modifiers},get formatFallbackMessages(){return t.fallbackFormat},set formatFallbackMessages(n){t.fallbackFormat=n},get postTranslation(){return t.getPostTranslationHandler()},set postTranslation(n){t.setPostTranslationHandler(n)},get sync(){return t.inheritLocale},set sync(n){t.inheritLocale=n},get warnHtmlInMessage(){return t.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(n){t.warnHtmlMessage=n!=="off"},get escapeParameterHtml(){return t.escapeParameter},set escapeParameterHtml(n){t.escapeParameter=n},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(n){},get pluralizationRules(){return t.pluralRules||{}},__composer:t,t(...n){const[r,g,s]=n,a={};let I=null,l=null;if(!gA(r))throw Ie(re.INVALID_ARGUMENT);const C=r;return gA(g)?a.locale=g:WA(g)?I=g:vA(g)&&(l=g),WA(s)?I=s:vA(s)&&(l=s),Reflect.apply(t.t,t,[C,I||l||{},a])},rt(...n){return Reflect.apply(t.rt,t,[...n])},tc(...n){const[r,g,s]=n,a={plural:1};let I=null,l=null;if(!gA(r))throw Ie(re.INVALID_ARGUMENT);const C=r;return gA(g)?a.locale=g:Ae(g)?a.plural=g:WA(g)?I=g:vA(g)&&(l=g),gA(s)?a.locale=s:WA(s)?I=s:vA(s)&&(l=s),Reflect.apply(t.t,t,[C,I||l||{},a])},te(n,r){return t.te(n,r)},tm(n){return t.tm(n)},getLocaleMessage(n){return t.getLocaleMessage(n)},setLocaleMessage(n,r){t.setLocaleMessage(n,r)},mergeLocaleMessage(n,r){t.mergeLocaleMessage(n,r)},d(...n){return Reflect.apply(t.d,t,[...n])},getDateTimeFormat(n){return t.getDateTimeFormat(n)},setDateTimeFormat(n,r){t.setDateTimeFormat(n,r)},mergeDateTimeFormat(n,r){t.mergeDateTimeFormat(n,r)},n(...n){return Reflect.apply(t.n,t,[...n])},getNumberFormat(n){return t.getNumberFormat(n)},setNumberFormat(n,r){t.setNumberFormat(n,r)},mergeNumberFormat(n,r){t.mergeNumberFormat(n,r)},getChoiceIndex(n,r){return-1}};return o.__extender=i,o}}const Qg={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:A=>A==="parent"||A==="global",default:"parent"},i18n:{type:Object}};function au({slots:A},e){return e.length===1&&e[0]==="default"?(A.default?A.default():[]).reduce((i,o)=>[...i,...o.type===qA?o.children:[o]],[]):e.reduce((t,i)=>{const o=A[i];return o&&(t[i]=o()),t},HA())}function HC(A){return qA}const Iu=ho({name:"i18n-t",props:Be({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:A=>Ae(A)||!isNaN(A)}},Qg),setup(A,e){const{slots:t,attrs:i}=e,o=A.i18n||ve({useScope:A.scope,__useComponent:!0});return()=>{const n=Object.keys(t).filter(l=>l!=="_"),r=HA();A.locale&&(r.locale=A.locale),A.plural!==void 0&&(r.plural=gA(A.plural)?+A.plural:A.plural);const g=au(e,n),s=o[Dr](A.keypath,g,r),a=Be(HA(),i),I=gA(A.tag)||UA(A.tag)?A.tag:HC();return GA(I,a,s)}}}),Ts=Iu;function Cu(A){return WA(A)&&!gA(A[0])}function YC(A,e,t,i){const{slots:o,attrs:n}=e;return()=>{const r={part:!0};let g=HA();A.locale&&(r.locale=A.locale),gA(A.format)?r.key=A.format:UA(A.format)&&(gA(A.format.key)&&(r.key=A.format.key),g=Object.keys(A.format).reduce((C,Q)=>t.includes(Q)?Be(HA(),C,{[Q]:A.format[Q]}):C,HA()));const s=i(A.value,r,g);let a=[r.key];WA(s)?a=s.map((C,Q)=>{const h=o[C.type],f=h?h({[C.type]:C.value,index:Q,parts:s}):[C.value];return Cu(f)&&(f[0].key=`${C.type}-${Q}`),f}):gA(s)&&(a=[s]);const I=Be(HA(),n),l=gA(A.tag)||UA(A.tag)?A.tag:HC();return GA(l,I,a)}}const lu=ho({name:"i18n-n",props:Be({value:{type:Number,required:!0},format:{type:[String,Object]}},Qg),setup(A,e){const t=A.i18n||ve({useScope:A.scope,__useComponent:!0});return YC(A,e,LC,(...i)=>t[vr](...i))}}),Hs=lu,Bu=ho({name:"i18n-d",props:Be({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Qg),setup(A,e){const t=A.i18n||ve({useScope:A.scope,__useComponent:!0});return YC(A,e,GC,(...i)=>t[kr](...i))}}),Ys=Bu;function Qu(A,e){const t=A;if(A.mode==="composition")return t.__getInstance(e)||A.global;{const i=t.__getInstance(e);return i!=null?i.__composer:A.global.__composer}}function cu(A){const e=r=>{const{instance:g,modifiers:s,value:a}=r;if(!g||!g.$)throw Ie(re.UNEXPECTED_ERROR);const I=Qu(A,g.$),l=_s(a);return[Reflect.apply(I.t,I,[...Ks(l)]),I]};return{created:(r,g)=>{const[s,a]=e(g);nn&&A.global===a&&(r.__i18nWatcher=ae(a.locale,()=>{g.instance&&g.instance.$forceUpdate()})),r.__composer=a,r.textContent=s},unmounted:r=>{nn&&r.__i18nWatcher&&(r.__i18nWatcher(),r.__i18nWatcher=void 0,delete r.__i18nWatcher),r.__composer&&(r.__composer=void 0,delete r.__composer)},beforeUpdate:(r,{value:g})=>{if(r.__composer){const s=r.__composer,a=_s(g);r.textContent=Reflect.apply(s.t,s,[...Ks(a)])}},getSSRProps:r=>{const[g]=e(r);return{textContent:g}}}}function _s(A){if(gA(A))return{path:A};if(vA(A)){if(!("path"in A))throw Ie(re.REQUIRED_VALUE,"path");return A}else throw Ie(re.INVALID_VALUE)}function Ks(A){const{path:e,locale:t,args:i,choice:o,plural:n}=A,r={},g=i||{};return gA(t)&&(r.locale=t),Ae(o)&&(r.plural=o),Ae(n)&&(r.plural=n),[e,g,r]}function Eu(A,e,...t){const i=vA(t[0])?t[0]:{},o=!!i.useI18nComponentName;(RA(i.globalInstall)?i.globalInstall:!0)&&([o?"i18n":Ts.name,"I18nT"].forEach(r=>A.component(r,Ts)),[Hs.name,"I18nN"].forEach(r=>A.component(r,Hs)),[Ys.name,"I18nD"].forEach(r=>A.component(r,Ys))),A.directive("t",cu(e))}function uu(A,e,t){return{beforeCreate(){const i=vi();if(!i)throw Ie(re.UNEXPECTED_ERROR);const o=this.$options;if(o.i18n){const n=o.i18n;if(o.__i18n&&(n.__i18n=o.__i18n),n.__root=e,this===this.$root)this.$i18n=Os(A,n);else{n.__injectWithOption=!0,n.__extender=t.__vueI18nExtend,this.$i18n=Sr(n);const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}}else if(o.__i18n)if(this===this.$root)this.$i18n=Os(A,o);else{this.$i18n=Sr({__i18n:o.__i18n,__injectWithOption:!0,__extender:t.__vueI18nExtend,__root:e});const n=this.$i18n;n.__extender&&(n.__disposer=n.__extender(this.$i18n))}else this.$i18n=A;o.__i18nGlobal&&TC(e,o,o),this.$t=(...n)=>this.$i18n.t(...n),this.$rt=(...n)=>this.$i18n.rt(...n),this.$tc=(...n)=>this.$i18n.tc(...n),this.$te=(n,r)=>this.$i18n.te(n,r),this.$d=(...n)=>this.$i18n.d(...n),this.$n=(...n)=>this.$i18n.n(...n),this.$tm=n=>this.$i18n.tm(n),t.__setInstance(i,this.$i18n)},mounted(){},unmounted(){const i=vi();if(!i)throw Ie(re.UNEXPECTED_ERROR);const o=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,o.__disposer&&(o.__disposer(),delete o.__disposer,delete o.__extender),t.__deleteInstance(i),delete this.$i18n}}}function Os(A,e){A.locale=e.locale||A.locale,A.fallbackLocale=e.fallbackLocale||A.fallbackLocale,A.missing=e.missing||A.missing,A.silentTranslationWarn=e.silentTranslationWarn||A.silentFallbackWarn,A.silentFallbackWarn=e.silentFallbackWarn||A.silentFallbackWarn,A.formatFallbackMessages=e.formatFallbackMessages||A.formatFallbackMessages,A.postTranslation=e.postTranslation||A.postTranslation,A.warnHtmlInMessage=e.warnHtmlInMessage||A.warnHtmlInMessage,A.escapeParameterHtml=e.escapeParameterHtml||A.escapeParameterHtml,A.sync=e.sync||A.sync,A.__composer[MC](e.pluralizationRules||A.pluralizationRules);const t=Rn(A.locale,{messages:e.messages,__i18n:e.__i18n});return Object.keys(t).forEach(i=>A.mergeLocaleMessage(i,t[i])),e.datetimeFormats&&Object.keys(e.datetimeFormats).forEach(i=>A.mergeDateTimeFormat(i,e.datetimeFormats[i])),e.numberFormats&&Object.keys(e.numberFormats).forEach(i=>A.mergeNumberFormat(i,e.numberFormats[i])),A}const hu=Vt("global-vue-i18n");function fu(A={},e){const t=__VUE_I18N_LEGACY_API__&&RA(A.legacy)?A.legacy:__VUE_I18N_LEGACY_API__,i=RA(A.globalInjection)?A.globalInjection:!0,o=__VUE_I18N_LEGACY_API__&&t?!!A.allowComposition:!0,n=new Map,[r,g]=du(A,t),s=Vt("");function a(C){return n.get(C)||null}function I(C,Q){n.set(C,Q)}function l(C){n.delete(C)}{const C={get mode(){return __VUE_I18N_LEGACY_API__&&t?"legacy":"composition"},get allowComposition(){return o},async install(Q,...h){if(Q.__VUE_I18N_SYMBOL__=s,Q.provide(Q.__VUE_I18N_SYMBOL__,C),vA(h[0])){const E=h[0];C.__composerExtend=E.__composerExtend,C.__vueI18nExtend=E.__vueI18nExtend}let f=null;!t&&i&&(f=Su(Q,C.global)),__VUE_I18N_FULL_INSTALL__&&Eu(Q,C,...h),__VUE_I18N_LEGACY_API__&&t&&Q.mixin(uu(g,g.__composer,C));const u=Q.unmount;Q.unmount=()=>{f&&f(),C.dispose(),u()}},get global(){return g},dispose(){r.stop()},__instances:n,__getInstance:a,__setInstance:I,__deleteInstance:l};return C}}function ve(A={}){const e=vi();if(e==null)throw Ie(re.MUST_BE_CALL_SETUP_TOP);if(!e.isCE&&e.appContext.app!=null&&!e.appContext.app.__VUE_I18N_SYMBOL__)throw Ie(re.NOT_INSTALLED);const t=pu(e),i=yu(t),o=JC(e),n=mu(A,o);if(__VUE_I18N_LEGACY_API__&&t.mode==="legacy"&&!A.__useComponent){if(!t.allowComposition)throw Ie(re.NOT_AVAILABLE_IN_LEGACY_MODE);return vu(e,n,i,A)}if(n==="global")return TC(i,A,o),i;if(n==="parent"){let s=wu(t,e,A.__useComponent);return s==null&&(s=i),s}const r=t;let g=r.__getInstance(e);if(g==null){const s=Be({},A);"__i18n"in o&&(s.__i18n=o.__i18n),i&&(s.__root=i),g=Bg(s),r.__composerExtend&&(g[Fr]=r.__composerExtend(g)),ku(r,e,g),r.__setInstance(e,g)}return g}function du(A,e,t){const i=cB();{const o=__VUE_I18N_LEGACY_API__&&e?i.run(()=>Sr(A)):i.run(()=>Bg(A));if(o==null)throw Ie(re.UNEXPECTED_ERROR);return[i,o]}}function pu(A){{const e=rt(A.isCE?hu:A.appContext.app.__VUE_I18N_SYMBOL__);if(!e)throw Ie(A.isCE?re.NOT_INSTALLED_WITH_PROVIDE:re.UNEXPECTED_ERROR);return e}}function mu(A,e){return vn(A)?"__i18n"in e?"local":"global":A.useScope?A.useScope:"local"}function yu(A){return A.mode==="composition"?A.global:A.global.__composer}function wu(A,e,t=!1){let i=null;const o=e.root;let n=Du(e,t);for(;n!=null;){const r=A;if(A.mode==="composition")i=r.__getInstance(n);else if(__VUE_I18N_LEGACY_API__){const g=r.__getInstance(n);g!=null&&(i=g.__composer,t&&i&&!i[xC]&&(i=null))}if(i!=null||o===n)break;n=n.parent}return i}function Du(A,e=!1){return A==null?null:e&&A.vnode.ctx||A.parent}function ku(A,e,t){Ft(()=>{},e),Ci(()=>{const i=t;A.__deleteInstance(e);const o=i[Fr];o&&(o(),delete i[Fr])},e)}function vu(A,e,t,i={}){const o=e==="local",n=tg(null);if(o&&A.proxy&&!(A.proxy.$options.i18n||A.proxy.$options.__i18n))throw Ie(re.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const r=RA(i.inheritLocale)?i.inheritLocale:!gA(i.locale),g=EA(!o||r?t.locale.value:gA(i.locale)?i.locale:Si),s=EA(!o||r?t.fallbackLocale.value:gA(i.fallbackLocale)||WA(i.fallbackLocale)||vA(i.fallbackLocale)||i.fallbackLocale===!1?i.fallbackLocale:g.value),a=EA(Rn(g.value,i)),I=EA(vA(i.datetimeFormats)?i.datetimeFormats:{[g.value]:{}}),l=EA(vA(i.numberFormats)?i.numberFormats:{[g.value]:{}}),C=o?t.missingWarn:RA(i.missingWarn)||Ot(i.missingWarn)?i.missingWarn:!0,Q=o?t.fallbackWarn:RA(i.fallbackWarn)||Ot(i.fallbackWarn)?i.fallbackWarn:!0,h=o?t.fallbackRoot:RA(i.fallbackRoot)?i.fallbackRoot:!0,f=!!i.fallbackFormat,u=PA(i.missing)?i.missing:null,E=PA(i.postTranslation)?i.postTranslation:null,D=o?t.warnHtmlMessage:RA(i.warnHtmlMessage)?i.warnHtmlMessage:!0,c=!!i.escapeParameter,d=o?t.modifiers:vA(i.modifiers)?i.modifiers:{},p=i.pluralRules||o&&t.pluralRules;function v(){return[g.value,s.value,a.value,I.value,l.value]}const N=hA({get:()=>n.value?n.value.locale.value:g.value,set:k=>{n.value&&(n.value.locale.value=k),g.value=k}}),G=hA({get:()=>n.value?n.value.fallbackLocale.value:s.value,set:k=>{n.value&&(n.value.fallbackLocale.value=k),s.value=k}}),H=hA(()=>n.value?n.value.messages.value:a.value),S=hA(()=>I.value),b=hA(()=>l.value);function L(){return n.value?n.value.getPostTranslationHandler():E}function QA(k){n.value&&n.value.setPostTranslationHandler(k)}function dA(){return n.value?n.value.getMissingHandler():u}function IA(k){n.value&&n.value.setMissingHandler(k)}function oA(k){return v(),k()}function X(...k){return n.value?oA(()=>Reflect.apply(n.value.t,null,[...k])):oA(()=>"")}function tA(...k){return n.value?Reflect.apply(n.value.rt,null,[...k]):""}function fA(...k){return n.value?oA(()=>Reflect.apply(n.value.d,null,[...k])):oA(()=>"")}function _(...k){return n.value?oA(()=>Reflect.apply(n.value.n,null,[...k])):oA(()=>"")}function W(k){return n.value?n.value.tm(k):{}}function z(k,x){return n.value?n.value.te(k,x):!1}function DA(k){return n.value?n.value.getLocaleMessage(k):{}}function NA(k,x){n.value&&(n.value.setLocaleMessage(k,x),a.value[k]=x)}function oe(k,x){n.value&&n.value.mergeLocaleMessage(k,x)}function LA(k){return n.value?n.value.getDateTimeFormat(k):{}}function Y(k,x){n.value&&(n.value.setDateTimeFormat(k,x),I.value[k]=x)}function $(k,x){n.value&&n.value.mergeDateTimeFormat(k,x)}function AA(k){return n.value?n.value.getNumberFormat(k):{}}function cA(k,x){n.value&&(n.value.setNumberFormat(k,x),l.value[k]=x)}function SA(k,x){n.value&&n.value.mergeNumberFormat(k,x)}const w={get id(){return n.value?n.value.id:-1},locale:N,fallbackLocale:G,messages:H,datetimeFormats:S,numberFormats:b,get inheritLocale(){return n.value?n.value.inheritLocale:r},set inheritLocale(k){n.value&&(n.value.inheritLocale=k)},get availableLocales(){return n.value?n.value.availableLocales:Object.keys(a.value)},get modifiers(){return n.value?n.value.modifiers:d},get pluralRules(){return n.value?n.value.pluralRules:p},get isGlobal(){return n.value?n.value.isGlobal:!1},get missingWarn(){return n.value?n.value.missingWarn:C},set missingWarn(k){n.value&&(n.value.missingWarn=k)},get fallbackWarn(){return n.value?n.value.fallbackWarn:Q},set fallbackWarn(k){n.value&&(n.value.missingWarn=k)},get fallbackRoot(){return n.value?n.value.fallbackRoot:h},set fallbackRoot(k){n.value&&(n.value.fallbackRoot=k)},get fallbackFormat(){return n.value?n.value.fallbackFormat:f},set fallbackFormat(k){n.value&&(n.value.fallbackFormat=k)},get warnHtmlMessage(){return n.value?n.value.warnHtmlMessage:D},set warnHtmlMessage(k){n.value&&(n.value.warnHtmlMessage=k)},get escapeParameter(){return n.value?n.value.escapeParameter:c},set escapeParameter(k){n.value&&(n.value.escapeParameter=k)},t:X,getPostTranslationHandler:L,setPostTranslationHandler:QA,getMissingHandler:dA,setMissingHandler:IA,rt:tA,d:fA,n:_,tm:W,te:z,getLocaleMessage:DA,setLocaleMessage:NA,mergeLocaleMessage:oe,getDateTimeFormat:LA,setDateTimeFormat:Y,mergeDateTimeFormat:$,getNumberFormat:AA,setNumberFormat:cA,mergeNumberFormat:SA};function R(k){k.locale.value=g.value,k.fallbackLocale.value=s.value,Object.keys(a.value).forEach(x=>{k.mergeLocaleMessage(x,a.value[x])}),Object.keys(I.value).forEach(x=>{k.mergeDateTimeFormat(x,I.value[x])}),Object.keys(l.value).forEach(x=>{k.mergeNumberFormat(x,l.value[x])}),k.escapeParameter=c,k.fallbackFormat=f,k.fallbackRoot=h,k.fallbackWarn=Q,k.missingWarn=C,k.warnHtmlMessage=D}return JI(()=>{if(A.proxy==null||A.proxy.$i18n==null)throw Ie(re.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const k=n.value=A.proxy.$i18n.__composer;e==="global"?(g.value=k.locale.value,s.value=k.fallbackLocale.value,a.value=k.messages.value,I.value=k.datetimeFormats.value,l.value=k.numberFormats.value):o&&R(k)}),w}const Fu=["locale","fallbackLocale","availableLocales"],Ps=["t","rt","d","n","tm","te"];function Su(A,e){const t=Object.create(null);return Fu.forEach(o=>{const n=Object.getOwnPropertyDescriptor(e,o);if(!n)throw Ie(re.UNEXPECTED_ERROR);const r=le(n.value)?{get(){return n.value.value},set(g){n.value.value=g}}:{get(){return n.get&&n.get()}};Object.defineProperty(t,o,r)}),A.config.globalProperties.$i18n=t,Ps.forEach(o=>{const n=Object.getOwnPropertyDescriptor(e,o);if(!n||!n.value)throw Ie(re.UNEXPECTED_ERROR);Object.defineProperty(A.config.globalProperties,`$${o}`,n)}),()=>{delete A.config.globalProperties.$i18n,Ps.forEach(o=>{delete A.config.globalProperties[`$${o}`]})}}ou();__INTLIFY_JIT_COMPILATION__?ws(zE):ws(XE);_E(mE);KE(yC);if(__INTLIFY_PROD_DEVTOOLS__){const A=ft();A.__INTLIFY__=!0,bE(A.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const Jt=EA({isOnline:!1,error:"",lastCheck:null}),ge=EA({chip:null,board:null,firmware:null,flash:null,assetsPartition:null,network:null,screen:null}),go=EA(""),so=EA(""),Rr=EA(!1),yi=EA(null),Ru=A=>new URLSearchParams(window.location.search).get(A),Po=async(A,e={})=>{const t=await fetch(`/xiaozhi/device/tools/call/${so.value}`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${go.value}`},body:JSON.stringify({name:A,arguments:e})});if(t.ok)return await t.json();{const i=await t.text();console.error(`MCP tool ${A} failed:`,t.status,i);let o=`Failed to call ${A}`;try{const n=JSON.parse(i);n.message&&(o=n.message)}catch{o=`${o}: HTTP ${t.status}`}throw new Error(o)}},bu=async()=>{var A,e,t,i;try{const[o,n,r]=await Promise.allSettled([Po("self.get_system_info"),Po("self.get_device_status"),Po("self.screen.get_info")]);if(o.status==="fulfilled"&&o.value){const g=o.value.data||o.value;if(ge.value.chip={model:g.chip_model_name||"Unknown"},ge.value.board={model:((A=g.board)==null?void 0:A.name)||"Unknown"},ge.value.firmware={version:((e=g.application)==null?void 0:e.version)||"Unknown"},g.flash_size){const s=Math.round(g.flash_size/1024/1024);ge.value.flash={size:`${s}MB`}}else ge.value.flash={size:"Unknown"};if(g.partition_table){const s=g.partition_table.find(a=>a.label==="assets");s?ge.value.assetsPartition={size:s.size,sizeFormatted:`${Math.round(s.size/1024/1024)}MB`}:ge.value.assetsPartition=null}else ge.value.assetsPartition=null}else console.warn("系统信息获取失败:",o.reason||o.value),ge.value.chip={model:"Unknown"},ge.value.board={model:"Unknown"},ge.value.firmware={version:"Unknown"},ge.value.flash={size:"Unknown"},ge.value.assetsPartition=null;if(n.status==="fulfilled"&&n.value){const g=n.value.data||n.value;ge.value.network={type:((t=g.network)==null?void 0:t.type)||"unknown",signal:((i=g.network)==null?void 0:i.signal)||"Unknown"}}else console.warn("设备状态获取失败:",n.reason||n.value),ge.value.network={type:"unknown",signal:"Unknown"};if(r.status==="fulfilled"&&r.value){const g=r.value.data||r.value;ge.value.screen={resolution:`${g.width||0}x${g.height||0}`}}else console.warn("屏幕信息获取失败:",r.reason||r.value),ge.value.screen={resolution:"Unknown"}}catch(o){console.error("获取设备信息时发生错误:",o)}},bn=async(A=!0)=>{Rr.value=!0;try{const e=await fetch(`/xiaozhi/device/tools/list/${so.value}`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${go.value}`}});if((await e.json()).code===0)Jt.value.isOnline=!0,Jt.value.error="",Jt.value.lastCheck=new Date,A&&await bu();else throw new Error(`HTTP ${e.status}: ${e.statusText}`)}catch{Jt.value.isOnline=!1,Jt.value.error="",Jt.value.lastCheck=new Date,yi.value&&clearTimeout(yi.value),yi.value=setTimeout(bn,3e4)}finally{Rr.value=!1}},Nu=(A,e)=>{if(!A)return e("device.signal.unknown");switch(A.toLowerCase()){case"strong":return e("device.signal.strong");case"medium":return e("device.signal.medium");case"weak":return e("device.signal.weak");case"none":return e("device.signal.none");default:return A}},Gu=()=>{const A=localStorage.getItem("token");so.value=Ru("deviceId"),A&&so.value&&(go.value=JSON.parse(A).token,bn())},Lu=()=>{yi.value&&(clearTimeout(yi.value),yi.value=null)},Uu=async()=>{await bn()};function Nn(){const A=hA(()=>!!go.value),e=hA(()=>Jt.value.isOnline);return{token:go,deviceId:so,deviceStatus:Jt,deviceInfo:ge,isChecking:Rr,hasToken:A,isDeviceOnline:e,initializeDeviceStatus:Gu,cleanupDeviceStatus:Lu,refreshDeviceStatus:Uu,checkDeviceStatus:bn,callMcpTool:Po,getSignalDisplayText:Nu}}const Vs={__name:"WifiIcon",props:{size:{type:String,default:"w-4 h-4"},color:{type:String,default:"text-blue-500"}},setup(A){const e=A,t=hA(()=>`${e.size} ${e.color}`);return(i,o)=>(T(),K("svg",{class:kA(t.value),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...o[0]||(o[0]=[B("path",{d:"M3 9c4.97-4.97 13.03-4.97 18 0","stroke-width":"2","stroke-linecap":"round"},null,-1),B("path",{d:"M6 12c3.31-3.31 8.69-3.31 12 0","stroke-width":"2","stroke-linecap":"round"},null,-1),B("path",{d:"M9 15c1.66-1.66 4.34-1.66 6 0","stroke-width":"2","stroke-linecap":"round"},null,-1),B("circle",{cx:"12",cy:"18",r:"1.5",fill:"currentColor"},null,-1)])],2))}},Ws={__name:"Signal4GIcon",props:{size:{type:String,default:"w-4 h-4"},color:{type:String,default:"text-green-500"}},setup(A){const e=A,t=hA(()=>`${e.size} ${e.color}`);return(i,o)=>(T(),K("svg",{class:kA(t.value),fill:"currentColor",viewBox:"0 0 24 24"},[...o[0]||(o[0]=[Dn('4G',5)])],2))}},qs={__name:"ChipIcon",props:{size:{type:String,default:"w-4 h-4"},color:{type:String,default:"text-gray-400"}},setup(A){const e=A,t=hA(()=>`${e.size} ${e.color}`);return(i,o)=>(T(),K("svg",{class:kA(t.value),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...o[0]||(o[0]=[Dn('',14)])],2))}},js={__name:"FlashIcon",props:{size:{type:String,default:"w-4 h-4"},color:{type:String,default:"text-gray-400"}},setup(A){const e=A,t=hA(()=>`${e.size} ${e.color}`);return(i,o)=>(T(),K("svg",{class:kA(t.value),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...o[0]||(o[0]=[Dn('',10)])],2))}},Zs={__name:"BoardIcon",props:{size:{type:String,default:"w-4 h-4"},color:{type:String,default:"text-gray-400"}},setup(A){const e=A,t=hA(()=>`${e.size} ${e.color}`);return(i,o)=>(T(),K("svg",{class:kA(t.value),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...o[0]||(o[0]=[Dn('',10)])],2))}},Xs={__name:"ScreenIcon",props:{size:{type:String,default:"w-4 h-4"},color:{type:String,default:"text-gray-400"}},setup(A){const e=A,t=hA(()=>`${e.size} ${e.color}`);return(i,o)=>(T(),K("svg",{class:kA(t.value),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...o[0]||(o[0]=[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"},null,-1)])],2))}},Mu={class:"flex items-center space-x-2"},xu={class:"flex items-center space-x-1"},Ju={key:0,class:"flex items-center space-x-1"},Tu={class:"text-xs text-gray-500"},Hu={key:0,class:"flex items-center space-x-4 text-sm text-gray-600"},Yu={key:0,class:"flex items-center space-x-1"},_u={key:1,class:"flex items-center space-x-1"},Ku={key:2,class:"flex items-center space-x-1"},Ou={key:3,class:"flex items-center space-x-1"},Pu={key:1,class:"lg:hidden flex flex-col bg-white rounded-lg border border-gray-200 shadow-sm overflow-hidden"},Vu={class:"flex items-center justify-between px-4 py-3 bg-gray-50 border-b border-gray-200"},Wu={class:"flex items-center space-x-2"},qu={key:0,class:"flex items-center space-x-1"},ju={class:"text-xs font-medium text-gray-600"},Zu={key:0,class:"px-4 py-3"},Xu={class:"grid grid-cols-1 gap-2.5"},zu={class:"flex justify-between items-center py-1.5 border-b border-gray-100"},$u={key:0,class:"flex items-center space-x-2 flex-1"},Ah={class:"min-w-0 flex-1"},eh={class:"text-xs text-gray-500 leading-tight"},th={class:"text-sm text-gray-800 font-medium truncate"},ih={key:1,class:"flex items-center space-x-2 flex-1 ml-3"},oh={class:"min-w-0 flex-1"},nh={class:"text-xs text-gray-500 leading-tight"},rh={class:"text-sm text-gray-800 font-medium truncate"},gh={class:"flex justify-between items-center py-1.5"},sh={key:0,class:"flex items-center space-x-2 flex-1"},ah={class:"min-w-0 flex-1"},Ih={class:"text-xs text-gray-500 leading-tight"},Ch={class:"text-sm text-gray-800 font-medium"},lh={key:1,class:"flex items-center space-x-2 flex-1 ml-3"},Bh={class:"min-w-0 flex-1"},Qh={class:"text-xs text-gray-500 leading-tight"},ch={class:"text-sm text-gray-800 font-medium"},Eh={__name:"DeviceStatus",setup(A){const{t:e}=ve(),{deviceStatus:t,deviceInfo:i,hasToken:o,initializeDeviceStatus:n,cleanupDeviceStatus:r,getSignalDisplayText:g}=Nn(),s=hA(()=>o.value);return Ft(()=>{n()}),Ci(()=>{r()}),(a,I)=>(T(),K(qA,null,[s.value?(T(),K("div",{key:0,class:kA(["hidden lg:flex items-center space-x-4",BA(t).isOnline?"":"opacity-60"])},[B("div",Mu,[B("div",xu,[B("div",{class:kA(["w-2 h-2 rounded-full",BA(t).isOnline?"bg-green-500":"bg-gray-400"])},null,2),B("span",{class:kA(["text-sm font-medium",BA(t).isOnline?"text-gray-700":"text-gray-500"])},F(BA(t).isOnline?a.$t("device.online"):a.$t("device.offline")),3)]),BA(t).isOnline&&BA(i).network?(T(),K("div",Ju,[BA(i).network.type==="wifi"?(T(),ye(BA(Vs),{key:0,color:"text-blue-500"})):BA(i).network.type==="4g"?(T(),ye(BA(Ws),{key:1})):sA("",!0),B("span",Tu,F(BA(g)(BA(i).network.signal,BA(e))),1)])):sA("",!0)]),BA(t).isOnline?(T(),K("div",Hu,[BA(i).chip?(T(),K("div",Yu,[TA(BA(qs)),B("span",null,F(BA(i).chip.model),1)])):sA("",!0),BA(i).flash?(T(),K("div",_u,[TA(BA(js)),B("span",null,F(BA(i).flash.size),1)])):sA("",!0),BA(i).board?(T(),K("div",Ku,[TA(BA(Zs)),B("span",null,F(BA(i).board.model),1)])):sA("",!0),BA(i).screen?(T(),K("div",Ou,[TA(BA(Xs)),B("span",null,F(BA(i).screen.resolution),1)])):sA("",!0)])):sA("",!0)],2)):sA("",!0),s.value?(T(),K("div",Pu,[B("div",Vu,[B("div",Wu,[B("div",{class:kA(["w-2.5 h-2.5 rounded-full",BA(t).isOnline?"bg-green-500":"bg-red-400"])},null,2),B("span",{class:kA(["text-sm font-medium",BA(t).isOnline?"text-gray-800":"text-gray-600"])},F(BA(t).isOnline?a.$t("device.online"):a.$t("device.offline")),3)]),BA(t).isOnline&&BA(i).network?(T(),K("div",qu,[BA(i).network.type==="wifi"?(T(),ye(BA(Vs),{key:0,color:"text-blue-500"})):BA(i).network.type==="4g"?(T(),ye(BA(Ws),{key:1})):sA("",!0),B("span",ju,F(BA(g)(BA(i).network.signal,BA(e))),1)])):sA("",!0)]),BA(t).isOnline?(T(),K("div",Zu,[B("div",Xu,[B("div",zu,[BA(i).chip?(T(),K("div",$u,[TA(BA(qs),{class:"flex-shrink-0"}),B("div",Ah,[B("div",eh,F(a.$t("device.chip")),1),B("div",th,F(BA(i).chip.model),1)])])):sA("",!0),BA(i).board?(T(),K("div",ih,[TA(BA(Zs),{class:"flex-shrink-0"}),B("div",oh,[B("div",nh,F(a.$t("device.board")),1),B("div",rh,F(BA(i).board.model),1)])])):sA("",!0)]),B("div",gh,[BA(i).flash?(T(),K("div",sh,[TA(BA(js),{class:"flex-shrink-0"}),B("div",ah,[B("div",Ih,F(a.$t("device.flash")),1),B("div",Ch,F(BA(i).flash.size),1)])])):sA("",!0),BA(i).screen?(T(),K("div",lh,[TA(BA(Xs),{class:"flex-shrink-0"}),B("div",Bh,[B("div",Qh,F(a.$t("device.screen")),1),B("div",ch,F(BA(i).screen.resolution),1)])])):sA("",!0)])])])):sA("",!0)])):sA("",!0)],64))}},uh={title:"Xiaozhi AI Customization"},hh={cancel:"Cancel",confirm:"Confirm",close:"Close",start:"Start",download:"Download",generate:"Generate",reset:"Reset",yes:"Yes",no:"No",loading:"Loading...",error:"Error",success:"Success",warning:"Warning",info:"Information",next:"Next",previous:"Previous",finish:"Finish",retry:"Retry",ok:"OK",other:"Other"},fh={title:"Xiaozhi AI Customization"},dh={title:"Saved Configuration Detected",message:"Configuration has been automatically restored. You can continue from where you left off or start over.",restart:"Start Over"},ph={chip:"Chip Configuration",theme:"Theme Design",generate:"Preview & Generate"},mh={title:"Generate assets.bin",confirmConfig:"Please confirm your configuration",chipModel:"Chip Model:",resolution:"Resolution:",wakeword:"Wake Word:",font:"Font:",emoji:"Emoji Package:",fileList:"Included Files List",estimated:"Estimated",compressed:"Before compression",generating:"Generating assets.bin...",progress:"{progress}% Complete",completed:"Your assets.bin file is ready",filename:"Filename: assets.bin",fileSize:"File Size: {size}",generationTime:"Generation Time: {time}",downloadAssets:"Download assets.bin",flashToDevice:"Flash to Device Online",flashing:"Flashing to device...",flashingCancel:"Cancel Flash",flashingError:"Flashing Error",flashingInProgress:"Flashing in progress, please do not close the window",customFont:"Custom Font",customEmoji:"Custom Emoji Package",notConfigured:"Not Configured",wakewordNames:{wn9s_hilexin:"Hi, Espressif",wn9s_hiesp:"Hi, ESP",wn9s_nihaoxiaozhi:"Hello Xiaozhi",wn9_nihaoxiaozhi_tts:"Hello Xiaozhi",wn9_alexa:"Alexa"}},yh={init:"Initialize Generator",font:"Process Font Files",wakeword:"Package Wake Word Model",emoji:"Process Emoji Images",background:"Process Background Images",index:"Generate Index File",spiffs:"Build SPIFFS Mapping",package:"Complete Packaging"},wh={title:"Wake Word Configuration",description:"Select a preset wake word model or customize it using a command recognition model.",supportWakeNet9:"Your chip supports WakeNet9 models.",supportWakeNet9s:"Your chip supports WakeNet9s models.",notSupported:"Your chip does not support wake word functionality.",notice:"Note:",unsupportedMessage:"{chipModel} chip does not support wake word functionality. If you need to use wake words, please select ESP32-S3, ESP32-P4, or ESP32-C3/C5/C6 chips.",noWakeword:"No Wake Word",presetWakeword:"Preset Wake Word",customWakeword:"Custom Wake Word",selectWakeword:"Select Wake Word",placeholder:"Select wake word...",customSettings:"Custom Wake Word Settings",wakewordName:"Wake Word Name",wakewordNamePlaceholder:"e.g., Xiaozhi / Potato",wakewordCommand:"Wake Command",wakewordCommandPlaceholderCN:"Pinyin separated by spaces, e.g., ni hao xiao zhi",wakewordCommandPlaceholderEN:"English words, no punctuation, e.g., HELLO POTATO",threshold:"Sensitivity Threshold (0-100)",thresholdDesc:"Lower is more sensitive, default 20",duration:"Recognition Duration",durationDesc:"Maximum duration for command recognition",selectModel:"Select Recognition Model",mn6cn:"MultiNet6 (Chinese)",mn6en:"MultiNet6 (English)",mn7cn:"MultiNet7 (Chinese)",mn7en:"MultiNet7 (English)",errors:{nameRequired:"Please enter wake word name",commandRequired:"Please enter wake command",noPunctuation:"Command cannot contain punctuation",durationRange:"Duration must be between 500-10000ms"},tips:{tipLabel:"Tip:",optional:"Wake words are optional. If disabled, the device cannot be voice-activated.",wakeNet9sOnly:"C3/C5/C6 chips only support WakeNet9s lightweight models.",wakeNet9Full:"S3/P4 chips support complete WakeNet9 models with more choices.",customSupport:"Custom wake words use MultiNet models, currently only supported on ESP32-S3."}},Dh={resetFailed:"Reset failed, please refresh the page and try again",generationFailed:"Generation failed: {error}",noFileToDownload:"No downloadable file available",deviceOffline:"Device is offline and cannot be flashed",fileTooLarge:"Flash failed: File size {fileSize}MB exceeds assets partition size {partitionSize}MB. Please reduce configuration content or use a device with larger capacity.",flashCancelConfirm:"Are you sure you want to cancel flashing?",oldDataCleared:`Old version emoji data structure has been detected and cleared. + +The new version uses file deduplication technology to save storage space. + +Please re-upload custom emoji images.`,incompatibleEmojiData:"Incompatible emoji data detected, please reconfigure"},kh={authTokenMissing:"Authentication token not found",checkingDeviceStatus:"Checking device status...",deviceOfflineOrUnresponsive:"The device does not exist or is not online",unableToGetDeviceStatus:"Unable to get device status",initializingTransferService:"Initializing transfer service...",initializeTransferFailed:"Failed to initialize transfer service: {error}",uploadingFile:"Upload the file ...",uploadFailed:"Upload file failed",settingDeviceDownloadUrl:"Setting device download URL...",setDownloadUrlFailed:"Failed to set download URL: {error}",rebootingDevice:"Rebooting device...",waitingForDeviceReboot:"Waiting for device to reboot...",deviceRebootTimeout:"Device reboot timeout (60 seconds)",deviceReady:"Device ready, please wait for program burning",startingFileTransfer:"Starting file transfer...",flashCompleted:"During program burning, please pay attention to the firmware burning status!",onlineFlashFailed:"Online flashing failed: {error}"},vh={online:"Online",offline:"Offline",checking:"Checking...",flashing:"Flashing...",ready:"Ready",chip:"Chip",board:"Board",flash:"Flash",screen:"Screen",signal:{unknown:"Unknown",strong:"Strong",medium:"Medium",weak:"Weak",none:"No Signal"}},Fh={title:"Step 1: Chip Model and Screen Configuration",loadingFromDevice:"Loading hardware configuration from device...",loadedFromDevice:"Hardware configuration automatically loaded from device",manualConfig:"Please configure hardware parameters manually",loadingTitle:"Loading Device Configuration...",loadingDesc:"Reading chip model and screen resolution from device",autoLoadedTitle:"Device Configuration Auto-loaded",chipModel:"Chip Model",screenWidth:"Screen Width",screenHeight:"Screen Height",colorFormat:"Color Format:",manualEdit:"Manual Configuration",collapseManual:"Collapse Manual Configuration",manualConfigTitle:"Manual Hardware Configuration",next:"Next",selectChip:"Select Chip",chipRequired:"Chip Model",widthRequired:"Screen Width",heightRequired:"Screen Height",loadingError:"Loading configuration error",deviceOffline:"Device not connected or offline",chipModelError:"Unable to get chip model, please enter manually",resolutionError:"Unable to get screen resolution, please enter manually",timeoutError:"Configuration loading timeout, please enter manually",manualConfigDesc:"Unable to auto-read device configuration",manualConfigHint:"Device not connected or offline, please manually input hardware configuration",manualConfigRequired:"Please manually input hardware configuration",resolutionFormatError:"Screen resolution format error"},Sh={title:"Step 2: Theme Design",description:"Configure wake word, font, emoji and background to customize your Xiaozhi AI theme.",previous:"Previous",next:"Next",tabs:{wakeword:"Wake Word Config",font:"Font Config",emoji:"Emoji Collection",background:"Chat Background"}},Rh={title:"Step 3: Preview",description:"Preview the effect of your custom configuration on the actual device.",devicePreview:"Device Preview (1:1 Pixel Ratio)",previewSettings:"Preview Settings",previewText:"Preview Text",defaultPreviewText:"Hi, I'm your friend Xiaozhi!",currentEmotion:"Current Emotion",themeMode:"Theme Mode",lightMode:"Light",darkMode:"Dark",configSummary:"Configuration Summary",wakeword:"Wake Word:",font:"Font:",loading:"Loading...",emotion:"Emotion:",skin:"Skin:",previous:"Previous",generate:"Generate assets.bin",emotions:{neutral:"Neutral",happy:"Happy",laughing:"Laughing",funny:"Funny",sad:"Sad",angry:"Angry",crying:"Crying",loving:"Loving",embarrassed:"Embarrassed",surprised:"Surprised",shocked:"Shocked",thinking:"Thinking",winking:"Winking",cool:"Cool",relaxed:"Relaxed",delicious:"Delicious",kissy:"Kiss",confident:"Confident",sleepy:"Sleepy",silly:"Silly",confused:"Confused"},noEmotionConfigured:"No emotion configured",fontLoading:"Font loading...",configureEmojiFirst:"Please configure emoji package in theme design first",customFont:"Custom Font {size}px",customEmoji:"Custom Emoji {count} images",notConfigured:"Not configured",skinLight:"Light {type}",skinDark:"Dark {type}",hideSubtitle:"Hide Subtitle:",image:"Image",color:"Color"},bh={title:"Chat Background Configuration",description:"Configure chat backgrounds for light and dark modes, supporting solid colors or custom images.",lightMode:"Light Mode Background",darkMode:"Dark Mode Background",solidBackground:"Solid Background",imageBackground:"Image Background",backgroundColor:"Background Color:",textColor:"Text Color:",backgroundImage:"Background Image:",clickOrDragToUpload:"Click or drag to upload background image",removeImage:"Remove Image",backgroundPreview:"Background Preview",lightModePreview:"Light Mode",darkModePreview:"Dark Mode",chatArea:"Chat Content Area",quickConfig:"Quick Configuration",defaultColors:"Default Colors",stoneTexture:"Stone Texture",sunnyColors:"Sunny Colors",skyBlue:"Sky Blue",romanticPink:"Romantic Pink",selectValidImage:"Please select a valid image file"},Nh={title:"Emoji Collection Configuration",description:"Choose preset emoji package or custom emoji images. Each emoji package contains 21 different emotion expressions.",noEmojiPack:"No Emoji Pack",noEmojiPackDescription:"Don't configure emoji pack, only font and background resources will be included in the package.",presetEmojiPack:"Preset Emoji Pack",customEmojiPack:"Custom Emoji Pack",selectPresetEmojiPack:"Select Preset Emoji Pack",twemoji64:"Twemoji 64×64",twemoji32:"Twemoji 32×32",twemojiDescription:"High-quality emoji set from Twitter, perfect for clear display",twitterEmojiName:"Twemoji {size}x{size}",twitterEmojiDescription:"Twitter emoji pack, {size}×{size} pixels",size:"Size",preview:"Preview",select:"Select",customEmojiTitle:"Custom Emoji Pack",customEmojiDescription:"Upload your own emoji images. Each emotion needs one image.",uploadInstructions:"Click or drag to upload emoji images (PNG/JPG/WEBP)",supportedFormats:"Supported formats: PNG, JPG, WEBP. Recommended size: 64×64 pixels",emotionMapping:"Emotion Mapping",uploadAllEmotions:"Please upload emoji images for all emotions",maxImageWidth:"Max Image Width (px)",maxImageHeight:"Max Image Height (px)",clickToUpload:"Click to upload",orDragDrop:"or drag and drop",clickToUploadOrDrag:"Click to upload or drag here",remove:"Remove",replace:"Replace",selectValidEmojiImage:"Please select a valid emoji image file",selectValidFormat:"Please select a valid PNG or GIF format image",maxFileSize:"File size cannot exceed 1MB",invalidFormat:"Unsupported image format. Please use PNG, JPG, or WEBP.",required:"Required",uploadEmojiImages:"Upload Emoji Images (GIF requires PSRAM)",customEmojiPackConfig:"Custom Emoji Pack Configuration",neutralRequiredNotice:"* Must upload neutral default emotion, others are optional. If not uploaded, default emotion will be used instead.",sharedFileMessage:"Emotion {emotionKey} uses the same image file as {existingEmotions} (shared storage)",fileDeleted:"File {fileHash} has been deleted (no other emotion references)",fileRetained:"File {fileHash} is still used by other emotions, retained",imageLoadFailed:"Failed to load emoji image",emotions:{neutral:"Neutral",happy:"Happy",laughing:"Laughing",funny:"Funny",sad:"Sad",angry:"Angry",crying:"Crying",loving:"Loving",embarrassed:"Embarrassed",surprised:"Surprised",shocked:"Shocked",thinking:"Thinking",winking:"Winking",cool:"Cool",relaxed:"Relaxed",delicious:"Delicious",kissy:"Kiss",confident:"Confident",sleepy:"Sleepy",silly:"Silly",confused:"Confused"}},Gh={title:"Font Configuration",description:"Choose preset fonts or upload custom font files.",noFonts:"No Fonts",noFontsDescription:"Do not use font configuration, the device will use the default font",presetFonts:"Preset Fonts",customFonts:"Custom Fonts",selectPresetFont:"Select Preset Font",fontSize:"Font Size:",bitDepth:"Bit Depth:",charset:"Character Set:",fileSize:"File Size:",customFontConfig:"Custom Font Configuration",fontFile:"Font File",clickSelectFontFile:"Click to select font file",orDragFileHere:"or drag file here",supportedFormats:"Supports TTF, WOFF, WOFF2 formats",removeFile:"Remove File",fontSizePx:"Font Size (px)",range:"Range:",bitDepthBpp:"Bit Depth (BPP)",monochrome:"1 bpp (Monochrome)",fourColors:"2 bpp (4 colors)",sixteenColors:"4 bpp (16 colors)",characterSet:"Character Set",deepseekR1:"DeepSeek R1 (7405 characters)",gb2312:"GB2312 (7445 characters)",qwen18409:"Qwen (18409 characters)",latin1:"Latin1 (190 characters)",fullCharset:"Full Character Set (All characters in font file)",hideSubtitle:"Hide Subtitle",hideSubtitleDescription:"Do not show real-time text subtitles during conversation",selectValidFontFile:"Please select a valid font file (TTF, WOFF, WOFF2)",presetFontNames:{font_puhui_deepseek_14_1:"Alibaba PuHuiTi 14px",font_puhui_deepseek_16_4:"Alibaba PuHuiTi 16px",font_puhui_deepseek_20_4:"Alibaba PuHuiTi 20px",font_puhui_deepseek_30_4:"Alibaba PuHuiTi 30px",font_noto_qwen_14_1:"Noto Sans 14px",font_noto_qwen_16_4:"Noto Sans 16px",font_noto_qwen_20_4:"Noto Sans 20px",font_noto_qwen_30_4:"Noto Sans 30px"},charsetDeepseek:"DeepSeek 7405",charsetQwen:"Qwen 18409"},Lh={app:uh,common:hh,header:fh,configNotice:dh,steps:ph,generateModal:mh,progressSteps:yh,wakewordConfig:wh,errors:Dh,flashProgress:kh,device:vh,chipConfig:Fh,themeDesign:Sh,generateSummary:Rh,backgroundConfig:bh,emojiConfig:Nh,fontConfig:Gh},Uh={title:"小智 AI 自定义"},Mh={cancel:"取消",confirm:"确认",close:"关闭",start:"开始",download:"下载",generate:"生成",reset:"重置",yes:"是",no:"否",loading:"加载中...",error:"错误",success:"成功",warning:"警告",info:"信息",next:"下一步",previous:"上一步",finish:"完成",retry:"重试",ok:"确定",other:"其他"},xh={title:"小智 AI 自定义"},Jh={title:"检测到已保存的配置",message:"配置已自动恢复,您可以继续之前的进度或重新开始。",restart:"重新开始"},Th={chip:"芯片配置",theme:"主题设计",generate:"效果预览"},Hh={title:"生成 assets.bin",confirmConfig:"请确认您的配置",chipModel:"芯片型号:",resolution:"分辨率:",wakeword:"唤醒词:",font:"字体:",emoji:"表情包:",fileList:"包含的文件列表",estimated:"预估",compressed:"压缩前",generating:"正在生成 assets.bin...",progress:"{progress}% 完成",completed:"您的 assets.bin 文件已准备就绪",filename:"文件名: assets.bin",fileSize:"文件大小: {size}",generationTime:"生成时间: {time}",downloadAssets:"下载 assets.bin",flashToDevice:"在线烧录到设备",flashing:"正在烧录到设备...",flashingCancel:"取消烧录",flashingError:"烧录错误",flashingInProgress:"烧录中,请勿关闭窗口",customFont:"自定义字体",customEmoji:"自定义表情包",notConfigured:"未配置",wakewordNames:{wn9s_hilexin:"Hi,乐鑫",wn9s_hiesp:"Hi,ESP",wn9s_nihaoxiaozhi:"你好小智",wn9_nihaoxiaozhi_tts:"你好小智",wn9_alexa:"Alexa"}},Yh={init:"初始化生成器",font:"处理字体文件",wakeword:"打包唤醒词模型",emoji:"处理表情图片",background:"处理背景图片",index:"生成索引文件",spiffs:"构建SPIFFS映射",package:"完成打包"},_h={resetFailed:"重置失败,请刷新页面重试",generationFailed:"生成失败: {error}",noFileToDownload:"没有可下载的文件",deviceOffline:"设备离线,无法进行烧录",fileTooLarge:"烧录失败:文件大小 {fileSize}MB 超过 assets 分区大小 {partitionSize}MB,请减少配置内容或使用更大容量的设备。",flashCancelConfirm:"确定要取消烧录吗?",oldDataCleared:`检测到旧版本的表情数据结构已被清除。 + +新版本使用文件去重技术,可以节省存储空间。 + +请重新上传自定义表情图片。`,incompatibleEmojiData:"检测到不兼容的表情数据,请重新配置"},Kh={authTokenMissing:"未找到认证令牌",checkingDeviceStatus:"检查设备状态...",deviceOfflineOrUnresponsive:"设备不存在或不在线",unableToGetDeviceStatus:"无法获取设备状态",initializingTransferService:"初始化传输服务...",initializeTransferFailed:"初始化传输服务失败: {error}",uploadingFile:"上传文件中...",uploadFailed:"上传文件失败",settingDeviceDownloadUrl:"设置设备下载URL...",setDownloadUrlFailed:"设置下载URL失败: {error}",rebootingDevice:"重启设备...",waitingForDeviceReboot:"等待设备重启...",deviceRebootTimeout:"等待设备重启超时(60秒)",deviceReady:"设备就绪,请等待程序烧录",startingFileTransfer:"开始传输文件...",flashCompleted:"程序烧录中,请留意固件的烧录状态!",onlineFlashFailed:"在线烧录失败: {error}"},Oh={online:"在线",offline:"离线",checking:"检查中...",flashing:"烧录中...",ready:"就绪",chip:"芯片",board:"开发板",flash:"Flash",screen:"屏幕",signal:{unknown:"未知",strong:"强",medium:"中等",weak:"弱",none:"无信号"}},Ph={title:"步骤 1: 芯片型号和屏幕配置",loadingFromDevice:"正在从设备读取硬件配置...",loadedFromDevice:"已从设备自动读取硬件配置",manualConfig:"请手动配置硬件参数",loadingTitle:"正在加载设备配置...",loadingDesc:"从设备读取芯片型号和屏幕分辨率",autoLoadedTitle:"设备配置已自动加载",chipModel:"芯片型号",screenWidth:"屏幕宽度",screenHeight:"屏幕高度",colorFormat:"颜色格式:",manualEdit:"手动修改配置",collapseManual:"收起手动配置",manualConfigTitle:"手动配置硬件参数",next:"下一步",selectChip:"请选择芯片",chipRequired:"芯片型号",widthRequired:"屏幕宽度",heightRequired:"屏幕高度",loadingError:"加载配置时发生错误",deviceOffline:"设备未连接或离线",chipModelError:"无法获取芯片型号,请手动输入",resolutionError:"无法获取屏幕分辨率,请手动输入",timeoutError:"加载设备配置超时,请手动输入",manualConfigDesc:"无法自动读取设备配置",manualConfigHint:"设备未连接或离线,请手动输入硬件配置",manualConfigRequired:"请手动输入硬件配置",resolutionFormatError:"屏幕分辨率格式错误"},Vh={title:"步骤 2: 主题设计",description:"配置唤醒词、字体、表情和背景来自定义您的小智AI主题。",previous:"上一步",next:"下一步",tabs:{wakeword:"唤醒词配置",font:"字体配置",emoji:"表情集合",background:"聊天背景"}},Wh={title:"步骤 3: 效果预览",description:"预览您的自定义配置在实际设备上的效果。",devicePreview:"设备预览 (1:1 像素比例)",previewSettings:"预览设置",previewText:"预览文字",defaultPreviewText:"你好,我是你的朋友小智!",currentEmotion:"当前表情",themeMode:"主题模式",lightMode:"浅色",darkMode:"深色",configSummary:"配置摘要",wakeword:"唤醒词:",font:"字体:",loading:"加载中...",emotion:"表情:",skin:"皮肤:",previous:"上一步",generate:"生成 assets.bin",emotions:{neutral:"默认",happy:"开心",laughing:"大笑",funny:"搞笑",sad:"伤心",angry:"生气",crying:"哭泣",loving:"喜爱",embarrassed:"尴尬",surprised:"惊讶",shocked:"震惊",thinking:"思考",winking:"眨眼",cool:"酷炫",relaxed:"放松",delicious:"美味",kissy:"飞吻",confident:"自信",sleepy:"困倦",silly:"调皮",confused:"困惑"},noEmotionConfigured:"未配置表情",fontLoading:"字体加载中...",configureEmojiFirst:"请先在主题设计中配置表情包",customFont:"自定义字体 {size}px",customEmoji:"自定义表情 {count}张",notConfigured:"未配置",skinLight:"浅色{type}",skinDark:"深色{type}",hideSubtitle:"隐藏字幕:",image:"图片",color:"颜色"},qh={title:"聊天背景配置",description:"配置浅色模式和深色模式的聊天背景,支持纯色或自定义图片。",lightMode:"浅色模式背景",darkMode:"深色模式背景",solidBackground:"纯色背景",imageBackground:"图片背景",backgroundColor:"背景颜色:",textColor:"文字颜色:",backgroundImage:"背景图片:",clickOrDragToUpload:"点击或拖拽上传背景图片",removeImage:"移除图片",backgroundPreview:"背景预览",lightModePreview:"浅色模式",darkModePreview:"深色模式",chatArea:"聊天内容区域",quickConfig:"快捷配置",defaultColors:"默认配色",stoneTexture:"石墨质感",sunnyColors:"暖阳配色",skyBlue:"天空蓝调",romanticPink:"浪漫粉色",selectValidImage:"请选择有效的图片文件"},jh={title:"表情集合配置",description:"选择预设表情包或自定义表情图片。每个表情包包含21种不同情绪的表情。",noEmojiPack:"无表情包",noEmojiPackDescription:"不配置表情包,打包时只包含字体和背景资源。",presetEmojiPack:"预设表情包",customEmojiPack:"自定义表情包",selectPresetEmojiPack:"选择预设表情包",twemoji64:"Twemoji 64×64",twemoji32:"Twemoji 32×32",twemojiDescription:"来自Twitter的高质量表情符号集,适合清晰显示",twitterEmojiName:"Twemoji {size}x{size}",twitterEmojiDescription:"Twitter表情包,{size}×{size}像素",size:"尺寸",preview:"预览",select:"选择",customEmojiTitle:"自定义表情包",customEmojiDescription:"上传您自己的表情图片。每种情绪需要一张图片。",uploadInstructions:"点击或拖拽上传表情图片 (PNG/JPG/WEBP)",supportedFormats:"支持格式: PNG, JPG, WEBP。推荐尺寸: 64×64像素",emotionMapping:"情绪映射",uploadAllEmotions:"请为所有情绪上传表情图片",maxImageWidth:"最大图片宽度 (px)",maxImageHeight:"最大图片高度 (px)",clickToUpload:"点击上传",orDragDrop:"或拖拽上传",clickToUploadOrDrag:"点击上传或拖拽到此处",remove:"移除",replace:"替换",selectValidEmojiImage:"请选择有效的表情图片文件",selectValidFormat:"请选择有效的PNG或GIF格式图片",maxFileSize:"文件大小不能超过1MB",invalidFormat:"不支持的图片格式。请使用PNG、JPG或WEBP。",required:"必需",uploadEmojiImages:"上传表情图片(GIF 需要 PSRAM)",customEmojiPackConfig:"自定义表情包配置",neutralRequiredNotice:"* 必须上传 neutral 默认表情,其他表情可选。如果不上传其他表情,将使用默认表情代替。",sharedFileMessage:"表情 {emotionKey} 使用了与 {existingEmotions} 相同的图片文件(共享存储)",fileDeleted:"文件 {fileHash} 已删除(无其他表情引用)",fileRetained:"文件 {fileHash} 仍被其他表情使用,保留文件",imageLoadFailed:"表情图片加载失败",emotions:{neutral:"默认",happy:"开心",laughing:"大笑",funny:"搞笑",sad:"伤心",angry:"生气",crying:"哭泣",loving:"喜爱",embarrassed:"尴尬",surprised:"惊讶",shocked:"震惊",thinking:"思考",winking:"眨眼",cool:"酷炫",relaxed:"放松",delicious:"美味",kissy:"飞吻",confident:"自信",sleepy:"困倦",silly:"调皮",confused:"困惑"}},Zh={title:"字体配置",description:"选择预设字体或上传自定义字体文件。",noFonts:"无字体",noFontsDescription:"不使用字体配置,设备将使用默认字体",presetFonts:"预设字体",customFonts:"自定义字体",selectPresetFont:"选择预设字体",fontSize:"字号:",bitDepth:"位深:",charset:"字符集:",fileSize:"文件大小:",customFontConfig:"自定义字体配置",fontFile:"字体文件",clickSelectFontFile:"点击选择字体文件",orDragFileHere:"或拖拽文件到此处",supportedFormats:"支持 TTF, WOFF, WOFF2 格式",removeFile:"移除文件",fontSizePx:"字号 (px)",range:"范围:",bitDepthBpp:"位深 (BPP)",monochrome:"1 bpp (单色)",fourColors:"2 bpp (4色)",sixteenColors:"4 bpp (16色)",characterSet:"字符集",deepseekR1:"DeepSeek R1 (7405字符)",gb2312:"GB2312 (7445字符)",qwen18409:"Qwen (18409字符)",latin1:"Latin1 (190字符)",fullCharset:"完整字符集 (字体文件的所有字符)",hideSubtitle:"隐藏字幕",hideSubtitleDescription:"对话时不显示实时文字字幕",selectValidFontFile:"请选择有效的字体文件 (TTF, WOFF, WOFF2)",presetFontNames:{font_puhui_deepseek_14_1:"阿里巴巴普惠体 14px",font_puhui_deepseek_16_4:"阿里巴巴普惠体 16px",font_puhui_deepseek_20_4:"阿里巴巴普惠体 20px",font_puhui_deepseek_30_4:"阿里巴巴普惠体 30px",font_noto_qwen_14_1:"思源黑体 14px",font_noto_qwen_16_4:"思源黑体 16px",font_noto_qwen_20_4:"思源黑体 20px",font_noto_qwen_30_4:"思源黑体 30px"},charsetDeepseek:"DeepSeek 7405",charsetQwen:"Qwen 18409"},Xh={title:"唤醒词配置",description:"选择预设唤醒词模型或通过命令词模型自定义唤醒词。",supportWakeNet9:"您的芯片支持 WakeNet9 模型。",supportWakeNet9s:"您的芯片支持 WakeNet9s 模型。",notSupported:"您的芯片不支持唤醒词功能。",notice:"注意:",unsupportedMessage:"{chipModel} 芯片不支持唤醒词功能。如需使用唤醒词,请选择 ESP32-S3、ESP32-P4 或 ESP32-C3/C5/C6 芯片。",noWakeword:"关闭唤醒",presetWakeword:"预设唤醒词",customWakeword:"自定义唤醒词",selectWakeword:"选择唤醒词",placeholder:"选择唤醒词...",customSettings:"自定义唤醒词设置",wakewordName:"唤醒词名称",wakewordNamePlaceholder:"例如:小智 / Potato",wakewordCommand:"唤醒命令",wakewordCommandPlaceholderCN:"拼音空格隔开,例如:ni hao xiao zhi",wakewordCommandPlaceholderEN:"英文单词,不能包含标点,例如:HELLO POTATO",threshold:"灵敏度阈值 (0-100)",thresholdDesc:"越小越灵敏,默认 20",duration:"识别时长",durationDesc:"命令词最长持续时间",selectModel:"选择识别模型",mn6cn:"MultiNet6 (中文)",mn6en:"MultiNet6 (英文)",mn7cn:"MultiNet7 (中文)",mn7en:"MultiNet7 (英文)",errors:{nameRequired:"请输入唤醒词名称",commandRequired:"请输入唤醒命令",noPunctuation:"命令不能包含标点符号",durationRange:"时长需在 500-10000ms 之间"},tips:{tipLabel:"提示:",optional:"唤醒词是可选的,关闭后设备将无法通过语音唤醒。",wakeNet9sOnly:"C3/C5/C6 芯片仅支持 WakeNet9s 轻量级模型。",wakeNet9Full:"S3/P4 芯片支持完整的 WakeNet9 模型,选择更多。",customSupport:"自定义唤醒词使用 MultiNet 模型实现,目前仅支持 ESP32-S3 芯片。"}},zh={app:Uh,common:Mh,header:xh,configNotice:Jh,steps:Th,generateModal:Hh,progressSteps:Yh,errors:_h,flashProgress:Kh,device:Oh,chipConfig:Ph,themeDesign:Vh,generateSummary:Wh,backgroundConfig:qh,emojiConfig:jh,fontConfig:Zh,wakewordConfig:Xh},$h={title:"小智 AI 自訂"},Af={cancel:"取消",confirm:"確認",close:"關閉",start:"開始",download:"下載",generate:"生成",reset:"重置",yes:"是",no:"否",loading:"載入中...",error:"錯誤",success:"成功",warning:"警告",info:"資訊",next:"下一步",previous:"上一步",finish:"完成",retry:"重試",ok:"確定",other:"其他"},ef={title:"小智 AI 自訂"},tf={title:"檢測到已儲存的配置",message:"配置已自動恢復,您可以繼續之前的進度或重新開始。",restart:"重新開始"},of={chip:"晶片配置",theme:"主題設計",generate:"效果預覽"},nf={title:"生成 assets.bin",confirmConfig:"請確認您的配置",chipModel:"晶片型號:",resolution:"解析度:",wakeword:"喚醒詞:",font:"字體:",emoji:"表情包:",fileList:"包含的檔案列表",estimated:"預估",compressed:"壓縮前",generating:"正在生成 assets.bin...",progress:"{progress}% 完成",completed:"您的 assets.bin 檔案已準備就緒",filename:"檔案名: assets.bin",fileSize:"檔案大小: {size}",generationTime:"生成時間: {time}",downloadAssets:"下載 assets.bin",flashToDevice:"線上燒錄到設備",flashing:"正在燒錄到設備...",flashingCancel:"取消燒錄",flashingError:"燒錄錯誤",flashingInProgress:"燒錄中,請勿關閉視窗",customFont:"自訂字體",customEmoji:"自訂表情套件",notConfigured:"未設定",wakewordNames:{wn9s_hilexin:"Hi,樂鑫",wn9s_hiesp:"Hi,ESP",wn9s_nihaoxiaozhi:"你好小智",wn9_nihaoxiaozhi_tts:"你好小智",wn9_alexa:"Alexa"}},rf={init:"初始化生成器",font:"處理字體檔案",wakeword:"打包喚醒詞模型",emoji:"處理表情圖片",background:"處理背景圖片",index:"生成索引檔案",spiffs:"建構SPIFFS映射",package:"完成打包"},gf={title:"喚醒詞配置",description:"選擇預設喚醒詞模型或透過命令詞模型自訂喚醒詞。",supportWakeNet9:"您的晶片支援 WakeNet9 模型。",supportWakeNet9s:"您的晶片支援 WakeNet9s 模型。",notSupported:"您的晶片不支援喚醒詞功能。",notice:"注意:",unsupportedMessage:"{chipModel} 晶片不支援喚醒詞功能。如需使用喚醒詞,請選擇 ESP32-S3、ESP32-P4 或 ESP32-C3/C5/C6 晶片。",noWakeword:"關閉喚醒",presetWakeword:"預設喚醒詞",customWakeword:"自訂喚醒詞",selectWakeword:"選擇喚醒詞",placeholder:"選擇喚醒詞...",customSettings:"自訂喚醒詞設定",wakewordName:"喚醒詞名稱",wakewordNamePlaceholder:"例如:小智 / Potato",wakewordCommand:"喚醒命令",wakewordCommandPlaceholderCN:"拼音空格隔開,例如:ni hao xiao zhi",wakewordCommandPlaceholderEN:"英文單詞,不能包含標點,例如:HELLO POTATO",threshold:"靈敏度閾值 (0-100)",thresholdDesc:"越小越靈敏,預設 20",duration:"識別時長",durationDesc:"命令詞最長持續時間",selectModel:"選擇識別模型",mn6cn:"MultiNet6 (中文)",mn6en:"MultiNet6 (英文)",mn7cn:"MultiNet7 (中文)",mn7en:"MultiNet7 (英文)",errors:{nameRequired:"請輸入喚醒詞名稱",commandRequired:"請輸入喚醒命令",noPunctuation:"命令不能包含標點符號",durationRange:"時長需在 500-10000ms 之間"},tips:{tipLabel:"提示:",optional:"喚醒詞是可選的,關閉後裝置將無法透過語音喚醒。",wakeNet9sOnly:"C3/C5/C6 晶片僅支援 WakeNet9s 輕量級模型。",wakeNet9Full:"S3/P4 晶片支援完整的 WakeNet9 模型,選擇更多。",customSupport:"自訂喚醒詞使用 MultiNet 模型實現,目前僅支援 ESP32-S3 晶片。"}},sf={resetFailed:"重置失敗,請重新整理頁面重試",generationFailed:"生成失敗: {error}",noFileToDownload:"沒有可下載的檔案",deviceOffline:"設備離線,無法進行燒錄",fileTooLarge:"燒錄失敗:檔案大小 {fileSize}MB 超過 assets 分區大小 {partitionSize}MB,請減少配置內容或使用更大容量的設備。",flashCancelConfirm:"確定要取消燒錄嗎?",oldDataCleared:`檢測到舊版本的表情資料結構已被清除。 + +新版本使用檔案去重技術,可以節省儲存空間。 + +請重新上傳自訂表情圖片。`,incompatibleEmojiData:"檢測到不相容的表情資料,請重新配置"},af={authTokenMissing:"未找到認證令牌",checkingDeviceStatus:"檢查設備狀態...",deviceOfflineOrUnresponsive:"設備不存在或不線上",unableToGetDeviceStatus:"無法獲取設備狀態",initializingTransferService:"初始化傳輸服務...",initializeTransferFailed:"初始化傳輸服務失敗: {error}",uploadingFile:"上傳文件中...",uploadFailed:"上傳文件失敗",settingDeviceDownloadUrl:"設置設備下載URL...",setDownloadUrlFailed:"設置下載URL失敗: {error}",rebootingDevice:"重啟設備...",waitingForDeviceReboot:"等待設備重啟...",deviceRebootTimeout:"等待設備重啟超時(60秒)",deviceReady:"设备就绪,请等待程序烧录",startingFileTransfer:"開始檔案傳輸...",flashCompleted:"程式燒錄中,請留意固件的燒錄狀態!",onlineFlashFailed:"線上燒錄失敗: {error}"},If={online:"線上",offline:"離線",checking:"檢查中...",flashing:"燒錄中...",ready:"就緒",chip:"晶片",board:"開發板",flash:"Flash",screen:"螢幕",signal:{unknown:"未知",strong:"強",medium:"中等",weak:"弱",none:"無訊號"}},Cf={title:"步驟 1: 晶片型號和螢幕配置",loadingFromDevice:"正在從設備讀取硬體配置...",loadedFromDevice:"已從設備自動讀取硬體配置",manualConfig:"請手動配置硬體參數",loadingTitle:"正在載入設備配置...",loadingDesc:"從設備讀取晶片型號和螢幕解析度",autoLoadedTitle:"設備配置已自動載入",chipModel:"晶片型號",screenWidth:"螢幕寬度",screenHeight:"螢幕高度",colorFormat:"顏色格式:",manualEdit:"手動修改配置",collapseManual:"收起手動配置",manualConfigTitle:"手動配置硬體參數",next:"下一步",selectChip:"請選擇晶片",chipRequired:"晶片型號",widthRequired:"螢幕寬度",heightRequired:"螢幕高度",loadingError:"載入配置時發生錯誤",deviceOffline:"設備未連接或離線",chipModelError:"無法獲取晶片型號,請手動輸入",resolutionError:"無法獲取螢幕解析度,請手動輸入",timeoutError:"載入設備配置超時,請手動輸入",manualConfigDesc:"無法自動讀取設備配置",manualConfigHint:"設備未連接或離線,請手動輸入硬體配置",manualConfigRequired:"請手動輸入硬體配置",resolutionFormatError:"螢幕解析度格式錯誤"},lf={title:"步驟 2: 主題設計",description:"配置喚醒詞、字體、表情和背景來自訂您的小智AI主題。",previous:"上一步",next:"下一步",tabs:{wakeword:"喚醒詞配置",font:"字體配置",emoji:"表情集合",background:"聊天背景"}},Bf={title:"步驟 3: 效果預覽",description:"預覽您的自訂配置在實際設備上的效果。",devicePreview:"設備預覽 (1:1 像素比例)",previewSettings:"預覽設定",previewText:"預覽文字",defaultPreviewText:"你好,我是你的朋友小智!",currentEmotion:"當前表情",themeMode:"主題模式",lightMode:"淺色",darkMode:"深色",configSummary:"配置摘要",wakeword:"喚醒詞:",font:"字體:",loading:"載入中...",emotion:"表情:",skin:"皮膚:",previous:"上一步",generate:"生成 assets.bin",emotions:{neutral:"預設",happy:"開心",laughing:"大笑",funny:"搞笑",sad:"傷心",angry:"生氣",crying:"哭泣",loving:"喜愛",embarrassed:"尷尬",surprised:"驚訝",shocked:"震驚",thinking:"思考",winking:"眨眼",cool:"酷炫",relaxed:"放鬆",delicious:"美味",kissy:"飛吻",confident:"自信",sleepy:"睏倦",silly:"調皮",confused:"困惑"},noEmotionConfigured:"未配置表情",fontLoading:"字體載入中...",configureEmojiFirst:"請先在主題設計中配置表情包",customFont:"自訂字體 {size}px",customEmoji:"自訂表情 {count}張",notConfigured:"未配置",skinLight:"淺色{type}",skinDark:"深色{type}",hideSubtitle:"隱藏字幕:",image:"圖片",color:"顏色"},Qf={title:"聊天背景配置",description:"配置淺色模式和深色模式的聊天背景,支援純色或自訂圖片。",lightMode:"淺色模式背景",darkMode:"深色模式背景",solidBackground:"純色背景",imageBackground:"圖片背景",backgroundColor:"背景顏色:",textColor:"文字顏色:",backgroundImage:"背景圖片:",clickOrDragToUpload:"點擊或拖拽上傳背景圖片",removeImage:"移除圖片",backgroundPreview:"背景預覽",lightModePreview:"淺色模式",darkModePreview:"深色模式",chatArea:"聊天內容區域",quickConfig:"快捷配置",defaultColors:"預設配色",stoneTexture:"石墨質感",sunnyColors:"暖陽配色",skyBlue:"天空藍調",romanticPink:"浪漫粉色",selectValidImage:"請選擇有效的圖片檔案"},cf={title:"表情集合配置",description:"選擇預設表情包或自定義表情圖片。每個表情包包含21種不同情緒的表情。",noEmojiPack:"無表情包",noEmojiPackDescription:"不配置表情包,打包時只包含字體和背景資源。",presetEmojiPack:"預設表情包",customEmojiPack:"自定義表情包",selectPresetEmojiPack:"選擇預設表情包",twemoji64:"Twemoji 64×64",twemoji32:"Twemoji 32×32",twemojiDescription:"來自Twitter的高品質表情符號集,適合清晰顯示",twitterEmojiName:"Twemoji {size}x{size}",twitterEmojiDescription:"Twitter表情包,{size}×{size}像素",size:"尺寸",preview:"預覽",select:"選擇",customEmojiTitle:"自定義表情包",customEmojiDescription:"上傳您自己的表情圖片。每種情緒需要一張圖片。",uploadInstructions:"點擊或拖拽上傳表情圖片 (PNG/JPG/WEBP)",supportedFormats:"支援格式: PNG, JPG, WEBP。推薦尺寸: 64×64像素",emotionMapping:"情緒映射",uploadAllEmotions:"請為所有情緒上傳表情圖片",maxImageWidth:"最大圖片寬度 (px)",maxImageHeight:"最大圖片高度 (px)",clickToUpload:"點擊上傳",orDragDrop:"或拖拽上傳",clickToUploadOrDrag:"點擊上傳或拖拽到此處",remove:"移除",replace:"替換",selectValidEmojiImage:"請選擇有效的表情圖片檔案",selectValidFormat:"請選擇有效的PNG或GIF格式圖片",maxFileSize:"檔案大小不能超過1MB",invalidFormat:"不支援的圖片格式。請使用PNG、JPG或WEBP。",required:"必需",uploadEmojiImages:"上傳表情圖片(GIF 需要 PSRAM)",customEmojiPackConfig:"自定義表情包配置",neutralRequiredNotice:"* 必須上傳 neutral 預設表情,其他表情可選。如果不上傳其他表情,將使用預設表情代替。",sharedFileMessage:"表情 {emotionKey} 使用了與 {existingEmotions} 相同的圖片檔案(共享儲存)",fileDeleted:"檔案 {fileHash} 已刪除(無其他表情引用)",fileRetained:"檔案 {fileHash} 仍被其他表情使用,保留檔案",imageLoadFailed:"表情圖片載入失敗",emotions:{neutral:"預設",happy:"開心",laughing:"大笑",funny:"搞笑",sad:"傷心",angry:"生氣",crying:"哭泣",loving:"喜愛",embarrassed:"尷尬",surprised:"驚訝",shocked:"震驚",thinking:"思考",winking:"眨眼",cool:"酷炫",relaxed:"放鬆",delicious:"美味",kissy:"飛吻",confident:"自信",sleepy:"睏倦",silly:"調皮",confused:"困惑"}},Ef={title:"字體配置",description:"選擇預設字體或上傳自訂字體檔案。",noFonts:"無字體",noFontsDescription:"不使用字體配置,裝置將使用預設字體",presetFonts:"預設字體",customFonts:"自訂字體",selectPresetFont:"選擇預設字體",fontSize:"字號:",bitDepth:"位元深度:",charset:"字元集:",fileSize:"檔案大小:",customFontConfig:"自訂字體配置",fontFile:"字體檔案",clickSelectFontFile:"點擊選擇字體檔案",orDragFileHere:"或拖拽檔案到此處",supportedFormats:"支援 TTF, WOFF, WOFF2 格式",removeFile:"移除檔案",fontSizePx:"字號 (px)",range:"範圍:",bitDepthBpp:"位元深度 (BPP)",monochrome:"1 bpp (單色)",fourColors:"2 bpp (4色)",sixteenColors:"4 bpp (16色)",characterSet:"字元集",deepseekR1:"DeepSeek R1 (7405字元)",gb2312:"GB2312 (7445字元)",qwen18409:"Qwen (18409字元)",latin1:"Latin1 (190字元)",fullCharset:"完整字元集 (字體檔案的所有字元)",hideSubtitle:"隱藏字幕",hideSubtitleDescription:"對話時不顯示即時文字字幕",selectValidFontFile:"請選擇有效的字體檔案 (TTF, WOFF, WOFF2)",presetFontNames:{font_puhui_deepseek_14_1:"阿里巴巴普惠體 14px",font_puhui_deepseek_16_4:"阿里巴巴普惠體 16px",font_puhui_deepseek_20_4:"阿里巴巴普惠體 20px",font_puhui_deepseek_30_4:"阿里巴巴普惠體 30px",font_noto_qwen_14_1:"思源黑體 14px",font_noto_qwen_16_4:"思源黑體 16px",font_noto_qwen_20_4:"思源黑體 20px",font_noto_qwen_30_4:"思源黑體 30px"},charsetDeepseek:"DeepSeek 7405",charsetQwen:"Qwen 18409"},uf={app:$h,common:Af,header:ef,configNotice:tf,steps:of,generateModal:nf,progressSteps:rf,wakewordConfig:gf,errors:sf,flashProgress:af,device:If,chipConfig:Cf,themeDesign:lf,generateSummary:Bf,backgroundConfig:Qf,emojiConfig:cf,fontConfig:Ef},hf={title:"小智 AI カスタマイズ"},ff={cancel:"キャンセル",confirm:"確認",close:"閉じる",start:"開始",download:"ダウンロード",generate:"生成",reset:"リセット",yes:"はい",no:"いいえ",loading:"読み込み中...",error:"エラー",success:"成功",warning:"警告",info:"情報",next:"次へ",previous:"前へ",finish:"完了",retry:"再試行",ok:"OK",other:"その他"},df={title:"小智 AI カスタマイズ"},pf={title:"保存された設定を検出",message:"設定が自動的に復元されました。中断したところから続行するか、最初からやり直すことができます。",restart:"最初からやり直す"},mf={chip:"チップ設定",theme:"テーマデザイン",generate:"プレビュー&生成"},yf={title:"assets.binを生成",confirmConfig:"設定を確認してください",chipModel:"チップモデル:",resolution:"解像度:",wakeword:"ウェイクワード:",font:"フォント:",emoji:"絵文字パック:",fileList:"含まれるファイル一覧",estimated:"推定",compressed:"圧縮前",generating:"assets.binを生成中...",progress:"{progress}% 完了",completed:"assets.binファイルの準備ができました",filename:"ファイル名: assets.bin",fileSize:"ファイルサイズ: {size}",generationTime:"生成時間: {time}",downloadAssets:"assets.binをダウンロード",flashToDevice:"デバイスにオンライン書き込み",flashing:"デバイスに書き込み中...",flashingCancel:"書き込みをキャンセル",flashingError:"書き込みエラー",flashingInProgress:"書き込み中、ウィンドウを閉じないでください",customFont:"カスタムフォント",customEmoji:"カスタム絵文字パック",notConfigured:"未設定",wakewordNames:{wn9s_hilexin:"Hi, Espressif",wn9s_hiesp:"Hi, ESP",wn9s_nihaoxiaozhi:"こんにちは小智",wn9_nihaoxiaozhi_tts:"こんにちは小智",wn9_alexa:"アレクサ"}},wf={init:"ジェネレーターを初期化",font:"フォントファイルを処理",wakeword:"ウェイクワードモデルをパッケージ化",emoji:"絵文字画像を処理",background:"背景画像を処理",index:"インデックスファイルを生成",spiffs:"SPIFFSマッピングを構築",package:"パッケージ化を完了"},Df={title:"ウェイクワード設定",description:"プリセットのウェイクワードを選択するか、コマンド認識モデルを使用してカスタマイズします。",supportWakeNet9:"チップはWakeNet9モデルをサポートしています。",supportWakeNet9s:"チップはWakeNet9sモデルをサポートしています。",notSupported:"チップはウェイクワード機能をサポートしていません。",notice:"注意:",unsupportedMessage:"{chipModel}チップはウェイクワード機能をサポートしていません。ウェイクワードを使用する必要がある場合は、ESP32-S3、ESP32-P4、またはESP32-C3/C5/C6チップを選択してください。",noWakeword:"起動を無効にする",presetWakeword:"プリセット",customWakeword:"カスタム",selectWakeword:"ウェイクワードを選択",placeholder:"選択してください...",customSettings:"カスタムウェイクワード設定",wakewordName:"ウェイクワード名",wakewordNamePlaceholder:"例:小智 / Potato",wakewordCommand:"ウェイクコマンド",wakewordCommandPlaceholderCN:"ピンインをスペースで区切る。例:ni hao xiao zhi",wakewordCommandPlaceholderEN:"英語の単語。句読点は含めない。例:HELLO POTATO",threshold:"感度しきい値 (0-100)",thresholdDesc:"値が小さいほど感度が高くなります。デフォルトは20",duration:"認識時間",durationDesc:"コマンド認識の最大継続時間",selectModel:"認識モデルを選択",mn6cn:"MultiNet6 (中国語)",mn6en:"MultiNet6 (英語)",mn7cn:"MultiNet7 (中国語)",mn7en:"MultiNet7 (英語)",errors:{nameRequired:"ウェイクワード名を入力してください",commandRequired:"ウェイクコマンドを入力してください",noPunctuation:"コマンドに句読点を含めることはできません",durationRange:"時間は500〜10000msの間で設定してください"},tips:{tipLabel:"ヒント:",optional:"ウェイクワードはオプションです。無効にすると、デバイスは音声で起動できなくなります。",wakeNet9sOnly:"C3/C5/C6チップはWakeNet9s軽量モデルしかサポートしていません。",wakeNet9Full:"S3/P4チップは完全なWakeNet9モデルをサポートし、より多くの選択肢があります。",customSupport:"カスタムウェイクワードはMultiNetモデルを使用しており、現在はESP32-S3チップのみをサポートしています。"}},kf={resetFailed:"リセットに失敗しました、ページを更新して再試行してください",generationFailed:"生成に失敗しました: {error}",noFileToDownload:"ダウンロード可能なファイルがありません",deviceOffline:"デバイスがオフラインで書き込みできません",fileTooLarge:"書き込みに失敗しました: ファイルサイズ{fileSize}MBがassetsパーティションサイズ{partitionSize}MBを超えています。設定内容を減らすか、より大容量のデバイスを使用してください。",flashCancelConfirm:"書き込みをキャンセルしてもよろしいですか?",oldDataCleared:`古いバージョンの絵文字データ構造が検出され、クリアされました。 + +新しいバージョンはファイル重複除去技術を使用してストレージスペースを節約します。 + +カスタム絵文字画像を再アップロードしてください。`,incompatibleEmojiData:"互換性のない絵文字データを検出しました、再設定してください"},vf={authTokenMissing:"認証トークンが見つかりません",checkingDeviceStatus:"デバイスの状態を確認中...",deviceOfflineOrUnresponsive:"デバイスが存在しないか、オンラインではありません",unableToGetDeviceStatus:"デバイスの状態を取得できません",initializingTransferService:"転送サービスを初期化中...",initializeTransferFailed:"転送サービスの初期化に失敗しました: {error}",uploadingFile:"ファイルをアップロード中...",uploadFailed:"ファイルのアップロードに失敗しました",settingDeviceDownloadUrl:"デバイスダウンロードURLを設定中...",setDownloadUrlFailed:"ダウンロードURLの設定に失敗しました: {error}",rebootingDevice:"デバイスを再起動中...",waitingForDeviceReboot:"デバイスの再起動を待機中...",deviceRebootTimeout:"デバイスの再起動タイムアウト(60秒)",deviceReady:"デバイスが準備できました。プログラムの書き込みをお待ちください",startingFileTransfer:"ファイル転送を開始中...",flashCompleted:"プログラムの書き込み中、ファームウェアの書き込み状態に注意してください!",onlineFlashFailed:"オンライン書き込みに失敗しました: {error}"},Ff={online:"オンライン",offline:"オフライン",checking:"確認中...",flashing:"書き込み中...",ready:"準備完了",chip:"チップ",board:"ボード",flash:"Flash",screen:"画面",signal:{unknown:"不明",strong:"強",medium:"中",weak:"弱",none:"信号なし"}},Sf={title:"ステップ1: チップモデルと画面設定",loadingFromDevice:"デバイスからハードウェア設定を読み込み中...",loadedFromDevice:"デバイスからハードウェア設定が自動読み込みされました",manualConfig:"ハードウェアパラメータを手動で設定してください",loadingTitle:"デバイス設定を読み込み中...",loadingDesc:"デバイスからチップモデルと画面解像度を読み取り中",autoLoadedTitle:"デバイス設定が自動読み込みされました",chipModel:"チップモデル",screenWidth:"画面幅",screenHeight:"画面高",colorFormat:"色形式:",manualEdit:"手動設定",collapseManual:"手動設定を折りたたむ",manualConfigTitle:"手動ハードウェア設定",next:"次へ",selectChip:"チップを選択",chipRequired:"チップモデル",widthRequired:"画面幅",heightRequired:"画面高",loadingError:"設定読み込みエラー",deviceOffline:"デバイスが接続されていないかオフラインです",chipModelError:"チップモデルを取得できません、手動で入力してください",resolutionError:"画面解像度を取得できません、手動で入力してください",timeoutError:"設定読み込みタイムアウト、手動で入力してください",manualConfigDesc:"デバイスの設定を自動読み取りできません",manualConfigHint:"デバイスが接続されていないかオフラインです、ハードウェア設定を手動で入力してください",manualConfigRequired:"ハードウェア設定を手動で入力してください",resolutionFormatError:"画面解像度形式エラー"},Rf={title:"ステップ2: テーマデザイン",description:"ウェイクワード、フォント、絵文字、背景を設定して、小智AIテーマをカスタマイズします。",previous:"前へ",next:"次へ",tabs:{wakeword:"ウェイクワード設定",font:"フォント設定",emoji:"絵文字コレクション",background:"チャット背景"}},bf={title:"ステップ3: プレビュー",description:"実際のデバイスでのカスタム設定の効果をプレビューします。",devicePreview:"デバイスプレビュー(1:1ピクセル比)",previewSettings:"プレビュー設定",previewText:"プレビューテキスト",defaultPreviewText:"こんにちは、私はあなたの友人、シャオズーです!",currentEmotion:"現在の感情",themeMode:"テーマモード",lightMode:"ライト",darkMode:"ダーク",configSummary:"設定概要",wakeword:"ウェイクワード:",font:"フォント:",loading:"読み込み中...",emotion:"感情:",skin:"スキン:",previous:"前へ",generate:"assets.binを生成",emotions:{neutral:"中立",happy:"幸せ",laughing:"大笑い",funny:"面白い",sad:"悲しい",angry:"怒り",crying:"泣き",loving:"愛情",embarrassed:"恥ずかしい",surprised:"驚き",shocked:"ショック",thinking:"考え中",winking:"ウインク",cool:"クール",relaxed:"リラックス",delicious:"美味しい",kissy:"キス",confident:"自信",sleepy:"眠い",silly:"ばかげた",confused:"混乱"},noEmotionConfigured:"感情が設定されていません",fontLoading:"フォント読み込み中...",configureEmojiFirst:"テーマデザインで絵文字パックを設定してください",customFont:"カスタムフォント {size}px",customEmoji:"カスタム絵文字 {count}画像",notConfigured:"未設定",skinLight:"ライト{type}",skinDark:"ダーク{type}",hideSubtitle:"字幕を隠す:",image:"画像",color:"色"},Nf={title:"チャット背景設定",description:"ライトモードとダークモードのチャット背景を設定し、単色またはカスタム画像をサポートします。",lightMode:"ライトモード背景",darkMode:"ダークモード背景",solidBackground:"単色背景",imageBackground:"画像背景",backgroundColor:"背景色:",textColor:"文字色:",backgroundImage:"背景画像:",clickOrDragToUpload:"クリックまたはドラッグして背景画像をアップロード",removeImage:"画像を削除",backgroundPreview:"背景プレビュー",lightModePreview:"ライトモード",darkModePreview:"ダークモード",chatArea:"チャットコンテンツエリア",quickConfig:"クイック設定",defaultColors:"デフォルト色",stoneTexture:"石質感",sunnyColors:"晴れ色",skyBlue:"空色",romanticPink:"ロマンチックピンク",selectValidImage:"有効な画像ファイルを選択してください"},Gf={title:"絵文字コレクション設定",description:"プリセット絵文字パックを選択するか、カスタム絵文字画像をアップロードします。各絵文字パックには21種類の異なる感情表現が含まれます。",noEmojiPack:"絵文字パックなし",noEmojiPackDescription:"絵文字パックを設定せず、パッケージにはフォントと背景リソースのみを含めます。",presetEmojiPack:"プリセット絵文字パック",customEmojiPack:"カスタム絵文字パック",selectPresetEmojiPack:"プリセット絵文字パックを選択",twemoji64:"Twemoji 64×64",twemoji32:"Twemoji 32×32",twemojiDescription:"Twitterの高品質絵文字セット、鮮明な表示に最適",twitterEmojiName:"Twemoji {size}x{size}",twitterEmojiDescription:"Twitter絵文字パック、{size}×{size}ピクセル",size:"サイズ",preview:"プレビュー",select:"選択",customEmojiTitle:"カスタム絵文字パック",customEmojiDescription:"独自の絵文字画像をアップロードします。各感情に1つの画像が必要です。",uploadInstructions:"クリックまたはドラッグして絵文字画像をアップロード(PNG/JPG/WEBP)",supportedFormats:"サポート形式: PNG, JPG, WEBP。推奨サイズ: 64×64ピクセル",emotionMapping:"感情マッピング",uploadAllEmotions:"すべての感情の絵文字画像をアップロードしてください",maxImageWidth:"最大画像幅(px)",maxImageHeight:"最大画像高(px)",clickToUpload:"クリックしてアップロード",orDragDrop:"またはドラッグ&ドロップ",clickToUploadOrDrag:"クリックしてアップロードまたはここにドラッグ",remove:"削除",replace:"置き換え",selectValidEmojiImage:"有効な絵文字画像ファイルを選択してください",selectValidFormat:"有効なPNGまたはGIF形式の画像を選択してください",maxFileSize:"ファイルサイズは1MBを超えないでください",invalidFormat:"サポートされていない画像形式です。PNG、JPG、またはWEBPを使用してください。",required:"必須",uploadEmojiImages:"絵文字画像をアップロード(GIFにはPSRAMが必要)",customEmojiPackConfig:"カスタム絵文字パック設定",neutralRequiredNotice:"* 中立のデフォルト感情をアップロードする必要があります、他の感情はオプションです。アップロードしない場合、デフォルト感情が代わりに使用されます。",sharedFileMessage:"感情{emotionKey}は{existingEmotions}と同じ画像ファイルを使用しています(共有ストレージ)",fileDeleted:"ファイル{fileHash}が削除されました(他の感情参照なし)",fileRetained:"ファイル{fileHash}は他の感情でまだ使用されているため、保持されます",imageLoadFailed:"絵文字画像の読み込みに失敗しました",emotions:{neutral:"中立",happy:"幸せ",laughing:"大笑い",funny:"面白い",sad:"悲しい",angry:"怒り",crying:"泣き",loving:"愛情",embarrassed:"恥ずかしい",surprised:"驚き",shocked:"ショック",thinking:"考え中",winking:"ウインク",cool:"クール",relaxed:"リラックス",delicious:"美味しい",kissy:"キス",confident:"自信",sleepy:"眠い",silly:"ばかげた",confused:"混乱"}},Lf={title:"フォント設定",description:"プリセットフォントを選択するか、カスタムフォントファイルをアップロードします。",noFonts:"フォントなし",noFontsDescription:"フォント設定を使用しない、デバイスはデフォルトのフォントを使用します",presetFonts:"プリセットフォント",customFonts:"カスタムフォント",selectPresetFont:"プリセットフォントを選択",fontSize:"フォントサイズ:",bitDepth:"ビット深度:",charset:"文字セット:",fileSize:"ファイルサイズ:",customFontConfig:"カスタムフォント設定",fontFile:"フォントファイル",clickSelectFontFile:"クリックしてフォントファイルを選択",orDragFileHere:"またはファイルをここにドラッグ",supportedFormats:"TTF、WOFF、WOFF2形式をサポート",removeFile:"ファイルを削除",fontSizePx:"フォントサイズ(px)",range:"範囲:",bitDepthBpp:"ビット深度(BPP)",monochrome:"1 bpp(モノクロ)",fourColors:"2 bpp(4色)",sixteenColors:"4 bpp(16色)",characterSet:"文字セット",deepseekR1:"DeepSeek R1(7405文字)",gb2312:"GB2312(7445文字)",qwen18409:"Qwen(18409文字)",latin1:"Latin1(190文字)",fullCharset:"完全な文字セット(フォントファイルのすべての文字)",hideSubtitle:"字幕を隠す",hideSubtitleDescription:"会話中にリアルタイム字幕を表示しない",selectValidFontFile:"有効なフォントファイルを選択してください(TTF、WOFF、WOFF2)",presetFontNames:{font_puhui_deepseek_14_1:"Alibaba PuHuiTi 14px",font_puhui_deepseek_16_4:"Alibaba PuHuiTi 16px",font_puhui_deepseek_20_4:"Alibaba PuHuiTi 20px",font_puhui_deepseek_30_4:"Alibaba PuHuiTi 30px",font_noto_qwen_14_1:"Noto Sans 14px",font_noto_qwen_16_4:"Noto Sans 16px",font_noto_qwen_20_4:"Noto Sans 20px",font_noto_qwen_30_4:"Noto Sans 30px"},charsetDeepseek:"DeepSeek 7405",charsetQwen:"Qwen 18409"},Uf={app:hf,common:ff,header:df,configNotice:pf,steps:mf,generateModal:yf,progressSteps:wf,wakewordConfig:Df,errors:kf,flashProgress:vf,device:Ff,chipConfig:Sf,themeDesign:Rf,generateSummary:bf,backgroundConfig:Nf,emojiConfig:Gf,fontConfig:Lf},Mf={title:"Xiaozhi AI Tùy chỉnh"},xf={cancel:"Hủy",confirm:"Xác nhận",close:"Đóng",start:"Bắt đầu",download:"Tải xuống",generate:"Tạo",reset:"Đặt lại",yes:"Có",no:"Không",loading:"Đang tải...",error:"Lỗi",success:"Thành công",warning:"Cảnh báo",info:"Thông tin",next:"Tiếp theo",previous:"Trước đó",finish:"Hoàn thành",retry:"Thử lại",ok:"OK",other:"Khác"},Jf={title:"Xiaozhi AI Tùy chỉnh"},Tf={title:"Phát hiện cấu hình đã lưu",message:"Cấu hình đã được khôi phục tự động. Bạn có thể tiếp tục từ nơi đã dừng hoặc bắt đầu lại.",restart:"Bắt đầu lại"},Hf={chip:"Cấu hình chip",theme:"Thiết kế chủ đề",generate:"Xem trước & Tạo"},Yf={title:"Tạo assets.bin",confirmConfig:"Vui lòng xác nhận cấu hình của bạn",chipModel:"Mô hình chip:",resolution:"Độ phân giải:",wakeword:"Từ đánh thức:",font:"Phông chữ:",emoji:"Gói biểu tượng cảm xúc:",fileList:"Danh sách tệp được bao gồm",estimated:"Ước tính",compressed:"Trước khi nén",generating:"Đang tạo assets.bin...",progress:"{progress}% Hoàn thành",completed:"Tệp assets.bin của bạn đã sẵn sàng",filename:"Tên tệp: assets.bin",fileSize:"Kích thước tệp: {size}",generationTime:"Thời gian tạo: {time}",downloadAssets:"Tải xuống assets.bin",flashToDevice:"Flash trực tuyến vào thiết bị",flashing:"Đang flash vào thiết bị...",flashingCancel:"Hủy flash",flashingError:"Lỗi flash",flashingInProgress:"Đang flash, vui lòng không đóng cửa sổ",customFont:"Phông chữ tùy chỉnh",customEmoji:"Gói biểu tượng cảm xúc tùy chỉnh",notConfigured:"Chưa cấu hình",wakewordNames:{wn9s_hilexin:"Hi, Espressif",wn9s_hiesp:"Hi, ESP",wn9s_nihaoxiaozhi:"Xin chào Xiaozhi",wn9_nihaoxiaozhi_tts:"Xin chào Xiaozhi",wn9_alexa:"Alexa"}},_f={init:"Khởi tạo trình tạo",font:"Xử lý tệp phông chữ",wakeword:"Đóng gói mô hình từ đánh thức",emoji:"Xử lý hình ảnh biểu tượng cảm xúc",background:"Xử lý hình ảnh nền",index:"Tạo tệp chỉ mục",spiffs:"Xây dựng ánh xạ SPIFFS",package:"Hoàn thành đóng gói"},Kf={title:"Cấu hình từ đánh thức",description:"Chọn mô hình từ đánh thức đặt sẵn hoặc tùy chỉnh thông qua mô hình lệnh.",supportWakeNet9:"Chip của bạn hỗ trợ mô hình WakeNet9.",supportWakeNet9s:"Chip của bạn hỗ trợ mô hình WakeNet9s.",notSupported:"Chip của bạn không hỗ trợ chức năng từ đánh thức.",notice:"Lưu ý:",unsupportedMessage:"Chip {chipModel} không hỗ trợ chức năng từ đánh thức. Nếu bạn cần sử dụng từ đánh thức, vui lòng chọn chip ESP32-S3, ESP32-P4 hoặc ESP32-C3/C5/C6.",noWakeword:"Tắt đánh thức",presetWakeword:"Mặc định",customWakeword:"Tùy chỉnh",selectWakeword:"Chọn từ đánh thức",placeholder:"Chọn một từ...",customSettings:"Cài đặt từ đánh thức tùy chỉnh",wakewordName:"Tên từ đánh thức",wakewordNamePlaceholder:"VD: Xiaozhi / Potato",wakewordCommand:"Lệnh đánh thức",wakewordCommandPlaceholderCN:"Pinyin cách nhau bằng dấu cách, VD: ni hao xiao zhi",wakewordCommandPlaceholderEN:"Từ tiếng Anh, không dấu câu, VD: HELLO POTATO",threshold:"Ngưỡng nhạy (0-100)",thresholdDesc:"Càng nhỏ càng nhạy, mặc định là 20",duration:"Thời gian nhận diện",durationDesc:"Thời gian tối đa để nhận diện lệnh",selectModel:"Chọn mô hình nhận diện",mn6cn:"MultiNet6 (Tiếng Trung)",mn6en:"MultiNet6 (Tiếng Anh)",mn7cn:"MultiNet7 (Tiếng Trung)",mn7en:"MultiNet7 (Tiếng Anh)",errors:{nameRequired:"Vui lòng nhập tên từ đánh thức",commandRequired:"Vui lòng nhập lệnh đánh thức",noPunctuation:"Lệnh không thể chứa dấu câu",durationRange:"Thời gian phải từ 500-10000ms"},tips:{tipLabel:"Mẹo:",optional:"Từ đánh thức là tùy chọn. Nếu tắt, thiết bị sẽ không thể đánh thức bằng giọng nói.",wakeNet9sOnly:"Chip C3/C5/C6 chỉ hỗ trợ mô hình nhẹ WakeNet9s.",wakeNet9Full:"Chip S3/P4 hỗ trợ mô hình WakeNet9 hoàn chỉnh với nhiều lựa chọn hơn.",customSupport:"Từ đánh thức tùy chỉnh sử dụng mô hình MultiNet, hiện chỉ hỗ trợ chip ESP32-S3."}},Of={resetFailed:"Đặt lại thất bại, vui lòng làm mới trang và thử lại",generationFailed:"Tạo thất bại: {error}",noFileToDownload:"Không có tệp nào để tải xuống",deviceOffline:"Thiết bị ngoại tuyến và không thể flash",fileTooLarge:"Flash thất bại: Kích thước tệp {fileSize}MB vượt quá kích thước phân vùng assets {partitionSize}MB. Vui lòng giảm nội dung cấu hình hoặc sử dụng thiết bị có dung lượng lớn hơn.",flashCancelConfirm:"Bạn có chắc chắn muốn hủy flash?",oldDataCleared:`Đã phát hiện và xóa cấu trúc dữ liệu biểu tượng cảm xúc phiên bản cũ. + +Phiên bản mới sử dụng công nghệ loại bỏ trùng lặp tệp để tiết kiệm không gian lưu trữ. + +Vui lòng tải lại hình ảnh biểu tượng cảm xúc tùy chỉnh.`,incompatibleEmojiData:"Phát hiện dữ liệu biểu tượng cảm xúc không tương thích, vui lòng cấu hình lại"},Pf={authTokenMissing:"Không tìm thấy mã thông báo xác thực",checkingDeviceStatus:"Đang kiểm tra trạng thái thiết bị...",deviceOfflineOrUnresponsive:"Thiết bị không tồn tại hoặc không trực tuyến",unableToGetDeviceStatus:"Không thể lấy trạng thái thiết bị",initializingTransferService:"Đang khởi tạo dịch vụ truyền tải...",initializeTransferFailed:"Khởi tạo dịch vụ truyền tải thất bại: {error}",uploadingFile:"Tải lên tập tin. .....",uploadFailed:"Tải lên tập tin không thành công",settingDeviceDownloadUrl:"Đang thiết lập URL tải xuống thiết bị...",setDownloadUrlFailed:"Thiết lập URL tải xuống thất bại: {error}",rebootingDevice:"Đang khởi động lại thiết bị...",waitingForDeviceReboot:"Đang chờ thiết bị khởi động lại...",deviceRebootTimeout:"Hết thời gian chờ thiết bị khởi động lại (60 giây)",deviceReady:"Thiết bị đã sẵn sàng, vui lòng chờ chương trình ghi",startingFileTransfer:"Đang bắt đầu truyền tải tệp...",flashCompleted:"Trong quá trình ghi âm chương trình, xin lưu ý trạng thái ghi âm của phần cố định!",onlineFlashFailed:"Flash trực tuyến thất bại: {error}"},Vf={online:"Trực tuyến",offline:"Ngoại tuyến",checking:"Đang kiểm tra...",flashing:"Đang flash...",ready:"Sẵn sàng",chip:"Chip",board:"Bo mạch",flash:"Flash",screen:"Màn hình",signal:{unknown:"Không xác định",strong:"Mạnh",medium:"Trung bình",weak:"Yếu",none:"Không có tín hiệu"}},Wf={title:"Bước 1: Cấu hình mô hình chip và màn hình",loadingFromDevice:"Đang tải cấu hình phần cứng từ thiết bị...",loadedFromDevice:"Cấu hình phần cứng được tải tự động từ thiết bị",manualConfig:"Vui lòng cấu hình các thông số phần cứng theo cách thủ công",loadingTitle:"Đang tải cấu hình thiết bị...",loadingDesc:"Đang đọc mô hình chip và độ phân giải màn hình từ thiết bị",autoLoadedTitle:"Cấu hình thiết bị được tải tự động",chipModel:"Mô hình chip",screenWidth:"Chiều rộng màn hình",screenHeight:"Chiều cao màn hình",colorFormat:"Định dạng màu:",manualEdit:"Cấu hình thủ công",collapseManual:"Thu gọn cấu hình thủ công",manualConfigTitle:"Cấu hình phần cứng thủ công",next:"Tiếp theo",selectChip:"Chọn chip",chipRequired:"Mô hình chip",widthRequired:"Chiều rộng màn hình",heightRequired:"Chiều cao màn hình",loadingError:"Lỗi tải cấu hình",deviceOffline:"Thiết bị chưa kết nối hoặc ngoại tuyến",chipModelError:"Không thể lấy mô hình chip, vui lòng nhập thủ công",resolutionError:"Không thể lấy độ phân giải màn hình, vui lòng nhập thủ công",timeoutError:"Hết thời gian tải cấu hình, vui lòng nhập thủ công",manualConfigDesc:"Không thể tự động đọc cấu hình thiết bị",manualConfigHint:"Thiết bị chưa kết nối hoặc ngoại tuyến, vui lòng nhập cấu hình phần cứng thủ công",manualConfigRequired:"Vui lòng nhập cấu hình phần cứng thủ công",resolutionFormatError:"Lỗi định dạng độ phân giải màn hình"},qf={title:"Bước 2: Thiết kế chủ đề",description:"Cấu hình từ đánh thức, phông chữ, biểu tượng cảm xúc và nền để tùy chỉnh chủ đề Xiaozhi AI của bạn.",previous:"Trước đó",next:"Tiếp theo",tabs:{wakeword:"Cấu hình từ đánh thức",font:"Cấu hình phông chữ",emoji:"Bộ sưu tập biểu tượng cảm xúc",background:"Nền trò chuyện"}},jf={title:"Bước 3: Xem trước",description:"Xem trước hiệu ứng của cấu hình tùy chỉnh trên thiết bị thực tế.",devicePreview:"Xem trước thiết bị (tỷ lệ pixel 1:1)",previewSettings:"Cài đặt xem trước",previewText:"Văn bản xem trước",defaultPreviewText:"Xin chào, tôi là bạn của bạn Xiaozhi!",currentEmotion:"Cảm xúc hiện tại",themeMode:"Chế độ chủ đề",lightMode:"Sáng",darkMode:"Tối",configSummary:"Tóm tắt cấu hình",wakeword:"Từ đánh thức:",font:"Phông chữ:",loading:"Đang tải...",emotion:"Cảm xúc:",skin:"Da:",previous:"Trước đó",generate:"Tạo assets.bin",emotions:{neutral:"Trung lập",happy:"Vui vẻ",laughing:"Cười lớn",funny:"Hài hước",sad:"Buồn",angry:"Giận dữ",crying:"Khóc",loving:"Yêu thương",embarrassed:"Xấu hổ",surprised:"Bất ngờ",shocked:"Sốc",thinking:"Suy nghĩ",winking:"Nháy mắt",cool:"Ngầu",relaxed:"Thoải mái",delicious:"Ngon miệng",kissy:"Hôn",confident:"Tự tin",sleepy:"Buồn ngủ",silly:"Ngớ ngẩn",confused:"Bối rối"},noEmotionConfigured:"Chưa cấu hình cảm xúc",fontLoading:"Đang tải phông chữ...",configureEmojiFirst:"Vui lòng cấu hình gói biểu tượng cảm xúc trong thiết kế chủ đề trước",customFont:"Phông chữ tùy chỉnh {size}px",customEmoji:"Biểu tượng cảm xúc tùy chỉnh {count} hình ảnh",notConfigured:"Chưa cấu hình",skinLight:"Sáng {type}",skinDark:"Tối {type}",hideSubtitle:"Ẩn phụ đề:",image:"Hình ảnh",color:"Màu sắc"},Zf={title:"Cấu hình nền trò chuyện",description:"Cấu hình nền trò chuyện cho chế độ sáng và tối, hỗ trợ màu đơn hoặc hình ảnh tùy chỉnh.",lightMode:"Nền chế độ sáng",darkMode:"Nền chế độ tối",solidBackground:"Nền màu đơn",imageBackground:"Nền hình ảnh",backgroundColor:"Màu nền:",textColor:"Màu chữ:",backgroundImage:"Hình ảnh nền:",clickOrDragToUpload:"Nhấp hoặc kéo để tải lên hình ảnh nền",removeImage:"Xóa hình ảnh",backgroundPreview:"Xem trước nền",lightModePreview:"Chế độ sáng",darkModePreview:"Chế độ tối",chatArea:"Khu vực nội dung trò chuyện",quickConfig:"Cấu hình nhanh",defaultColors:"Màu mặc định",stoneTexture:"Kết cấu đá",sunnyColors:"Màu nắng",skyBlue:"Xanh trời",romanticPink:"Hồng lãng mạn",selectValidImage:"Vui lòng chọn tệp hình ảnh hợp lệ"},Xf={title:"Cấu hình bộ sưu tập biểu tượng cảm xúc",description:"Chọn gói biểu tượng cảm xúc đặt sẵn hoặc hình ảnh biểu tượng cảm xúc tùy chỉnh. Mỗi gói biểu tượng cảm xúc chứa 21 biểu cảm cảm xúc khác nhau.",noEmojiPack:"Không có gói biểu tượng cảm xúc",noEmojiPackDescription:"Không cấu hình gói biểu tượng cảm xúc, chỉ bao gồm phông chữ và tài nguyên nền trong gói.",presetEmojiPack:"Gói biểu tượng cảm xúc đặt sẵn",customEmojiPack:"Gói biểu tượng cảm xúc tùy chỉnh",selectPresetEmojiPack:"Chọn gói biểu tượng cảm xúc đặt sẵn",twemoji64:"Twemoji 64×64",twemoji32:"Twemoji 32×32",twemojiDescription:"Bộ biểu tượng cảm xúc chất lượng cao từ Twitter, hoàn hảo để hiển thị rõ ràng",twitterEmojiName:"Twemoji {size}x{size}",twitterEmojiDescription:"Gói biểu tượng cảm xúc Twitter, {size}×{size} pixel",size:"Kích thước",preview:"Xem trước",select:"Chọn",customEmojiTitle:"Gói biểu tượng cảm xúc tùy chỉnh",customEmojiDescription:"Tải lên hình ảnh biểu tượng cảm xúc của riêng bạn. Mỗi cảm xúc cần một hình ảnh.",uploadInstructions:"Nhấp hoặc kéo để tải lên hình ảnh biểu tượng cảm xúc (PNG/JPG/WEBP)",supportedFormats:"Định dạng được hỗ trợ: PNG, JPG, WEBP. Kích thước khuyến nghị: 64×64 pixel",emotionMapping:"Ánh xạ cảm xúc",uploadAllEmotions:"Vui lòng tải lên hình ảnh biểu tượng cảm xúc cho tất cả cảm xúc",maxImageWidth:"Chiều rộng hình ảnh tối đa (px)",maxImageHeight:"Chiều cao hình ảnh tối đa (px)",clickToUpload:"Nhấp để tải lên",orDragDrop:"hoặc kéo và thả",clickToUploadOrDrag:"Nhấp để tải lên hoặc kéo vào đây",remove:"Xóa",replace:"Thay thế",selectValidEmojiImage:"Vui lòng chọn tệp hình ảnh biểu tượng cảm xúc hợp lệ",selectValidFormat:"Vui lòng chọn hình ảnh định dạng PNG hoặc GIF hợp lệ",maxFileSize:"Kích thước tệp không được vượt quá 1MB",invalidFormat:"Định dạng hình ảnh không được hỗ trợ. Vui lòng sử dụng PNG, JPG hoặc WEBP.",required:"Bắt buộc",uploadEmojiImages:"Tải lên hình ảnh biểu tượng cảm xúc (GIF cần PSRAM)",customEmojiPackConfig:"Cấu hình gói biểu tượng cảm xúc tùy chỉnh",neutralRequiredNotice:"* Phải tải lên cảm xúc mặc định trung lập, các cảm xúc khác là tùy chọn. Nếu không tải lên, cảm xúc mặc định sẽ được sử dụng thay thế.",sharedFileMessage:"Cảm xúc {emotionKey} sử dụng cùng tệp hình ảnh với {existingEmotions} (lưu trữ chia sẻ)",fileDeleted:"Tệp {fileHash} đã bị xóa (không có tham chiếu cảm xúc khác)",fileRetained:"Tệp {fileHash} vẫn được sử dụng bởi các cảm xúc khác, được giữ lại",imageLoadFailed:"Không tải được hình ảnh biểu tượng cảm xúc",emotions:{neutral:"Trung lập",happy:"Vui vẻ",laughing:"Cười lớn",funny:"Hài hước",sad:"Buồn",angry:"Giận dữ",crying:"Khóc",loving:"Yêu thương",embarrassed:"Xấu hổ",surprised:"Bất ngờ",shocked:"Sốc",thinking:"Suy nghĩ",winking:"Nháy mắt",cool:"Ngầu",relaxed:"Thoải mái",delicious:"Ngon miệng",kissy:"Hôn",confident:"Tự tin",sleepy:"Buồn ngủ",silly:"Ngớ ngẩn",confused:"Bối rối"}},zf={title:"Cấu hình phông chữ",description:"Chọn phông chữ đặt sẵn hoặc tải lên tệp phông chữ tùy chỉnh.",noFonts:"Không có phông chữ",noFontsDescription:"Không sử dụng cấu hình phông chữ, thiết bị sẽ sử dụng phông chữ mặc định",presetFonts:"Phông chữ đặt sẵn",customFonts:"Phông chữ tùy chỉnh",selectPresetFont:"Chọn phông chữ đặt sẵn",fontSize:"Kích thước phông chữ:",bitDepth:"Độ sâu bit:",charset:"Bộ ký tự:",fileSize:"Kích thước tệp:",customFontConfig:"Cấu hình phông chữ tùy chỉnh",fontFile:"Tệp phông chữ",clickSelectFontFile:"Nhấp để chọn tệp phông chữ",orDragFileHere:"hoặc kéo tệp vào đây",supportedFormats:"Hỗ trợ định dạng TTF, WOFF, WOFF2",removeFile:"Xóa tệp",fontSizePx:"Kích thước phông chữ (px)",range:"Phạm vi:",bitDepthBpp:"Độ sâu bit (BPP)",monochrome:"1 bpp (Đơn sắc)",fourColors:"2 bpp (4 màu)",sixteenColors:"4 bpp (16 màu)",characterSet:"Bộ ký tự",deepseekR1:"DeepSeek R1 (7405 ký tự)",gb2312:"GB2312 (7445 ký tự)",qwen18409:"Qwen (18409 ký tự)",latin1:"Latin1 (190 ký tự)",fullCharset:"Bộ ký tự đầy đủ (Tất cả ký tự trong tệp phông chữ)",hideSubtitle:"Ẩn phụ đề",hideSubtitleDescription:"Không hiển thị phụ đề văn bản trong khi trò chuyện",selectValidFontFile:"Vui lòng chọn tệp phông chữ hợp lệ (TTF, WOFF, WOFF2)",presetFontNames:{font_puhui_deepseek_14_1:"Alibaba PuHuiTi 14px",font_puhui_deepseek_16_4:"Alibaba PuHuiTi 16px",font_puhui_deepseek_20_4:"Alibaba PuHuiTi 20px",font_puhui_deepseek_30_4:"Alibaba PuHuiTi 30px",font_noto_qwen_14_1:"Noto Sans 14px",font_noto_qwen_16_4:"Noto Sans 16px",font_noto_qwen_20_4:"Noto Sans 20px",font_noto_qwen_30_4:"Noto Sans 30px"},charsetDeepseek:"DeepSeek 7405",charsetQwen:"Qwen 18409"},$f={app:Mf,common:xf,header:Jf,configNotice:Tf,steps:Hf,generateModal:Yf,progressSteps:_f,wakewordConfig:Kf,errors:Of,flashProgress:Pf,device:Vf,chipConfig:Wf,themeDesign:qf,generateSummary:jf,backgroundConfig:Zf,emojiConfig:Xf,fontConfig:zf},Ad={en:Lh,"zh-CN":zh,"zh-TW":uf,ja:Uf,vi:$f},No=[{code:"en",name:"English",flag:"🇺🇸"},{code:"zh-CN",name:"简体中文",flag:"🇨🇳"},{code:"zh-TW",name:"繁體中文",flag:"🇹🇼"},{code:"ja",name:"日本語",flag:"🇯🇵"},{code:"vi",name:"Tiếng Việt",flag:"🇻🇳"}];function ed(){const A=navigator.language||navigator.userLanguage;return{"zh-CN":"zh-CN","zh-TW":"zh-TW","zh-HK":"zh-TW",zh:"zh-CN",ja:"ja",vi:"vi",en:"en","en-US":"en","en-GB":"en"}[A]||"en"}const td={class:"relative"},id={class:"py-1"},od=["onClick"],nd={class:"mr-3"},rd={key:0,class:"ml-auto w-4 h-4 text-blue-600",fill:"currentColor",viewBox:"0 0 20 20"},gd={__name:"LanguageSelector",setup(A){const{locale:e}=ve(),t=EA(!1),i=hA(()=>No.find(s=>s.code===e.value)||No[0]),o=()=>{t.value=!t.value},n=()=>{t.value=!1},r=s=>{e.value=s,localStorage.setItem("user-language",s),n()},g=s=>{s.target.closest(".relative")||n()};return Ft(()=>{document.addEventListener("click",g);const s=localStorage.getItem("user-language");s&&No.find(a=>a.code===s)&&(e.value=s)}),Ci(()=>{document.removeEventListener("click",g)}),(s,a)=>(T(),K("div",td,[B("button",{onClick:o,class:"flex items-center space-x-2 px-3 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500"},[B("span",null,F(i.value.flag),1),B("span",null,F(i.value.name),1),(T(),K("svg",{class:kA(["w-4 h-4 transition-transform duration-200",{"rotate-180":t.value}]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...a[1]||(a[1]=[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"},null,-1)])],2))]),t.value?(T(),K("div",{key:0,class:"absolute right-0 mt-2 w-48 bg-white border border-gray-200 rounded-md shadow-lg z-50",onClick:a[0]||(a[0]=dt(()=>{},["stop"]))},[B("div",id,[(T(!0),K(qA,null,Ke(BA(No),I=>(T(),K("button",{key:I.code,onClick:l=>r(I.code),class:kA(["flex items-center w-full px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 focus:outline-none focus:bg-gray-100",{"bg-blue-50 text-blue-700":I.code===i.value.code}])},[B("span",nd,F(I.flag),1),B("span",null,F(I.name),1),I.code===i.value.code?(T(),K("svg",rd,[...a[2]||(a[2]=[B("path",{"fill-rule":"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z","clip-rule":"evenodd"},null,-1)])])):sA("",!0)],10,od))),128))])])):sA("",!0),t.value?(T(),K("div",{key:1,class:"fixed inset-0 z-40",onClick:n})):sA("",!0)]))}},sd={class:"space-y-6"},ad={class:"text-xl font-semibold text-gray-900 mb-4"},Id={class:"text-gray-600 mb-6"},Cd={key:0},ld={key:1},Bd={key:2},Qd={key:0,class:"space-y-4"},cd={class:"bg-blue-50 border-2 border-blue-200 rounded-lg p-6"},Ed={class:"flex items-center justify-center space-x-3"},ud={class:"text-lg font-medium text-blue-900"},hd={class:"text-sm text-blue-700 mt-1"},fd={key:1,class:"space-y-4"},dd={class:"bg-green-50 border-2 border-green-200 rounded-lg p-4"},pd={class:"flex items-start justify-between mb-3"},md={class:"flex items-center"},yd={class:"text-lg font-medium text-green-900"},wd={class:"grid grid-cols-1 md:grid-cols-3 gap-4 mt-4"},Dd={class:"bg-white rounded-lg p-3"},kd={class:"block text-sm font-medium text-gray-700 mb-1"},vd={class:"text-base font-semibold text-gray-900"},Fd={class:"bg-white rounded-lg p-3"},Sd={class:"block text-sm font-medium text-gray-700 mb-1"},Rd={class:"text-base font-semibold text-gray-900"},bd={class:"bg-white rounded-lg p-3"},Nd={class:"block text-sm font-medium text-gray-700 mb-1"},Gd={class:"text-base font-semibold text-gray-900"},Ld={class:"mt-3 text-sm text-green-700"},Ud={class:"border border-gray-200 rounded-lg p-4"},Md={key:0,class:"mt-4"},xd={key:2,class:"space-y-4"},Jd={class:"bg-yellow-50 border border-yellow-200 rounded-lg p-4"},Td={class:"flex items-start"},Hd={class:"font-medium text-yellow-900"},Yd={class:"text-sm text-yellow-700 mt-1"},_d={class:"border-2 border-gray-300 rounded-lg p-4"},Kd={class:"text-lg font-medium text-gray-900 mb-4"},Od={class:"flex justify-end"},Pd=["disabled"],Vd={__name:"ChipConfig",props:{modelValue:{type:Object,default:()=>({model:"",display:{width:320,height:240,color:"RGB565"}})}},emits:["update:modelValue","next"],setup(A,{emit:e}){const{t}=ve(),i=e,o=hA(()=>[{value:"",label:t("chipConfig.selectChip")},{value:"esp32s3",label:"ESP32-S3"},{value:"esp32c3",label:"ESP32-C3"},{value:"esp32c5",label:"ESP32-C5"},{value:"esp32c6",label:"ESP32-C6"},{value:"esp32p4",label:"ESP32-P4"},{value:"esp32",label:"ESP32"},{value:"others",label:t("common.other")}]),n={name:"ConfigForm",props:{config:{type:Object,required:!0},showRequired:{type:Boolean,default:!1}},render(){const p=this.$t;return GA("div",{class:"grid grid-cols-1 md:grid-cols-3 gap-4"},[GA("div",[GA("label",{class:"block text-sm font-medium text-gray-700 mb-2"},[p("chipConfig.chipRequired")+" ",this.showRequired&&GA("span",{class:"text-red-500"},"*")]),GA("select",{class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500",value:this.config.model,onChange:v=>{this.config.model=v.target.value}},BA(o).map(v=>GA("option",{value:v.value,key:v.value},v.label)))]),GA("div",[GA("label",{class:"block text-sm font-medium text-gray-700 mb-2"},[p("chipConfig.widthRequired")+" ",this.showRequired&&GA("span",{class:"text-red-500"},"*")]),GA("input",{type:"number",class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500",value:this.config.display.width,min:128,max:800,placeholder:"320",onInput:v=>{this.config.display.width=Number(v.target.value)}})]),GA("div",[GA("label",{class:"block text-sm font-medium text-gray-700 mb-2"},[p("chipConfig.heightRequired")+" ",this.showRequired&&GA("span",{class:"text-red-500"},"*")]),GA("input",{type:"number",class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500",value:this.config.display.height,min:128,max:600,placeholder:"240",onInput:v=>{this.config.display.height=Number(v.target.value)}})])])}},{deviceInfo:r,isDeviceOnline:g,hasToken:s}=Nn(),a=EA(s.value),I=EA(!1),l=EA(""),C=EA(!1),Q=EA({model:"",display:{width:320,height:240,color:"RGB565"}}),h={"ESP32-S3":"esp32s3",ESP32S3:"esp32s3","ESP32-C3":"esp32c3",ESP32C3:"esp32c3","ESP32-C5":"esp32c5",ESP32C5:"esp32c5","ESP32-P4":"esp32p4",ESP32P4:"esp32p4","ESP32-C6":"esp32c6",ESP32C6:"esp32c6",ESP32:"esp32"},f=()=>{var p,v;try{if(!g.value)return a.value||(l.value=t("chipConfig.deviceOffline"),I.value=!1),!1;const N=(p=r.value.chip)==null?void 0:p.model;if(!N||N==="未知")return!1;let G=h[N.toUpperCase()]||h[N]||N.toLowerCase().replace(/-/g,"");["esp32s3","esp32c3","esp32c5","esp32p4","esp32c6","esp32","others"].includes(G)||(G="others");const S=(v=r.value.screen)==null?void 0:v.resolution;if(!S||S==="未知")return!1;const[b,L]=S.split("x").map(Number);return!b||!L||isNaN(b)||isNaN(L)?(l.value=t("chipConfig.resolutionFormatError"),I.value=!1,a.value=!1,!1):(Q.value={model:G,display:{width:b,height:L,color:"RGB565"}},i("update:modelValue",{model:G,display:{width:b,height:L,color:"RGB565"}}),I.value=!0,l.value="",a.value=!1,console.log("✓ 设备配置加载成功:",{chip:G,width:b,height:L}),!0)}catch(N){return console.error("加载设备配置失败:",N),l.value=t("chipConfig.loadingError"),I.value=!1,a.value=!1,!1}},u=hA(()=>Q.value.model&&Q.value.display.width&&Q.value.display.height),E=hA(()=>Q.value.model?Q.value.model.toUpperCase().replace(/ESP32/i,"ESP32-"):""),D=hA(()=>Q.value.display),c=()=>{C.value=!C.value},d=()=>{u.value&&i("next")};return ae(()=>Q.value,p=>{i("update:modelValue",{model:p.model,display:{...p.display}})},{deep:!0}),ae(()=>g.value,p=>{p&&!I.value&&(a.value=!0,l.value="",setTimeout(()=>{f()},100))}),ae(()=>[r.value.chip,r.value.screen],()=>{g.value&&!I.value&&f()},{deep:!0}),Ft(()=>{if(!s.value){a.value=!1,l.value=t("chipConfig.manualConfigRequired"),console.log("⚠ 未检测到设备连接,使用手动配置模式");return}g.value&&r.value.chip&&r.value.chip.model!=="未知"&&r.value.screen&&r.value.screen.resolution!=="未知"?(console.log("✓ 检测到已缓存的设备信息,立即加载"),f()):g.value?(console.log("⏳ 设备在线,等待设备信息加载..."),a.value=!0,setTimeout(()=>{f()},500),setTimeout(()=>{a.value&&!I.value&&g.value&&(a.value=!1,!r.value.chip||r.value.chip.model==="未知"?l.value=t("chipConfig.chipModelError"):!r.value.screen||r.value.screen.resolution==="未知"?l.value=t("chipConfig.resolutionError"):l.value=t("chipConfig.timeoutError"),console.warn("⚠ 设备配置加载超时:",l.value))},1e4)):(console.log("⏳ 等待设备连接..."),a.value=!0,setTimeout(()=>{a.value&&!I.value&&!g.value&&(a.value=!1,l.value=t("chipConfig.manualConfigHint"),console.warn("⚠ 等待设备连接超时"))},1e4))}),(p,v)=>(T(),K("div",sd,[B("div",null,[B("h2",ad,F(p.$t("chipConfig.title")),1),B("p",Id,[a.value?(T(),K("span",Cd,F(p.$t("chipConfig.loadingFromDevice")),1)):I.value?(T(),K("span",ld,F(p.$t("chipConfig.loadedFromDevice")),1)):(T(),K("span",Bd,F(p.$t("chipConfig.manualConfig")),1))])]),a.value?(T(),K("div",Qd,[B("div",cd,[B("div",Ed,[v[0]||(v[0]=B("svg",{class:"animate-spin h-6 w-6 text-blue-600",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[B("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),B("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})],-1)),B("div",null,[B("h3",ud,F(p.$t("chipConfig.loadingTitle")),1),B("p",hd,F(p.$t("chipConfig.loadingDesc")),1)])])])])):BA(g)&&I.value?(T(),K("div",fd,[B("div",dd,[B("div",pd,[B("div",md,[v[1]||(v[1]=B("div",{class:"w-5 h-5 bg-green-500 rounded-full flex items-center justify-center mr-2"},[B("svg",{class:"w-3 h-3 text-white",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z","clip-rule":"evenodd"})])],-1)),B("h3",yd,F(p.$t("chipConfig.autoLoadedTitle")),1)])]),B("div",wd,[B("div",Dd,[B("label",kd,F(p.$t("chipConfig.chipModel")),1),B("div",vd,F(E.value),1)]),B("div",Fd,[B("label",Sd,F(p.$t("chipConfig.screenWidth")),1),B("div",Rd,F(D.value.width)+" px",1)]),B("div",bd,[B("label",Nd,F(p.$t("chipConfig.screenHeight")),1),B("div",Gd,F(D.value.height)+" px",1)])]),B("div",Ld," ✓ "+F(p.$t("chipConfig.colorFormat"))+" "+F(D.value.color),1)]),B("div",Ud,[B("button",{onClick:c,class:"flex items-center text-sm text-gray-600 hover:text-gray-900"},[v[2]||(v[2]=B("svg",{class:"w-4 h-4 mr-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})],-1)),gt(" "+F(C.value?p.$t("chipConfig.collapseManual"):p.$t("chipConfig.manualEdit")),1)]),C.value?(T(),K("div",Md,[TA(n,{config:Q.value},null,8,["config"])])):sA("",!0)])])):(T(),K("div",xd,[B("div",Jd,[B("div",Td,[v[3]||(v[3]=B("svg",{class:"w-5 h-5 text-yellow-600 mr-3 flex-shrink-0 mt-0.5",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z","clip-rule":"evenodd"})],-1)),B("div",null,[B("h4",Hd,F(p.$t("chipConfig.manualConfigDesc")),1),B("p",Yd,F(l.value||p.$t("chipConfig.manualConfigHint")),1)])])]),B("div",_d,[B("h3",Kd,F(p.$t("chipConfig.manualConfigTitle")),1),TA(n,{config:Q.value,"show-required":!0},null,8,["config"])])])),B("div",Od,[B("button",{onClick:d,disabled:!u.value,class:"bg-primary-500 hover:bg-primary-600 disabled:bg-gray-300 text-white px-6 py-2 rounded-lg font-medium transition-colors"},F(p.$t("chipConfig.next")),9,Pd)])]))}},Wd={class:"space-y-6"},qd={class:"text-lg font-medium text-gray-900 mb-2"},jd={class:"text-gray-600"},Zd={key:0,class:"bg-orange-50 border border-orange-200 rounded-lg p-4"},Xd={class:"text-sm text-orange-800"},zd={class:"mt-1"},$d={key:1,class:"space-y-6"},A0={class:"flex space-x-4"},e0={key:0,class:"space-y-4"},t0={class:"block text-sm font-medium text-gray-700"},i0={class:"relative"},o0=["value"],n0=["value"],r0={key:1,class:"space-y-4 bg-gray-50 p-4 rounded-lg border border-gray-200"},g0={class:"font-medium text-gray-900"},s0={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},a0={class:"block text-sm font-medium text-gray-700 mb-1"},I0=["placeholder"],C0={key:0,class:"text-xs text-red-500 mt-1"},l0={class:"block text-sm font-medium text-gray-700 mb-1"},B0=["placeholder"],Q0={key:0,class:"text-xs text-red-500 mt-1"},c0={class:"grid grid-cols-1 md:grid-cols-3 gap-4"},E0={class:"block text-sm font-medium text-gray-700 mb-1"},u0={class:"flex items-center space-x-2"},h0={class:"text-sm text-gray-600 w-8"},f0={class:"text-xs text-gray-500 mt-1"},d0={class:"block text-sm font-medium text-gray-700 mb-1"},p0={key:0,class:"text-xs text-red-500 mt-1"},m0={class:"block text-sm font-medium text-gray-700 mb-1"},y0={value:"mn6_cn"},w0={value:"mn6_en"},D0={class:"bg-blue-50 border border-blue-200 rounded-lg p-3"},k0={class:"text-sm text-blue-800"},v0={class:"mt-1 list-disc list-inside space-y-1"},F0={key:0},S0={key:1},R0={key:2},b0={__name:"WakewordConfig",props:{modelValue:{type:Object,required:!0},chipModel:{type:String,required:!0}},emits:["update:modelValue"],setup(A,{emit:e}){const{t}=ve(),i=A,o=e,n=[{id:"wn9s_hilexin",name:"Hi,乐鑫",model:"WakeNet9s"},{id:"wn9s_hiesp",name:"Hi,ESP",model:"WakeNet9s"},{id:"wn9s_nihaoxiaozhi",name:"你好小智",model:"WakeNet9s"},{id:"wn9s_hijason",name:"Hi,Jason",model:"WakeNet9s"},{id:"wn9s_alexa",name:"Alexa",model:"WakeNet9s"},{id:"wn9_hilexin",name:"Hi,乐鑫",model:"WakeNet9"},{id:"wn9_hiesp",name:"Hi,ESP",model:"WakeNet9"},{id:"wn9_nihaoxiaozhi_tts",name:"你好小智",model:"WakeNet9"},{id:"wn9_hijason_tts2",name:"Hi,Jason",model:"WakeNet9"},{id:"wn9_nihaomiaoban_tts2",name:"你好喵伴",model:"WakeNet9"},{id:"wn9_xiaoaitongxue",name:"小爱同学",model:"WakeNet9"},{id:"wn9_himfive",name:"Hi,M Five",model:"WakeNet9"},{id:"wn9_alexa",name:"Alexa",model:"WakeNet9"},{id:"wn9_jarvis_tts",name:"Jarvis",model:"WakeNet9"},{id:"wn9_computer_tts",name:"Computer",model:"WakeNet9"},{id:"wn9_heywillow_tts",name:"Hey,Willow",model:"WakeNet9"},{id:"wn9_sophia_tts",name:"Sophia",model:"WakeNet9"},{id:"wn9_mycroft_tts",name:"Mycroft",model:"WakeNet9"},{id:"wn9_heyprinter_tts",name:"Hey,Printer",model:"WakeNet9"},{id:"wn9_hijoy_tts",name:"Hi,Joy",model:"WakeNet9"},{id:"wn9_heywanda_tts",name:"Hey,Wand",model:"WakeNet9"},{id:"wn9_astrolabe_tts",name:"Astrolabe",model:"WakeNet9"},{id:"wn9_heyily_tts2",name:"Hey,Ily",model:"WakeNet9"},{id:"wn9_hijolly_tts2",name:"Hi,Jolly",model:"WakeNet9"},{id:"wn9_hifairy_tts2",name:"Hi,Fairy",model:"WakeNet9"},{id:"wn9_bluechip_tts2",name:"Blue Chip",model:"WakeNet9"},{id:"wn9_hiandy_tts2",name:"Hi,Andy",model:"WakeNet9"},{id:"wn9_heyivy_tts2",name:"Hey,Ivy",model:"WakeNet9"},{id:"wn9_hiwalle_tts2",name:"Hi,Wall E",model:"WakeNet9"},{id:"wn9_nihaoxiaoxin_tts",name:"你好小鑫",model:"WakeNet9"},{id:"wn9_xiaomeitongxue_tts",name:"小美同学",model:"WakeNet9"},{id:"wn9_hixiaoxing_tts",name:"Hi,小星",model:"WakeNet9"},{id:"wn9_xiaolongxiaolong_tts",name:"小龙小龙",model:"WakeNet9"},{id:"wn9_miaomiaotongxue_tts",name:"喵喵同学",model:"WakeNet9"},{id:"wn9_himiaomiao_tts",name:"Hi,喵喵",model:"WakeNet9"},{id:"wn9_hilili_tts",name:"Hi,Lily",model:"WakeNet9"},{id:"wn9_hitelly_tts",name:"Hi,Telly",model:"WakeNet9"},{id:"wn9_xiaobinxiaobin_tts",name:"小滨小滨",model:"WakeNet9"},{id:"wn9_haixiaowu_tts",name:"Hi,小巫",model:"WakeNet9"},{id:"wn9_xiaoyaxiaoya_tts2",name:"小鸭小鸭",model:"WakeNet9"},{id:"wn9_linaiban_tts2",name:"璃奈板",model:"WakeNet9"},{id:"wn9_xiaosurou_tts2",name:"小酥肉",model:"WakeNet9"},{id:"wn9_xiaoyutongxue_tts2",name:"小宇同学",model:"WakeNet9"},{id:"wn9_xiaomingtongxue_tts2",name:"小明同学",model:"WakeNet9"},{id:"wn9_xiaokangtongxue_tts2",name:"小康同学",model:"WakeNet9"},{id:"wn9_xiaojianxiaojian_tts2",name:"小箭小箭",model:"WakeNet9"},{id:"wn9_xiaotexiaote_tts2",name:"小特小特",model:"WakeNet9"},{id:"wn9_nihaoxiaoyi_tts2",name:"你好小益",model:"WakeNet9"},{id:"wn9_nihaobaiying_tts2",name:"你好百应",model:"WakeNet9"},{id:"wn9_xiaoluxiaolu_tts2",name:"小鹿小鹿",model:"WakeNet9"},{id:"wn9_nihaodongdong_tts2",name:"你好东东",model:"WakeNet9"},{id:"wn9_nihaoxiaoan_tts2",name:"你好小安",model:"WakeNet9"},{id:"wn9_ni3hao3xiao3mai4_tts2",name:"你好小脉",model:"WakeNet9"},{id:"wn9_ni3hao3xiao3rui4_tts3",name:"你好小瑞",model:"WakeNet9"},{id:"wn9_hai1xiao3ou1_tts3",name:"嗨小欧",model:"WakeNet9"}],r=hA(()=>{const E=i.chipModel.toLowerCase();return E==="esp32s3"||E==="esp32p4"}),g=hA(()=>{const E=i.chipModel.toLowerCase();return E==="esp32c3"||E==="esp32c5"||E==="esp32c6"}),s=hA(()=>i.chipModel.toLowerCase()==="esp32s3"),a=hA(()=>r.value||g.value),I=hA(()=>r.value?n.filter(E=>E.model==="WakeNet9"):g.value?n.filter(E=>E.model==="WakeNet9s"):[]),l=EA({name:"",command:"",threshold:20,duration:3e3,model:"mn6_cn"}),C=EA({name:"",command:"",duration:""}),Q=()=>{let E=!0;return C.value={name:"",command:"",duration:""},l.value.name.trim()||(C.value.name=t("wakewordConfig.errors.nameRequired"),E=!1),l.value.command.trim()?l.value.model.includes("_en")&&/[!,.?]/.test(l.value.command)&&(C.value.command=t("wakewordConfig.errors.noPunctuation"),E=!1):(C.value.command=t("wakewordConfig.errors.commandRequired"),E=!1),(!l.value.duration||l.value.duration<500||l.value.duration>1e4)&&(C.value.duration=t("wakewordConfig.errors.durationRange"),E=!1),E},h=EA(!1),f=E=>{var D;o("update:modelValue",{...i.modelValue,type:E,preset:E==="preset"&&(i.modelValue.preset||((D=I.value[0])==null?void 0:D.id))||"",custom:{...i.modelValue.custom,...l.value}})},u=E=>{o("update:modelValue",{...i.modelValue,preset:E})};return ae(l,E=>{h.value||i.modelValue.type==="custom"&&(Q(),o("update:modelValue",{...i.modelValue,custom:{...E}}))},{deep:!0}),ae(()=>i.modelValue.custom,E=>{E&&(h.value=!0,l.value={name:E.name||"",command:E.command||"",threshold:E.threshold!==void 0?E.threshold:20,duration:E.duration!==void 0?E.duration:3e3,model:E.model||"mn6_cn"},uo(()=>{h.value=!1}))},{deep:!0,immediate:!0}),(E,D)=>(T(),K("div",Wd,[B("div",null,[B("h3",qd,F(E.$t("wakewordConfig.title")),1),B("p",jd,F(E.$t("wakewordConfig.description")),1)]),a.value?(T(),K("div",$d,[B("div",A0,[B("button",{onClick:D[0]||(D[0]=c=>f("none")),class:kA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="none"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},F(E.$t("wakewordConfig.noWakeword")),3),B("button",{onClick:D[1]||(D[1]=c=>f("preset")),class:kA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="preset"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},F(E.$t("wakewordConfig.presetWakeword")),3),s.value?(T(),K("button",{key:0,onClick:D[2]||(D[2]=c=>f("custom")),class:kA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="custom"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},F(E.$t("wakewordConfig.customWakeword")),3)):sA("",!0)]),A.modelValue.type==="preset"?(T(),K("div",e0,[B("label",t0,F(E.$t("wakewordConfig.selectWakeword")),1),B("div",i0,[B("select",{value:A.modelValue.preset,onChange:D[3]||(D[3]=c=>u(c.target.value)),class:"w-full border border-gray-300 rounded-md px-3 py-2 pr-10 bg-white focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500"},[(T(!0),K(qA,null,Ke(I.value,c=>(T(),K("option",{key:c.id,value:c.id},F(c.name)+" ("+F(c.model)+") ",9,n0))),128))],40,o0)])])):sA("",!0),A.modelValue.type==="custom"?(T(),K("div",r0,[B("h4",g0,F(E.$t("wakewordConfig.customSettings")),1),B("div",s0,[B("div",null,[B("label",a0,[gt(F(E.$t("wakewordConfig.wakewordName"))+" ",1),D[9]||(D[9]=B("span",{class:"text-red-500"},"*",-1))]),ZA(B("input",{type:"text","onUpdate:modelValue":D[4]||(D[4]=c=>l.value.name=c),placeholder:E.$t("wakewordConfig.wakewordNamePlaceholder"),class:kA(["w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500",{"border-red-500":C.value.name}])},null,10,I0),[[te,l.value.name]]),C.value.name?(T(),K("p",C0,F(C.value.name),1)):sA("",!0)]),B("div",null,[B("label",l0,[gt(F(E.$t("wakewordConfig.wakewordCommand"))+" ",1),D[10]||(D[10]=B("span",{class:"text-red-500"},"*",-1))]),ZA(B("input",{type:"text","onUpdate:modelValue":D[5]||(D[5]=c=>l.value.command=c),placeholder:l.value.model.includes("_cn")?E.$t("wakewordConfig.wakewordCommandPlaceholderCN"):E.$t("wakewordConfig.wakewordCommandPlaceholderEN"),class:kA(["w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500",{"border-red-500":C.value.command}])},null,10,B0),[[te,l.value.command]]),C.value.command?(T(),K("p",Q0,F(C.value.command),1)):sA("",!0)])]),B("div",c0,[B("div",null,[B("label",E0,F(E.$t("wakewordConfig.threshold")),1),B("div",u0,[ZA(B("input",{type:"range","onUpdate:modelValue":D[6]||(D[6]=c=>l.value.threshold=c),min:"0",max:"100",step:"1",class:"flex-1"},null,512),[[te,l.value.threshold,void 0,{number:!0}]]),B("span",h0,F(l.value.threshold),1)]),B("p",f0,F(E.$t("wakewordConfig.thresholdDesc")),1)]),B("div",null,[B("label",d0,F(E.$t("wakewordConfig.duration"))+" (ms) ",1),ZA(B("input",{type:"number","onUpdate:modelValue":D[7]||(D[7]=c=>l.value.duration=c),min:"500",max:"10000",step:"100",class:kA(["w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500",{"border-red-500":C.value.duration}])},null,2),[[te,l.value.duration,void 0,{number:!0}]]),C.value.duration?(T(),K("p",p0,F(C.value.duration),1)):sA("",!0)]),B("div",null,[B("label",m0,F(E.$t("wakewordConfig.selectModel")),1),ZA(B("select",{"onUpdate:modelValue":D[8]||(D[8]=c=>l.value.model=c),class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500"},[B("option",y0,F(E.$t("wakewordConfig.mn6cn")),1),B("option",w0,F(E.$t("wakewordConfig.mn6en")),1)],512),[[dr,l.value.model]])])])])):sA("",!0),B("div",D0,[B("div",k0,[B("strong",null,F(E.$t("wakewordConfig.tips.tipLabel")),1),B("ul",v0,[B("li",null,F(E.$t("wakewordConfig.tips.optional")),1),g.value?(T(),K("li",F0,F(E.$t("wakewordConfig.tips.wakeNet9sOnly")),1)):r.value?(T(),K("li",S0,F(E.$t("wakewordConfig.tips.wakeNet9Full")),1)):sA("",!0),s.value?(T(),K("li",R0,F(E.$t("wakewordConfig.tips.customSupport")),1)):sA("",!0)])])])])):(T(),K("div",Zd,[B("div",Xd,[B("strong",null,F(E.$t("wakewordConfig.notice")),1),B("p",zd,F(E.$t("wakewordConfig.unsupportedMessage",{chipModel:A.chipModel})),1)])]))]))}};class N0{constructor(){this.dbName="XiaozhiConfigDB",this.version=1,this.db=null,this.initialized=!1}async initialize(){if(!(this.initialized&&this.db))return new Promise((e,t)=>{const i=indexedDB.open(this.dbName,this.version);i.onerror=()=>{console.error("IndexedDB 初始化失败:",i.error),t(i.error)},i.onsuccess=()=>{this.db=i.result,this.initialized=!0,console.log("IndexedDB 初始化成功"),e()},i.onupgradeneeded=o=>{const n=o.target.result;if(n.objectStoreNames.contains("configs")||n.createObjectStore("configs",{keyPath:"key"}).createIndex("timestamp","timestamp",{unique:!1}),!n.objectStoreNames.contains("files")){const r=n.createObjectStore("files",{keyPath:"id"});r.createIndex("type","type",{unique:!1}),r.createIndex("timestamp","timestamp",{unique:!1})}if(!n.objectStoreNames.contains("temp_data")){const r=n.createObjectStore("temp_data",{keyPath:"key"});r.createIndex("type","type",{unique:!1}),r.createIndex("timestamp","timestamp",{unique:!1})}console.log("IndexedDB 表结构创建完成")}})}async saveConfig(e){this.initialized||await this.initialize();const i={key:"current_config",config:this.sanitizeConfigForStorage(e),timestamp:Date.now()};return new Promise((o,n)=>{const s=this.db.transaction(["configs"],"readwrite").objectStore("configs").put(i);s.onerror=()=>{console.error("保存配置失败:",s.error),n(s.error)},s.onsuccess=()=>{console.log("配置已保存到 IndexedDB"),o()}})}sanitizeConfigForStorage(e){var i,o,n,r,g,s,a,I,l,C;const t=JSON.parse(JSON.stringify(e||{}));try{if((o=(i=t==null?void 0:t.theme)==null?void 0:i.font)!=null&&o.custom&&(t.theme.font.custom.file=null),((r=(n=t==null?void 0:t.theme)==null?void 0:n.emoji)==null?void 0:r.type)==="custom"){t.theme.emoji.custom||(t.theme.emoji.custom={});const Q=((s=(g=t.theme.emoji)==null?void 0:g.custom)==null?void 0:s.images)||{},h={};if(Object.keys(Q).forEach(f=>{h[f]=null}),t.theme.emoji.custom.images=h,t.theme.emoji.custom.emotionMap,t.theme.emoji.custom.fileMap){const f=t.theme.emoji.custom.fileMap,u={};Object.keys(f).forEach(E=>{u[E]=null}),t.theme.emoji.custom.fileMap=u}}(I=(a=t==null?void 0:t.theme)==null?void 0:a.skin)!=null&&I.light&&(t.theme.skin.light.backgroundImage=null),(C=(l=t==null?void 0:t.theme)==null?void 0:l.skin)!=null&&C.dark&&(t.theme.skin.dark.backgroundImage=null)}catch{}return t}async loadConfig(){return this.initialized||await this.initialize(),new Promise((e,t)=>{const n=this.db.transaction(["configs"],"readonly").objectStore("configs").get("current_config");n.onerror=()=>{console.error("加载配置失败:",n.error),t(n.error)},n.onsuccess=()=>{const r=n.result;r?(console.log("从 IndexedDB 恢复配置成功"),e({config:r.config,timestamp:r.timestamp})):e(null)}})}async saveFile(e,t,i,o={}){this.initialized||await this.initialize();const n=await this.fileToArrayBuffer(t);let r={};try{r=o?JSON.parse(JSON.stringify(o)):{}}catch{r={...o}}const g={id:e,type:i,name:t.name,size:t.size,mimeType:t.type,lastModified:t.lastModified,data:n,metadata:r,timestamp:Date.now()};return new Promise((s,a)=>{const C=this.db.transaction(["files"],"readwrite").objectStore("files").put(g);C.onerror=()=>{console.error("保存文件失败:",C.error),a(C.error)},C.onsuccess=()=>{console.log(`文件 ${t.name} 已保存到 IndexedDB`),s()}})}async loadFile(e){return this.initialized||await this.initialize(),new Promise((t,i)=>{const r=this.db.transaction(["files"],"readonly").objectStore("files").get(e);r.onerror=()=>{console.error("加载文件失败:",r.error),i(r.error)},r.onsuccess=()=>{const g=r.result;if(g){const s=new Blob([g.data],{type:g.mimeType}),a=new File([s],g.name,{type:g.mimeType,lastModified:g.lastModified});a.storedId=g.id,a.storedType=g.type,a.storedMetadata=g.metadata,a.storedTimestamp=g.timestamp,console.log(`文件 ${g.name} 从 IndexedDB 恢复成功`),t(a)}else t(null)}})}async getFilesByType(e){return this.initialized||await this.initialize(),new Promise((t,i)=>{const g=this.db.transaction(["files"],"readonly").objectStore("files").index("type").getAll(e);g.onerror=()=>{console.error("获取文件列表失败:",g.error),i(g.error)},g.onsuccess=()=>{const a=(g.result||[]).map(I=>{const l=new Blob([I.data],{type:I.mimeType}),C=new File([l],I.name,{type:I.mimeType,lastModified:I.lastModified});return C.storedId=I.id,C.storedType=I.type,C.storedMetadata=I.metadata,C.storedTimestamp=I.timestamp,C});t(a)}})}async saveTempData(e,t,i,o={}){this.initialized||await this.initialize();const n={key:e,type:i,data:t,metadata:o,timestamp:Date.now()};return new Promise((r,g)=>{const I=this.db.transaction(["temp_data"],"readwrite").objectStore("temp_data").put(n);I.onerror=()=>{console.error("保存临时数据失败:",I.error),g(I.error)},I.onsuccess=()=>{console.log(`临时数据 ${e} 已保存`),r()}})}async loadTempData(e){return this.initialized||await this.initialize(),new Promise((t,i)=>{const r=this.db.transaction(["temp_data"],"readonly").objectStore("temp_data").get(e);r.onerror=()=>{console.error("加载临时数据失败:",r.error),i(r.error)},r.onsuccess=()=>{const g=r.result;t(g||null)}})}async clearAll(){this.initialized||await this.initialize();const e=["configs","files","temp_data"];return new Promise((t,i)=>{const o=this.db.transaction(e,"readwrite");let n=0,r=!1;const g=()=>{n++,n===e.length&&(r?i(new Error("清空部分数据时出现错误")):(console.log("所有存储数据已清空"),t()))};e.forEach(s=>{const I=o.objectStore(s).clear();I.onerror=()=>{console.error(`清空 ${s} 失败:`,I.error),r=!0,g()},I.onsuccess=()=>{console.log(`${s} 已清空`),g()}})})}async deleteFile(e){return this.initialized||await this.initialize(),new Promise((t,i)=>{const r=this.db.transaction(["files"],"readwrite").objectStore("files").delete(e);r.onerror=()=>{console.error("删除文件失败:",r.error),i(r.error)},r.onsuccess=()=>{console.log(`文件 ${e} 已删除`),t()}})}async getStorageInfo(){this.initialized||await this.initialize();const e=["configs","files","temp_data"],t={};for(const o of e){const n=await new Promise((r,g)=>{const I=this.db.transaction([o],"readonly").objectStore(o).count();I.onerror=()=>g(I.error),I.onsuccess=()=>r(I.result)});t[o]={count:n}}const i=await this.loadConfig();return t.lastSaved=i?new Date(i.timestamp):null,t}async hasStoredConfig(){try{return await this.loadConfig()!==null}catch(e){return console.error("检查存储配置时出错:",e),!1}}fileToArrayBuffer(e){return new Promise((t,i)=>{const o=new FileReader;o.onload=()=>t(o.result),o.onerror=()=>i(new Error("读取文件失败")),o.readAsArrayBuffer(e)})}close(){this.db&&(this.db.close(),this.db=null,this.initialized=!1,console.log("IndexedDB 连接已关闭"))}}const Qe=new N0;class si{static async saveFontFile(e,t={}){if(e){const i="custom_font";try{await Qe.saveFile(i,e,"font",{size:t.size||20,bpp:t.bpp||4,charset:t.charset||"deepseek"}),console.log(`字体文件已保存: ${e.name}`)}catch(o){console.warn(`保存字体文件失败: ${e.name}`,o)}}}static async saveEmojiFile(e,t,i={}){var o,n;if(t&&e){const r=e.startsWith("hash_")?e:`emoji_${e}`;try{const g=((o=i==null?void 0:i.size)==null?void 0:o.width)??64,s=((n=i==null?void 0:i.size)==null?void 0:n.height)??64;await Qe.saveFile(r,t,"emoji",{name:e,size:{width:g,height:s},format:i==null?void 0:i.format,emotions:i==null?void 0:i.emotions}),console.log(`表情文件已保存: ${r} - ${t.name}`)}catch(g){console.warn(`保存表情文件失败: ${e}`,g)}}}static async saveBackgroundFile(e,t,i={}){if(t&&e){const o=`background_${e}`;try{let n={};try{n=i?JSON.parse(JSON.stringify(i)):{}}catch{n={...i}}await Qe.saveFile(o,t,"background",{mode:e,...n}),console.log(`背景文件已保存: ${e} - ${t.name}`)}catch(n){console.warn(`保存背景文件失败: ${e}`,n)}}}static async restoreFontFile(){try{return await Qe.loadFile("custom_font")}catch(e){return console.warn("恢复字体文件失败:",e),null}}static async restoreEmojiFile(e){if(!e)return null;try{const t=e.startsWith("hash_")?e:`emoji_${e}`;return await Qe.loadFile(t)}catch(t){return console.warn(`恢复表情文件失败: ${e}`,t),null}}static async restoreBackgroundFile(e){if(!e)return null;try{const t=`background_${e}`;return await Qe.loadFile(t)}catch(t){return console.warn(`恢复背景文件失败: ${e}`,t),null}}static async deleteFontFile(){try{await Qe.deleteFile("custom_font"),console.log("字体文件已删除")}catch(e){console.warn("删除字体文件失败:",e)}}static async deleteEmojiFile(e){if(e)try{const t=e.startsWith("hash_")?e:`emoji_${e}`;await Qe.deleteFile(t),console.log(`表情文件已删除: ${t}`)}catch(t){console.warn(`删除表情文件失败: ${e}`,t)}}static async deleteBackgroundFile(e){if(e)try{const t=`background_${e}`;await Qe.deleteFile(t),console.log(`背景文件已删除: ${e}`)}catch(t){console.warn(`删除背景文件失败: ${e}`,t)}}static async getStorageInfo(){try{return await Qe.getStorageInfo()}catch(e){return console.warn("获取存储信息失败:",e),{configs:{count:0},files:{count:0},temp_data:{count:0},lastSaved:null}}}static async clearAllFiles(){try{await Qe.clearAll(),console.log("所有存储文件已清理")}catch(e){throw console.warn("清理存储文件失败:",e),e}}}const G0={class:"space-y-6"},L0={class:"text-lg font-medium text-gray-900 mb-2"},U0={class:"text-gray-600"},M0={class:"space-y-4"},x0={class:"flex space-x-4"},J0={key:0,class:"space-y-4"},T0={class:"bg-gray-50 border border-gray-200 rounded-lg p-6 text-center"},H0={class:"mt-2 text-gray-600"},Y0={key:1,class:"space-y-4"},_0={class:"font-medium text-gray-900"},K0={class:"grid grid-cols-1 md:grid-cols-4 gap-4"},O0=["onClick"],P0={class:"flex items-start justify-between"},V0={class:"flex-1"},W0={class:"font-medium text-gray-900 mb-1"},q0={class:"text-sm text-gray-600 space-y-1"},j0={key:0,class:"flex-shrink-0 ml-3"},Z0={key:2,class:"space-y-6"},X0={class:"font-medium text-gray-900"},z0={class:"space-y-2"},$0={class:"block text-sm font-medium text-gray-700"},Ap={key:0},ep={class:"mt-2"},tp={class:"text-gray-500"},ip={class:"text-xs text-gray-400 mt-1"},op={key:1,class:"text-green-600"},np={class:"mt-1 font-medium"},rp={key:0,class:"grid grid-cols-1 md:grid-cols-3 gap-4"},gp={class:"block text-sm font-medium text-gray-700 mb-2"},sp={class:"text-xs text-gray-500 mt-1"},ap={class:"block text-sm font-medium text-gray-700 mb-2"},Ip={value:1},Cp={value:2},lp={value:4},Bp={class:"block text-sm font-medium text-gray-700 mb-2"},Qp={value:"qwen"},cp={value:"deepseek"},Ep={value:"gb2312"},up={value:"latin"},hp={value:"full"},fp={class:"flex items-center justify-between p-4 bg-gray-50 rounded-lg border border-gray-200"},dp={class:"flex-1"},pp={class:"font-medium text-gray-900"},mp={class:"text-sm text-gray-500 mt-1"},yp={class:"ml-4"},wp={class:"relative inline-flex items-center cursor-pointer"},Dp=["checked"],kp={__name:"FontConfig",props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue"],setup(A,{emit:e}){const{t}=ve(),i=A,o=e,n=EA(null),r=[{id:"font_puhui_deepseek_14_1",size:14,bpp:1,fileSize:"~180KB"},{id:"font_puhui_deepseek_16_4",size:16,bpp:4,fileSize:"~720KB"},{id:"font_puhui_deepseek_20_4",size:20,bpp:4,fileSize:"~1.1MB"},{id:"font_puhui_deepseek_30_4",size:30,bpp:4,fileSize:"~2.5MB"},{id:"font_noto_qwen_14_1",size:14,bpp:1,fileSize:"~626KB"},{id:"font_noto_qwen_16_4",size:16,bpp:4,fileSize:"~2.0MB"},{id:"font_noto_qwen_20_4",size:20,bpp:4,fileSize:"~2.9MB"},{id:"font_noto_qwen_30_4",size:30,bpp:4,fileSize:"~5.8MB"}],g=hA(()=>r.map(u=>{let E;return u.id.startsWith("font_puhui_deepseek_")?E=t("fontConfig.charsetDeepseek"):u.id.startsWith("font_noto_qwen_")&&(E=t("fontConfig.charsetQwen")),{...u,name:t("fontConfig.presetFontNames."+u.id),charset:E}})),s=EA({size:20,bpp:4,charset:"qwen"}),a=u=>{o("update:modelValue",{...i.modelValue,type:u,preset:u==="preset"?i.modelValue.preset||"font_puhui_deepseek_20_4":"",custom:{...i.modelValue.custom,file:i.modelValue.custom.file||null}})},I=u=>{o("update:modelValue",{...i.modelValue,preset:u,custom:{...i.modelValue.custom,file:i.modelValue.custom.file||null}})},l=u=>{const E=u.target.files[0];E&&Q(E)},C=u=>{u.preventDefault();const E=u.dataTransfer.files;E.length>0&&Q(E[0])},Q=async u=>{u&&(u.type.includes("font")||u.name.toLowerCase().match(/\.(ttf|woff|woff2)$/))?(o("update:modelValue",{...i.modelValue,custom:{...i.modelValue.custom,file:u,...s.value}}),await si.saveFontFile(u,s.value)):alert(t("fontConfig.selectValidFontFile"))},h=async()=>{o("update:modelValue",{...i.modelValue,custom:{...i.modelValue.custom,file:null}}),n.value&&(n.value.value=""),await si.deleteFontFile()},f=EA(!1);return ae(()=>s.value,u=>{f.value||i.modelValue.type==="custom"&&i.modelValue.custom.file&&o("update:modelValue",{...i.modelValue,custom:{...i.modelValue.custom,...u}})},{deep:!0}),ae(()=>i.modelValue.custom,u=>{u.size&&u.bpp&&u.charset&&(f.value=!0,s.value={size:u.size,bpp:u.bpp,charset:u.charset},uo(()=>{f.value=!1}))},{deep:!0,immediate:!0}),(u,E)=>{var D;return T(),K("div",G0,[B("div",null,[B("h3",L0,F(u.$t("fontConfig.title")),1),B("p",U0,F(u.$t("fontConfig.description")),1)]),B("div",M0,[B("div",x0,[B("button",{onClick:E[0]||(E[0]=c=>a("none")),class:kA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="none"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},F(u.$t("fontConfig.noFonts")),3),B("button",{onClick:E[1]||(E[1]=c=>a("preset")),class:kA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="preset"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},F(u.$t("fontConfig.presetFonts")),3),B("button",{onClick:E[2]||(E[2]=c=>a("custom")),class:kA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="custom"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},F(u.$t("fontConfig.customFonts")),3)])]),A.modelValue.type==="none"?(T(),K("div",J0,[B("div",T0,[E[10]||(E[10]=B("svg",{class:"mx-auto h-12 w-12 text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)),B("p",H0,F(u.$t("fontConfig.noFontsDescription")),1)])])):sA("",!0),A.modelValue.type==="preset"?(T(),K("div",Y0,[B("h4",_0,F(u.$t("fontConfig.presetFonts")),1),B("div",K0,[(T(!0),K(qA,null,Ke(g.value,c=>(T(),K("div",{key:c.id,onClick:d=>I(c.id),class:kA(["border-2 rounded-lg p-4 cursor-pointer transition-all",A.modelValue.preset===c.id?"border-primary-500 bg-primary-50":"border-gray-200 hover:border-gray-300"])},[B("div",P0,[B("div",V0,[B("h5",W0,F(c.name),1),B("div",q0,[B("div",null,F(u.$t("fontConfig.fontSize"))+" "+F(c.size)+"px",1),B("div",null,F(u.$t("fontConfig.bitDepth"))+" "+F(c.bpp)+"bpp",1),B("div",null,F(u.$t("fontConfig.charset"))+" "+F(c.charset),1),B("div",null,F(u.$t("fontConfig.fileSize"))+" "+F(c.fileSize),1)])]),A.modelValue.preset===c.id?(T(),K("div",j0,[...E[11]||(E[11]=[B("div",{class:"w-5 h-5 bg-primary-500 rounded-full flex items-center justify-center"},[B("svg",{class:"w-3 h-3 text-white",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z","clip-rule":"evenodd"})])],-1)])])):sA("",!0)])],10,O0))),128))])])):sA("",!0),A.modelValue.type==="custom"?(T(),K("div",Z0,[B("h4",X0,F(u.$t("fontConfig.customFonts")),1),B("div",z0,[B("label",$0,F(u.$t("fontConfig.fontFile")),1),B("div",{onDrop:C,onDragover:E[4]||(E[4]=dt(()=>{},["prevent"])),onDragenter:E[5]||(E[5]=dt(()=>{},["prevent"])),class:"border-2 border-dashed border-gray-300 rounded-lg p-6 text-center hover:border-gray-400 transition-colors"},[B("input",{ref_key:"fileInput",ref:n,type:"file",accept:".ttf,.woff,.woff2",onChange:l,class:"hidden"},null,544),A.modelValue.custom.file?(T(),K("div",op,[E[13]||(E[13]=B("svg",{class:"mx-auto h-8 w-8",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z","clip-rule":"evenodd"})],-1)),B("p",np,F((D=A.modelValue.custom.file)==null?void 0:D.name),1),B("button",{onClick:h,class:"text-red-600 hover:text-red-500 text-sm mt-1"},F(u.$t("fontConfig.removeFile")),1)])):(T(),K("div",Ap,[E[12]||(E[12]=B("svg",{class:"mx-auto h-12 w-12 text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12"})],-1)),B("div",ep,[B("button",{onClick:E[3]||(E[3]=c=>u.$refs.fileInput.click()),class:"text-primary-600 hover:text-primary-500 font-medium"},F(u.$t("fontConfig.clickSelectFontFile")),1),B("p",tp,F(u.$t("fontConfig.orDragFileHere")),1)]),B("p",ip,F(u.$t("fontConfig.supportedFormats")),1)]))],32)]),A.modelValue.custom.file?(T(),K("div",rp,[B("div",null,[B("label",gp,F(u.$t("fontConfig.fontSizePx")),1),ZA(B("input",{type:"number","onUpdate:modelValue":E[6]||(E[6]=c=>s.value.size=c),min:"8",max:"80",class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500"},null,512),[[te,s.value.size,void 0,{number:!0}]]),B("p",sp,F(u.$t("fontConfig.range"))+" 8-80px",1)]),B("div",null,[B("label",ap,F(u.$t("fontConfig.bitDepthBpp")),1),ZA(B("select",{"onUpdate:modelValue":E[7]||(E[7]=c=>s.value.bpp=c),class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500"},[B("option",Ip,F(u.$t("fontConfig.monochrome")),1),B("option",Cp,F(u.$t("fontConfig.fourColors")),1),B("option",lp,F(u.$t("fontConfig.sixteenColors")),1)],512),[[dr,s.value.bpp]])]),B("div",null,[B("label",Bp,F(u.$t("fontConfig.characterSet")),1),ZA(B("select",{"onUpdate:modelValue":E[8]||(E[8]=c=>s.value.charset=c),class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500"},[B("option",Qp,F(u.$t("fontConfig.qwen18409")),1),B("option",cp,F(u.$t("fontConfig.deepseekR1")),1),B("option",Ep,F(u.$t("fontConfig.gb2312")),1),B("option",up,F(u.$t("fontConfig.latin1")),1),B("option",hp,F(u.$t("fontConfig.fullCharset")),1)],512),[[dr,s.value.charset]])])])):sA("",!0)])):sA("",!0),B("div",fp,[B("div",dp,[B("h4",pp,F(u.$t("fontConfig.hideSubtitle")),1),B("p",mp,F(u.$t("fontConfig.hideSubtitleDescription")),1)]),B("div",yp,[B("label",wp,[B("input",{type:"checkbox",checked:A.modelValue.hide_subtitle,onChange:E[9]||(E[9]=c=>o("update:modelValue",{...A.modelValue,hide_subtitle:c.target.checked})),class:"sr-only peer"},null,40,Dp),E[14]||(E[14]=B("div",{class:"w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-primary-300 rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-primary-500"},null,-1))])])])])}}},vp={class:"space-y-6"},Fp={class:"text-lg font-medium text-gray-900 mb-2"},Sp={class:"text-gray-600"},Rp={class:"space-y-4"},bp={class:"flex flex-wrap gap-3"},Np={key:0,class:"text-sm text-gray-500"},Gp={key:0,class:"space-y-4"},Lp={class:"font-medium text-gray-900"},Up={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},Mp=["onClick"],xp={class:"flex items-start justify-between mb-3"},Jp={class:"font-medium text-gray-900"},Tp={class:"text-sm text-gray-600"},Hp={class:"text-xs text-gray-500 mt-1"},Yp={key:0,class:"flex-shrink-0 ml-3"},_p={class:"grid grid-cols-7 gap-1 justify-items-center"},Kp=["src","alt"],Op={key:1,class:"space-y-6"},Pp={class:"font-medium text-gray-900"},Vp={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},Wp={class:"block text-sm font-medium text-gray-700 mb-2"},qp={class:"block text-sm font-medium text-gray-700 mb-2"},jp={class:"space-y-4"},Zp={class:"font-medium text-gray-900"},Xp={class:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-7 gap-4"},zp={class:"text-center"},$p={class:"text-lg mb-1"},Am={class:"text-xs text-gray-600 flex items-center justify-center gap-1"},em={key:0,class:"text-red-500"},tm=["onDrop"],im=["onChange"],om=["onClick"],nm={class:"text-xs text-gray-500"},rm={key:1,class:"w-full h-full relative"},gm=["src","alt"],sm=["onClick"],am={class:"text-xs text-gray-500 mt-2"},Im={__name:"EmojiConfig",props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue"],setup(A,{emit:e}){const{t}=ve(),i=A,o=e,n=async c=>{var p;const d=await c.arrayBuffer();if((p=crypto==null?void 0:crypto.subtle)!=null&&p.digest)try{const v=await crypto.subtle.digest("SHA-256",d);return Array.from(new Uint8Array(v)).map(G=>G.toString(16).padStart(2,"0")).join("")}catch(v){console.warn("使用 crypto.subtle.digest 失败,回退到自定义哈希函数:",v)}return r(d)},r=c=>{const d=new Uint8Array(c);let p=2166136261,v=16777619;for(let H=0;H>>0).toString(16).padStart(8,"0")},g=[{id:"twemoji32",name:t("emojiConfig.twitterEmojiName",{size:32}),description:t("emojiConfig.twitterEmojiDescription",{size:32}),size:32,preview:["neutral","happy","laughing","funny","sad","angry","crying"]},{id:"twemoji64",name:t("emojiConfig.twitterEmojiName",{size:64}),description:t("emojiConfig.twitterEmojiDescription",{size:64}),size:64,preview:["neutral","happy","laughing","funny","sad","angry","crying"]}],s=hA(()=>[{key:"neutral",name:t("emojiConfig.emotions.neutral"),emoji:"😶"},{key:"happy",name:t("emojiConfig.emotions.happy"),emoji:"🙂"},{key:"laughing",name:t("emojiConfig.emotions.laughing"),emoji:"😆"},{key:"funny",name:t("emojiConfig.emotions.funny"),emoji:"😂"},{key:"sad",name:t("emojiConfig.emotions.sad"),emoji:"😔"},{key:"angry",name:t("emojiConfig.emotions.angry"),emoji:"😠"},{key:"crying",name:t("emojiConfig.emotions.crying"),emoji:"😭"},{key:"loving",name:t("emojiConfig.emotions.loving"),emoji:"😍"},{key:"embarrassed",name:t("emojiConfig.emotions.embarrassed"),emoji:"😳"},{key:"surprised",name:t("emojiConfig.emotions.surprised"),emoji:"😯"},{key:"shocked",name:t("emojiConfig.emotions.shocked"),emoji:"😱"},{key:"thinking",name:t("emojiConfig.emotions.thinking"),emoji:"🤔"},{key:"winking",name:t("emojiConfig.emotions.winking"),emoji:"😉"},{key:"cool",name:t("emojiConfig.emotions.cool"),emoji:"😎"},{key:"relaxed",name:t("emojiConfig.emotions.relaxed"),emoji:"😌"},{key:"delicious",name:t("emojiConfig.emotions.delicious"),emoji:"🤤"},{key:"kissy",name:t("emojiConfig.emotions.kissy"),emoji:"😘"},{key:"confident",name:t("emojiConfig.emotions.confident"),emoji:"😏"},{key:"sleepy",name:t("emojiConfig.emotions.sleepy"),emoji:"😴"},{key:"silly",name:t("emojiConfig.emotions.silly"),emoji:"😜"},{key:"confused",name:t("emojiConfig.emotions.confused"),emoji:"🙄"}]),a=EA({size:{width:32,height:32}}),I=c=>{if(i.modelValue.type===c)return;const d={...i.modelValue,type:c};c==="none"?(d.preset="",d.custom={...i.modelValue.custom,images:i.modelValue.custom.images||{}}):c==="preset"?(d.preset=i.modelValue.preset||"twemoji32",d.custom={...i.modelValue.custom,images:i.modelValue.custom.images||{}}):c==="custom"&&(d.preset="",d.custom={...i.modelValue.custom,images:i.modelValue.custom.images||{}}),o("update:modelValue",d)},l=c=>{i.modelValue.preset!==c&&o("update:modelValue",{...i.modelValue,preset:c,custom:{...i.modelValue.custom,images:i.modelValue.custom.images||{}}})},C=(c,d)=>{const p=c.target.files[0];p&&h(d,p)},Q=(c,d)=>{c.preventDefault();const p=c.dataTransfer.files;p.length>0&&h(d,p[0])},h=async(c,d)=>{const p=["png","gif"],v=d.name.split(".").pop().toLowerCase();if(!p.includes(v)){alert(t("emojiConfig.selectValidFormat"));return}const N=await n(d),G=i.modelValue.custom||{},H={...G.fileMap||{}},S={...G.emotionMap||{}},b={...G.images||{}};let L=[];for(const[QA,dA]of Object.entries(S))dA===N&&QA!==c&&L.push(QA);L.length>0&&console.log(t("emojiConfig.sharedFileMessage",{emotionKey:c,existingEmotions:L.join(", ")})),H[N]=d,S[c]=N,b[c]=d,o("update:modelValue",{...i.modelValue,custom:{...G,size:a.value.size,images:b,fileMap:H,emotionMap:S}}),await si.saveEmojiFile(`hash_${N}`,d,{size:a.value.size,format:v,emotions:[...L,c]})},f=async c=>{const d=i.modelValue.custom||{},p={...d.images},v={...d.emotionMap||{}},N={...d.fileMap||{}},G=v[c];delete p[c],delete v[c],Object.values(v).filter(S=>S===G).length===0&&G?(delete N[G],await si.deleteEmojiFile(`hash_${G}`),console.log(t("emojiConfig.fileDeleted",{fileHash:G}))):console.log(t("emojiConfig.fileRetained",{fileHash:G})),o("update:modelValue",{...i.modelValue,custom:{...d,images:p,emotionMap:v,fileMap:N}})},u=(c,d)=>`./static/twemoji${c==="twemoji64"?"64":"32"}/${d}.png`,E=c=>{if(i.modelValue.type==="preset")return u(i.modelValue.preset,c);{const d=i.modelValue.custom.images[c];return d instanceof File||d instanceof Blob?URL.createObjectURL(d):null}},D=c=>{console.warn(t("emojiConfig.imageLoadFailed"),c.target.src),c.target.style.display="none"};return ae(()=>a.value.size,c=>{if(i.modelValue.type==="custom"){const d=i.modelValue.custom;JSON.stringify(d.size)!==JSON.stringify(c)&&o("update:modelValue",{...i.modelValue,custom:{...d,size:c}})}},{deep:!0}),i.modelValue.custom.size&&(a.value={size:{...i.modelValue.custom.size}}),(c,d)=>(T(),K("div",vp,[B("div",null,[B("h3",Fp,F(c.$t("emojiConfig.title")),1),B("p",Sp,F(c.$t("emojiConfig.description")),1)]),B("div",Rp,[B("div",bp,[B("button",{onClick:d[0]||(d[0]=p=>I("none")),class:kA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="none"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},F(c.$t("emojiConfig.noEmojiPack")),3),B("button",{onClick:d[1]||(d[1]=p=>I("preset")),class:kA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="preset"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},F(c.$t("emojiConfig.presetEmojiPack")),3),B("button",{onClick:d[2]||(d[2]=p=>I("custom")),class:kA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="custom"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},F(c.$t("emojiConfig.customEmojiPack")),3)]),A.modelValue.type==="none"?(T(),K("p",Np,F(c.$t("emojiConfig.noEmojiPackDescription")),1)):sA("",!0)]),A.modelValue.type==="preset"?(T(),K("div",Gp,[B("h4",Lp,F(c.$t("emojiConfig.selectPresetEmojiPack")),1),B("div",Up,[(T(),K(qA,null,Ke(g,p=>B("div",{key:p.id,onClick:v=>l(p.id),class:kA(["border-2 rounded-lg p-4 cursor-pointer transition-all",A.modelValue.preset===p.id?"border-primary-500 bg-primary-50":"border-gray-200 hover:border-gray-300"])},[B("div",xp,[B("div",null,[B("h5",Jp,F(p.name),1),B("p",Tp,F(p.description),1),B("div",Hp,F(c.$t("emojiConfig.size"))+": "+F(p.size)+"px × "+F(p.size)+"px ",1)]),A.modelValue.preset===p.id?(T(),K("div",Yp,[...d[7]||(d[7]=[B("div",{class:"w-5 h-5 bg-primary-500 rounded-full flex items-center justify-center"},[B("svg",{class:"w-3 h-3 text-white",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z","clip-rule":"evenodd"})])],-1)])])):sA("",!0)]),B("div",_p,[(T(!0),K(qA,null,Ke(p.preview,v=>(T(),K("div",{key:v,style:VA({width:p.size+"px",height:p.size+"px"}),class:"bg-gray-100 rounded flex items-center justify-center"},[B("img",{src:u(p.id,v),alt:v,style:VA({width:p.size+"px",height:p.size+"px"}),class:"object-contain rounded",onError:D},null,44,Kp)],4))),128))])],10,Mp)),64))])])):sA("",!0),A.modelValue.type==="custom"?(T(),K("div",Op,[B("h4",Pp,F(c.$t("emojiConfig.customEmojiPackConfig")),1),B("div",Vp,[B("div",null,[B("label",Wp,F(c.$t("emojiConfig.maxImageWidth")),1),ZA(B("input",{type:"number","onUpdate:modelValue":d[3]||(d[3]=p=>a.value.size.width=p),min:"16",max:"200",class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500"},null,512),[[te,a.value.size.width,void 0,{number:!0}]])]),B("div",null,[B("label",qp,F(c.$t("emojiConfig.maxImageHeight")),1),ZA(B("input",{type:"number","onUpdate:modelValue":d[4]||(d[4]=p=>a.value.size.height=p),min:"16",max:"200",class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500"},null,512),[[te,a.value.size.height,void 0,{number:!0}]])])]),B("div",jp,[B("h5",Zp,F(c.$t("emojiConfig.uploadEmojiImages")),1),B("div",Xp,[(T(!0),K(qA,null,Ke(s.value,p=>(T(),K("div",{key:p.key,class:"space-y-2"},[B("div",zp,[B("div",$p,F(p.emoji),1),B("div",Am,[B("span",null,F(p.name),1),p.key==="neutral"?(T(),K("span",em,F(c.$t("emojiConfig.required")),1)):sA("",!0)])]),B("div",{onDrop:v=>Q(v,p.key),onDragover:d[5]||(d[5]=dt(()=>{},["prevent"])),onDragenter:d[6]||(d[6]=dt(()=>{},["prevent"])),class:kA(["border-2 border-dashed rounded-lg p-2 text-center cursor-pointer transition-colors aspect-square flex flex-col items-center justify-center",A.modelValue.custom.images[p.key]?"border-green-300 bg-green-50":p.key==="neutral"?"border-red-300 bg-red-50":"border-gray-300 hover:border-gray-400"])},[B("input",{ref_for:!0,ref:p.key+"Input",type:"file",accept:".png,.gif",onChange:v=>C(v,p.key),class:"hidden"},null,40,im),A.modelValue.custom.images[p.key]?(T(),K("div",rm,[E(p.key)?(T(),K("img",{key:0,src:E(p.key),alt:p.name,class:"w-full h-full object-cover rounded",onError:D},null,40,gm)):sA("",!0),B("button",{onClick:v=>f(p.key),class:"absolute -top-1 -right-1 w-4 h-4 bg-red-500 text-white rounded-full flex items-center justify-center text-xs hover:bg-red-600"}," × ",8,sm)])):(T(),K("div",{key:0,onClick:v=>{var N;return(N=c.$refs[p.key+"Input"][0])==null?void 0:N.click()}},[d[8]||(d[8]=B("svg",{class:"w-6 h-6 text-gray-400 mx-auto mb-1",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 6v6m0 0v6m0-6h6m-6 0H6"})],-1)),B("div",nm,F(c.$t("emojiConfig.clickToUploadOrDrag")),1)],8,om))],42,tm)]))),128))]),B("div",am,F(c.$t("emojiConfig.neutralRequiredNotice")),1)])])):sA("",!0)]))}},Cm={class:"space-y-6"},lm={class:"text-lg font-medium text-gray-900 mb-2"},Bm={class:"text-gray-600"},Qm={class:"space-y-4"},cm={class:"font-medium text-gray-900 flex items-center"},Em={class:"border border-gray-200 rounded-lg p-4 space-y-4"},um={class:"flex space-x-4"},hm={key:0,class:"space-y-3"},fm={class:"flex items-center space-x-3"},dm={class:"text-sm font-medium text-gray-700"},pm={class:"flex items-center space-x-2"},mm={class:"flex items-center space-x-3"},ym={class:"text-sm font-medium text-gray-700"},wm={class:"flex items-center space-x-2"},Dm={key:1,class:"space-y-3"},km={class:"text-sm font-medium text-gray-700"},vm={class:"mt-1 text-sm text-gray-600"},Fm={key:1,class:"space-y-2"},Sm=["src"],Rm={class:"text-sm text-green-700 font-medium"},bm={class:"flex items-center space-x-3"},Nm={class:"text-sm font-medium text-gray-700"},Gm={class:"flex items-center space-x-2"},Lm={class:"space-y-4"},Um={class:"font-medium text-gray-900 flex items-center"},Mm={class:"border border-gray-200 rounded-lg p-4 space-y-4"},xm={class:"flex space-x-4"},Jm={key:0,class:"space-y-3"},Tm={class:"flex items-center space-x-3"},Hm={class:"text-sm font-medium text-gray-700"},Ym={class:"flex items-center space-x-2"},_m={class:"flex items-center space-x-3"},Km={class:"text-sm font-medium text-gray-700"},Om={class:"flex items-center space-x-2"},Pm={key:1,class:"space-y-3"},Vm={class:"text-sm font-medium text-gray-700"},Wm={class:"mt-1 text-sm text-gray-600"},qm={key:1,class:"space-y-2"},jm=["src"],Zm={class:"text-sm text-green-700 font-medium"},Xm={class:"flex items-center space-x-3"},zm={class:"text-sm font-medium text-gray-700"},$m={class:"flex items-center space-x-2"},Ay={class:"space-y-4"},ey={class:"font-medium text-gray-900"},ty={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},iy={class:"space-y-2"},oy={class:"text-sm font-medium text-gray-700"},ny={class:"absolute inset-0 bg-white bg-opacity-10 flex items-center justify-center rounded-lg"},ry={class:"space-y-2"},gy={class:"text-sm font-medium text-gray-700"},sy={class:"absolute inset-0 bg-black bg-opacity-10 flex items-center justify-center rounded-lg"},ay={class:"bg-blue-50 border border-blue-200 rounded-lg p-4"},Iy={class:"font-medium text-blue-900 mb-2"},Cy={class:"flex flex-wrap gap-2"},ly={__name:"BackgroundConfig",props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue"],setup(A,{emit:e}){const{t}=ve(),i=A,o=e,n=EA(null),r=EA(null),g=hA({get:()=>i.modelValue.light.backgroundColor,set:S=>Q(S)}),s=hA({get:()=>i.modelValue.dark.backgroundColor,set:S=>h(S)}),a=hA({get:()=>i.modelValue.light.textColor,set:S=>f(S)}),I=hA({get:()=>i.modelValue.dark.textColor,set:S=>u(S)}),l=S=>{o("update:modelValue",{...i.modelValue,light:{...i.modelValue.light,backgroundType:S,backgroundImage:S==="image"?i.modelValue.light.backgroundImage:null}})},C=S=>{o("update:modelValue",{...i.modelValue,dark:{...i.modelValue.dark,backgroundType:S,backgroundImage:S==="image"?i.modelValue.dark.backgroundImage:null}})},Q=S=>{o("update:modelValue",{...i.modelValue,light:{...i.modelValue.light,backgroundColor:S}})},h=S=>{o("update:modelValue",{...i.modelValue,dark:{...i.modelValue.dark,backgroundColor:S}})},f=S=>{o("update:modelValue",{...i.modelValue,light:{...i.modelValue.light,textColor:S}})},u=S=>{o("update:modelValue",{...i.modelValue,dark:{...i.modelValue.dark,textColor:S}})},E=(S,b)=>{const L=S.target.files[0];L&&c(b,L)},D=(S,b)=>{S.preventDefault();const L=S.dataTransfer.files;L.length>0&&c(b,L[0])},c=async(S,b)=>{b&&b.type.startsWith("image/")?(o("update:modelValue",{...i.modelValue,[S]:{...i.modelValue[S],backgroundImage:b}}),await si.saveBackgroundFile(S,b)):alert(t("backgroundConfig.selectValidImage"))},d=async S=>{o("update:modelValue",{...i.modelValue,[S]:{...i.modelValue[S],backgroundImage:null}}),S==="light"&&n.value&&(n.value.value=""),S==="dark"&&r.value&&(r.value.value=""),await si.deleteBackgroundFile(S)},p=S=>{const b=i.modelValue[S].backgroundImage;return b?URL.createObjectURL(b):null},v=()=>i.modelValue.light.backgroundType==="image"&&i.modelValue.light.backgroundImage?{backgroundImage:`url(${p("light")})`,backgroundSize:"cover",backgroundPosition:"center"}:{backgroundColor:i.modelValue.light.backgroundColor},N=()=>i.modelValue.dark.backgroundType==="image"&&i.modelValue.dark.backgroundImage?{backgroundImage:`url(${p("dark")})`,backgroundSize:"cover",backgroundPosition:"center"}:{backgroundColor:i.modelValue.dark.backgroundColor},G=(S,b)=>{const L=H(S)?"#000000":"#ffffff",QA=H(b)?"#000000":"#ffffff";o("update:modelValue",{...i.modelValue,light:{...i.modelValue.light,backgroundType:"color",backgroundColor:S,textColor:L,backgroundImage:null},dark:{...i.modelValue.dark,backgroundType:"color",backgroundColor:b,textColor:QA,backgroundImage:null}})},H=S=>{const b=S.replace("#",""),L=parseInt(b.substr(0,2),16),QA=parseInt(b.substr(2,2),16),dA=parseInt(b.substr(4,2),16);return(L*299+QA*587+dA*114)/1e3>128};return(S,b)=>(T(),K("div",Cm,[B("div",null,[B("h3",lm,F(S.$t("backgroundConfig.title")),1),B("p",Bm,F(S.$t("backgroundConfig.description")),1)]),B("div",Qm,[B("h4",cm,[b[33]||(b[33]=B("svg",{class:"w-5 h-5 mr-2 text-yellow-500",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z","clip-rule":"evenodd"})],-1)),gt(" "+F(S.$t("backgroundConfig.lightMode")),1)]),B("div",Em,[B("div",um,[B("button",{onClick:b[0]||(b[0]=L=>l("color")),class:kA(["px-3 py-2 text-sm border rounded transition-colors",A.modelValue.light.backgroundType==="color"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},F(S.$t("backgroundConfig.solidBackground")),3),B("button",{onClick:b[1]||(b[1]=L=>l("image")),class:kA(["px-3 py-2 text-sm border rounded transition-colors",A.modelValue.light.backgroundType==="image"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},F(S.$t("backgroundConfig.imageBackground")),3)]),A.modelValue.light.backgroundType==="color"?(T(),K("div",hm,[B("div",fm,[B("label",dm,F(S.$t("backgroundConfig.backgroundColor")),1),B("div",pm,[ZA(B("input",{type:"color","onUpdate:modelValue":b[2]||(b[2]=L=>g.value=L),class:"w-10 h-10 border border-gray-300 rounded cursor-pointer"},null,512),[[te,g.value]]),ZA(B("input",{type:"text","onUpdate:modelValue":b[3]||(b[3]=L=>g.value=L),class:"border border-gray-300 rounded px-3 py-2 text-sm font-mono w-24"},null,512),[[te,g.value]])]),B("div",{style:VA({backgroundColor:g.value}),class:"w-16 h-10 border border-gray-300 rounded shadow-inner"},null,4)]),B("div",mm,[B("label",ym,F(S.$t("backgroundConfig.textColor")),1),B("div",wm,[ZA(B("input",{type:"color","onUpdate:modelValue":b[4]||(b[4]=L=>a.value=L),class:"w-10 h-10 border border-gray-300 rounded cursor-pointer"},null,512),[[te,a.value]]),ZA(B("input",{type:"text","onUpdate:modelValue":b[5]||(b[5]=L=>a.value=L),class:"border border-gray-300 rounded px-3 py-2 text-sm font-mono w-24"},null,512),[[te,a.value]])]),B("div",{style:VA({backgroundColor:a.value}),class:"w-16 h-10 border border-gray-300 rounded shadow-inner"},null,4)])])):sA("",!0),A.modelValue.light.backgroundType==="image"?(T(),K("div",Dm,[B("label",km,F(S.$t("backgroundConfig.backgroundImage")),1),B("div",{onDrop:b[9]||(b[9]=L=>D(L,"light")),onDragover:b[10]||(b[10]=dt(()=>{},["prevent"])),onDragenter:b[11]||(b[11]=dt(()=>{},["prevent"])),class:kA(["border-2 border-dashed rounded-lg p-4 text-center cursor-pointer transition-colors",A.modelValue.light.backgroundImage?"border-green-300 bg-green-50":"border-gray-300 hover:border-gray-400"])},[B("input",{ref_key:"lightImageInput",ref:n,type:"file",accept:"image/*",onChange:b[6]||(b[6]=L=>E(L,"light")),class:"hidden"},null,544),A.modelValue.light.backgroundImage?(T(),K("div",Fm,[B("img",{src:p("light"),alt:"{{ $t('backgroundConfig.lightModePreview') }}背景",class:"max-w-32 max-h-32 mx-auto rounded shadow"},null,8,Sm),B("p",Rm,F(A.modelValue.light.backgroundImage.name),1),B("button",{onClick:b[8]||(b[8]=L=>d("light")),class:"text-red-600 hover:text-red-500 text-sm"},F(S.$t("backgroundConfig.removeImage")),1)])):(T(),K("div",{key:0,onClick:b[7]||(b[7]=L=>S.$refs.lightImageInput.click())},[b[34]||(b[34]=B("svg",{class:"mx-auto h-8 w-8 text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"})],-1)),B("p",vm,F(S.$t("backgroundConfig.clickOrDragToUpload")),1)]))],34),B("div",bm,[B("label",Nm,F(S.$t("backgroundConfig.textColor")),1),B("div",Gm,[ZA(B("input",{type:"color","onUpdate:modelValue":b[12]||(b[12]=L=>a.value=L),class:"w-10 h-10 border border-gray-300 rounded cursor-pointer"},null,512),[[te,a.value]]),ZA(B("input",{type:"text","onUpdate:modelValue":b[13]||(b[13]=L=>a.value=L),class:"border border-gray-300 rounded px-3 py-2 text-sm font-mono w-24"},null,512),[[te,a.value]])]),B("div",{style:VA({backgroundColor:a.value}),class:"w-16 h-10 border border-gray-300 rounded shadow-inner"},null,4)])])):sA("",!0)])]),B("div",Lm,[B("h4",Um,[b[35]||(b[35]=B("svg",{class:"w-5 h-5 mr-2 text-gray-600",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{d:"M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"})],-1)),gt(" "+F(S.$t("backgroundConfig.darkMode")),1)]),B("div",Mm,[B("div",xm,[B("button",{onClick:b[14]||(b[14]=L=>C("color")),class:kA(["px-3 py-2 text-sm border rounded transition-colors",A.modelValue.dark.backgroundType==="color"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},F(S.$t("backgroundConfig.solidBackground")),3),B("button",{onClick:b[15]||(b[15]=L=>C("image")),class:kA(["px-3 py-2 text-sm border rounded transition-colors",A.modelValue.dark.backgroundType==="image"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},F(S.$t("backgroundConfig.imageBackground")),3)]),A.modelValue.dark.backgroundType==="color"?(T(),K("div",Jm,[B("div",Tm,[B("label",Hm,F(S.$t("backgroundConfig.backgroundColor")),1),B("div",Ym,[ZA(B("input",{type:"color","onUpdate:modelValue":b[16]||(b[16]=L=>s.value=L),class:"w-10 h-10 border border-gray-300 rounded cursor-pointer"},null,512),[[te,s.value]]),ZA(B("input",{type:"text","onUpdate:modelValue":b[17]||(b[17]=L=>s.value=L),class:"border border-gray-300 rounded px-3 py-2 text-sm font-mono w-24"},null,512),[[te,s.value]])]),B("div",{style:VA({backgroundColor:s.value}),class:"w-16 h-10 border border-gray-300 rounded shadow-inner"},null,4)]),B("div",_m,[B("label",Km,F(S.$t("backgroundConfig.textColor")),1),B("div",Om,[ZA(B("input",{type:"color","onUpdate:modelValue":b[18]||(b[18]=L=>I.value=L),class:"w-10 h-10 border border-gray-300 rounded cursor-pointer"},null,512),[[te,I.value]]),ZA(B("input",{type:"text","onUpdate:modelValue":b[19]||(b[19]=L=>I.value=L),class:"border border-gray-300 rounded px-3 py-2 text-sm font-mono w-24"},null,512),[[te,I.value]])]),B("div",{style:VA({backgroundColor:I.value}),class:"w-16 h-10 border border-gray-300 rounded shadow-inner"},null,4)])])):sA("",!0),A.modelValue.dark.backgroundType==="image"?(T(),K("div",Pm,[B("label",Vm,F(S.$t("backgroundConfig.backgroundImage")),1),B("div",{onDrop:b[23]||(b[23]=L=>D(L,"dark")),onDragover:b[24]||(b[24]=dt(()=>{},["prevent"])),onDragenter:b[25]||(b[25]=dt(()=>{},["prevent"])),class:kA(["border-2 border-dashed rounded-lg p-4 text-center cursor-pointer transition-colors",A.modelValue.dark.backgroundImage?"border-green-300 bg-green-50":"border-gray-300 hover:border-gray-400"])},[B("input",{ref_key:"darkImageInput",ref:r,type:"file",accept:"image/*",onChange:b[20]||(b[20]=L=>E(L,"dark")),class:"hidden"},null,544),A.modelValue.dark.backgroundImage?(T(),K("div",qm,[B("img",{src:p("dark"),alt:"{{ $t('backgroundConfig.darkModePreview') }}背景",class:"max-w-32 max-h-32 mx-auto rounded shadow"},null,8,jm),B("p",Zm,F(A.modelValue.dark.backgroundImage.name),1),B("button",{onClick:b[22]||(b[22]=L=>d("dark")),class:"text-red-600 hover:text-red-500 text-sm"},F(S.$t("backgroundConfig.removeImage")),1)])):(T(),K("div",{key:0,onClick:b[21]||(b[21]=L=>S.$refs.darkImageInput.click())},[b[36]||(b[36]=B("svg",{class:"mx-auto h-8 w-8 text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"})],-1)),B("p",Wm,F(S.$t("backgroundConfig.clickOrDragToUpload")),1)]))],34),B("div",Xm,[B("label",zm,F(S.$t("backgroundConfig.textColor")),1),B("div",$m,[ZA(B("input",{type:"color","onUpdate:modelValue":b[26]||(b[26]=L=>I.value=L),class:"w-10 h-10 border border-gray-300 rounded cursor-pointer"},null,512),[[te,I.value]]),ZA(B("input",{type:"text","onUpdate:modelValue":b[27]||(b[27]=L=>I.value=L),class:"border border-gray-300 rounded px-3 py-2 text-sm font-mono w-24"},null,512),[[te,I.value]])]),B("div",{style:VA({backgroundColor:I.value}),class:"w-16 h-10 border border-gray-300 rounded shadow-inner"},null,4)])])):sA("",!0)])]),B("div",Ay,[B("h4",ey,F(S.$t("backgroundConfig.backgroundPreview")),1),B("div",ty,[B("div",iy,[B("div",oy,F(S.$t("backgroundConfig.lightModePreview")),1),B("div",{style:VA(v()),class:"h-32 border border-gray-300 rounded-lg flex items-center justify-center text-sm relative overflow-hidden"},[B("div",ny,[B("span",{style:VA({color:A.modelValue.light.textColor})},F(S.$t("backgroundConfig.chatArea")),5)])],4)]),B("div",ry,[B("div",gy,F(S.$t("backgroundConfig.darkModePreview")),1),B("div",{style:VA(N()),class:"h-32 border border-gray-300 rounded-lg flex items-center justify-center text-sm relative overflow-hidden"},[B("div",sy,[B("span",{style:VA({color:A.modelValue.dark.textColor})},F(S.$t("backgroundConfig.chatArea")),5)])],4)])])]),B("div",ay,[B("h5",Iy,F(S.$t("backgroundConfig.quickConfig")),1),B("div",Cy,[B("button",{onClick:b[28]||(b[28]=L=>G("#ffffff","#1f2937")),class:"px-3 py-1 text-sm bg-white border border-gray-300 rounded hover:bg-gray-50"},F(S.$t("backgroundConfig.defaultColors")),1),B("button",{onClick:b[29]||(b[29]=L=>G("#f5f5f4","#374151")),class:"px-3 py-1 text-sm bg-stone-100 border border-gray-300 rounded hover:bg-stone-200"},F(S.$t("backgroundConfig.stoneTexture")),1),B("button",{onClick:b[30]||(b[30]=L=>G("#fef7cd","#7c2d12")),class:"px-3 py-1 text-sm bg-yellow-100 border border-gray-300 rounded hover:bg-yellow-200"},F(S.$t("backgroundConfig.sunnyColors")),1),B("button",{onClick:b[31]||(b[31]=L=>G("#e0f2fe","#1e40af")),class:"px-3 py-1 text-sm bg-sky-100 border border-gray-300 rounded hover:bg-sky-200"},F(S.$t("backgroundConfig.skyBlue")),1),B("button",{onClick:b[32]||(b[32]=L=>G("#fdf2f8","#be185d")),class:"px-3 py-1 text-sm bg-pink-100 border border-gray-300 rounded hover:bg-pink-200"},F(S.$t("backgroundConfig.romanticPink")),1)])])]))}},By={class:"space-y-6"},Qy={class:"text-xl font-semibold text-gray-900 mb-4"},cy={class:"text-gray-600 mb-6"},Ey={class:"border-b border-gray-200"},uy={class:"-mb-px flex space-x-4 sm:space-x-8"},hy=["onClick"],fy={class:"flex items-center"},dy={class:"hidden sm:inline"},py={class:"min-h-96"},my={class:"flex justify-between"},yy={__name:"ThemeDesign",props:{modelValue:{type:Object,required:!0},chipModel:{type:String,required:!0},activeTab:{type:String,default:"wakeword"}},emits:["update:modelValue","next","prev","tabChange"],setup(A,{emit:e}){const{t}=ve(),i={render(){return GA("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[GA("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 11a7 7 0 01-7 7m0 0a7 7 0 01-7-7m7 7v4m0 0H8m4 0h4m-4-8a3 3 0 01-3-3V5a3 3 0 116 0v6a3 3 0 01-3 3z"})])}},o={render(){return GA("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",viewBox:"0 0 640 640"},[GA("path",{d:"M320 96C329.5 96 338 101.5 341.9 110.2L515.1 496L536 496C549.3 496 560 506.7 560 520C560 533.3 549.3 544 536 544L440 544C426.7 544 416 533.3 416 520C416 506.7 426.7 496 440 496L462.5 496L426.6 416L213.4 416L177.5 496L200 496C213.3 496 224 506.7 224 520C224 533.3 213.3 544 200 544L104 544C90.7 544 80 533.3 80 520C80 506.7 90.7 496 104 496L124.9 496L298.1 110.2C302 101.5 310.5 96 320 96zM320 178.6L235 368L405 368L320 178.6z"})])}},n={render(){return GA("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[GA("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M14.828 14.828a4 4 0 01-5.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})])}},r={render(){return GA("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",viewBox:"0 0 640 640"},[GA("path",{d:"M160 144C151.2 144 144 151.2 144 160L144 480C144 488.8 151.2 496 160 496L480 496C488.8 496 496 488.8 496 480L496 160C496 151.2 488.8 144 480 144L160 144zM96 160C96 124.7 124.7 96 160 96L480 96C515.3 96 544 124.7 544 160L544 480C544 515.3 515.3 544 480 544L160 544C124.7 544 96 515.3 96 480L96 160zM224 192C241.7 192 256 206.3 256 224C256 241.7 241.7 256 224 256C206.3 256 192 241.7 192 224C192 206.3 206.3 192 224 192zM360 264C368.5 264 376.4 268.5 380.7 275.8L460.7 411.8C465.1 419.2 465.1 428.4 460.8 435.9C456.5 443.4 448.6 448 440 448L200 448C191.1 448 182.8 443 178.7 435.1C174.6 427.2 175.2 417.6 180.3 410.3L236.3 330.3C240.8 323.9 248.1 320.1 256 320.1C263.9 320.1 271.2 323.9 275.7 330.3L292.9 354.9L339.4 275.9C343.7 268.6 351.6 264.1 360.1 264.1z"})])}},g=A,s=e,a=EA(g.activeTab),I=hA(()=>[{id:"wakeword",name:t("themeDesign.tabs.wakeword"),icon:i},{id:"font",name:t("themeDesign.tabs.font"),icon:o},{id:"emoji",name:t("themeDesign.tabs.emoji"),icon:n},{id:"background",name:t("themeDesign.tabs.background"),icon:r}]),l=hA({get:()=>g.modelValue,set:h=>s("update:modelValue",h)}),C=()=>{var u,E,D;const h=g.modelValue.wakeword;if(h.type==="custom"){if(!((u=h.custom.name)!=null&&u.trim())){alert(t("wakewordConfig.errors.nameRequired"));return}if(!((E=h.custom.command)!=null&&E.trim())){alert(t("wakewordConfig.errors.commandRequired"));return}if(!h.custom.duration||h.custom.duration<500||h.custom.duration>1e4){alert(t("wakewordConfig.errors.durationRange"));return}}const f=g.modelValue.font;if(f.type==="custom"&&!((D=f.custom)!=null&&D.file)){alert(t("fontConfig.selectValidFontFile"));return}s("next")},Q=h=>{a.value=h,s("tabChange",h)};return ae(()=>g.activeTab,h=>{a.value=h}),(h,f)=>(T(),K("div",By,[B("div",null,[B("h2",Qy,F(h.$t("themeDesign.title")),1),B("p",cy,F(h.$t("themeDesign.description")),1)]),B("div",Ey,[B("nav",uy,[(T(!0),K(qA,null,Ke(I.value,u=>(T(),K("button",{key:u.id,onClick:E=>Q(u.id),class:kA(["py-2 px-1 border-b-2 font-medium text-sm relative",a.value===u.id?"border-primary-500 text-primary-600":"border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300"])},[B("span",fy,[(T(),ye(HI(u.icon),{class:"w-5 h-5 sm:mr-2"})),B("span",dy,F(u.name),1)])],10,hy))),128))])]),B("div",py,[a.value==="wakeword"?(T(),ye(b0,{key:0,modelValue:l.value.wakeword,"onUpdate:modelValue":f[0]||(f[0]=u=>l.value.wakeword=u),chipModel:A.chipModel},null,8,["modelValue","chipModel"])):sA("",!0),a.value==="font"?(T(),ye(kp,{key:1,modelValue:l.value.font,"onUpdate:modelValue":f[1]||(f[1]=u=>l.value.font=u)},null,8,["modelValue"])):sA("",!0),a.value==="emoji"?(T(),ye(Im,{key:2,modelValue:l.value.emoji,"onUpdate:modelValue":f[2]||(f[2]=u=>l.value.emoji=u)},null,8,["modelValue"])):sA("",!0),a.value==="background"?(T(),ye(ly,{key:3,modelValue:l.value.skin,"onUpdate:modelValue":f[3]||(f[3]=u=>l.value.skin=u)},null,8,["modelValue"])):sA("",!0)]),B("div",my,[B("button",{onClick:f[4]||(f[4]=u=>h.$emit("prev")),class:"bg-gray-500 hover:bg-gray-600 text-white px-6 py-2 rounded-lg font-medium transition-colors"},F(h.$t("themeDesign.previous")),1),B("button",{onClick:C,class:"bg-primary-500 hover:bg-primary-600 text-white px-6 py-2 rounded-lg font-medium transition-colors"},F(h.$t("themeDesign.next")),1)])]))}},wy=(A,e)=>{const t=A.__vccOpts||A;for(const[i,o]of e)t[i]=o;return t},Dy={class:"space-y-6"},ky={class:"text-xl font-semibold text-gray-900 mb-4"},vy={class:"text-gray-600 mb-6"},Fy={class:"flex flex-col lg:flex-row gap-8"},Sy={class:"flex-1"},Ry={class:"text-lg font-medium text-gray-900 mb-4"},by={class:"bg-gray-100 p-4 rounded-lg"},Ny={class:"max-w-full overflow-auto flex justify-center"},Gy={class:"bg-gray-800 p-6 rounded-2xl shadow-2xl inline-block"},Ly={class:"bg-gray-900 p-2 rounded-xl"},Uy={class:"relative z-10 flex flex-col items-center justify-center p-4 text-center"},My={class:"mb-4"},xy={key:0,class:"emoji-container"},Jy=["src","alt"],Ty={key:1,class:"emoji-container"},Hy={class:"text-center"},Yy={class:"text-sm"},_y={class:"text-xs"},Ky={key:0,class:"absolute inset-0 flex items-center justify-center"},Oy={class:"animate-pulse text-gray-400 text-xs"},Py={class:"mt-3 text-center text-xs text-gray-400"},Vy={class:"w-full lg:w-80"},Wy={class:"text-lg font-medium text-gray-900 mb-4"},qy={class:"space-y-6 bg-white border border-gray-200 rounded-lg p-4"},jy={class:"block text-sm font-medium text-gray-700 mb-2"},Zy={class:"block text-sm font-medium text-gray-700 mb-2"},Xy={key:0,class:"flex flex-wrap gap-2 max-h-32 overflow-y-auto justify-center"},zy=["onClick","title"],$y={key:0},Aw=["src","alt"],ew={key:1,class:"text-lg"},tw={key:1,class:"text-center py-4 text-gray-500 bg-gray-50 rounded-lg border-2 border-dashed"},iw={class:"text-2xl mb-2"},ow={class:"text-sm"},nw={class:"block text-sm font-medium text-gray-700 mb-2"},rw={class:"flex space-x-2"},gw={class:"border-t pt-4"},sw={class:"font-medium text-gray-900 mb-2"},aw={class:"text-xs text-gray-600 space-y-1"},Iw={key:0},Cw={class:"flex items-center"},lw={key:0,class:"ml-2 animate-pulse text-blue-500"},Bw={key:1},Qw={class:"flex justify-between"},cw={__name:"GenerateSummary",props:{config:{type:Object,required:!0}},emits:["prev","generate"],setup(A){const{t:e}=ve(),t=A,i=EA(e("generateSummary.defaultPreviewText")),o=EA("happy"),n=EA("light"),r=EA(!1),g=EA(""),s=hA(()=>[{key:"neutral",name:e("generateSummary.emotions.neutral"),emoji:"😶"},{key:"happy",name:e("generateSummary.emotions.happy"),emoji:"🙂"},{key:"laughing",name:e("generateSummary.emotions.laughing"),emoji:"😆"},{key:"funny",name:e("generateSummary.emotions.funny"),emoji:"😂"},{key:"sad",name:e("generateSummary.emotions.sad"),emoji:"😔"},{key:"angry",name:e("generateSummary.emotions.angry"),emoji:"😠"},{key:"crying",name:e("generateSummary.emotions.crying"),emoji:"😭"},{key:"loving",name:e("generateSummary.emotions.loving"),emoji:"😍"},{key:"surprised",name:e("generateSummary.emotions.surprised"),emoji:"😯"},{key:"thinking",name:e("generateSummary.emotions.thinking"),emoji:"🤔"},{key:"cool",name:e("generateSummary.emotions.cool"),emoji:"😎"},{key:"sleepy",name:e("generateSummary.emotions.sleepy"),emoji:"😴"}]),a=hA(()=>{if(t.config.theme.emoji.type==="preset"&&t.config.theme.emoji.preset)return s.value;if(t.config.theme.emoji.type==="custom"){const S=t.config.theme.emoji.custom.images;return s.value.filter(b=>S[b.key])}else return[]}),I=hA(()=>E(o.value)),l=()=>{const{width:S,height:b}=t.config.chip.display;return{width:`${S}px`,height:`${b}px`}},C=()=>{const S=t.config.theme.skin[n.value];if(S.backgroundType==="image"&&S.backgroundImage)try{if(S.backgroundImage&&typeof S.backgroundImage=="object"&&S.backgroundImage.size)return{backgroundImage:`url(${URL.createObjectURL(S.backgroundImage)})`,backgroundSize:"cover",backgroundPosition:"center"}}catch(b){console.warn("背景图片预览加载失败:",b)}return{backgroundColor:S.backgroundColor||"#ffffff"}},Q=()=>{let S=48;return t.config.theme.emoji.type==="preset"?S=t.config.theme.emoji.preset==="twemoji64"?64:32:t.config.theme.emoji.custom.size&&(S=Math.min(t.config.theme.emoji.custom.size.width,t.config.theme.emoji.custom.size.height)),{width:`${S}px`,height:`${S}px`}},h=()=>{let S=14;if(t.config.theme.font.type==="preset"){const L=t.config.theme.font.preset;L.includes("_14_")?S=14:L.includes("_16_")?S=16:L.includes("_20_")?S=20:L.includes("_30_")&&(S=30)}else t.config.theme.font.custom.size&&(S=t.config.theme.font.custom.size);const b=n.value==="dark"?t.config.theme.skin.dark.textColor:t.config.theme.skin.light.textColor;return{fontSize:`${S}px`,color:b,fontFamily:u(),textShadow:n.value==="dark"?"1px 1px 2px rgba(0,0,0,0.5)":"1px 1px 2px rgba(255,255,255,0.5)"}},f=async()=>{document.querySelectorAll("style[data-font-preview]").forEach(b=>b.remove()),r.value=!1,g.value="";try{if(t.config.theme.font.type==="preset"){const b=t.config.theme.font.preset;let L,QA;b&&b.startsWith("font_noto_qwen_")?(L="NotoPreview",QA="./static/fonts/noto_qwen.ttf"):(L="PuHuiPreview",QA="./static/fonts/puhui_deepseek.ttf");const dA=document.createElement("style");dA.setAttribute("data-font-preview","true"),dA.textContent=` + @font-face { + font-family: '${L}'; + src: url('${QA}') format('truetype'); + font-display: swap; + } + `,document.head.appendChild(dA),await document.fonts.load(`16px "${L}"`),g.value=L,r.value=!0}else if(t.config.theme.font.custom.file)try{const b=t.config.theme.font.custom.file;if(!b||typeof b!="object"||!b.size)throw new Error("字体文件对象无效");const L="CustomFontPreview",QA=URL.createObjectURL(b),dA=document.createElement("style");dA.setAttribute("data-font-preview","true"),dA.textContent=` + @font-face { + font-family: '${L}'; + src: url('${QA}'); + font-display: swap; + } + `,document.head.appendChild(dA),await document.fonts.load(`16px "${L}"`),g.value=L,r.value=!0}catch(b){console.warn("自定义字体预览加载失败:",b),g.value="Arial, sans-serif",r.value=!0}else g.value="system-ui",r.value=!0}catch(b){console.warn("Font loading failed:",b),g.value="system-ui",r.value=!0}},u=()=>r.value&&g.value?`"${g.value}", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif`:'"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif',E=S=>{if(t.config.theme.emoji.type==="preset")return`./static/twemoji${t.config.theme.emoji.preset==="twemoji64"?"64":"32"}/${S}.png`;if(t.config.theme.emoji.type==="custom"&&t.config.theme.emoji.custom.images[S])try{const b=t.config.theme.emoji.custom.images[S];if(b&&typeof b=="object"&&b.size)return URL.createObjectURL(b)}catch(b){console.warn(`表情图片预览加载失败 (${S}):`,b)}return null},D=S=>{const b=s.value.find(L=>L.key===S);return b?b.emoji:"😶"},c=()=>{if(t.config.theme.emoji.type==="preset")return(t.config.theme.emoji.preset==="twemoji64"?64:32)+16;if(t.config.theme.emoji.custom.size){const S=Math.min(t.config.theme.emoji.custom.size.width,t.config.theme.emoji.custom.size.height);return Math.min(S+16,64)}return 48},d=()=>t.config.theme.emoji.type==="preset"?t.config.theme.emoji.preset==="twemoji64"?64:32:t.config.theme.emoji.custom.size?Math.min(t.config.theme.emoji.custom.size.width,t.config.theme.emoji.custom.size.height,48):32,p=S=>{o.value=S},v=()=>{const S=t.config.theme.wakeword;return!S||S.type==="none"?e("wakewordConfig.noWakeword"):S.type==="preset"?{wn9s_hilexin:"Hi,乐鑫",wn9s_hiesp:"Hi,ESP",wn9s_nihaoxiaozhi:"你好小智",wn9_nihaoxiaozhi_tts:"你好小智",wn9_alexa:"Alexa",wn9_jarvis_tts:"Jarvis"}[S.preset]||S.preset:S.type==="custom"?S.custom.name||e("wakewordConfig.customWakeword"):e("wakewordConfig.noWakeword")},N=()=>{if(t.config.theme.font.type==="preset")return e("fontConfig.presetFontNames."+t.config.theme.font.preset)||t.config.theme.font.preset;{const S=t.config.theme.font.custom;return e("generateSummary.customFont",{size:S.size})}},G=()=>{if(t.config.theme.emoji.type==="preset"&&t.config.theme.emoji.preset)return t.config.theme.emoji.preset==="twemoji64"?"Twemoji 64×64":"Twemoji 32×32";if(t.config.theme.emoji.type==="custom"){const S=Object.keys(t.config.theme.emoji.custom.images).length;return e("generateSummary.customEmoji",{count:S})}else return t.config.theme.emoji.type==="none"?e("emojiConfig.noEmojiPack"):e("generateSummary.notConfigured")},H=()=>{const S=t.config.theme.skin.light.backgroundType==="image"?e("generateSummary.image"):e("generateSummary.color"),b=t.config.theme.skin.dark.backgroundType==="image"?e("generateSummary.image"):e("generateSummary.color");return e("generateSummary.skinLight",{type:S})+"/"+e("generateSummary.skinDark",{type:b})};return ae(()=>t.config.theme.font,()=>{f()},{deep:!0}),Ft(async()=>{a.value.length>0?o.value=a.value[0].key:o.value="",await f()}),Ci(()=>{document.querySelectorAll("style[data-font-preview]").forEach(b=>b.remove())}),(S,b)=>(T(),K("div",Dy,[B("div",null,[B("h2",ky,F(S.$t("generateSummary.title")),1),B("p",vy,F(S.$t("generateSummary.description")),1)]),B("div",Fy,[B("div",Sy,[B("h3",Ry,F(S.$t("generateSummary.devicePreview")),1),B("div",by,[B("div",Ny,[B("div",Gy,[B("div",Ly,[B("div",{style:VA(l()),class:"relative rounded-lg overflow-hidden border-2 border-gray-700 flex flex-col items-center justify-center"},[B("div",{style:VA(C()),class:"absolute inset-0"},null,4),B("div",Uy,[B("div",My,[o.value&&a.value.length>0?(T(),K("div",xy,[I.value?(T(),K("img",{key:0,src:I.value,alt:o.value,style:VA(Q()),class:"emoji-image"},null,12,Jy)):(T(),K("div",{key:1,style:VA(Q()),class:"emoji-fallback bg-gray-200 rounded-full flex items-center justify-center text-2xl"},F(D(o.value)),5))])):(T(),K("div",Ty,[B("div",{style:VA(Q()),class:"emoji-placeholder flex items-center justify-center text-gray-400 border-2 border-dashed border-gray-300 rounded bg-gray-50"},[B("div",Hy,[B("div",Yy,F(A.config.theme.emoji.type==="none"?"📦":"😕"),1),B("div",_y,F(A.config.theme.emoji.type==="none"?S.$t("emojiConfig.noEmojiPack"):S.$t("generateSummary.noEmotionConfigured")),1)])],4)]))]),A.config.theme.font.hide_subtitle?sA("",!0):(T(),K("div",{key:0,style:VA(h()),class:"text-message max-w-full break-words relative"},[r.value?sA("",!0):(T(),K("div",Ky,[B("div",Oy,F(S.$t("generateSummary.fontLoading")),1)])),B("div",{class:kA({"opacity-0":!r.value})},F(i.value),3)],4))])],4)]),B("div",Py,F(A.config.chip.display.width)+" × "+F(A.config.chip.display.height)+" "+F(A.config.chip.model.toUpperCase()),1)])])])]),B("div",Vy,[B("h3",Wy,F(S.$t("generateSummary.previewSettings")),1),B("div",qy,[B("div",null,[B("label",jy,F(S.$t("generateSummary.previewText")),1),ZA(B("textarea",{"onUpdate:modelValue":b[0]||(b[0]=L=>i.value=L),class:"w-full border border-gray-300 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500",rows:"3",placeholder:"Hi, I'm your friend Xiaozhi!"},null,512),[[te,i.value]])]),B("div",null,[B("label",Zy,F(S.$t("generateSummary.currentEmotion")),1),a.value.length>0?(T(),K("div",Xy,[(T(!0),K(qA,null,Ke(a.value,L=>(T(),K("button",{key:L.key,onClick:QA=>p(L.key),class:kA(["p-2 border rounded transition-colors flex items-center justify-center",o.value===L.key?"border-primary-500 bg-primary-50":"border-gray-200 hover:border-gray-300"]),title:L.name,style:VA({width:c()+"px",height:c()+"px"})},[E(L.key)?(T(),K("div",$y,[B("img",{src:E(L.key),alt:L.name,style:VA({width:d()+"px",height:d()+"px"}),class:"object-contain rounded"},null,12,Aw)])):(T(),K("div",ew,F(L.emoji),1))],14,zy))),128))])):(T(),K("div",tw,[B("div",iw,F(A.config.theme.emoji.type==="none"?"📦":"😕"),1),B("div",ow,F(A.config.theme.emoji.type==="none"?S.$t("emojiConfig.noEmojiPackDescription"):S.$t("generateSummary.configureEmojiFirst")),1)]))]),B("div",null,[B("label",nw,F(S.$t("generateSummary.themeMode")),1),B("div",rw,[B("button",{onClick:b[1]||(b[1]=L=>n.value="light"),class:kA(["flex-1 py-2 px-3 text-sm border rounded transition-colors",n.value==="light"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])}," 🌞 "+F(S.$t("generateSummary.lightMode")),3),B("button",{onClick:b[2]||(b[2]=L=>n.value="dark"),class:kA(["flex-1 py-2 px-3 text-sm border rounded transition-colors",n.value==="dark"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])}," 🌙 "+F(S.$t("generateSummary.darkMode")),3)])]),B("div",gw,[B("h4",sw,F(S.$t("generateSummary.configSummary")),1),B("div",aw,[A.config.theme.wakeword?(T(),K("div",Iw,F(S.$t("generateSummary.wakeword"))+" "+F(v()),1)):sA("",!0),B("div",Cw,[B("span",null,F(S.$t("generateSummary.font"))+" "+F(N()),1),r.value?sA("",!0):(T(),K("span",lw,F(S.$t("generateSummary.loading")),1))]),B("div",null,F(S.$t("generateSummary.emotion"))+" "+F(G()),1),B("div",null,F(S.$t("generateSummary.skin"))+" "+F(H()),1),A.config.theme.font.hide_subtitle?(T(),K("div",Bw,F(S.$t("generateSummary.hideSubtitle"))+" "+F(S.$t("common.yes")),1)):sA("",!0)])])])])]),B("div",Qw,[B("button",{onClick:b[3]||(b[3]=L=>S.$emit("prev")),class:"bg-gray-500 hover:bg-gray-600 text-white px-6 py-2 rounded-lg font-medium transition-colors"},F(S.$t("generateSummary.previous")),1),B("button",{onClick:b[4]||(b[4]=L=>S.$emit("generate")),class:"bg-green-500 hover:bg-green-600 text-white px-8 py-2 rounded-lg font-medium transition-colors flex items-center"},[b[5]||(b[5]=B("svg",{class:"w-5 h-5 mr-2",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M3 17a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm3.293-7.707a1 1 0 011.414 0L9 10.586V3a1 1 0 112 0v7.586l1.293-1.293a1 1 0 111.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z","clip-rule":"evenodd"})],-1)),gt(" "+F(S.$t("generateSummary.generate")),1)])])]))}},Ew=wy(cw,[["__scopeId","data-v-aa1dde40"]]);/*! https://mths.be/codepointat v0.2.0 by @mathias */String.prototype.codePointAt||function(){var A=function(){try{var t={},i=Object.defineProperty,o=i(t,t,t)&&i}catch{}return o}(),e=function(t){if(this==null)throw TypeError();var i=String(this),o=i.length,n=t?Number(t):0;if(n!=n&&(n=0),!(n<0||n>=o)){var r=i.charCodeAt(n),g;return r>=55296&&r<=56319&&o>n+1&&(g=i.charCodeAt(n+1),g>=56320&&g<=57343)?(r-55296)*1024+g-56320+65536:r}};A?A(String.prototype,"codePointAt",{value:e,configurable:!0,writable:!0}):String.prototype.codePointAt=e}();var cg=0,_C=-3;function ao(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function uw(A,e){this.source=A,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=e,this.destLen=0,this.ltree=new ao,this.dtree=new ao}var KC=new ao,OC=new ao,Eg=new Uint8Array(30),ug=new Uint16Array(30),PC=new Uint8Array(30),VC=new Uint16Array(30),hw=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),zs=new ao,$e=new Uint8Array(320);function WC(A,e,t,i){var o,n;for(o=0;o>>=1,e}function et(A,e,t){if(!e)return t;for(;A.bitcount<24;)A.tag|=A.source[A.sourceIndex++]<>>16-e;return A.tag>>>=e,A.bitcount-=e,i+t}function br(A,e){for(;A.bitcount<24;)A.tag|=A.source[A.sourceIndex++]<>>=1,++o,t+=e.table[o],i-=e.table[o];while(i>=0);return A.tag=n,A.bitcount-=o,e.trans[t+i]}function pw(A,e,t){var i,o,n,r,g,s;for(i=et(A,5,257),o=et(A,5,1),n=et(A,4,4),r=0;r<19;++r)$e[r]=0;for(r=0;r8;)A.sourceIndex--,A.bitcount-=8;if(e=A.source[A.sourceIndex+1],e=256*e+A.source[A.sourceIndex],t=A.source[A.sourceIndex+3],t=256*t+A.source[A.sourceIndex+2],e!==(~t&65535))return _C;for(A.sourceIndex+=4,i=e;i;--i)A.dest[A.destLen++]=A.source[A.sourceIndex++];return A.bitcount=0,cg}function yw(A,e){var t=new uw(A,e),i,o,n;do{switch(i=dw(t),o=et(t,2,0),o){case 0:n=mw(t);break;case 1:n=Aa(t,KC,OC);break;case 2:pw(t,t.ltree,t.dtree),n=Aa(t,t.ltree,t.dtree);break;default:n=_C}if(n!==cg)throw new Error("Data error")}while(!i);return t.destLenthis.x2&&(this.x2=A)),typeof e=="number"&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=e,this.y2=e),ethis.y2&&(this.y2=e))};St.prototype.addX=function(A){this.addPoint(A,null)};St.prototype.addY=function(A){this.addPoint(null,A)};St.prototype.addBezier=function(A,e,t,i,o,n,r,g){var s=[A,e],a=[t,i],I=[o,n],l=[r,g];this.addPoint(A,e),this.addPoint(r,g);for(var C=0;C<=1;C++){var Q=6*s[C]-12*a[C]+6*I[C],h=-3*s[C]+9*a[C]-9*I[C]+3*l[C],f=3*a[C]-3*s[C];if(h===0){if(Q===0)continue;var u=-f/Q;0=0&&s>0&&(g+=" "),g+=e(a)}return g}for(var i="",o=0;o=0&&A<=255,"Byte value should be between 0 and 255."),[A]};wA.BYTE=je(1);rA.CHAR=function(A){return[A.charCodeAt(0)]};wA.CHAR=je(1);rA.CHARARRAY=function(A){typeof A>"u"&&(A="",console.warn("Undefined CHARARRAY encountered and treated as an empty string. This is probably caused by a missing glyph name."));for(var e=[],t=0;t"u"?0:A.length};rA.USHORT=function(A){return[A>>8&255,A&255]};wA.USHORT=je(2);rA.SHORT=function(A){return A>=ta&&(A=-(2*ta-A)),[A>>8&255,A&255]};wA.SHORT=je(2);rA.UINT24=function(A){return[A>>16&255,A>>8&255,A&255]};wA.UINT24=je(3);rA.ULONG=function(A){return[A>>24&255,A>>16&255,A>>8&255,A&255]};wA.ULONG=je(4);rA.LONG=function(A){return A>=ia&&(A=-(2*ia-A)),[A>>24&255,A>>16&255,A>>8&255,A&255]};wA.LONG=je(4);rA.FIXED=rA.ULONG;wA.FIXED=wA.ULONG;rA.FWORD=rA.SHORT;wA.FWORD=wA.SHORT;rA.UFWORD=rA.USHORT;wA.UFWORD=wA.USHORT;rA.LONGDATETIME=function(A){return[0,0,0,0,A>>24&255,A>>16&255,A>>8&255,A&255]};wA.LONGDATETIME=je(8);rA.TAG=function(A){return mA.argument(A.length===4,"Tag should be exactly 4 ASCII characters."),[A.charCodeAt(0),A.charCodeAt(1),A.charCodeAt(2),A.charCodeAt(3)]};wA.TAG=je(4);rA.Card8=rA.BYTE;wA.Card8=wA.BYTE;rA.Card16=rA.USHORT;wA.Card16=wA.USHORT;rA.OffSize=rA.BYTE;wA.OffSize=wA.BYTE;rA.SID=rA.USHORT;wA.SID=wA.USHORT;rA.NUMBER=function(A){return A>=-107&&A<=107?[A+139]:A>=108&&A<=1131?(A=A-108,[(A>>8)+247,A&255]):A>=-1131&&A<=-108?(A=-A-108,[(A>>8)+251,A&255]):A>=-32768&&A<=32767?rA.NUMBER16(A):rA.NUMBER32(A)};wA.NUMBER=function(A){return rA.NUMBER(A).length};rA.NUMBER16=function(A){return[28,A>>8&255,A&255]};wA.NUMBER16=je(3);rA.NUMBER32=function(A){return[29,A>>24&255,A>>16&255,A>>8&255,A&255]};wA.NUMBER32=je(5);rA.REAL=function(A){var e=A.toString(),t=/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/.exec(e);if(t){var i=parseFloat("1e"+((t[2]?+t[2]:0)+t[1].length));e=(Math.round(A*i)/i).toString()}for(var o="",n=0,r=e.length;n>8&255,e[e.length]=i&255}return e};wA.UTF16=function(A){return A.length*2};var Nr={"x-mac-croatian":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈ƫȅ ÀÃÕŒœĐ—“”‘’÷◊©⁄€‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ","x-mac-cyrillic":"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю","x-mac-gaelic":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØḂ±≤≥ḃĊċḊḋḞḟĠġṀæøṁṖṗɼƒſṠ«»… ÀÃÕŒœ–—“”‘’ṡẛÿŸṪ€‹›Ŷŷṫ·Ỳỳ⁊ÂÊÁËÈÍÎÏÌÓÔ♣ÒÚÛÙıÝýŴŵẄẅẀẁẂẃ","x-mac-greek":"Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦€ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ­","x-mac-icelandic":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüݰ¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-inuit":"ᐃᐄᐅᐆᐊᐋᐱᐲᐳᐴᐸᐹᑉᑎᑏᑐᑑᑕᑖᑦᑭᑮᑯᑰᑲᑳᒃᒋᒌᒍᒎᒐᒑ°ᒡᒥᒦ•¶ᒧ®©™ᒨᒪᒫᒻᓂᓃᓄᓅᓇᓈᓐᓯᓰᓱᓲᓴᓵᔅᓕᓖᓗᓘᓚᓛᓪᔨᔩᔪᔫᔭ… ᔮᔾᕕᕖᕗ–—“”‘’ᕘᕙᕚᕝᕆᕇᕈᕉᕋᕌᕐᕿᖀᖁᖂᖃᖄᖅᖏᖐᖑᖒᖓᖔᖕᙱᙲᙳᙴᙵᙶᖖᖠᖡᖢᖣᖤᖥᖦᕼŁł","x-mac-ce":"ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ",macintosh:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-romanian":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂȘ∞±≤≥¥µ∂∑∏π∫ªºΩăș¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›Țț‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-turkish":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙˆ˜¯˘˙˚¸˝˛ˇ"};Ri.MACSTRING=function(A,e,t,i){var o=Nr[i];if(o!==void 0){for(var n="",r=0;r=128&&(n=t[n],n===void 0))return;i[o]=n}return i}};wA.MACSTRING=function(A,e){var t=rA.MACSTRING(A,e);return t!==void 0?t.length:0};function Gr(A){return A>=-128&&A<=127}function kw(A,e,t){for(var i=0,o=A.length;e>8&255,s+256&255)}return n}rA.VARDELTAS=function(A){for(var e=0,t=[];e=-128&&i<=127?e=vw(A,e,t):e=Fw(A,e,t)}return t};rA.INDEX=function(A){for(var e=1,t=[e],i=[],o=0;o>8,e[l+1]=C&255,e=e.concat(i[I])}return e};wA.TABLE=function(A){for(var e=0,t=A.fields.length,i=0;i0)return new J(this.data,this.offset+e).parseStruct(A)};J.prototype.parsePointer32=function(A){var e=this.parseOffset32();if(e>0)return new J(this.data,this.offset+e).parseStruct(A)};J.prototype.parseListOfLists=function(A){for(var e=this.parseOffset16List(),t=e.length,i=this.relativeOffset,o=new Array(t),n=0;n>1,e.skip("uShort",3),A.glyphIndexMap={};for(var r=new lA.Parser(t,i+o+14),g=new lA.Parser(t,i+o+16+n*2),s=new lA.Parser(t,i+o+16+n*4),a=new lA.Parser(t,i+o+16+n*6),I=i+o+16+n*8,l=0;l=0;o-=1){var n=lA.getUShort(A,e+4+o*8),r=lA.getUShort(A,e+4+o*8+2);if(n===3&&(r===0||r===1||r===10)||n===0&&(r===0||r===1||r===2||r===3||r===4)){i=lA.getULong(A,e+4+o*8+4);break}}if(i===-1)throw new Error("No valid cmap sub-tables found.");var g=new lA.Parser(A,e+i);if(t.format=g.parseUShort(),t.format===12)Uw(t,g);else if(t.format===4)Mw(t,g,A,e,i);else throw new Error("Only format 4 and 12 cmap tables are supported (found format "+t.format+").");return t}function Jw(A,e,t){A.segments.push({end:e,start:e,delta:-(e-t),offset:0,glyphIndex:t})}function Tw(A){A.segments.push({end:65535,start:65535,delta:1,offset:0})}function Hw(A){var e=!0,t;for(t=A.length-1;t>0;t-=1){var i=A.get(t);if(i.unicode>65535){console.log("Adding CMAP format 12 (needed!)"),e=!1;break}}var o=[{name:"version",type:"USHORT",value:0},{name:"numTables",type:"USHORT",value:e?1:2},{name:"platformID",type:"USHORT",value:3},{name:"encodingID",type:"USHORT",value:1},{name:"offset",type:"ULONG",value:e?12:20}];e||(o=o.concat([{name:"cmap12PlatformID",type:"USHORT",value:3},{name:"cmap12EncodingID",type:"USHORT",value:10},{name:"cmap12Offset",type:"ULONG",value:0}])),o=o.concat([{name:"format",type:"USHORT",value:4},{name:"cmap4Length",type:"USHORT",value:0},{name:"language",type:"USHORT",value:0},{name:"segCountX2",type:"USHORT",value:0},{name:"searchRange",type:"USHORT",value:0},{name:"entrySelector",type:"USHORT",value:0},{name:"rangeShift",type:"USHORT",value:0}]);var n=new aA.Table("cmap",o);for(n.segments=[],t=0;t>4,r=o&15;if(n===t||(e+=i[n],r===t))break;e+=i[r]}return parseFloat(e)}function AD(A,e){var t,i,o,n;if(e===28)return t=A.parseByte(),i=A.parseByte(),t<<8|i;if(e===29)return t=A.parseByte(),i=A.parseByte(),o=A.parseByte(),n=A.parseByte(),t<<24|i<<16|o<<8|n;if(e===30)return $w(A);if(e>=32&&e<=246)return e-139;if(e>=247&&e<=250)return t=A.parseByte(),(e-247)*256+t+108;if(e>=251&&e<=254)return t=A.parseByte(),-(e-251)*256-t-108;throw new Error("Invalid b0 "+e)}function eD(A){for(var e={},t=0;t>1,s.length=0,I=!0}function N(G){for(var H,S,b,L,QA,dA,IA,oA,X,tA,fA,_,W=0;W1&&!I&&(d=s.shift()+E,I=!0),Q+=s.pop(),p(C,Q);break;case 5:for(;s.length>0;)C+=s.shift(),Q+=s.shift(),g.lineTo(C,Q);break;case 6:for(;s.length>0&&(C+=s.shift(),g.lineTo(C,Q),s.length!==0);)Q+=s.shift(),g.lineTo(C,Q);break;case 7:for(;s.length>0&&(Q+=s.shift(),g.lineTo(C,Q),s.length!==0);)C+=s.shift(),g.lineTo(C,Q);break;case 8:for(;s.length>0;)i=C+s.shift(),o=Q+s.shift(),n=i+s.shift(),r=o+s.shift(),C=n+s.shift(),Q=r+s.shift(),g.curveTo(i,o,n,r,C,Q);break;case 10:QA=s.pop()+f,dA=h[QA],dA&&N(dA);break;case 11:return;case 12:switch(z=G[W],W+=1,z){case 35:i=C+s.shift(),o=Q+s.shift(),n=i+s.shift(),r=o+s.shift(),IA=n+s.shift(),oA=r+s.shift(),X=IA+s.shift(),tA=oA+s.shift(),fA=X+s.shift(),_=tA+s.shift(),C=fA+s.shift(),Q=_+s.shift(),s.shift(),g.curveTo(i,o,n,r,IA,oA),g.curveTo(X,tA,fA,_,C,Q);break;case 34:i=C+s.shift(),o=Q,n=i+s.shift(),r=o+s.shift(),IA=n+s.shift(),oA=r,X=IA+s.shift(),tA=r,fA=X+s.shift(),_=Q,C=fA+s.shift(),g.curveTo(i,o,n,r,IA,oA),g.curveTo(X,tA,fA,_,C,Q);break;case 36:i=C+s.shift(),o=Q+s.shift(),n=i+s.shift(),r=o+s.shift(),IA=n+s.shift(),oA=r,X=IA+s.shift(),tA=r,fA=X+s.shift(),_=tA+s.shift(),C=fA+s.shift(),g.curveTo(i,o,n,r,IA,oA),g.curveTo(X,tA,fA,_,C,Q);break;case 37:i=C+s.shift(),o=Q+s.shift(),n=i+s.shift(),r=o+s.shift(),IA=n+s.shift(),oA=r+s.shift(),X=IA+s.shift(),tA=oA+s.shift(),fA=X+s.shift(),_=tA+s.shift(),Math.abs(fA-C)>Math.abs(_-Q)?C=fA+s.shift():Q=_+s.shift(),g.curveTo(i,o,n,r,IA,oA),g.curveTo(X,tA,fA,_,C,Q);break;default:console.log("Glyph "+e.index+": unknown operator 1200"+z),s.length=0}break;case 14:s.length>0&&!I&&(d=s.shift()+E,I=!0),l&&(g.closePath(),l=!1);break;case 18:v();break;case 19:case 20:v(),W+=a+7>>3;break;case 21:s.length>2&&!I&&(d=s.shift()+E,I=!0),Q+=s.pop(),C+=s.pop(),p(C,Q);break;case 22:s.length>1&&!I&&(d=s.shift()+E,I=!0),C+=s.pop(),p(C,Q);break;case 23:v();break;case 24:for(;s.length>2;)i=C+s.shift(),o=Q+s.shift(),n=i+s.shift(),r=o+s.shift(),C=n+s.shift(),Q=r+s.shift(),g.curveTo(i,o,n,r,C,Q);C+=s.shift(),Q+=s.shift(),g.lineTo(C,Q);break;case 25:for(;s.length>6;)C+=s.shift(),Q+=s.shift(),g.lineTo(C,Q);i=C+s.shift(),o=Q+s.shift(),n=i+s.shift(),r=o+s.shift(),C=n+s.shift(),Q=r+s.shift(),g.curveTo(i,o,n,r,C,Q);break;case 26:for(s.length%2&&(C+=s.shift());s.length>0;)i=C,o=Q+s.shift(),n=i+s.shift(),r=o+s.shift(),C=n,Q=r+s.shift(),g.curveTo(i,o,n,r,C,Q);break;case 27:for(s.length%2&&(Q+=s.shift());s.length>0;)i=C+s.shift(),o=Q,n=i+s.shift(),r=o+s.shift(),C=n+s.shift(),Q=r,g.curveTo(i,o,n,r,C,Q);break;case 28:H=G[W],S=G[W+1],s.push((H<<24|S<<16)>>16),W+=2;break;case 29:QA=s.pop()+A.gsubrsBias,dA=A.gsubrs[QA],dA&&N(dA);break;case 30:for(;s.length>0&&(i=C,o=Q+s.shift(),n=i+s.shift(),r=o+s.shift(),C=n+s.shift(),Q=r+(s.length===1?s.shift():0),g.curveTo(i,o,n,r,C,Q),s.length!==0);)i=C+s.shift(),o=Q,n=i+s.shift(),r=o+s.shift(),Q=r+s.shift(),C=n+(s.length===1?s.shift():0),g.curveTo(i,o,n,r,C,Q);break;case 31:for(;s.length>0&&(i=C+s.shift(),o=Q,n=i+s.shift(),r=o+s.shift(),Q=r+s.shift(),C=n+(s.length===1?s.shift():0),g.curveTo(i,o,n,r,C,Q),s.length!==0);)i=C,o=Q+s.shift(),n=i+s.shift(),r=o+s.shift(),C=n+s.shift(),Q=r+(s.length===1?s.shift():0),g.curveTo(i,o,n,r,C,Q);break;default:z<32?console.log("Glyph "+e.index+": unknown operator "+z):z<247?s.push(z-139):z<251?(H=G[W],W+=1,s.push((z-247)*256+H+108)):z<255?(H=G[W],W+=1,s.push(-(z-251)*256-H-108)):(H=G[W],S=G[W+1],b=G[W+2],L=G[W+3],W+=4,s.push((H<<24|S<<16|b<<8|L)/65536))}}}return N(t),e.advanceWidth=d,g}function rD(A,e,t,i){var o=[],n,r=new lA.Parser(A,e),g=r.parseCard8();if(g===0)for(var s=0;s=i)throw new Error("CFF table CID Font FDSelect has bad FD index value "+n+" (FD count "+i+")");o.push(n)}else if(g===3){var a=r.parseCard16(),I=r.parseCard16();if(I!==0)throw new Error("CFF Table CID Font FDSelect format 3 range has bad initial GID "+I);for(var l,C=0;C=i)throw new Error("CFF table CID Font FDSelect has bad FD index value "+n+" (FD count "+i+")");if(l>t)throw new Error("CFF Table CID Font FDSelect format 3 range has bad GID "+l);for(;I=0&&(t=i),i=e.indexOf(A),i>=0?t=i+Vo.length:(t=Vo.length+e.length,e.push(A)),t}function sD(){return new aA.Record("Header",[{name:"major",type:"Card8",value:1},{name:"minor",type:"Card8",value:0},{name:"hdrSize",type:"Card8",value:4},{name:"major",type:"Card8",value:1}])}function aD(A){var e=new aA.Record("Name INDEX",[{name:"names",type:"INDEX",value:[]}]);e.names=[];for(var t=0;t=t.begin&&A=1&&(t.ulCodePageRange1=i.parseULong(),t.ulCodePageRange2=i.parseULong()),t.version>=2&&(t.sxHeight=i.parseShort(),t.sCapHeight=i.parseShort(),t.usDefaultChar=i.parseUShort(),t.usBreakChar=i.parseUShort(),t.usMaxContent=i.parseUShort()),t}function JD(A){return new aA.Table("OS/2",[{name:"version",type:"USHORT",value:3},{name:"xAvgCharWidth",type:"SHORT",value:0},{name:"usWeightClass",type:"USHORT",value:0},{name:"usWidthClass",type:"USHORT",value:0},{name:"fsType",type:"USHORT",value:0},{name:"ySubscriptXSize",type:"SHORT",value:650},{name:"ySubscriptYSize",type:"SHORT",value:699},{name:"ySubscriptXOffset",type:"SHORT",value:0},{name:"ySubscriptYOffset",type:"SHORT",value:140},{name:"ySuperscriptXSize",type:"SHORT",value:650},{name:"ySuperscriptYSize",type:"SHORT",value:699},{name:"ySuperscriptXOffset",type:"SHORT",value:0},{name:"ySuperscriptYOffset",type:"SHORT",value:479},{name:"yStrikeoutSize",type:"SHORT",value:49},{name:"yStrikeoutPosition",type:"SHORT",value:258},{name:"sFamilyClass",type:"SHORT",value:0},{name:"bFamilyType",type:"BYTE",value:0},{name:"bSerifStyle",type:"BYTE",value:0},{name:"bWeight",type:"BYTE",value:0},{name:"bProportion",type:"BYTE",value:0},{name:"bContrast",type:"BYTE",value:0},{name:"bStrokeVariation",type:"BYTE",value:0},{name:"bArmStyle",type:"BYTE",value:0},{name:"bLetterform",type:"BYTE",value:0},{name:"bMidline",type:"BYTE",value:0},{name:"bXHeight",type:"BYTE",value:0},{name:"ulUnicodeRange1",type:"ULONG",value:0},{name:"ulUnicodeRange2",type:"ULONG",value:0},{name:"ulUnicodeRange3",type:"ULONG",value:0},{name:"ulUnicodeRange4",type:"ULONG",value:0},{name:"achVendID",type:"CHARARRAY",value:"XXXX"},{name:"fsSelection",type:"USHORT",value:0},{name:"usFirstCharIndex",type:"USHORT",value:0},{name:"usLastCharIndex",type:"USHORT",value:0},{name:"sTypoAscender",type:"SHORT",value:0},{name:"sTypoDescender",type:"SHORT",value:0},{name:"sTypoLineGap",type:"SHORT",value:0},{name:"usWinAscent",type:"USHORT",value:0},{name:"usWinDescent",type:"USHORT",value:0},{name:"ulCodePageRange1",type:"ULONG",value:0},{name:"ulCodePageRange2",type:"ULONG",value:0},{name:"sxHeight",type:"SHORT",value:0},{name:"sCapHeight",type:"SHORT",value:0},{name:"usDefaultChar",type:"USHORT",value:0},{name:"usBreakChar",type:"USHORT",value:0},{name:"usMaxContext",type:"USHORT",value:0}],A)}var Jr={parse:xD,make:JD,unicodeRanges:xr,getUnicodeRange:MD};function TD(A,e){var t={},i=new lA.Parser(A,e);switch(t.version=i.parseVersion(),t.italicAngle=i.parseFixed(),t.underlinePosition=i.parseShort(),t.underlineThickness=i.parseShort(),t.isFixedPitch=i.parseULong(),t.minMemType42=i.parseULong(),t.maxMemType42=i.parseULong(),t.minMemType1=i.parseULong(),t.maxMemType1=i.parseULong(),t.version){case 1:t.names=ii.slice();break;case 2:t.numberOfGlyphs=i.parseUShort(),t.glyphNameIndex=new Array(t.numberOfGlyphs);for(var o=0;o=ii.length){var r=i.parseChar();t.names.push(i.parseString(r))}break;case 2.5:t.numberOfGlyphs=i.parseUShort(),t.offset=new Array(t.numberOfGlyphs);for(var g=0;gl.value.tag?1:-1}),e.fields=e.fields.concat(i),e.fields=e.fields.concat(o),e}function Qa(A,e,t){for(var i=0;i0){var n=A.glyphs.get(o);return n.getMetrics()}}return t}function PD(A){for(var e=0,t=0;tu||s===void 0)&&u>0&&(s=u),a 123 are reserved for internal usage");if(f.name!==".notdef"){var D=f.getMetrics();e.push(D.xMin),t.push(D.yMin),i.push(D.xMax),o.push(D.yMax),r.push(D.leftSideBearing),g.push(D.rightSideBearing),n.push(f.advanceWidth)}}var c={xMin:Math.min.apply(null,e),yMin:Math.min.apply(null,t),xMax:Math.max.apply(null,i),yMax:Math.max.apply(null,o),advanceWidthMax:Math.max.apply(null,n),advanceWidthAvg:PD(n),minLeftSideBearing:Math.min.apply(null,r),maxLeftSideBearing:Math.max.apply(null,r),minRightSideBearing:Math.min.apply(null,g)};c.ascender=A.ascender,c.descender=A.descender;var d=sl.make({flags:3,unitsPerEm:A.unitsPerEm,xMin:c.xMin,yMin:c.yMin,xMax:c.xMax,yMax:c.yMax,lowestRecPPEM:3,createdTimestamp:A.createdTimestamp}),p=al.make({ascender:c.ascender,descender:c.descender,advanceWidthMax:c.advanceWidthMax,minLeftSideBearing:c.minLeftSideBearing,minRightSideBearing:c.minRightSideBearing,xMaxExtent:c.maxLeftSideBearing+(c.xMax-c.xMin),numberOfHMetrics:A.glyphs.length}),v=ll.make(A.glyphs.length),N=Jr.make(Object.assign({xAvgCharWidth:Math.round(c.advanceWidthAvg),usFirstCharIndex:s,usLastCharIndex:a,ulUnicodeRange1:I,ulUnicodeRange2:l,ulUnicodeRange3:C,ulUnicodeRange4:Q,sTypoAscender:c.ascender,sTypoDescender:c.descender,sTypoLineGap:0,usWinAscent:c.yMax,usWinDescent:Math.abs(c.yMin),ulCodePageRange1:1,sxHeight:Qa(A,"xyvw",{yMax:Math.round(c.ascender/2)}).yMax,sCapHeight:Qa(A,"HIKLEFJMNTZBDPRAGOQSUVWXY",c).yMax,usDefaultChar:A.hasChar(" ")?32:0,usBreakChar:A.hasChar(" ")?32:0},A.tables.os2)),G=Il.make(A.glyphs),H=ZC.make(A.glyphs),S=A.getEnglishName("fontFamily"),b=A.getEnglishName("fontSubfamily"),L=S+" "+b,QA=A.getEnglishName("postScriptName");QA||(QA=S.replace(/\s/g,"")+"-"+b);var dA={};for(var IA in A.names)dA[IA]=A.names[IA];dA.uniqueID||(dA.uniqueID={en:A.getEnglishName("manufacturer")+":"+L}),dA.postScriptName||(dA.postScriptName={en:QA}),dA.preferredFamily||(dA.preferredFamily=A.names.fontFamily),dA.preferredSubfamily||(dA.preferredSubfamily=A.names.fontSubfamily);var oA=[],X=ul.make(dA,oA),tA=oA.length>0?Cl.make(oA):void 0,fA=hl.make(),_=gl.make(A.glyphs,{version:A.getEnglishName("version"),fullName:L,familyName:S,weightName:b,postScriptName:QA,unitsPerEm:A.unitsPerEm,fontBBox:[0,c.yMin,c.ascender,c.advanceWidthMax]}),W=A.metas&&Object.keys(A.metas).length>0?dl.make(A.metas):void 0,z=[d,p,v,N,X,H,fA,_,G];tA&&z.push(tA),A.tables.gsub&&z.push(fl.make(A.tables.gsub)),W&&z.push(W);for(var DA=pl(z),NA=DA.encode(),oe=pg(NA),LA=DA.fields,Y=!1,$=0;$>>1,n=A[o].tag;if(n===e)return o;n>>1,n=A[o];if(n===e)return o;n>>1;t=A[n];var r=t.start;if(r===e)return t;r0)return t=A[i-1],e>t.end?0:t}function mo(A,e){this.font=A,this.tableName=e}mo.prototype={searchTag:Xn,binSearch:ca,getTable:function(A){var e=this.font.tables[this.tableName];return!e&&A&&(e=this.font.tables[this.tableName]=this.createDefaultTable()),e},getScriptNames:function(){var A=this.getTable();return A?A.scripts.map(function(e){return e.tag}):[]},getDefaultScriptName:function(){var A=this.getTable();if(A){for(var e=!1,t=0;t=0)return i[o].script;if(e){var n={tag:A,script:{defaultLangSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]},langSysRecords:[]}};return i.splice(-1-o,0,n),n.script}}},getLangSysTable:function(A,e,t){var i=this.getScriptTable(A,t);if(i){if(!e||e==="dflt"||e==="DFLT")return i.defaultLangSys;var o=Xn(i.langSysRecords,e);if(o>=0)return i.langSysRecords[o].langSys;if(t){var n={tag:e,langSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]}};return i.langSysRecords.splice(-1-o,0,n),n.langSys}}},getFeatureTable:function(A,e,t,i){var o=this.getLangSysTable(A,e,i);if(o){for(var n,r=o.featureIndexes,g=this.font.tables[this.tableName].features,s=0;s=g[a-1].tag,"Features must be added in alphabetical order."),n={tag:t,feature:{params:0,lookupListIndexes:[]}},g.push(n),r.push(a),n.feature}}},getLookupTables:function(A,e,t,i,o){var n=this.getFeatureTable(A,e,t,o),r=[];if(n){for(var g,s=n.lookupListIndexes,a=this.font.tables[this.tableName].lookups,I=0;I=0?t:-1;case 2:var i=Ea(A.ranges,e);return i?i.index+e-i.start:-1}},expandCoverage:function(A){if(A.format===1)return A.glyphs;for(var e=[],t=A.ranges,i=0;i1,'Multiple: "by" must be an array of two or more ids');var o=this.getLookupTables(t,i,A,2,!0)[0],n=mg(o,1,{substFormat:1,coverage:{format:1,glyphs:[]},sequences:[]});mA.assert(n.coverage.format===1,"Multiple: unable to modify coverage table format "+n.coverage.format);var r=e.sub,g=this.binSearch(n.coverage.glyphs,r);g<0&&(g=-1-g,n.coverage.glyphs.splice(g,0,r),n.sequences.splice(g,0,0)),n.sequences[g]=e.by};Ge.prototype.addAlternate=function(A,e,t,i){var o=this.getLookupTables(t,i,A,3,!0)[0],n=mg(o,1,{substFormat:1,coverage:{format:1,glyphs:[]},alternateSets:[]});mA.assert(n.coverage.format===1,"Alternate: unable to modify coverage table format "+n.coverage.format);var r=e.sub,g=this.binSearch(n.coverage.glyphs,r);g<0&&(g=-1-g,n.coverage.glyphs.splice(g,0,r),n.alternateSets.splice(g,0,0)),n.alternateSets[g]=e.by};Ge.prototype.addLigature=function(A,e,t,i){var o=this.getLookupTables(t,i,A,4,!0)[0],n=o.subtables[0];n||(n={substFormat:1,coverage:{format:1,glyphs:[]},ligatureSets:[]},o.subtables[0]=n),mA.assert(n.coverage.format===1,"Ligature: unable to modify coverage table format "+n.coverage.format);var r=e.sub[0],g=e.sub.slice(1),s={ligGlyph:e.by,components:g},a=this.binSearch(n.coverage.glyphs,r);if(a>=0){for(var I=n.ligatureSets[a],l=0;l0?(n=A.parseByte(),e&o||(n=-n),n=t+n):(e&o)>0?n=t:n=t+A.parseShort(),n}function yl(A,e,t){var i=new lA.Parser(e,t);A.numberOfContours=i.parseShort(),A._xMin=i.parseShort(),A._yMin=i.parseShort(),A._xMax=i.parseShort(),A._yMax=i.parseShort();var o,n;if(A.numberOfContours>0){for(var r=A.endPointIndices=[],g=0;g0)for(var l=i.parseByte(),C=0;C0){var Q=[],h;if(a>0){for(var f=0;f=0,Q.push(h);for(var u=0,E=0;E0?(o&2)>0?(p.dx=i.parseShort(),p.dy=i.parseShort()):p.matchedPoints=[i.parseUShort(),i.parseUShort()]:(o&2)>0?(p.dx=i.parseChar(),p.dy=i.parseChar()):p.matchedPoints=[i.parseByte(),i.parseByte()],(o&8)>0?p.xScale=p.yScale=i.parseF2Dot14():(o&64)>0?(p.xScale=i.parseF2Dot14(),p.yScale=i.parseF2Dot14()):(o&128)>0&&(p.xScale=i.parseF2Dot14(),p.scale01=i.parseF2Dot14(),p.scale10=i.parseF2Dot14(),p.yScale=i.parseF2Dot14()),A.components.push(p),d=!!(o&32)}if(o&256){A.instructionLength=i.parseUShort(),A.instructions=[];for(var v=0;ve.points.length-1||i.matchedPoints[1]>o.points.length-1)throw Error("Matched points out of range in "+e.name);var r=e.points[i.matchedPoints[0]],g=o.points[i.matchedPoints[1]],s={xScale:i.xScale,scale01:i.scale01,scale10:i.scale10,yScale:i.yScale,dx:0,dy:0};g=zn([g],s)[0],s.dx=r.x-g.x,s.dy=r.y-g.y,n=zn(o.points,s)}e.points=e.points.concat(n)}}return wl(e.points)}function zD(A,e,t,i){for(var o=new at.GlyphSet(i),n=0;n2)){var t=this.font,i=this._prepState;if(!i||i.ppem!==e){var o=this._fpgmState;if(!o){Ht.prototype=rk,o=this._fpgmState=new Ht("fpgm",t.tables.fpgm),o.funcs=[],o.font=t,exports.DEBUG&&(console.log("---EXEC FPGM---"),o.step=-1);try{ai(o)}catch(a){console.log("Hinting error in FPGM:"+a),this._errorState=3;return}}Ht.prototype=o,i=this._prepState=new Ht("prep",t.tables.prep),i.ppem=e;var n=t.tables.cvt;if(n)for(var r=i.cvt=new Array(n.length),g=e/t.unitsPerEm,s=0;s1))try{return Fl(A,i)}catch(a){this._errorState<1&&(console.log("Hinting error:"+a),console.log("Note: further hinting errors are silenced")),this._errorState=1;return}}};Fl=function(A,e){var t=e.ppem/e.font.unitsPerEm,i=t,o=A.components,n,r,g;if(Ht.prototype=e,!o)g=new Ht("glyf",A.instructions),exports.DEBUG&&(console.log("---EXEC GLYPH---"),g.step=-1),Tr(A,g,t,i),r=g.gZone;else{var s=e.font;r=[],n=[];for(var a=0;a=176&&n<=183)i+=n-176+1;else if(n>=184&&n<=191)i+=(n-184+1)*2;else if(e&&o===1&&n===27)break;while(o>0);A.ip=i}function ha(A,e){exports.DEBUG&&console.log(e.step,"SVTCA["+A.axis+"]"),e.fv=e.pv=e.dpv=A}function fa(A,e){exports.DEBUG&&console.log(e.step,"SPVTCA["+A.axis+"]"),e.pv=e.dpv=A}function da(A,e){exports.DEBUG&&console.log(e.step,"SFVTCA["+A.axis+"]"),e.fv=A}function pa(A,e){var t=e.stack,i=t.pop(),o=t.pop(),n=e.z2[i],r=e.z1[o];exports.DEBUG&&console.log("SPVTL["+A+"]",i,o);var g,s;A?(g=n.y-r.y,s=r.x-n.x):(g=r.x-n.x,s=r.y-n.y),e.pv=e.dpv=Do(g,s)}function ma(A,e){var t=e.stack,i=t.pop(),o=t.pop(),n=e.z2[i],r=e.z1[o];exports.DEBUG&&console.log("SFVTL["+A+"]",i,o);var g,s;A?(g=n.y-r.y,s=r.x-n.x):(g=r.x-n.x,s=r.y-n.y),e.fv=Do(g,s)}function gk(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"SPVFS[]",t,i),A.pv=A.dpv=Do(i,t)}function sk(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"SPVFS[]",t,i),A.fv=Do(i,t)}function ak(A){var e=A.stack,t=A.pv;exports.DEBUG&&console.log(A.step,"GPV[]"),e.push(t.x*16384),e.push(t.y*16384)}function Ik(A){var e=A.stack,t=A.fv;exports.DEBUG&&console.log(A.step,"GFV[]"),e.push(t.x*16384),e.push(t.y*16384)}function Ck(A){A.fv=A.pv,exports.DEBUG&&console.log(A.step,"SFVTPV[]")}function lk(A){var e=A.stack,t=e.pop(),i=e.pop(),o=e.pop(),n=e.pop(),r=e.pop(),g=A.z0,s=A.z1,a=g[t],I=g[i],l=s[o],C=s[n],Q=A.z2[r];exports.DEBUG&&console.log("ISECT[], ",t,i,o,n,r);var h=a.x,f=a.y,u=I.x,E=I.y,D=l.x,c=l.y,d=C.x,p=C.y,v=(h-u)*(c-p)-(f-E)*(D-d),N=h*E-f*u,G=D*p-c*d;Q.x=(N*(D-d)-G*(h-u))/v,Q.y=(N*(c-p)-G*(f-E))/v}function Bk(A){A.rp0=A.stack.pop(),exports.DEBUG&&console.log(A.step,"SRP0[]",A.rp0)}function Qk(A){A.rp1=A.stack.pop(),exports.DEBUG&&console.log(A.step,"SRP1[]",A.rp1)}function ck(A){A.rp2=A.stack.pop(),exports.DEBUG&&console.log(A.step,"SRP2[]",A.rp2)}function Ek(A){var e=A.stack.pop();switch(exports.DEBUG&&console.log(A.step,"SZP0[]",e),A.zp0=e,e){case 0:A.tZone||Gn(A),A.z0=A.tZone;break;case 1:A.z0=A.gZone;break;default:throw new Error("Invalid zone pointer")}}function uk(A){var e=A.stack.pop();switch(exports.DEBUG&&console.log(A.step,"SZP1[]",e),A.zp1=e,e){case 0:A.tZone||Gn(A),A.z1=A.tZone;break;case 1:A.z1=A.gZone;break;default:throw new Error("Invalid zone pointer")}}function hk(A){var e=A.stack.pop();switch(exports.DEBUG&&console.log(A.step,"SZP2[]",e),A.zp2=e,e){case 0:A.tZone||Gn(A),A.z2=A.tZone;break;case 1:A.z2=A.gZone;break;default:throw new Error("Invalid zone pointer")}}function fk(A){var e=A.stack.pop();switch(exports.DEBUG&&console.log(A.step,"SZPS[]",e),A.zp0=A.zp1=A.zp2=e,e){case 0:A.tZone||Gn(A),A.z0=A.z1=A.z2=A.tZone;break;case 1:A.z0=A.z1=A.z2=A.gZone;break;default:throw new Error("Invalid zone pointer")}}function dk(A){A.loop=A.stack.pop(),exports.DEBUG&&console.log(A.step,"SLOOP[]",A.loop)}function pk(A){exports.DEBUG&&console.log(A.step,"RTG[]"),A.round=Rl}function mk(A){exports.DEBUG&&console.log(A.step,"RTHG[]"),A.round=ik}function yk(A){var e=A.stack.pop();exports.DEBUG&&console.log(A.step,"SMD[]",e),A.minDis=e/64}function wk(A){exports.DEBUG&&console.log(A.step,"ELSE[]"),Nl(A,!1)}function Dk(A){var e=A.stack.pop();exports.DEBUG&&console.log(A.step,"JMPR[]",e),A.ip+=e-1}function kk(A){var e=A.stack.pop();exports.DEBUG&&console.log(A.step,"SCVTCI[]",e),A.cvCutIn=e/64}function vk(A){var e=A.stack;exports.DEBUG&&console.log(A.step,"DUP[]"),e.push(e[e.length-1])}function $n(A){exports.DEBUG&&console.log(A.step,"POP[]"),A.stack.pop()}function Fk(A){exports.DEBUG&&console.log(A.step,"CLEAR[]"),A.stack.length=0}function Sk(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"SWAP[]"),e.push(t),e.push(i)}function Rk(A){var e=A.stack;exports.DEBUG&&console.log(A.step,"DEPTH[]"),e.push(e.length)}function bk(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"LOOPCALL[]",t,i);var o=A.ip,n=A.prog;A.prog=A.funcs[t];for(var r=0;r1?"loop "+(e.loop-g)+": ":"")+"SHP["+(A?"rp1":"rp2")+"]",a)}e.loop=1}function ka(A,e){var t=e.stack,i=A?e.rp1:e.rp2,o=(A?e.z0:e.z1)[i],n=e.fv,r=e.pv,g=t.pop(),s=e.z2[e.contours[g]],a=s;exports.DEBUG&&console.log(e.step,"SHC["+A+"]",g);var I=r.distance(o,o,!1,!0);do a!==o&&n.setRelative(a,a,I,r),a=a.nextPointOnContour;while(a!==s)}function va(A,e){var t=e.stack,i=A?e.rp1:e.rp2,o=(A?e.z0:e.z1)[i],n=e.fv,r=e.pv,g=t.pop();exports.DEBUG&&console.log(e.step,"SHZ["+A+"]",g);var s;switch(g){case 0:s=e.tZone;break;case 1:s=e.gZone;break;default:throw new Error("Invalid zone")}for(var a,I=r.distance(o,o,!1,!0),l=s.length-2,C=0;C1?"loop "+(A.loop-t)+": ":"")+"SHPIX[]",r,o),i.setRelative(g,g,o),i.touch(g)}A.loop=1}function xk(A){for(var e=A.stack,t=A.rp1,i=A.rp2,o=A.loop,n=A.z0[t],r=A.z1[i],g=A.fv,s=A.dpv,a=A.z2;o--;){var I=e.pop(),l=a[I];exports.DEBUG&&console.log(A.step,(A.loop>1?"loop "+(A.loop-o)+": ":"")+"IP[]",I,t,"<->",i),g.interpolate(l,n,r,s),g.touch(l)}A.loop=1}function Fa(A,e){var t=e.stack,i=t.pop()/64,o=t.pop(),n=e.z1[o],r=e.z0[e.rp0],g=e.fv,s=e.pv;g.setRelative(n,r,i,s),g.touch(n),exports.DEBUG&&console.log(e.step,"MSIRP["+A+"]",i,o),e.rp1=e.rp0,e.rp2=o,A&&(e.rp0=o)}function Jk(A){for(var e=A.stack,t=A.rp0,i=A.z0[t],o=A.loop,n=A.fv,r=A.pv,g=A.z1;o--;){var s=e.pop(),a=g[s];exports.DEBUG&&console.log(A.step,(A.loop>1?"loop "+(A.loop-o)+": ":"")+"ALIGNRP[]",s),n.setRelative(a,i,0,r),n.touch(a)}A.loop=1}function Tk(A){exports.DEBUG&&console.log(A.step,"RTDG[]"),A.round=tk}function Sa(A,e){var t=e.stack,i=t.pop(),o=t.pop(),n=e.z0[o],r=e.fv,g=e.pv,s=e.cvt[i];exports.DEBUG&&console.log(e.step,"MIAP["+A+"]",i,"(",s,")",o);var a=g.distance(n,lo);A&&(Math.abs(a-s)",g),e.stack.push(Math.round(g*64))}function Vk(A){exports.DEBUG&&console.log(A.step,"MPPEM[]"),A.stack.push(A.ppem)}function Wk(A){exports.DEBUG&&console.log(A.step,"FLIPON[]"),A.autoFlip=!0}function qk(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"LT[]",t,i),e.push(it?1:0)}function Xk(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"GTEQ[]",t,i),e.push(i>=t?1:0)}function zk(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"EQ[]",t,i),e.push(t===i?1:0)}function $k(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"NEQ[]",t,i),e.push(t!==i?1:0)}function Av(A){var e=A.stack,t=e.pop();exports.DEBUG&&console.log(A.step,"ODD[]",t),e.push(Math.trunc(t)%2?1:0)}function ev(A){var e=A.stack,t=e.pop();exports.DEBUG&&console.log(A.step,"EVEN[]",t),e.push(Math.trunc(t)%2?0:1)}function tv(A){var e=A.stack.pop();exports.DEBUG&&console.log(A.step,"IF[]",e),e||(Nl(A,!0),exports.DEBUG&&console.log(A.step,"EIF[]"))}function iv(A){exports.DEBUG&&console.log(A.step,"EIF[]")}function ov(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"AND[]",t,i),e.push(t&&i?1:0)}function nv(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"OR[]",t,i),e.push(t||i?1:0)}function rv(A){var e=A.stack,t=e.pop();exports.DEBUG&&console.log(A.step,"NOT[]",t),e.push(t?0:1)}function Ar(A,e){var t=e.stack,i=t.pop(),o=e.fv,n=e.pv,r=e.ppem,g=e.deltaBase+(A-1)*16,s=e.deltaShift,a=e.z0;exports.DEBUG&&console.log(e.step,"DELTAP["+A+"]",i,t);for(var I=0;I>4);if(Q===r){var h=(C&15)-8;h>=0&&h++,exports.DEBUG&&console.log(e.step,"DELTAPFIX",l,"by",h*s);var f=a[l];o.setRelative(f,f,h*s,n)}}}function gv(A){var e=A.stack,t=e.pop();exports.DEBUG&&console.log(A.step,"SDB[]",t),A.deltaBase=t}function sv(A){var e=A.stack,t=e.pop();exports.DEBUG&&console.log(A.step,"SDS[]",t),A.deltaShift=Math.pow(.5,t)}function av(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"ADD[]",t,i),e.push(i+t)}function Iv(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"SUB[]",t,i),e.push(i-t)}function Cv(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"DIV[]",t,i),e.push(i*64/t)}function lv(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"MUL[]",t,i),e.push(i*t/64)}function Bv(A){var e=A.stack,t=e.pop();exports.DEBUG&&console.log(A.step,"ABS[]",t),e.push(Math.abs(t))}function Qv(A){var e=A.stack,t=e.pop();exports.DEBUG&&console.log(A.step,"NEG[]",t),e.push(-t)}function cv(A){var e=A.stack,t=e.pop();exports.DEBUG&&console.log(A.step,"FLOOR[]",t),e.push(Math.floor(t/64)*64)}function Ev(A){var e=A.stack,t=e.pop();exports.DEBUG&&console.log(A.step,"CEILING[]",t),e.push(Math.ceil(t/64)*64)}function xo(A,e){var t=e.stack,i=t.pop();exports.DEBUG&&console.log(e.step,"ROUND[]"),t.push(e.round(i/64)*64)}function uv(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"WCVTF[]",t,i),A.cvt[i]=t*A.ppem/A.font.unitsPerEm}function er(A,e){var t=e.stack,i=t.pop(),o=e.ppem,n=e.deltaBase+(A-1)*16,r=e.deltaShift;exports.DEBUG&&console.log(e.step,"DELTAC["+A+"]",i,t);for(var g=0;g>4);if(I===o){var l=(a&15)-8;l>=0&&l++;var C=l*r;exports.DEBUG&&console.log(e.step,"DELTACFIX",s,"by",C),e.cvt[s]+=C}}}function hv(A){var e=A.stack.pop();exports.DEBUG&&console.log(A.step,"SROUND[]",e),A.round=bl;var t;switch(e&192){case 0:t=.5;break;case 64:t=1;break;case 128:t=2;break;default:throw new Error("invalid SROUND value")}switch(A.srPeriod=t,e&48){case 0:A.srPhase=0;break;case 16:A.srPhase=.25*t;break;case 32:A.srPhase=.5*t;break;case 48:A.srPhase=.75*t;break;default:throw new Error("invalid SROUND value")}e&=15,e===0?A.srThreshold=0:A.srThreshold=(e/8-.5)*t}function fv(A){var e=A.stack.pop();exports.DEBUG&&console.log(A.step,"S45ROUND[]",e),A.round=bl;var t;switch(e&192){case 0:t=Math.sqrt(2)/2;break;case 64:t=Math.sqrt(2);break;case 128:t=2*Math.sqrt(2);break;default:throw new Error("invalid S45ROUND value")}switch(A.srPeriod=t,e&48){case 0:A.srPhase=0;break;case 16:A.srPhase=.25*t;break;case 32:A.srPhase=.5*t;break;case 48:A.srPhase=.75*t;break;default:throw new Error("invalid S45ROUND value")}e&=15,e===0?A.srThreshold=0:A.srThreshold=(e/8-.5)*t}function dv(A){exports.DEBUG&&console.log(A.step,"ROFF[]"),A.round=ek}function pv(A){exports.DEBUG&&console.log(A.step,"RUTG[]"),A.round=ok}function mv(A){exports.DEBUG&&console.log(A.step,"RDTG[]"),A.round=nk}function yv(A){var e=A.stack.pop();exports.DEBUG&&console.log(A.step,"SCANCTRL[]",e)}function Na(A,e){var t=e.stack,i=t.pop(),o=t.pop(),n=e.z2[i],r=e.z1[o];exports.DEBUG&&console.log(e.step,"SDPVTL["+A+"]",i,o);var g,s;A?(g=n.y-r.y,s=r.x-n.x):(g=r.x-n.x,s=r.y-n.y),e.dpv=Do(g,s)}function wv(A){var e=A.stack,t=e.pop(),i=0;exports.DEBUG&&console.log(A.step,"GETINFO[]",t),t&1&&(i=35),t&32&&(i|=4096),e.push(i)}function Dv(A){var e=A.stack,t=e.pop(),i=e.pop(),o=e.pop();exports.DEBUG&&console.log(A.step,"ROLL[]"),e.push(i),e.push(t),e.push(o)}function kv(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"MAX[]",t,i),e.push(Math.max(i,t))}function vv(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"MIN[]",t,i),e.push(Math.min(i,t))}function Fv(A){var e=A.stack.pop();exports.DEBUG&&console.log(A.step,"SCANTYPE[]",e)}function Sv(A){var e=A.stack.pop(),t=A.stack.pop();switch(exports.DEBUG&&console.log(A.step,"INSTCTRL[]",e,t),e){case 1:A.inhibitGridFit=!!t;return;case 2:A.ignoreCvt=!!t;return;default:throw new Error("invalid INSTCTRL[] selector")}}function bt(A,e){var t=e.stack,i=e.prog,o=e.ip;exports.DEBUG&&console.log(e.step,"PUSHB["+A+"]");for(var n=0;n=0?1:-1,u=Math.abs(u),A&&(D=n.cvt[g],i&&Math.abs(u-D)":"_")+(i?"R":"_")+(o===0?"Gr":o===1?"Bl":o===2?"Wh":"")+"]",A?g+"("+n.cvt[g]+","+D+")":"",s,"(d =",f,"->",E*u,")"),n.rp1=n.rp0,n.rp2=s,e&&(n.rp0=s)}vl=[ha.bind(void 0,pt),ha.bind(void 0,ot),fa.bind(void 0,pt),fa.bind(void 0,ot),da.bind(void 0,pt),da.bind(void 0,ot),pa.bind(void 0,0),pa.bind(void 0,1),ma.bind(void 0,0),ma.bind(void 0,1),gk,sk,ak,Ik,Ck,lk,Bk,Qk,ck,Ek,uk,hk,fk,dk,pk,mk,yk,wk,Dk,kk,void 0,void 0,vk,$n,Fk,Sk,Rk,Gk,Lk,void 0,void 0,void 0,bk,Nk,Uk,void 0,ya.bind(void 0,0),ya.bind(void 0,1),wa.bind(void 0,pt),wa.bind(void 0,ot),Da.bind(void 0,0),Da.bind(void 0,1),ka.bind(void 0,0),ka.bind(void 0,1),va.bind(void 0,0),va.bind(void 0,1),Mk,xk,Fa.bind(void 0,0),Fa.bind(void 0,1),Jk,Tk,Sa.bind(void 0,0),Sa.bind(void 0,1),Hk,Yk,_k,Kk,Ok,Pk,Ra.bind(void 0,0),Ra.bind(void 0,1),void 0,ba.bind(void 0,0),ba.bind(void 0,1),Vk,void 0,Wk,void 0,void 0,qk,jk,Zk,Xk,zk,$k,Av,ev,tv,iv,ov,nv,rv,Ar.bind(void 0,1),gv,sv,av,Iv,Cv,lv,Bv,Qv,cv,Ev,xo.bind(void 0,0),xo.bind(void 0,1),xo.bind(void 0,2),xo.bind(void 0,3),void 0,void 0,void 0,void 0,uv,Ar.bind(void 0,2),Ar.bind(void 0,3),er.bind(void 0,1),er.bind(void 0,2),er.bind(void 0,3),hv,fv,void 0,void 0,dv,void 0,pv,mv,$n,$n,void 0,void 0,void 0,void 0,void 0,yv,Na.bind(void 0,0),Na.bind(void 0,1),wv,void 0,Dv,kv,vv,Fv,Sv,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,bt.bind(void 0,1),bt.bind(void 0,2),bt.bind(void 0,3),bt.bind(void 0,4),bt.bind(void 0,5),bt.bind(void 0,6),bt.bind(void 0,7),bt.bind(void 0,8),Nt.bind(void 0,1),Nt.bind(void 0,2),Nt.bind(void 0,3),Nt.bind(void 0,4),Nt.bind(void 0,5),Nt.bind(void 0,6),Nt.bind(void 0,7),Nt.bind(void 0,8),CA.bind(void 0,0,0,0,0,0),CA.bind(void 0,0,0,0,0,1),CA.bind(void 0,0,0,0,0,2),CA.bind(void 0,0,0,0,0,3),CA.bind(void 0,0,0,0,1,0),CA.bind(void 0,0,0,0,1,1),CA.bind(void 0,0,0,0,1,2),CA.bind(void 0,0,0,0,1,3),CA.bind(void 0,0,0,1,0,0),CA.bind(void 0,0,0,1,0,1),CA.bind(void 0,0,0,1,0,2),CA.bind(void 0,0,0,1,0,3),CA.bind(void 0,0,0,1,1,0),CA.bind(void 0,0,0,1,1,1),CA.bind(void 0,0,0,1,1,2),CA.bind(void 0,0,0,1,1,3),CA.bind(void 0,0,1,0,0,0),CA.bind(void 0,0,1,0,0,1),CA.bind(void 0,0,1,0,0,2),CA.bind(void 0,0,1,0,0,3),CA.bind(void 0,0,1,0,1,0),CA.bind(void 0,0,1,0,1,1),CA.bind(void 0,0,1,0,1,2),CA.bind(void 0,0,1,0,1,3),CA.bind(void 0,0,1,1,0,0),CA.bind(void 0,0,1,1,0,1),CA.bind(void 0,0,1,1,0,2),CA.bind(void 0,0,1,1,0,3),CA.bind(void 0,0,1,1,1,0),CA.bind(void 0,0,1,1,1,1),CA.bind(void 0,0,1,1,1,2),CA.bind(void 0,0,1,1,1,3),CA.bind(void 0,1,0,0,0,0),CA.bind(void 0,1,0,0,0,1),CA.bind(void 0,1,0,0,0,2),CA.bind(void 0,1,0,0,0,3),CA.bind(void 0,1,0,0,1,0),CA.bind(void 0,1,0,0,1,1),CA.bind(void 0,1,0,0,1,2),CA.bind(void 0,1,0,0,1,3),CA.bind(void 0,1,0,1,0,0),CA.bind(void 0,1,0,1,0,1),CA.bind(void 0,1,0,1,0,2),CA.bind(void 0,1,0,1,0,3),CA.bind(void 0,1,0,1,1,0),CA.bind(void 0,1,0,1,1,1),CA.bind(void 0,1,0,1,1,2),CA.bind(void 0,1,0,1,1,3),CA.bind(void 0,1,1,0,0,0),CA.bind(void 0,1,1,0,0,1),CA.bind(void 0,1,1,0,0,2),CA.bind(void 0,1,1,0,0,3),CA.bind(void 0,1,1,0,1,0),CA.bind(void 0,1,1,0,1,1),CA.bind(void 0,1,1,0,1,2),CA.bind(void 0,1,1,0,1,3),CA.bind(void 0,1,1,1,0,0),CA.bind(void 0,1,1,1,0,1),CA.bind(void 0,1,1,1,0,2),CA.bind(void 0,1,1,1,0,3),CA.bind(void 0,1,1,1,1,0),CA.bind(void 0,1,1,1,1,1),CA.bind(void 0,1,1,1,1,2),CA.bind(void 0,1,1,1,1,3)];function Ui(A){this.char=A,this.state={},this.activeState=null}function yg(A,e,t){this.contextName=t,this.startIndex=A,this.endOffset=e}function Rv(A,e,t){this.contextName=A,this.openRange=null,this.ranges=[],this.checkStart=e,this.checkEnd=t}function Ve(A,e){this.context=A,this.index=e,this.length=A.length,this.current=A[e],this.backtrack=A.slice(0,e),this.lookahead=A.slice(e+1)}function Ln(A){this.eventId=A,this.subscribers=[]}function bv(A){var e=this,t=["start","end","next","newToken","contextStart","contextEnd","insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD","updateContextsRanges"];t.forEach(function(o){Object.defineProperty(e.events,o,{value:new Ln(o)})}),A&&t.forEach(function(o){var n=A[o];typeof n=="function"&&e.events[o].subscribe(n)});var i=["insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD"];i.forEach(function(o){e.events[o].subscribe(e.updateContextsRanges)})}function zA(A){this.tokens=[],this.registeredContexts={},this.contextCheckers=[],this.events={},this.registeredModifiers=[],bv.call(this,A)}Ui.prototype.setState=function(A,e){return this.state[A]=e,this.activeState={key:A,value:this.state[A]},this.activeState};Ui.prototype.getState=function(A){return this.state[A]||null};zA.prototype.inboundIndex=function(A){return A>=0&&A0&&A<=this.lookahead.length):return this.lookahead[A-1];default:return null}};zA.prototype.rangeToText=function(A){if(A instanceof yg)return this.getRangeTokens(A).map(function(e){return e.char}).join("")};zA.prototype.getText=function(){return this.tokens.map(function(A){return A.char}).join("")};zA.prototype.getContext=function(A){var e=this.registeredContexts[A];return e||null};zA.prototype.on=function(A,e){var t=this.events[A];return t?t.subscribe(e):null};zA.prototype.dispatch=function(A,e){var t=this,i=this.events[A];i instanceof Ln&&i.subscribers.forEach(function(o){o.apply(t,e||[])})};zA.prototype.registerContextChecker=function(A,e,t){if(this.getContext(A))return{FAIL:"context name '"+A+"' is already registered."};if(typeof e!="function")return{FAIL:"missing context start check."};if(typeof t!="function")return{FAIL:"missing context end check."};var i=new Rv(A,e,t);return this.registeredContexts[A]=i,this.contextCheckers.push(i),i};zA.prototype.getRangeTokens=function(A){var e=A.startIndex+A.endOffset;return[].concat(this.tokens.slice(A.startIndex,e))};zA.prototype.getContextRanges=function(A){var e=this.getContext(A);return e?e.ranges:{FAIL:"context checker '"+A+"' is not registered."}};zA.prototype.resetContextsRanges=function(){var A=this.registeredContexts;for(var e in A)if(A.hasOwnProperty(e)){var t=A[e];t.ranges=[]}};zA.prototype.updateContextsRanges=function(){this.resetContextsRanges();for(var A=this.tokens.map(function(i){return i.char}),e=0;e=o.start&&A<=o.end){var n=A-o.start;return o.index+n}}break;default:return-1}return-1}function Gv(A,e){var t=ko(A,e.coverage);return t===-1?null:A+e.deltaGlyphId}function Lv(A,e){var t=ko(A,e.coverage);return t===-1?null:e.substitute[t]}function tr(A,e){for(var t=[],i=0;i=0;t--){var i=e[t],o=Gl(i),n=Pt(i);if(!o&&!n)return!0;if(o)return!1}return!1}function jv(A){if(Gl(A.current))return!1;for(var e=0;e0}t("fontFamily"),t("weightName"),t("manufacturer"),t("copyright"),t("version"),this.unitsPerEm>0};YA.prototype.toTables=function(){return WD.fontToTable(this)};YA.prototype.toBuffer=function(){return console.warn("Font.toBuffer is deprecated. Use Font.toArrayBuffer instead."),this.toArrayBuffer()};YA.prototype.toArrayBuffer=function(){for(var A=this.toTables(),e=A.encode(),t=new ArrayBuffer(e.length),i=new Uint8Array(t),o=0;o=1.2&&(o.markGlyphSets=t.parsePointer(hF)),o}var dF={parse:fF},We=new Array(10);We[1]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();if(t===1)return{posFormat:1,coverage:this.parsePointer(J.coverage),value:this.parseValueRecord()};if(t===2)return{posFormat:2,coverage:this.parsePointer(J.coverage),values:this.parseValueRecordList()};mA.assert(!1,"0x"+e.toString(16)+": GPOS lookup type 1 format must be 1 or 2.")};We[2]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();mA.assert(t===1||t===2,"0x"+e.toString(16)+": GPOS lookup type 2 format must be 1 or 2.");var i=this.parsePointer(J.coverage),o=this.parseUShort(),n=this.parseUShort();if(t===1)return{posFormat:t,coverage:i,valueFormat1:o,valueFormat2:n,pairSets:this.parseList(J.pointer(J.list(function(){return{secondGlyph:this.parseUShort(),value1:this.parseValueRecord(o),value2:this.parseValueRecord(n)}})))};if(t===2){var r=this.parsePointer(J.classDef),g=this.parsePointer(J.classDef),s=this.parseUShort(),a=this.parseUShort();return{posFormat:t,coverage:i,valueFormat1:o,valueFormat2:n,classDef1:r,classDef2:g,class1Count:s,class2Count:a,classRecords:this.parseList(s,J.list(a,function(){return{value1:this.parseValueRecord(o),value2:this.parseValueRecord(n)}}))}}};We[3]=function(){return{error:"GPOS Lookup 3 not supported"}};We[4]=function(){return{error:"GPOS Lookup 4 not supported"}};We[5]=function(){return{error:"GPOS Lookup 5 not supported"}};We[6]=function(){return{error:"GPOS Lookup 6 not supported"}};We[7]=function(){return{error:"GPOS Lookup 7 not supported"}};We[8]=function(){return{error:"GPOS Lookup 8 not supported"}};We[9]=function(){return{error:"GPOS Lookup 9 not supported"}};function pF(A,e){e=e||0;var t=new J(A,e),i=t.parseVersion(1);return mA.argument(i===1||i===1.1,"Unsupported GPOS table version "+i),i===1?{version:i,scripts:t.parseScriptList(),features:t.parseFeatureList(),lookups:t.parseLookupList(We)}:{version:i,scripts:t.parseScriptList(),features:t.parseFeatureList(),lookups:t.parseLookupList(We),variations:t.parseFeatureVariationsList()}}var mF=new Array(10);function yF(A){return new aA.Table("GPOS",[{name:"version",type:"ULONG",value:65536},{name:"scripts",type:"TABLE",value:new aA.ScriptList(A.scripts)},{name:"features",type:"TABLE",value:new aA.FeatureList(A.features)},{name:"lookups",type:"TABLE",value:new aA.LookupList(A.lookups,mF)}])}var wF={parse:pF,make:yF};function DF(A){var e={};A.skip("uShort");var t=A.parseUShort();mA.argument(t===0,"Unsupported kern sub-table version."),A.skip("uShort",2);var i=A.parseUShort();A.skip("uShort",3);for(var o=0;o1&&console.warn("Only the first kern subtable is supported."),A.skip("uLong");var i=A.parseUShort(),o=i&255;if(A.skip("uShort"),o===0){var n=A.parseUShort();A.skip("uShort",3);for(var r=0;r"u",o=i&&!t.isUrl?bF:NF;return new Promise(function(n,r){o(A,function(g,s){if(g){if(e)return e(g);r(g)}var a;try{a=kg(s,t)}catch(I){if(e)return e(I,null);r(I)}if(e)return e(null,a);n(a)})})}function UF(A,e){var t=require("fs"),i=t.readFileSync(A);return kg(ml(i),e)}var Hr=Object.freeze({__proto__:null,Font:YA,Glyph:Ne,Path:ie,BoundingBox:St,_parse:lA,parse:kg,load:LF,loadSync:UF});const MF="modulepreload",xF=function(A,e){return new URL(A,e).href},xa={},Ul=function(e,t,i){let o=Promise.resolve();if(t&&t.length>0){const r=document.getElementsByTagName("link"),g=document.querySelector("meta[property=csp-nonce]"),s=(g==null?void 0:g.nonce)||(g==null?void 0:g.getAttribute("nonce"));o=Promise.allSettled(t.map(a=>{if(a=xF(a,i),a in xa)return;xa[a]=!0;const I=a.endsWith(".css"),l=I?'[rel="stylesheet"]':"";if(!!i)for(let h=r.length-1;h>=0;h--){const f=r[h];if(f.href===a&&(!I||f.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${a}"]${l}`))return;const Q=document.createElement("link");if(Q.rel=I?"stylesheet":MF,I||(Q.as="script"),Q.crossOrigin="",Q.href=a,s&&Q.setAttribute("nonce",s),document.head.appendChild(Q),I)return new Promise((h,f)=>{Q.addEventListener("load",h),Q.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${a}`)))})}))}function n(r){const g=new Event("vite:preloadError",{cancelable:!0});if(g.payload=r,window.dispatchEvent(g),!g.defaultPrevented)throw r}return o.then(r=>{for(const g of r||[])g.status==="rejected"&&n(g.reason);return e().catch(n)})},JF=()=>Ul(()=>import("./ft_render-ByO_jG18.js"),[],import.meta.url);let j=null,Bo=0;const TF=new Promise(A=>{JF().then(e=>{e.default().then(t=>{j=t,A()})})});function Ja(A){return A/65536}function Ue(A){return A/64}function Hi(A){return A>=0?A:A+256}let Ml,xl,Jl,vg,Tl,Hl,Yl;async function HF(){if(await TF,j._init_constants(),Ml=j.cwrap("FT_New_Memory_Face","number",["number","number","number","number","number"]),xl=j.cwrap("FT_Set_Char_Size","number",["number","number","number","number","number"]),Jl=j.cwrap("FT_Set_Pixel_Sizes","number",["number","number","number"]),vg=j.cwrap("FT_Get_Char_Index","number",["number","number"]),Tl=j.cwrap("FT_Load_Glyph","number",["number","number","number"]),Hl=j.cwrap("FT_Get_Sfnt_Table","number",["number","number"]),j.cwrap("FT_Get_Kerning","number",["number","number","number","number","number"]),Yl=j.cwrap("FT_Done_Face","number",["number"]),!Bo){let A=j._malloc(4);try{let e=j.ccall("FT_Init_FreeType","number",["number"],[A]);if(e)throw new Error(`error in FT_Init_FreeType: ${e}`);Bo=j.getValue(A,"i32")}finally{j._free(A)}}}function YF(A,e){let t,i;if(A instanceof ArrayBuffer)i=A.byteLength;else if(A instanceof Uint8Array)i=A.byteLength;else if(A&&typeof A.length=="number")i=A.length;else throw new Error("Invalid font source format");let o={ptr:0,font:j._malloc(i)};const n=A instanceof ArrayBuffer?new Uint8Array(A):A;j.writeArrayToMemory(n,o.font);let r=j._malloc(4);try{if(t=Ml(Bo,o.font,i,0,r),t)throw new Error(`error in FT_New_Memory_Face: ${t}`);o.ptr=j.getValue(r,"i32")}finally{j._free(r)}if(t=xl(o.ptr,0,e*64,300,300),t)throw new Error(`error in FT_Set_Char_Size: ${t}`);if(t=Jl(o.ptr,0,e),t)throw new Error(`error in FT_Set_Pixel_Sizes: ${t}`);let g=j.getValue(o.ptr+j.OFFSET_FACE_UNITS_PER_EM,"i16"),s=j.getValue(o.ptr+j.OFFSET_FACE_ASCENDER,"i16"),a=j.getValue(o.ptr+j.OFFSET_FACE_DESCENDER,"i16"),I=j.getValue(o.ptr+j.OFFSET_FACE_HEIGHT,"i16");return Object.assign(o,{units_per_em:g,ascender:s,descender:a,height:I})}function _F(A){let e=Hl(A.ptr,j.FT_SFNT_OS2);if(!e)throw new Error("os/2 table not found for this font");let t=j.getValue(e+j.OFFSET_TT_OS2_ASCENDER,"i16"),i=j.getValue(e+j.OFFSET_TT_OS2_DESCENDER,"i16"),o=j.getValue(e+j.OFFSET_TT_OS2_LINEGAP,"i16");return{typoAscent:t,typoDescent:i,typoLineGap:o}}function or(A,e){return vg(A.ptr,e)!==0}function KF(A,e,t={}){let i=vg(A.ptr,e);if(i===0)throw new Error(`glyph does not exist for codepoint ${e}`);let o=j.FT_LOAD_RENDER;t.mono?o|=j.FT_LOAD_TARGET_MONO:t.lcd?o|=j.FT_LOAD_TARGET_LCD:t.lcd_v?o|=j.FT_LOAD_TARGET_LCD_V:t.autohint_strong?o|=j.FT_LOAD_TARGET_NORMAL:o|=j.FT_LOAD_TARGET_LIGHT,t.autohint_off?o|=j.FT_LOAD_NO_AUTOHINT:o|=j.FT_LOAD_FORCE_AUTOHINT,t.use_color_info&&(o|=j.FT_LOAD_COLOR);let n=Tl(A.ptr,i,o);if(n)throw new Error(`error in FT_Load_Glyph: ${n}`);let r=j.getValue(A.ptr+j.OFFSET_FACE_GLYPH,"i32"),g={glyph_index:j.getValue(r+j.OFFSET_GLYPH_INDEX,"i32"),metrics:{width:Ue(j.getValue(r+j.OFFSET_GLYPH_METRICS_WIDTH,"i32")),height:Ue(j.getValue(r+j.OFFSET_GLYPH_METRICS_HEIGHT,"i32")),horiBearingX:Ue(j.getValue(r+j.OFFSET_GLYPH_METRICS_HORI_BEARING_X,"i32")),horiBearingY:Ue(j.getValue(r+j.OFFSET_GLYPH_METRICS_HORI_BEARING_Y,"i32")),horiAdvance:Ue(j.getValue(r+j.OFFSET_GLYPH_METRICS_HORI_ADVANCE,"i32")),vertBearingX:Ue(j.getValue(r+j.OFFSET_GLYPH_METRICS_VERT_BEARING_X,"i32")),vertBearingY:Ue(j.getValue(r+j.OFFSET_GLYPH_METRICS_VERT_BEARING_Y,"i32")),vertAdvance:Ue(j.getValue(r+j.OFFSET_GLYPH_METRICS_VERT_ADVANCE,"i32"))},linearHoriAdvance:Ja(j.getValue(r+j.OFFSET_GLYPH_LINEAR_HORI_ADVANCE,"i32")),linearVertAdvance:Ja(j.getValue(r+j.OFFSET_GLYPH_LINEAR_VERT_ADVANCE,"i32")),advance:{x:Ue(j.getValue(r+j.OFFSET_GLYPH_ADVANCE_X,"i32")),y:Ue(j.getValue(r+j.OFFSET_GLYPH_ADVANCE_Y,"i32"))},bitmap:{width:j.getValue(r+j.OFFSET_GLYPH_BITMAP_WIDTH,"i32"),rows:j.getValue(r+j.OFFSET_GLYPH_BITMAP_ROWS,"i32"),pitch:j.getValue(r+j.OFFSET_GLYPH_BITMAP_PITCH,"i32"),num_grays:j.getValue(r+j.OFFSET_GLYPH_BITMAP_NUM_GRAYS,"i16"),pixel_mode:j.getValue(r+j.OFFSET_GLYPH_BITMAP_PIXEL_MODE,"i8"),palette_mode:j.getValue(r+j.OFFSET_GLYPH_BITMAP_PALETTE_MODE,"i8")},bitmap_left:j.getValue(r+j.OFFSET_GLYPH_BITMAP_LEFT,"i32"),bitmap_top:j.getValue(r+j.OFFSET_GLYPH_BITMAP_TOP,"i32"),lsb_delta:Ue(j.getValue(r+j.OFFSET_GLYPH_LSB_DELTA,"i32")),rsb_delta:Ue(j.getValue(r+j.OFFSET_GLYPH_RSB_DELTA,"i32"))},s=g.bitmap.width,a=g.bitmap.rows,I=g.bitmap_left,l=g.bitmap_top,C=j.getValue(r+j.OFFSET_GLYPH_BITMAP_BUFFER,"i32"),Q=Math.abs(g.bitmap.pitch),h=g.linearHoriAdvance,f=g.linearVertAdvance,u=g.bitmap.pixel_mode,E=[];for(let D=0;D255&&(S=255),H=(255-S)*H/255,d.push(H)}else{let v=j.getValue(c+p,"i8");d.push(Hi(v))}E.push(d)}return{x:I,y:l,width:s,height:a,advance_x:h,advance_y:f,pixels:E,freetype:g}}function OF(A){let e=Yl(A.ptr);if(e)throw new Error(`error in FT_Done_Face: ${e}`);j._free(A.font),A.ptr=0,A.font=0}function PF(){let A=j.ccall("FT_Done_FreeType","number",["number"],[Bo]);if(A)throw new Error(`error in FT_Done_FreeType: ${A}`);Bo=0}class yt extends Error{constructor(e){super(e),this.name="AppError",Error.captureStackTrace&&Error.captureStackTrace(this,yt)}}class VF{constructor(){this.data={}}add_range(e,t,i,o){let n=o-t,r=[];for(let g=t;g<=i;g++)this._set_char(e,g,g+n),r.push(g);return r}add_symbols(e,t){let i=[];for(let o of t){let n=o.codePointAt(0);this._set_char(e,n,n),i.push(n)}return i}_set_char(e,t,i){this.data[i]={font:e,code:t}}get(){return this.data}}async function WF(A){await HF();let e={};A.font.forEach(C=>{e[C.source_path]=C});let t={},i={};for(let{source_path:C,source_bin:Q}of A.font)if(!t[C])try{let h=Q;h instanceof File?h=await h.arrayBuffer():h instanceof Uint8Array&&(h=h.buffer.slice(h.byteOffset,h.byteOffset+h.byteLength)),t[C]=Hr.parse(h),i[C]=YF(h,A.size)}catch(h){throw new yt(`Cannot load font "${C}": ${h.message}`)}let o=new VF;for(let{source_path:C,ranges:Q}of A.font){let h=i[C];for(let f of Q){if(f.range)for(let u=0;uC-Q).map(Number);for(let C of g){let Q=n[C].code,h=n[C].font;if(!or(i[h],Q))continue;let f=KF(i[h],Q,{autohint_off:e[h].autohint_off,autohint_strong:e[h].autohint_strong,lcd:A.lcd,lcd_v:A.lcd_v,mono:!A.lcd&&!A.lcd_v&&A.bpp===1,use_color_info:A.use_color_info});r.push({code:C,advanceWidth:f.advance_x,bbox:{x:f.x,y:f.y-f.height,width:f.width,height:f.height},kerning:{},freetype:f.freetype,pixels:f.pixels})}if(!A.no_kerning){let C=r.map(Q=>Q.code);for(let{code:Q,kerning:h}of r){let f=n[Q].code,u=n[Q].font,E=t[u],D=E.charToGlyph(String.fromCodePoint(f));for(let c of C){if(n[c].font!==u)continue;let d=n[c].code,p=E.charToGlyph(String.fromCodePoint(d)),v=E.getKerningValue(D,p);v&&(h[c]=v*A.size/E.unitsPerEm)}}}let s=i[A.font[0].source_path],a=A.size/s.units_per_em,I=_F(s),l=t[A.font[0].source_path].tables.post;for(let C of Object.values(i))OF(C);return PF(),{ascent:Math.max(...r.map(C=>C.bbox.y+C.bbox.height)),descent:Math.min(...r.map(C=>C.bbox.y)),typoAscent:Math.round(I.typoAscent*a),typoDescent:Math.round(I.typoDescent*a),typoLineGap:Math.round(I.typoLineGap*a),size:A.size,glyphs:r,underlinePosition:Math.round(l.underlinePosition*a),underlineThickness:Math.round(l.underlineThickness*a)}}function qF(){return 16}function jF(A,e){return 16+(e-A+1)}function ZF(A){return 16+A*2}function Ta(A){A=A.sort((i,o)=>i-o);let e=[];for(let i=0;i=0?e[n-1].dist:0,g;A[i]-A[n]<256&&(g=jF(A[n],A[i]),r+g=0;){let o=e[i];t.unshift([o.format,A.slice(o.start,o.end+1)]),i=o.start-1}return t}const De=4,XF=(A,e,t)=>{A.setUint32(t,e,!0),A.setUint32(t+4,0,!0)};class zF{constructor(e,t){if(this.src=e,this.opts=t,this.font_name=t.lv_font_name,this.font_name||(this.font_name=t.output||"font"),t.bpp===3&&t.no_compress)throw new yt('LVGL supports "--bpp 3" with compression only');this.init_tables()}init_tables(){this.head=new $F(this),this.glyf=new eS(this),this.cmap=new tS(this),this.kern=new iS(this)}toCBin(){const[e,t]=this.glyf.toCBin(),i=this.cmap.toCBin(De),o=this.kern.toCBin(De),n=12+De*6+0,r=8+De*4,g=new ArrayBuffer(n+r),s=new DataView(g),a=(u,E)=>s.setUint32(E,u,!0);var I=0;a(0,I),I+=De,a(0,I),I+=De,a(0,I),I+=De,s.setUint32(I,this.src.ascent-this.src.descent,!0),I+=4,s.setInt32(I,-this.src.descent,!0),I+=4,s.setUint8(I,this.src.subpixels_mode||0),I+=1,s.setInt8(I,this.src.underlinePosition||0),I+=1,s.setInt8(I,this.src.underlineThickness||0),I+=1,I+=1,a(n,I),I+=De,a(0,I),I+=De,a(0,I),I+=De;const l=this.head.kern_ref();a(r+o.byteLength,I),I+=De,a(r+o.byteLength+e.byteLength,I),I+=De,a(r+o.byteLength+e.byteLength+t.byteLength,I),I+=De,a(l.dsc==="NULL"?0:r,I),I+=De,s.setUint16(I,l.scale,!0),I+=2;const C=this.cmap.getMapNumber(),Q=this.opts.bpp,h=l.classes,f=this.glyf.getCompressionCode();return s.setUint16(I,C|Q<<9|h<<13|f<<14,!0),I+=2,this.concatArrayBuffers([g,o,e,t,i])}concatArrayBuffers(e){const t=e.reduce((r,g)=>r+g.byteLength,0),i=new ArrayBuffer(t),o=new Uint8Array(i);let n=0;for(const r of e)o.set(new Uint8Array(r),n),n+=r.byteLength;return i}}class $F{constructor(e){this.font=e}kern_ref(){return this.font,{scale:0,dsc:"NULL",classes:0}}}class AS{constructor(e){this.buffer=new Uint8Array(e),this.byteIndex=0,this.bitIndex=0,this.bigEndian=!0}writeBits(e,t){for(;t>0;){const i=Math.min(8-this.bitIndex,t),o=(1<>t-i&o;this.bigEndian?this.buffer[this.byteIndex]|=n<<8-this.bitIndex-i:this.buffer[this.byteIndex]|=n<=8&&(this.byteIndex++,this.bitIndex=0),t-=i}}getUsedBytes(){return this.bitIndex>0?this.byteIndex+1:this.byteIndex}}class eS{constructor(e){this.font=e,this.lv_data=[],this.lv_compiled=!1}pixelsToBpp(e){const t=this.font.opts.bpp;return e.map(i=>i.map(o=>o>>>8-t))}storePixels(e,t){this.getCompressionCode()===0?this.storePixelsRaw(e,t):this.storePixelsCompressed(e,t)}storePixelsRaw(e,t){const i=this.font.opts.bpp;for(let o=0;o{const o=e.glyph_id[i.code],n=this.lv_bitmap(i);this.lv_data[o]={bin:n,offset:t,glyph:i},t+=n.byteLength})}toCBin(){this.lv_compile();const e=this.lv_data.slice(1).filter(r=>r).map(r=>r.bin),t=this.balign4(this.concatArrayBuffers(e)),i=new ArrayBuffer(this.lv_data.length*16+16),o=new DataView(i);let n=1;return this.lv_data.forEach(r=>{if(r){const g=Math.round(r.glyph.advanceWidth*16);o.setUint32(n*16,r.offset,!0),o.setUint32(n*16+4,g,!0),o.setUint16(n*16+8,r.glyph.bbox.width,!0),o.setUint16(n*16+10,r.glyph.bbox.height,!0),o.setInt16(n*16+12,r.glyph.bbox.x,!0),o.setInt16(n*16+14,r.glyph.bbox.y,!0)}n++}),[t,i]}balign4(e){const t=e.byteLength%4;if(t===0)return e;const i=4-t,o=new ArrayBuffer(i);return this.concatArrayBuffers([e,o])}concatArrayBuffers(e){const t=e.reduce((r,g)=>r+g.byteLength,0),i=new ArrayBuffer(t),o=new Uint8Array(i);let n=0;for(const r of e)o.set(new Uint8Array(r),n),n+=r.byteLength;return i}getCompressionCode(){return this.font.opts.no_compress||this.font.opts.bpp===1?0:this.font.opts.no_prefilter?2:1}}class tS{constructor(e){this.font=e,this.lv_compiled=!1,this.lv_subtables=[],this.subtables_plan=null,this.buildGlyphIdMap()}buildGlyphIdMap(){const e=this.font;e.glyph_id={},e.src.glyphs&&e.src.glyphs.forEach((t,i)=>{e.glyph_id[t.code]=i+1})}lv_format2enum(e){switch(e){case"format0_tiny":return"LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY";case"format0":return"LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL";case"sparse_tiny":return"LV_FONT_FMT_TXT_CMAP_SPARSE_TINY";case"sparse":return"LV_FONT_FMT_TXT_CMAP_SPARSE_FULL";default:throw new Error("Unknown subtable format")}}lv_format2int(e){return["format0","sparse","format0_tiny","sparse_tiny"].indexOf(e)}getMapNumber(){if(!this.subtables_plan){const e=this.font;if(!e.src.glyphs||e.src.glyphs.length===0)return 0;this.subtables_plan=Ta(e.src.glyphs.map(t=>t.code))}return this.subtables_plan.length}glyphByCode(e){const t=this.font;return t.src.glyphs?t.src.glyphs.find(i=>i.code===e):null}collect_format0_data(e,t,i){const o=this.font,n=[];for(let r=e;r<=t;r++){const g=o.glyph_id[r]||0;n.push(g?g-i:0)}return n}collect_sparse_data(e,t){const i=this.font;let o=[],n=[];for(let r of e){let g=this.glyphByCode(r),s=i.glyph_id[g.code],a=r-e[0],I=s-t;if(a<0||a>65535)throw new Error("Codepoint delta out of range");if(I<0||I>65535)throw new Error("Glyph ID delta out of range");o.push(a),n.push(I)}return{codes:o,ids:n}}toCBin(e){const t=this.font;if(!t.src.glyphs||t.src.glyphs.length===0)return new ArrayBuffer(0);this.subtables_plan||(this.subtables_plan=Ta(t.src.glyphs.map(l=>l.code)));const i=this.subtables_plan;let o=0;const n=12+e*2+(e==4?0:4),r=new ArrayBuffer(i.length*n),g=new DataView(r),s=e==4?(l,C)=>g.setUint32(C,l,!0):(l,C)=>XF(g,l,C),a=[];let I=r.byteLength;for(let[l,C]of i){let Q=this.glyphByCode(C[0]),h=t.glyph_id[Q.code],f=C[0],u=C[C.length-1],E=!1,D=!1,c=0,d=new ArrayBuffer(0),p=new ArrayBuffer(0);if(l!=="format0_tiny")if(l==="format0"){D=!0;let N=this.collect_format0_data(f,u,h);c=N.length,d=this.balign4(this.uint8ArrayToBuffer(new Uint8Array(N)))}else if(l==="sparse_tiny"){E=!0;let N=this.collect_sparse_data(C,h);c=N.codes.length,p=this.balign4(this.uint16ArrayToBuffer(new Uint16Array(N.codes)))}else{E=!0,D=!0;let N=this.collect_sparse_data(C,h);c=N.codes.length,p=this.balign4(this.uint16ArrayToBuffer(new Uint16Array(N.codes))),d=this.align4(this.uint16ArrayToBuffer(new Uint16Array(N.ids)))}let v=o*n;g.setUint32(v,f,!0),v+=4,g.setUint16(v,u-f+1,!0),v+=2,g.setUint16(v,h,!0),v+=2,s(E?I:0,v),v+=e,I+=p.byteLength,s(D?I:0,v),v+=e,I+=d.byteLength,g.setUint16(v,c,!0),v+=2,g.setUint8(v,this.lv_format2int(l)),v+=1,a.push(p),a.push(d),o++}return this.concatArrayBuffers([r,...a])}balign4(e){const t=e.byteLength%4;if(t===0)return e;const i=4-t,o=new ArrayBuffer(i);return this.concatArrayBuffers([e,o])}align4(e){const t=e.byteLength%4;if(t===0)return e;const i=4-t,o=new ArrayBuffer(i);return this.concatArrayBuffers([e,o])}uint8ArrayToBuffer(e){const t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(e),t}uint16ArrayToBuffer(e){return e.buffer.slice(0,e.byteLength)}concatArrayBuffers(e){const t=e.reduce((r,g)=>r+g.byteLength,0),i=new ArrayBuffer(t),o=new Uint8Array(i);let n=0;for(const r of e)o.set(new Uint8Array(r),n),n+=r.byteLength;return i}}class iS{constructor(e){this.font=e}toCBin(e){return new ArrayBuffer(0)}}function oS(A,e){if(!A.output)throw new yt('Output is required for "cbin" writer');const i=new zF(e,A).toCBin();return{[A.output]:i}}class nS{constructor(){this.initialized=!1,this.supportedFormats=["ttf","woff","woff2","otf"],this.charsetCache=new Map}async initialize(){if(!this.initialized)try{if(typeof Hr>"u")throw new Error("opentype.js not loaded");this.initialized=!0,console.log("BrowserFontConverter 初始化完成")}catch(e){throw console.error("BrowserFontConverter initialization failed:",e),e}}validateFont(e){if(!e)return!1;if(e instanceof File){const t=e.name.toLowerCase(),i=e.type.toLowerCase(),o=this.supportedFormats.some(r=>t.endsWith(`.${r}`)),n=["font/ttf","font/truetype","application/x-font-ttf","font/woff","font/woff2","application/font-woff","font/otf","application/x-font-otf"].some(r=>i.includes(r));return o||n}return e instanceof ArrayBuffer&&e.byteLength>0}async getFontInfo(e){try{let t;if(e instanceof File)t=await e.arrayBuffer();else if(e instanceof ArrayBuffer)t=e;else throw new Error("Unsupported font file type");const i=Hr.parse(t);return{familyName:this.getLocalizedName(i.names.fontFamily)||"Unknown",fullName:this.getLocalizedName(i.names.fullName)||"Unknown",postScriptName:this.getLocalizedName(i.names.postScriptName)||"Unknown",version:this.getLocalizedName(i.names.version)||"Unknown",unitsPerEm:i.unitsPerEm,ascender:i.ascender,descender:i.descender,numGlyphs:i.numGlyphs,supported:!0}}catch(t){return console.error("Failed to get font information:",t),{familyName:"Unknown",supported:!1,error:t.message}}}getLocalizedName(e){return e?e.zh||e["zh-CN"]||e.en||e[Object.keys(e)[0]]:null}async convertToCBIN(e){this.initialized||await this.initialize();const{fontFile:t,fontName:i,fontSize:o=20,bpp:n=4,charset:r="deepseek",symbols:g="",range:s="",compression:a=!1,lcd:I=!1,lcd_v:l=!1,progressCallback:C=null}=e;if(!this.validateFont(t))throw new yt("不支持的字体文件格式");try{C&&C(0,"Starting font processing...");let Q;t instanceof File?Q=await t.arrayBuffer():Q=t,C&&C(10,"Parsing font structure...");const{ranges:h,charSymbols:f}=await this.parseCharacterInputAsync(r,g,s);C&&C(20,"Preparing conversion parameters...");const u={font:[{source_path:i||"custom_font",source_bin:Q,ranges:[{range:h,symbols:f}],autohint_off:!1,autohint_strong:!1}],size:o,bpp:n,lcd:I,lcd_v:l,no_compress:!a,no_kerning:!1,use_color_info:!1,format:"cbin",output:i||"font"};C&&C(30,"Collecting font data...");const E=await WF(u);C&&C(70,"Generating CBIN format...");const D=oS(u,E),c=u.output;return C&&C(100,"Conversion completed!"),D[c]}catch(Q){throw console.error("Font conversion failed:",Q),new yt(`Font conversion failed: ${Q.message}`)}}async parseCharacterInputAsync(e,t,i){let o=[],n=t||"";return e==="full"?(o=[0,65535,0],{ranges:o,charSymbols:n}):(e&&e!=="custom"&&(n=await this.getCharsetContentAsync(e)+n),i&&(o=this.parseUnicodeRange(i)),{ranges:o,charSymbols:n})}parseCharacterInput(e,t,i){let o=[],n=t||"";return e==="full"?(o=[0,65535,0],{ranges:o,charSymbols:n}):(e&&e!=="custom"&&(n=this.getCharsetContent(e)+n),i&&(o=this.parseUnicodeRange(i)),{ranges:o,charSymbols:n})}async loadCharsetFromFile(e){const i={latin:"./static/charsets/latin1.txt",deepseek:"./static/charsets/deepseek.txt",gb2312:"./static/charsets/gb2312.txt",qwen:"./static/charsets/qwen18409.txt"}[e];if(!i)return null;try{const o=await fetch(i);if(!o.ok)throw new Error(`Failed to load charset file: ${o.status}`);const r=(await o.text()).split(` +`).join("");return this.charsetCache.set(e,r),r}catch(o){return console.error(`Failed to load charset ${e}:`,o),null}}getCharsetContent(e){const t={};return(e==="latin"||e==="deepseek"||e==="gb2312")&&this.charsetCache.has(e)?this.charsetCache.get(e):e==="basic"?this.getCharsetContent("latin"):t[e]||""}async getCharsetContentAsync(e){if(e==="basic"&&(e="latin"),this.charsetCache.has(e))return this.charsetCache.get(e);if(e==="latin"||e==="deepseek"||e==="gb2312"||e==="qwen"){const t=await this.loadCharsetFromFile(e);if(t)return t}return this.getCharsetContent(e)}parseUnicodeRange(e){const t=[],i=e.split(",");for(const o of i){const n=o.trim();if(n)if(n.includes("-")){const[r,g]=n.split("-"),s=this.parseHexOrDec(r),a=this.parseHexOrDec(g);s!==null&&a!==null&&t.push(s,a,s)}else{const r=this.parseHexOrDec(n);r!==null&&t.push(r,r,r)}}return t}parseHexOrDec(e){const t=e.trim();if(t.startsWith("0x")||t.startsWith("0X")){const o=parseInt(t,16);return isNaN(o)?null:o}const i=parseInt(t,10);return isNaN(i)?null:i}async estimateSizeAsync(e){const{fontSize:t=20,bpp:i=4,charset:o="latin",symbols:n="",range:r=""}=e;let g=n.length;if(o==="full")g=65536;else if(o&&o!=="custom"){const I=await this.getCharsetContentAsync(o);g+=I.length}if(r){const I=this.parseUnicodeRange(r);for(let l=0;l0}catch(e){return console.error("加载 FST 模型失败",e),!1}}packString(e,t){const i=new Uint8Array(t),o=Math.min(e.length,t);for(let n=0;n>8&255,t[2]=e>>16&255,t[3]=e>>24&255,t}packModels(){if(this.models.size===0)throw new Error("没有模型数据可打包");let e=0;const t=[];for(const[a,I]of Array.from(this.models.entries()).sort((l,C)=>l[0].localeCompare(C[0]))){e+=I.size;const l=Array.from(I.entries()).sort((C,Q)=>C[0].localeCompare(Q[0]));t.push({name:a,files:l})}const i=this.models.size;let o=4;for(const a of t)o+=36,o+=a.files.length*40;const n=o+Array.from(this.models.values()).reduce((a,I)=>a+Array.from(I.values()).reduce((l,C)=>l+C.byteLength,0),0),r=new Uint8Array(n);let g=0;r.set(this.packUint32(i),g),g+=4;let s=o;for(const a of t){r.set(this.packString(a.name,32),g),g+=32,r.set(this.packUint32(a.files.length),g),g+=4;for(const[I,l]of a.files)r.set(this.packString(I,32),g),g+=32,r.set(this.packUint32(s),g),g+=4,r.set(this.packUint32(l.byteLength),g),g+=4,s+=l.byteLength}for(const a of t)for(const[I,l]of a.files)r.set(new Uint8Array(l),g),g+=l.byteLength;return r.buffer}static async getAvailableModels(){try{return{WakeNet9:["wn9_alexa","wn9_astrolabe_tts","wn9_bluechip_tts2","wn9_computer_tts","wn9_haixiaowu_tts","wn9_heyily_tts2","wn9_heyprinter_tts","wn9_heywanda_tts","wn9_heywillow_tts","wn9_hiesp","wn9_hifairy_tts2","wn9_hijason_tts2","wn9_hijolly_tts2","wn9_hijoy_tts","wn9_hilexin","wn9_hilili_tts","wn9_himfive","wn9_himiaomiao_tts","wn9_hitelly_tts","wn9_hiwalle_tts2","wn9_hixiaoxing_tts","wn9_jarvis_tts","wn9_linaiban_tts2","wn9_miaomiaotongxue_tts","wn9_mycroft_tts","wn9_nihaobaiying_tts2","wn9_nihaodongdong_tts2","wn9_nihaomiaoban_tts2","wn9_nihaoxiaoan_tts2","wn9_nihaoxiaoxin_tts","wn9_nihaoxiaoyi_tts2","wn9_nihaoxiaozhi","wn9_nihaoxiaozhi_tts","wn9_sophia_tts","wn9_xiaoaitongxue","wn9_xiaobinxiaobin_tts","wn9_xiaojianxiaojian_tts2","wn9_xiaokangtongxue_tts2","wn9_xiaolongxiaolong_tts","wn9_xiaoluxiaolu_tts2","wn9_xiaomeitongxue_tts","wn9_xiaomingtongxue_tts2","wn9_xiaosurou_tts2","wn9_xiaotexiaote_tts2","wn9_xiaoyaxiaoya_tts2","wn9_xiaoyutongxue_tts2"],WakeNet9s:["wn9s_alexa","wn9s_hiesp","wn9s_hijason","wn9s_hilexin","wn9s_nihaoxiaozhi"]}}catch(e){return console.error("获取模型列表失败:",e),{WakeNet9:[],WakeNet9s:[]}}}static isValidModel(e,t){return t==="esp32c3"||t==="esp32c6"?e.startsWith("wn9s_"):e.startsWith("wn9_")}clear(){this.models.clear()}getStats(){let e=0,t=0;for(const i of this.models.values()){e+=i.size;for(const o of i.values())t+=o.byteLength}return{modelCount:this.models.size,fileCount:e,totalSize:t,models:Array.from(this.models.keys())}}validatePackingCompatibility(){const e="test_model",t=this.packString(e,32),i=305419896,o=this.packUint32(i);return{stringPacking:{input:e,output:Array.from(t).map(n=>`0x${n.toString(16).padStart(2,"0")}`),isASCII:t.every((n,r)=>r>=e.length||n===e.charCodeAt(r))},intPacking:{input:`0x${i.toString(16)}`,output:Array.from(o).map(n=>`0x${n.toString(16).padStart(2,"0")}`),isLittleEndian:o[0]===120&&o[3]===18}}}}class sS{constructor(){this.files=[],this.textEncoder=new TextEncoder}addFile(e,t,i={}){e.length>32&&console.warn(`Filename "${e}" exceeds 32 bytes and will be truncated`),this.files.push({filename:e,data:t,size:t.byteLength,width:i.width||0,height:i.height||0})}async getImageDimensions(e){return new Promise(t=>{try{const i=new Blob([e]),o=URL.createObjectURL(i),n=new Image;n.onload=()=>{URL.revokeObjectURL(o),t({width:n.width,height:n.height})},n.onerror=()=>{URL.revokeObjectURL(o),t({width:0,height:0})},n.src=o}catch{t({width:0,height:0})}})}parseSpecialImageFormat(e,t){const i=e.toLowerCase().split(".").pop();if([".sjpg",".spng",".sqoi"].includes("."+i))try{const o=new DataView(t),n=o.getUint16(14,!0),r=o.getUint16(16,!0);return{width:n,height:r}}catch(o){console.warn(`Failed to parse special image format: ${e}`,o)}return{width:0,height:0}}packUint32(e){const t=new Uint8Array(4);return t[0]=e&255,t[1]=e>>8&255,t[2]=e>>16&255,t[3]=e>>24&255,t}packUint16(e){const t=new Uint8Array(2);return t[0]=e&255,t[1]=e>>8&255,t}packString(e,t){const i=new Uint8Array(t),o=this.textEncoder.encode(e),n=Math.min(o.length,t);return i.set(o.slice(0,n),0),i}computeChecksum(e){let t=0;for(let i=0;i{const o=t.filename.split(".").pop()||"",n=i.filename.split(".").pop()||"";if(o!==n)return o.localeCompare(n);const r=t.filename.replace(/\.[^/.]+$/,""),g=i.filename.replace(/\.[^/.]+$/,"");return r.localeCompare(g)})}async generate(e=null){if(this.files.length===0)throw new Error("No files to package");e&&e(0,"Starting to package files...");const t=this.sortFiles(this.files),i=t.length,o=[];let n=0;for(let D=0;D0||v.height>0)d=v.width,p=v.height;else{const N=c.filename.toLowerCase().split(".").pop();if(["png","jpg","jpeg","gif","bmp","webp"].includes(N)){const G=await this.getImageDimensions(c.data);d=G.width,p=G.height}}}o.push({filename:c.filename,data:c.data,size:c.size,offset:n,width:d,height:p}),n+=2+c.size}e&&e(40,"Building file mapping table...");const r=i*44,g=new Uint8Array(r);let s=0;for(const D of o)g.set(this.packString(D.filename,32),s),s+=32,g.set(this.packUint32(D.size),s),s+=4,g.set(this.packUint32(D.offset),s),s+=4,g.set(this.packUint16(D.width),s),s+=2,g.set(this.packUint16(D.height),s),s+=2;e&&e(60,"Merging file data...");const a=new Uint8Array(n);let I=0;for(let D=0;D0?Math.round(e/this.files.length):0}}printFileList(){if(console.log("=== Packaged File List ==="),console.log(`Total files: ${this.files.length}`),this.files.length===0){console.log("No files available");return}this.sortFiles(this.files).forEach((i,o)=>{var s;const n=((s=i.filename.split(".").pop())==null?void 0:s.toLowerCase())||"unknown",r=(i.size/1024).toFixed(2),g=i.width&&i.height?`${i.width}x${i.height}`:"N/A";console.log(`${String(o+1).padStart(3," ")}. ${i.filename}`),console.log(` Type: ${n.toUpperCase()}`),console.log(` Size: ${r} KB (${i.size} bytes)`),console.log(` Dimensions: ${g}`),console.log("")});const t=this.getStats();console.log("=== File Statistics ==="),console.log(`Total size: ${(t.totalSize/1024).toFixed(2)} KB`),console.log(`Average size: ${(t.averageFileSize/1024).toFixed(2)} KB`),console.log("File type distribution:"),Object.entries(t.fileTypes).forEach(([i,o])=>{console.log(` ${i.toUpperCase()}: ${o} files`)})}clear(){this.files=[]}}let Jo={tool:{workerLocalUrl:`var gifsicle=function(){Me="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,"undefined"!=typeof __filename&&(Me=Me||__filename);var Me,c=function(e){var j,r,h=void 0!==(e=e||{})?e:{},t=(h.ready=new Promise(function(e,r){j=e}),h.preRun=h.preRun||[],h.preRun.push(function(){if(h.folder&&h.folder.length)for(let e=0;e>10,56320|1023&s)))):i+=String.fromCharCode(u)}return i}function W(e,r){return e?g(E,e,r):""}function X(e,r,t,n){if(!(0>6,r[t++]=128|63&s}else if(s<=65535){if(i<=t+2)break;r[t++]=224|s>>12,r[t++]=128|s>>6&63,r[t++]=128|63&s}else{if(i<=t+3)break;r[t++]=240|s>>18,r[t++]=128|s>>12&63,r[t++]=128|s>>6&63,r[t++]=128|63&s}}return r[t]=0,t-o}function G(e){for(var r=0,t=0;t>2]=e}var x={splitPath:function(e){return/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,r){for(var t=0,n=e.length-1;0<=n;n--){var o=e[n];"."===o?e.splice(n,1):".."===o?(e.splice(n,1),t++):t&&(e.splice(n,1),t--)}if(r)for(;t;t--)e.unshift("..");return e},normalize:function(e){var r="/"===e.charAt(0),t="/"===e.substr(-1);return(e=(e=x.normalizeArray(e.split("/").filter(function(e){return!!e}),!r).join("/"))||r?e:".")&&t&&(e+="/"),(r?"/":"")+e},dirname:function(e){var e=x.splitPath(e),r=e[0],e=e[1];return r||e?r+(e=e&&e.substr(0,e.length-1)):"."},basename:function(e){if("/"===e)return"/";var r=e.lastIndexOf("/");return-1===r?e:e.substr(r+1)},extname:function(e){return x.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return x.normalize(e.join("/"))},join2:function(e,r){return x.normalize(e+"/"+r)}},R={resolve:function(){for(var e="",r=!1,t=arguments.length-1;-1<=t&&!r;t--){var n=0<=t?arguments[t]:T.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,r="/"===n.charAt(0)}return(r?"/":"")+(e=x.normalizeArray(e.split("/").filter(function(e){return!!e}),!r).join("/"))||"."},relative:function(e,r){function t(e){for(var r=0;r>>0),0!=t&&(r=Math.max(r,256)),t=e.contents,e.contents=new Uint8Array(r),0r)e.contents.length=r;else for(;e.contents.length=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-o,n);if(8>>0)%T.nameTable.length},hashAddNode:function(e){var r=T.hashName(e.parent.id,e.name);e.name_next=T.nameTable[r],T.nameTable[r]=e},hashRemoveNode:function(e){var r=T.hashName(e.parent.id,e.name);if(T.nameTable[r]===e)T.nameTable[r]=e.name_next;else for(var t=T.nameTable[r];t;){if(t.name_next===e){t.name_next=e.name_next;break}t=t.name_next}},lookupNode:function(e,r){var t=T.mayLookup(e);if(t)throw new T.ErrnoError(t,e);for(var t=T.hashName(e.id,r),n=T.nameTable[t];n;n=n.name_next){var o=n.name;if(n.parent.id===e.id&&o===r)return n}return T.lookup(e,r)},createNode:function(e,r,t,n){e=new T.FSNode(e,r,t,n);return T.hashAddNode(e),e},destroyNode:function(e){T.hashRemoveNode(e)},isRoot:function(e){return e===e.parent},isMountpoint:function(e){return!!e.mounted},isFile:function(e){return 32768==(61440&e)},isDir:function(e){return 16384==(61440&e)},isLink:function(e){return 40960==(61440&e)},isChrdev:function(e){return 8192==(61440&e)},isBlkdev:function(e){return 24576==(61440&e)},isFIFO:function(e){return 4096==(61440&e)},isSocket:function(e){return 49152==(49152&e)},flagModes:{r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(e){var r=T.flagModes[e];if(void 0===r)throw new Error("Unknown file open mode: "+e);return r},flagsToPermissionString:function(e){var r=["r","w","rw"][3&e];return 512&e&&(r+="w"),r},nodePermissions:function(e,r){return T.ignorePermissions||(-1===r.indexOf("r")||292&e.mode)&&(-1===r.indexOf("w")||146&e.mode)&&(-1===r.indexOf("x")||73&e.mode)?0:2},mayLookup:function(e){var r=T.nodePermissions(e,"x");return r||(e.node_ops.lookup?0:2)},mayCreate:function(e,r){try{T.lookupNode(e,r);return 20}catch(e){}return T.nodePermissions(e,"wx")},mayDelete:function(e,r,t){var n;try{n=T.lookupNode(e,r)}catch(e){return e.errno}r=T.nodePermissions(e,"wx");if(r)return r;if(t){if(!T.isDir(n.mode))return 54;if(T.isRoot(n)||T.getPath(n)===T.cwd())return 10}else if(T.isDir(n.mode))return 31;return 0},mayOpen:function(e,r){return e?T.isLink(e.mode)?32:T.isDir(e.mode)&&("r"!==T.flagsToPermissionString(r)||512&r)?31:T.nodePermissions(e,T.flagsToPermissionString(r)):44},MAX_OPEN_FDS:4096,nextfd:function(e,r){r=r||T.MAX_OPEN_FDS;for(var t=e=e||0;t<=r;t++)if(!T.streams[t])return t;throw new T.ErrnoError(33)},getStream:function(e){return T.streams[e]},createStream:function(e,r,t){T.FSStream||(T.FSStream=function(){},T.FSStream.prototype={object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}});var n,o=new T.FSStream;for(n in e)o[n]=e[n];e=o;r=T.nextfd(r,t);return e.fd=r,T.streams[r]=e},closeStream:function(e){T.streams[e]=null},chrdev_stream_ops:{open:function(e){var r=T.getDevice(e.node.rdev);e.stream_ops=r.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new T.ErrnoError(70)}},major:function(e){return e>>8},minor:function(e){return 255&e},makedev:function(e,r){return e<<8|r},registerDevice:function(e,r){T.devices[e]={stream_ops:r}},getDevice:function(e){return T.devices[e]},getMounts:function(e){for(var r=[],t=[e];t.length;){var n=t.pop();r.push(n),t.push.apply(t,n.mounts)}return r},syncfs:function(r,t){"function"==typeof r&&(t=r,r=!1),T.syncFSRequests++,1=n.length&&i(null)}n.forEach(function(e){if(!e.type.syncfs)return a(null);e.type.syncfs(e,r,a)})},mount:function(e,r,t){var n,o="/"===t,i=!t;if(o&&T.root)throw new T.ErrnoError(10);if(!o&&!i){i=T.lookupPath(t,{follow_mount:!1});if(t=i.path,n=i.node,T.isMountpoint(n))throw new T.ErrnoError(10);if(!T.isDir(n.mode))throw new T.ErrnoError(54)}i={type:e,opts:r,mountpoint:t,mounts:[]},r=e.mount(i);return(r.mount=i).root=r,o?T.root=r:n&&(n.mounted=i,n.mount&&n.mount.mounts.push(i)),r},unmount:function(e){e=T.lookupPath(e,{follow_mount:!1});if(!T.isMountpoint(e.node))throw new T.ErrnoError(28);var e=e.node,r=e.mounted,n=T.getMounts(r),r=(Object.keys(T.nameTable).forEach(function(e){for(var r=T.nameTable[e];r;){var t=r.name_next;-1!==n.indexOf(r.mount)&&T.destroyNode(r),r=t}}),e.mounted=null,e.mount.mounts.indexOf(r));e.mount.mounts.splice(r,1)},lookup:function(e,r){return e.node_ops.lookup(e,r)},mknod:function(e,r,t){var n=T.lookupPath(e,{parent:!0}).node,e=x.basename(e);if(!e||"."===e||".."===e)throw new T.ErrnoError(28);var o=T.mayCreate(n,e);if(o)throw new T.ErrnoError(o);if(n.node_ops.mknod)return n.node_ops.mknod(n,e,r,t);throw new T.ErrnoError(63)},create:function(e,r){return T.mknod(e,r=(r=void 0!==r?r:438)&4095|32768,0)},mkdir:function(e,r){return T.mknod(e,r=(r=void 0!==r?r:511)&1023|16384,0)},mkdirTree:function(e,r){for(var t=e.split("/"),n="",o=0;othis.length-1||e<0))return r=e%this.chunkSize,e=e/this.chunkSize|0,this.getter(e)[r]},o.prototype.setDataGetter=function(e){this.getter=e},o.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",a,!1),e.send(null),!(200<=e.status&&e.status<300||304===e.status))throw new Error("Couldn't load "+a+". Status: "+e.status);var r,n=Number(e.getResponseHeader("Content-length")),t=(r=e.getResponseHeader("Accept-Ranges"))&&"bytes"===r,e=(r=e.getResponseHeader("Content-Encoding"))&&"gzip"===r,o=1048576,i=(t||(o=n),this);i.setDataGetter(function(e){var r=e*o,t=(e+1)*o-1,t=Math.min(t,n-1);if(void 0===i.chunks[e]&&(i.chunks[e]=function(e,r){if(r=i.length)return 0;var a=Math.min(i.length-o,n);if(i.slice)for(var s=0;s>2]=n.dev,k[t+4>>2]=0,k[t+8>>2]=n.ino,k[t+12>>2]=n.mode,k[t+16>>2]=n.nlink,k[t+20>>2]=n.uid,k[t+24>>2]=n.gid,k[t+28>>2]=n.rdev,k[t+32>>2]=0,F=[n.size>>>0,(S=n.size,1<=+ne(S)?0>>0:~~+oe((S-(~~S>>>0))/4294967296)>>>0:0)],k[t+40>>2]=F[0],k[t+44>>2]=F[1],k[t+48>>2]=4096,k[t+52>>2]=n.blocks,k[t+56>>2]=n.atime.getTime()/1e3|0,k[t+60>>2]=0,k[t+64>>2]=n.mtime.getTime()/1e3|0,k[t+68>>2]=0,k[t+72>>2]=n.ctime.getTime()/1e3|0,k[t+76>>2]=0,F=[n.ino>>>0,(S=n.ino,1<=+ne(S)?0>>0:~~+oe((S-(~~S>>>0))/4294967296)>>>0:0)],k[t+80>>2]=F[0],k[t+84>>2]=F[1],0},doMsync:function(e,r,t,n,o){e=E.slice(e,e+t);T.msync(r,e,o,t,n)},doMkdir:function(e,r){return"/"===(e=x.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),T.mkdir(e,r,0),0},doMknod:function(e,r,t){switch(61440&r){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return T.mknod(e,r,t),0},doReadlink:function(e,r,t){if(t<=0)return-28;var e=T.readlink(e),n=Math.min(t,G(e)),o=y[r+n];return X(e,E,r,t+1),y[r+n]=o,n},doAccess:function(e,r){if(-8&r)return-28;e=T.lookupPath(e,{follow:!0}).node;if(!e)return-44;var t="";return 4&r&&(t+="r"),2&r&&(t+="w"),1&r&&(t+="x"),t&&T.nodePermissions(e,t)?-2:0},doDup:function(e,r,t){var n=T.getStream(t);return n&&T.close(n),T.open(e,r,0,t,t).fd},doReadv:function(e,r,t,n){for(var o=0,i=0;i>2],s=k[r+(8*i+4)>>2],a=T.read(e,y,a,s,n);if(a<0)return-1;if(o+=a,a>2],s=k[r+(8*i+4)>>2],a=T.write(e,y,a,s,n);if(a<0)return-1;o+=a}return o},varargs:void 0,get:function(){return N.varargs+=4,k[N.varargs-4>>2]},getStr:function(e){return W(e)},getStreamFromFD:function(e){e=T.getStream(e);if(e)return e;throw new T.ErrnoError(8)},get64:function(e,r){return e}};var ge={};function z(){if(!z.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:C||"./this.program"};for(r in ge)e[r]=ge[r];var r,t=[];for(r in e)t.push(r+"="+e[r]);z.strings=t}return z.strings}function ve(e,r,t,n){this.parent=e=e||this,this.mount=e.mount,this.mounted=null,this.id=T.nextInode++,this.name=r,this.mode=t,this.node_ops={},this.stream_ops={},this.rdev=n}function ye(e,r,t){t=0>2]=t/1e3|0,k[r+4>>2]=t%1e3*1e3*1e3|0,0},d:function(e,r,t){N.varargs=t;try{var n=N.getStreamFromFD(e);switch(r){case 0:return(o=N.get())<0?-28:T.open(n.path,n.flags,0,o).fd;case 1:case 2:return 0;case 3:return n.flags;case 4:var o=N.get();return n.flags|=o,0;case 12:o=N.get();return K[o+0>>1]=2,0;case 13:case 14:return 0;case 16:case 8:return-28;case 9:return A(28),-1;default:return-28}}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),-e.errno}},i:function(e,r,t){N.varargs=t;try{var n=N.getStreamFromFD(e);switch(r){case 21509:case 21505:return n.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return n.tty?0:-59;case 21519:if(!n.tty)return-59;var o=N.get();return k[o>>2]=0;case 21520:return n.tty?-28:-59;case 21531:o=N.get();return T.ioctl(n,r,o);case 21523:case 21524:return n.tty?0:-59;default:D("bad ioctl syscall "+r)}}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),-e.errno}},e:function(e,r,t){N.varargs=t;try{var n=N.getStr(e),o=N.get();return T.open(n,r,o).fd}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),-e.errno}},t:function(e){try{return e=N.getStr(e),T.rmdir(e),0}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),-e.errno}},j:function(e){try{var r=N.umask;return N.umask=e,r}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),-e.errno}},u:function(e){try{return e=N.getStr(e),T.unlink(e),0}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),-e.errno}},v:function(e,r,t,n){try{D("cannot wait on child processes")}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),-e.errno}},n:function(e,r,t){E.copyWithin(e,r,r+t)},b:function(e){var r=E.length,t=2147483648;if(t<(e>>>=0))return!1;for(var n,o=1;o<=4;o*=2){var i=r*(1+.2/o),i=Math.min(i,e+100663296);if(function(e){try{return p.grow(e-v.byteLength+65535>>>16),Y(p.buffer),1}catch(e){}}(Math.min(t,(0<(i=Math.max(16777216,e,i))%(n=65536)&&(i+=n-i%n),i))))return!0}return!1},p:function(a,s){var u=0;return z().forEach(function(e,r){for(var t=s+u,n=(k[a+4*r>>2]=t,e),o=t,r=void 0,i=0;i>0]=n.charCodeAt(i);r||(y[o>>0]=0),u+=e.length+1}),0},q:function(e,r){var t=z(),n=(k[e>>2]=t.length,0);return t.forEach(function(e){n+=e.length+1}),k[r>>2]=n,0},c:function(e){xe(e)},f:function(e){try{var r=N.getStreamFromFD(e);return T.close(r),0}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),e.errno}},r:function(e,r){try{var t=N.getStreamFromFD(e),n=t.tty?2:T.isDir(t.mode)?3:T.isLink(t.mode)?7:4;return y[r>>0]=n,0}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),e.errno}},h:function(e,r,t,n){try{var o=N.getStreamFromFD(e),i=N.doReadv(o,r,t);return k[n>>2]=i,0}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),e.errno}},m:function(e,r,t,n,o){try{var i=N.getStreamFromFD(e),a=4294967296*t+(r>>>0),s=9007199254740992;return a<=-s||s<=a?-61:(T.llseek(i,a,n),F=[i.position>>>0,(S=i.position,1<=+ne(S)?0>>0:~~+oe((S-(~~S>>>0))/4294967296)>>>0:0)],k[o>>2]=F[0],k[o+4>>2]=F[1],i.getdents&&0==a&&0===n&&(i.getdents=null),0)}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),e.errno}},g:function(e,r,t,n){try{var o=N.getStreamFromFD(e),i=N.doWritev(o,r,t);return k[n>>2]=i,0}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),e.errno}},memory:p,o:function(){w("missing function: popen"),D(-1)},l:function(){return 6},k:function(){},table:I},_e=(!function(){var r={a:ke};function t(e,r){e=e.exports;h.asm=e,ue()}function n(e){t(e.instance)}function o(e){return(l||!L&&!c||"function"!=typeof fetch||de(P)?new Promise(function(e,r){e(pe())}):fetch(P,{credentials:"same-origin"}).then(function(e){if(e.ok)return e.arrayBuffer();throw"failed to load wasm binary file at '"+P+"'"}).catch(pe)).then(function(e){return WebAssembly.instantiate(e,r)}).then(e,function(e){w("failed to asynchronously prepare wasm: "+e),D(e)})}if(se(),h.instantiateWasm)try{h.instantiateWasm(r,t);return}catch(e){return w("Module.instantiateWasm callback failed with error: "+e)}l||"function"!=typeof WebAssembly.instantiateStreaming||ce(P,fe)||de(P)||"function"!=typeof fetch?o(n):fetch(P,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,r).then(n,function(e){return w("wasm streaming compile failed: "+e),w("falling back to ArrayBuffer instantiation"),o(n)})})}(),h.___wasm_call_ctors=function(){return(_e=h.___wasm_call_ctors=h.asm.w).apply(null,arguments)}),be=h._malloc=function(){return(be=h._malloc=h.asm.x).apply(null,arguments)},De=h.___errno_location=function(){return(De=h.___errno_location=h.asm.y).apply(null,arguments)},Se=(h._main=function(){return(h._main=h.asm.z).apply(null,arguments)},h.stackAlloc=function(){return(Se=h.stackAlloc=h.asm.A).apply(null,arguments)});function Fe(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function Pe(r){var t=h._main;r=r||[];try{for(let e=0;e>2]=V(C);for(var n=1;n>2)+n]=V(e[n-1]);return k[(t>>2)+r]=0,{argc:r,argv:t}}(s.split(" ").filter(e=>Boolean(e)));if(0!==(n=t(o,i)))break}xe(n,!0)}catch(e){if(e instanceof Fe)return;if("unwind"==e)return void(d=!0);var a=e;e&&"object"==typeof e&&e.stack&&(a=[e,e.stack]),w("exception thrown: "+a),u(1,e)}}function Ae(e){function r(){Ee||(Ee=!0,h.calledRun=!0,U||(h.noFSInit||T.init.initialized||T.init(),Z(J),T.ignorePermissions=!1,Z(Q),j(h),h.onRuntimeInitialized&&h.onRuntimeInitialized(),Re&&Pe(e),te()))}e=e||a,0<_||(re(),0<_||(h.setStatus?(h.setStatus("Running..."),setTimeout(function(){setTimeout(function(){h.setStatus("")},1),r()},1)):r()))}function xe(e,r){r&&d&&0===e||(d||(U=!0,h.onExit&&h.onExit(e)),u(e,new Fe(e)))}if(h.dynCall_vi=function(){return(h.dynCall_vi=h.asm.B).apply(null,arguments)},b=function e(){Ee||Ae(),Ee||(b=e)},h.run=Ae,h.preInit)for("function"==typeof h.preInit&&(h.preInit=[h.preInit]);0{0{t+=String.fromCharCode(e),10===e&&(console.error(t),t="")},stdout:e=>{r+=String.fromCharCode(e),10===e&&(console.log(r),r="")}};const l=[];return async(e={})=>{let{data:i=null,command:a=[],folder:s=[],isStrict:u=!1}=e;return await new Promise(e=>{l.push(e),1===l.length&&l[0]()}),new Promise((r,t)=>{let n=!1,o="";c({stdout:f.stdout,stderr:e=>{o+=String.fromCharCode(e),10===e&&(console.error(o),u&&t(o))},arguments:a,input:i,folder:s,output:e=>{r(e),n=!0}}).then(()=>{(0,f.flush)(),n||t(),0{var e=await gifsicle(r.data).catch(e=>{postMessage(e)});postMessage(e)})().catch(e=>{postMessage(null)})};`,workerBlobUrl:"",worker(){return this.workerBlobUrl||(this.workerLocalUrl?this.workerBlobUrl=URL.createObjectURL(new Blob([this.workerLocalUrl])):this.workerBlobUrl="../src/worker.js",this.workerBlobUrl)},errorLink(){return` + Check: https://github.com/renzhezhilu/gifsicle-wasm-browser`},testType(A){return A instanceof Element?"element":Object.prototype.toString.call(A).replace(/\[object\s(.+)\]/,"$1").toLowerCase()},async textToUrl(A){return this.worker()},loadCommand(A){var e=this.testType(A);if(A.length===0)throw" the content can not be blank"+this.errorLink();if(e==="array")return A.map(t=>t.replace(/\n/gi," "));throw" types:"+e+", must be an array"+this.errorLink()},loadOne(A){return new Promise(async(e,t)=>{var i=this.testType(A);if(["string"].includes(i))fetch(A).then(o=>{if(o.status!==200)throw"<"+A+"> Url error!!!"+this.errorLink();return o.arrayBuffer()}).then(o=>e(o));else if(["blob","file"].includes(i))new Response(A).arrayBuffer().then(o=>e(o));else{if(!["arraybuffer"].includes(i))throw" types:"+i+", only supports Url, blob, file, arraybuffer"+this.errorLink();e(A)}})},loadFile(A){return new Promise(async(e,t)=>{var i=this.testType(A);if(i!=="array")throw" types:"+i+", only supports Array"+this.errorLink();if(A.length===0)throw" the content can not be blank"+this.errorLink();i=A.map(o=>this.loadOne(o.file)),Promise.all(i).then(function(o){var n=A.map((r,g)=>(r.file=o[g],r));e(n)}).catch(function(o){})})},loadFolder(A){return new Promise(async(e,t)=>{var i=this.testType(A);if(!["array"].includes(i))throw" types:"+i+", only supports Array"+this.errorLink();e(A)})}},run(A={}){return new Promise(async(e,t)=>{let{input:i=[],command:o="",folder:n=[],isStrict:r=!1,start:g=Q=>{}}=A;var s=await this.tool.textToUrl();let a=new Worker(s);var I=this.tool.loadCommand(o),l=await this.tool.loadFile(i),C=(g(l),await this.tool.loadFolder(n));a.postMessage({data:l,command:I,folder:C,isStrict:r}),a.onmessage=async function(Q){if(!Q.data||typeof Q.data=="string")return a.terminate(),void t(Q.data);let h=[];for(let u=0;u=0&&I.push(`--loopcount=${s}`),g&&g>0&&I.push(`--lossy=${g}`),r&&I.push(`-O${this.optimizationLevel}`),I.push("1.gif"),I.push("-o /out/output.gif");const l=I.join(" ");this.debug&&(console.log("GIF 缩放命令:",l),console.log("输入文件大小:",e.size||"未知"));const C=await Jo.run({input:[{file:e,name:"1.gif"}],command:[l]});if(!C||C.length===0)throw new Error("gifsicle 处理失败,未返回结果");const Q=C[0];if(this.debug&&(console.log("GIF 缩放完成"),console.log("输出文件大小:",Q.size),e.size)){const h=((1-Q.size/e.size)*100).toFixed(2);console.log(`压缩率: ${h}%`)}return new Blob([Q],{type:"image/gif"})}catch(a){throw console.error("GIF 缩放失败:",a),new Error(`GIF 缩放失败: ${a.message}`)}}async scaleGifBatch(e){const t=[];for(let i=0;i=0&&r.push(`--loopcount=${n}`),i&&i>0&&r.push(`--lossy=${i}`),r.push(`-O${o}`),r.push("1.gif"),r.push("-o /out/output.gif");const g=r.join(" ");this.debug&&console.log("GIF 优化命令:",g);const s=await Jo.run({input:[{file:e,name:"1.gif"}],command:[g]});if(!s||s.length===0)throw new Error("gifsicle 优化失败");return new Blob([s[0]],{type:"image/gif"})}catch(r){throw console.error("GIF 优化失败:",r),new Error(`GIF 优化失败: ${r.message}`)}}async getGifInfo(e){try{const t=await Jo.run({input:[{file:e,name:"1.gif"}],command:["--info 1.gif -o /out/info.txt"]});if(!t||t.length===0)throw new Error("无法获取 GIF 信息");const o=await t[0].text();return this.parseGifInfo(o)}catch(t){return console.error("获取 GIF 信息失败:",t),{size:e.size||0,type:"image/gif"}}}parseGifInfo(e){const t={frames:0,width:0,height:0,colors:0,loopCount:0};try{const i=e.match(/(\d+) images?/);i&&(t.frames=parseInt(i[1]));const o=e.match(/logical screen (\d+)x(\d+)/);o&&(t.width=parseInt(o[1]),t.height=parseInt(o[2]));const n=e.match(/(\d+) colors/);if(n&&(t.colors=parseInt(n[1])),e.includes("loop forever"))t.loopCount=0;else{const r=e.match(/loop count (\d+)/);r&&(t.loopCount=parseInt(r[1]))}}catch(i){console.warn("解析 GIF 信息时出错:",i)}return t}async cropGif(e,t){const{x:i,y:o,width:n,height:r}=t;try{const g=["-U",`--crop ${i},${o}+${n}x${r}`,"1.gif","-o /out/output.gif"].join(" ");this.debug&&console.log("GIF 裁剪命令:",g);const s=await Jo.run({input:[{file:e,name:"1.gif"}],command:[g]});if(!s||s.length===0)throw new Error("gifsicle 裁剪失败");return new Blob([s[0]],{type:"image/gif"})}catch(g){throw console.error("GIF 裁剪失败:",g),new Error(`GIF 裁剪失败: ${g.message}`)}}dispose(){this.debug&&console.log("WasmGifScaler disposed")}setDebug(e){this.debug=e}setQuality(e){if(e<1||e>200)throw new Error("质量参数必须在 1-200 之间");this.quality=e}setOptimizationLevel(e){if(e<1||e>3)throw new Error("优化级别必须在 1-3 之间");this.optimizationLevel=e}}class _l{constructor(){this.config=null,this.resources=new Map,this.tempFiles=[],this.fontConverterBrowser=rS,this.convertedFonts=new Map,this.wakenetPacker=new gS,this.spiffsGenerator=new sS,this.gifScaler=new aS({quality:30,debug:!0,scalingMode:"auto",optimize:!0,optimizationLevel:2}),this.configStorage=Qe,this.autoSaveEnabled=!0}setConfig(e,t={}){if(((t==null?void 0:t.strict)??!0)&&!this.validateConfig(e))throw new Error("Configuration object validation failed");return this.config={...e},this}validateConfig(e){var o,n,r;if(!e)return!1;if(!((o=e.chip)!=null&&o.model))return console.error("Missing chip model configuration"),!1;const t=e.chip.display;if(!(t!=null&&t.width)||!(t!=null&&t.height))return console.error("Missing display resolution configuration"),!1;const i=(n=e.theme)==null?void 0:n.font;return(i==null?void 0:i.type)==="preset"&&!i.preset?(console.error("Preset font configuration is incomplete"),!1):(i==null?void 0:i.type)==="custom"&&!((r=i.custom)!=null&&r.file)?(console.error("Custom font file not provided"),!1):!0}addResource(e,t,i,o="other"){return this.resources.set(e,{file:t,filename:i,size:t.size,type:t.type,lastModified:t.lastModified||Date.now(),resourceType:o}),this.autoSaveEnabled&&t instanceof File&&this.saveFileToStorage(e,t,o).catch(n=>{console.warn(`Auto-saving file ${i} failed:`,n)}),this}async saveFileToStorage(e,t,i){try{await this.configStorage.saveFile(e,t,i),console.log(`File ${t.name} auto-saved to storage`)}catch(o){throw console.error(`Failed to save file to storage: ${t.name}`,o),o}}async restoreResourceFromStorage(e){try{const t=await this.configStorage.loadFile(e);return t?(this.resources.set(e,{file:t,filename:t.name,size:t.size,type:t.type,lastModified:t.lastModified,resourceType:t.storedType,fromStorage:!0}),console.log(`Resource ${e} restored from storage successfully: ${t.name}`),!0):!1}catch(t){return console.error(`Failed to restore resource from storage: ${e}`,t),!1}}async restoreAllResourcesFromStorage(e){var i,o,n,r,g,s,a,I,l,C,Q;if(!e)return;const t=[];if((o=(i=e.theme)==null?void 0:i.font)!=null&&o.custom&&((n=e.theme.font.custom)==null?void 0:n.file)===null){const h="custom_font";if(await this.restoreResourceFromStorage(h)){const f=this.resources.get(h);f&&(e.theme.font.custom.file=f.file,t.push(`Custom font: ${f.filename}`),console.log(`Custom font restored even when type is '${e.theme.font.type}'`))}}if(((g=(r=e.theme)==null?void 0:r.emoji)==null?void 0:g.type)==="custom"&&e.theme.emoji.custom){const h=e.theme.emoji.custom,f=h.emotionMap||{},u=h.fileMap||{},E=h.images||{};if(Object.keys(f).length>0||Object.keys(u).length>0){const D=new Set;for(const c of Object.keys(u))u[c]===null&&D.add(c);for(const c of D){let d=`hash_${c}`,p=await this.restoreResourceFromStorage(d);if(!p){const v=`emoji_hash_${c}`;p=await this.restoreResourceFromStorage(v),p&&(d=v)}if(p){const v=this.resources.get(d);if(v){u[c]=v.file;const N=Object.entries(f).filter(([G,H])=>H===c).map(([G,H])=>G);N.forEach(G=>{E[G]=v.file}),t.push(`Emoji file ${c.substring(0,8)}... (used for: ${N.join(", ")})`)}}}Object.keys(u).forEach(c=>{e.theme.emoji.custom.fileMap[c]=u[c]}),Object.keys(E).forEach(c=>{e.theme.emoji.custom.images[c]=E[c]})}else{for(const[D,c]of Object.entries(E))if(c===null){const d=`emoji_${D}`;if(await this.restoreResourceFromStorage(d)){const p=this.resources.get(d);p&&(E[D]=p.file,t.push(`Emoji ${D}: ${p.filename}`))}}e.theme.emoji.custom.images=E}}if(((I=(a=(s=e.theme)==null?void 0:s.skin)==null?void 0:a.light)==null?void 0:I.backgroundType)==="image"&&e.theme.skin.light.backgroundImage===null){const h="background_light";if(await this.restoreResourceFromStorage(h)){const f=this.resources.get(h);f&&(e.theme.skin.light.backgroundImage=f.file,t.push(`Light background: ${f.filename}`))}}if(((Q=(C=(l=e.theme)==null?void 0:l.skin)==null?void 0:C.dark)==null?void 0:Q.backgroundType)==="image"&&e.theme.skin.dark.backgroundImage===null){const h="background_dark";if(await this.restoreResourceFromStorage(h)){const f=this.resources.get(h);f&&(e.theme.skin.dark.backgroundImage=f.file,t.push(`Dark background: ${f.filename}`))}}try{const h=this.getFontInfo();if(h&&h.type==="custom"){const f=`converted_font_${h.filename}`,u=await this.configStorage.loadTempData(f);u&&(this.convertedFonts.set(h.filename,u.data),console.log(`Converted font data restored: ${h.filename}`))}}catch(h){console.warn("Error restoring converted font data:",h)}t.length>0&&console.log("Files restored from storage:",t)}getWakewordModelInfo(){if(!this.config||!this.config.chip||!this.config.theme)return null;const e=this.config.chip.model,t=this.config.theme.wakeword;return!t||t.type==="none"?null:t.type==="preset"?{type:e==="esp32c3"||e==="esp32c6"?"WakeNet9s":"WakeNet9",name:t.preset,filename:"srmodels.bin"}:t.type==="custom"?{type:"MultiNet",name:t.custom.model,filename:"srmodels.bin",custom:t.custom}:null}getFontInfo(){if(!this.config||!this.config.theme||!this.config.theme.font)return null;const e=this.config.theme.font;if(e.type==="preset")return{type:"preset",filename:`${e.preset}.bin`,source:e.preset};if(e.type==="custom"&&e.custom.file){const t=e.custom;return{type:"custom",filename:`font_custom_${t.size}_${t.bpp}.bin`,source:e.custom.file,config:{size:t.size,bpp:t.bpp,charset:t.charset}}}return null}async getEmojiCollectionInfo(){if(!this.config||!this.config.theme||!this.config.theme.emoji)return[];const e=this.config.theme.emoji,t=[];if(e.type==="preset"){const i=["neutral","happy","laughing","funny","sad","angry","crying","loving","embarrassed","surprised","shocked","thinking","winking","cool","relaxed","delicious","kissy","confident","sleepy","silly","confused"],o=e.preset==="twemoji32"?"32":"64";i.forEach(n=>{t.push({name:n,file:`${n}.png`,source:`preset:${e.preset}`,size:{width:parseInt(o),height:parseInt(o)}})})}else if(e.type==="custom"){e.custom.images;const i=e.custom.emotionMap||{},o=e.custom.fileMap||{},n=e.custom.size||{width:64,height:64};if(Object.keys(i).length===0||Object.keys(o).length===0)throw console.error("❌ Error: Detected old version of emoji data structure"),console.error("Please clear browser cache or reset configuration, then re-upload emoji images"),new Error("Incompatible emoji data structure: Missing fileMap or emotionMap. Please reconfigure emojis.");const r=new Map;for(const[g,s]of Object.entries(i)){let a=o[s];if(a||(console.log(`Restoring emoji file from storage: ${g} (hash: ${s.substring(0,8)})`),a=await si.restoreEmojiFile(`hash_${s}`)),a){if(!r.has(s)){const l=a.name?a.name.split(".").pop().toLowerCase():"png",C=`emoji_${s.substring(0,8)}.${l}`;r.set(s,C)}const I=r.get(s);t.push({name:g,file:I,source:a,fileHash:s,size:{...n}})}else console.warn(`Failed to restore emoji file: ${g} (hash: ${s.substring(0,8)})`)}console.log(`Emoji deduplication: ${Object.keys(i).length} emojis using ${r.size} different image files`),t.find(g=>g.name==="neutral")||console.warn("Warning: neutral emoji not provided, default image will be used")}return t}getSkinInfo(){if(!this.config||!this.config.theme||!this.config.theme.skin)return{};const e=this.config.theme.skin,t={};return e.light&&(t.light={text_color:e.light.textColor||"#000000",background_color:e.light.backgroundColor||"#ffffff"},e.light.backgroundType==="image"&&e.light.backgroundImage&&(t.light.background_image="background_light.raw")),e.dark&&(t.dark={text_color:e.dark.textColor||"#ffffff",background_color:e.dark.backgroundColor||"#121212"},e.dark.backgroundType==="image"&&e.dark.backgroundImage&&(t.dark.background_image="background_dark.raw")),t}async generateIndexJson(){if(!this.config)throw new Error("Configuration object not set");const e={version:1,chip_model:this.config.chip.model,hide_subtitle:this.config.theme.font.hide_subtitle||!1,display_config:{width:this.config.chip.display.width,height:this.config.chip.display.height,monochrome:!1,color:this.config.chip.display.color||"RGB565"}},t=this.getWakewordModelInfo();if(t&&(e.srmodels=t.filename,t.type==="MultiNet"&&t.custom)){const r=t.custom;e.multinet_model={language:r.model.includes("_en")?"en":"cn",duration:r.duration||3e3,threshold:r.threshold/100,commands:[{command:r.command,text:r.name,action:"wake"}]}}const i=this.getFontInfo();i&&(e.text_font=i.filename);const o=this.getSkinInfo();Object.keys(o).length>0&&(e.skin=o);const n=await this.getEmojiCollectionInfo();return n.length>0&&(e.emoji_collection=n.map(r=>({name:r.name,file:r.file}))),e}async preparePackageResources(){var g,s,a,I;const e={files:[],indexJson:await this.generateIndexJson(),config:{...this.config}},t=this.getWakewordModelInfo();t&&t.name&&e.files.push({type:"wakeword",name:t.name,filename:t.filename,modelType:t.type,isCustom:t.type==="MultiNet"});const i=this.getFontInfo();i&&e.files.push({type:"font",filename:i.filename,source:i.source,config:i.config||null});const o=await this.getEmojiCollectionInfo(),n=new Set;o.forEach(l=>{if(l.fileHash){if(n.has(l.fileHash)){console.log(`Skipping duplicate file: ${l.name} -> ${l.file} (hash: ${l.fileHash.substring(0,8)})`);return}n.add(l.fileHash)}e.files.push({type:"emoji",name:l.name,filename:l.file,source:l.source,size:l.size,fileHash:l.fileHash})});const r=(s=(g=this.config)==null?void 0:g.theme)==null?void 0:s.skin;return((a=r==null?void 0:r.light)==null?void 0:a.backgroundType)==="image"&&r.light.backgroundImage&&e.files.push({type:"background",filename:"background_light.raw",source:r.light.backgroundImage,mode:"light"}),((I=r==null?void 0:r.dark)==null?void 0:I.backgroundType)==="image"&&r.dark.backgroundImage&&e.files.push({type:"background",filename:"background_dark.raw",source:r.dark.backgroundImage,mode:"dark"}),e}async preprocessCustomFonts(e=null){const t=this.getFontInfo();if(t&&t.type==="custom"&&!this.convertedFonts.has(t.filename)){e&&e(20,"Converting custom font...");try{const i={fontFile:t.source,fontName:t.filename.replace(/\.bin$/,""),fontSize:t.config.size,bpp:t.config.bpp,charset:t.config.charset,symbols:t.config.symbols||"",range:t.config.range||"",compression:!1,progressCallback:(n,r)=>{e&&e(20+n*.2,`Font conversion: ${r}`)}};let o;if(await this.fontConverterBrowser.initialize(),o=await this.fontConverterBrowser.convertToCBIN(i),this.convertedFonts.set(t.filename,o),this.autoSaveEnabled){const n=`converted_font_${t.filename}`;try{await this.configStorage.saveTempData(n,o,"converted_font",{filename:t.filename,size:t.config.size,bpp:t.config.bpp,charset:t.config.charset}),console.log(`Converted font saved to storage: ${t.filename}`)}catch(r){console.warn(`Failed to save converted font: ${t.filename}`,r)}}}catch(i){throw console.error("Font conversion failed:",i),new Error(`Font conversion failed: ${i.message}`)}}}async generateAssetsBin(e=null){if(!this.config)throw new Error("Configuration object not set");try{e&&e(0,"Starting generation..."),await this.preprocessCustomFonts(e),await new Promise(o=>setTimeout(o,100)),e&&e(40,"Preparing resource files...");const t=await this.preparePackageResources();this.wakenetPacker.clear(),this.spiffsGenerator.clear(),await this.processResourceFiles(t,e),await new Promise(o=>setTimeout(o,100)),e&&e(90,"Generating final file..."),this.spiffsGenerator.printFileList();const i=await this.spiffsGenerator.generate((o,n)=>{e&&e(90+o*.1,n)});return e&&e(100,"Generation completed"),new Blob([i],{type:"application/octet-stream"})}catch(t){throw console.error("Failed to generate assets.bin:",t),t}}downloadAssetsBin(e,t="assets.bin"){const i=URL.createObjectURL(e),o=document.createElement("a");o.href=i,o.download=t,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(i)}async getFontInfoWithDetails(e=null){var t,i,o,n;try{const r=e||((n=(o=(i=(t=this.config)==null?void 0:t.theme)==null?void 0:i.font)==null?void 0:o.custom)==null?void 0:n.file);if(!r)return null;let g;return await this.fontConverterBrowser.initialize(),g=await this.fontConverterBrowser.getFontInfo(r),{...g,file:r,isCustom:!0}}catch(r){return console.error("Failed to get font details:",r),null}}async estimateFontSize(e=null){var t,i,o;try{const n=e||((o=(i=(t=this.config)==null?void 0:t.theme)==null?void 0:i.font)==null?void 0:o.custom);if(!n)return null;const r={fontSize:n.size,bpp:n.bpp,charset:n.charset,symbols:n.symbols||"",range:n.range||""};let g;return g=this.fontConverterBrowser.estimateSize(r),g}catch(n){return console.error("Failed to estimate font size:",n),null}}validateCustomFont(e){const t=[],i=[];return e.file?this.fontConverterBrowser.validateFont(e.file)||t.push("Font file format not supported"):t.push("Missing font file"),(e.size<8||e.size>80)&&t.push("Font size must be between 8-80"),[1,2,4,8].includes(e.bpp)||t.push("BPP must be 1, 2, 4 or 8"),!e.charset&&!e.symbols&&!e.range&&i.push("No charset, symbols or range specified, default charset will be used"),{valid:t.length===0,errors:t,warnings:i}}getConverterStatus(){return{initialized:this.fontConverterBrowser.initialized,supportedFormats:this.fontConverterBrowser.supportedFormats}}async processResourceFiles(e,t=null){let i=0;const o=e.files.length,n=new TextEncoder().encode(JSON.stringify(e.indexJson,null,2));console.log("index.json",e.indexJson),this.spiffsGenerator.addFile("index.json",n.buffer);for(const r of e.files){const g=40+i/o*40;t&&t(g,`Processing file: ${r.filename}`);try{await this.processResourceFile(r),i++}catch(s){throw console.error(`Failed to process resource file: ${r.filename}`,s),new Error(`Failed to process resource file: ${r.filename} - ${s.message}`)}}}async processResourceFile(e){switch(e.type){case"wakeword":await this.processWakewordModel(e);break;case"font":await this.processFontFile(e);break;case"emoji":await this.processEmojiFile(e);break;case"background":await this.processBackgroundFile(e);break;default:console.warn(`Unknown resource type: ${e.type}`)}}async processWakewordModel(e){if(!await this.wakenetPacker.loadModelFromShare(e.name))throw new Error(`Failed to load wakeword model: ${e.name}`);const i=this.wakenetPacker.packModels();this.spiffsGenerator.addFile(e.filename,i)}async processFontFile(e){if(e.config){const t=this.convertedFonts.get(e.filename);if(t)this.spiffsGenerator.addFile(e.filename,t);else throw new Error(`Converted font not found: ${e.filename}`)}else{const t=await this.loadPresetFont(e.source);this.spiffsGenerator.addFile(e.filename,t)}}async processEmojiFile(e){var r,g;let t,i=!1,o="png",n=!1;if(typeof e.source=="string"&&e.source.startsWith("preset:")){const s=e.source.replace("preset:","");t=await this.loadPresetEmoji(s,e.name)}else{const s=e.source;n=this.isGifFile(s),o=s.name.split(".").pop().toLowerCase();try{const I=await this.getImageDimensions(s),l=e.size||{width:64,height:64};(I.width>l.width||I.height>l.height)&&(i=!0,console.log(`Emoji ${e.name} needs scaling: ${I.width}x${I.height} -> ${l.width}x${l.height}`))}catch(I){console.warn(`Failed to get emoji image dimensions: ${e.name}`,I)}i||(t=await this.fileToArrayBuffer(s))}if(i)try{const s=e.size||{width:64,height:64};if(n){console.log(`Using WasmGifScaler to process GIF emoji: ${e.name}`);const a=await this.gifScaler.scaleGif(e.source,{maxWidth:s.width,maxHeight:s.height,keepAspectRatio:!0,lossy:30});t=await this.fileToArrayBuffer(a)}else t=await this.scaleImageToFit(e.source,s,o)}catch(s){console.error(`Failed to scale emoji image: ${e.name}`,s),t=await this.fileToArrayBuffer(e.source)}this.spiffsGenerator.addFile(e.filename,t,{width:((r=e.size)==null?void 0:r.width)||0,height:((g=e.size)==null?void 0:g.height)||0}),e.fileHash&&console.log(`Emoji file added: ${e.filename} (hash: ${e.fileHash.substring(0,8)})`)}async processBackgroundFile(e){const t=await this.fileToArrayBuffer(e.source),i=await this.convertImageToRgb565(t);this.spiffsGenerator.addFile(e.filename,i)}async loadPresetFont(e){try{const t=await fetch(`./static/fonts/${e}.bin`);if(!t.ok)throw new Error(`HTTP ${t.status}`);return await t.arrayBuffer()}catch(t){throw new Error(`Failed to load preset font: ${e} - ${t.message}`)}}async loadPresetEmoji(e,t){try{const i=await fetch(`./static/${e}/${t}.png`);if(!i.ok)throw new Error(`HTTP ${i.status}`);return await i.arrayBuffer()}catch(i){throw new Error(`Failed to load preset emoji: ${e}/${t} - ${i.message}`)}}fileToArrayBuffer(e){return new Promise((t,i)=>{const o=new FileReader;o.onload=()=>t(o.result),o.onerror=()=>i(new Error("Failed to read file")),o.readAsArrayBuffer(e)})}async scaleImageToFit(e,t,i="png"){return new Promise((o,n)=>{const r=e instanceof File?e:new Blob([e]),g=URL.createObjectURL(r),s=new Image;s.onload=()=>{try{const a=document.createElement("canvas"),I=a.getContext("2d");a.width=t.width,a.height=t.height;const l=s.width/s.height,C=t.width/t.height;let Q,h,f,u;l>C?(Q=t.width,h=t.width/l,f=0,u=(t.height-h)/2):(h=t.height,Q=t.height*l,f=(t.width-Q)/2,u=0),i==="png"?I.clearRect(0,0,a.width,a.height):(I.fillStyle="#FFFFFF",I.fillRect(0,0,a.width,a.height)),I.drawImage(s,f,u,Q,h),a.toBlob(E=>{const D=new FileReader;D.onload=()=>o(D.result),D.onerror=()=>n(new Error("Failed to convert image data")),D.readAsArrayBuffer(E)},`image/${i}`),URL.revokeObjectURL(g)}catch(a){URL.revokeObjectURL(g),n(a)}},s.onerror=()=>{URL.revokeObjectURL(g),n(new Error("Unable to load image"))},s.src=g})}isGifFile(e){return e.type==="image/gif"?!0:e.name.split(".").pop().toLowerCase()==="gif"}async getImageDimensions(e){return new Promise((t,i)=>{const o=e instanceof File?e:new Blob([e]),n=URL.createObjectURL(o),r=new Image;r.onload=()=>{URL.revokeObjectURL(n),t({width:r.width,height:r.height})},r.onerror=()=>{URL.revokeObjectURL(n),i(new Error("Unable to get image dimensions"))},r.src=n})}async convertImageToRgb565(e){return new Promise((t,i)=>{const o=new Blob([e]),n=URL.createObjectURL(o),r=new Image;r.onload=()=>{var g,s,a,I,l,C;try{const Q=document.createElement("canvas"),h=Q.getContext("2d",{willReadFrequently:!0});Q.width=((a=(s=(g=this.config)==null?void 0:g.chip)==null?void 0:s.display)==null?void 0:a.width)||320,Q.height=((C=(l=(I=this.config)==null?void 0:I.chip)==null?void 0:l.display)==null?void 0:C.height)||240;const f=r.width/r.height,u=Q.width/Q.height;let E,D,c,d;f>u?(D=Q.height,E=Q.height*f,c=(Q.width-E)/2,d=0):(E=Q.width,D=Q.width/f,c=0,d=(Q.height-D)/2),h.drawImage(r,c,d,E,D);const v=h.getImageData(0,0,Q.width,Q.height).data,N=new ArrayBuffer(Q.width*Q.height*2),G=new Uint16Array(N);for(let W=0;W>3,DA=v[W+1]>>2,NA=v[W+2]>>3;G[W/4]=z<<11|DA<<5|NA}const H=25,S=18,b=Q.width*2,L=28,QA=L+N.byteLength,dA=new ArrayBuffer(QA),IA=new Uint8Array(dA),oA=new DataView(dA);let X=0;const tA=0|S<<8|H;oA.setUint32(X,tA,!0),X+=4;const fA=Q.height<<16|Q.width;oA.setUint32(X,fA,!0),X+=4;const _=0|b;oA.setUint32(X,_,!0),X+=4,oA.setUint32(X,N.byteLength,!0),X+=4,oA.setUint32(X,L,!0),X+=4,oA.setUint32(X,0,!0),X+=4,oA.setUint32(X,0,!0),X+=4,IA.set(new Uint8Array(N),L),URL.revokeObjectURL(n),t(dA)}catch(Q){URL.revokeObjectURL(n),i(Q)}},r.onerror=()=>{URL.revokeObjectURL(n),i(new Error("Unable to load image"))},r.src=n})}cleanup(){this.resources.clear(),this.tempFiles=[],this.convertedFonts.clear(),this.wakenetPacker.clear(),this.spiffsGenerator.clear(),this.gifScaler.dispose()}async clearAllStoredData(){try{await this.configStorage.clearAll(),this.cleanup(),console.log("All stored data cleared")}catch(e){throw console.error("Failed to clear stored data:",e),e}}async getStorageStatus(){try{const e=await this.configStorage.getStorageInfo();return{hasStoredData:await this.configStorage.hasStoredConfig(),storageInfo:e,autoSaveEnabled:this.autoSaveEnabled}}catch(e){return console.error("Failed to get storage status:",e),{hasStoredData:!1,storageInfo:null,autoSaveEnabled:this.autoSaveEnabled}}}setAutoSave(e){this.autoSaveEnabled=e,console.log(`Auto-save ${e?"enabled":"disabled"}`)}async getResourceSummary(){const e=[],t=await this.preparePackageResources(),i={wakeword:0,font:0,emoji:0,background:0};return t.files.forEach(o=>{i[o.type]=(i[o.type]||0)+1;let n="";switch(o.type){case"wakeword":n=`Wakeword model: ${o.name} (${o.modelType})`;break;case"font":o.config?n=`Custom font: size ${o.config.size}px, BPP ${o.config.bpp}`:n=`Preset font: ${o.source}`;break;case"emoji":n=`Emoji: ${o.name} (${o.size.width}x${o.size.height})`;break;case"background":n=`${o.mode==="light"?"Light":"Dark"} mode background`;break}e.push({type:o.type,filename:o.filename,description:n})}),{files:e,counts:i,totalFiles:e.length,indexJson:t.indexJson}}}const IS={class:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4"},CS={class:"bg-white rounded-lg shadow-xl max-w-2xl w-full max-h-[90vh] overflow-hidden"},lS={class:"flex items-center justify-between p-6 border-b border-gray-200"},BS={class:"text-lg font-medium text-gray-900"},QS={key:1,class:"text-sm text-orange-600 font-medium"},cS={class:"p-6 overflow-y-auto",style:{"max-height":"calc(90vh - 140px)"}},ES={key:0,class:"space-y-6"},uS={class:"font-medium text-gray-900 mb-3"},hS={class:"bg-gray-50 rounded-lg p-4 space-y-2 text-sm"},fS={class:"flex justify-between"},dS={class:"text-gray-600"},pS={class:"font-medium"},mS={class:"flex justify-between"},yS={class:"text-gray-600"},wS={class:"font-medium"},DS={class:"flex justify-between"},kS={class:"text-gray-600"},vS={class:"font-medium"},FS={class:"flex justify-between"},SS={class:"text-gray-600"},RS={class:"font-medium"},bS={class:"flex justify-between"},NS={class:"text-gray-600"},GS={class:"font-medium"},LS={class:"font-medium text-gray-900 mb-3"},US={class:"space-y-2 max-h-64 overflow-y-auto"},MS={class:"flex items-center"},xS={class:"text-sm font-medium text-gray-900"},JS={class:"text-sm text-gray-700"},TS={key:0,class:"text-xs text-gray-500 ml-1"},HS={key:1,class:"text-xs text-gray-500 ml-1"},YS={key:1,class:"space-y-6 text-center"},_S={class:"space-y-4"},KS={class:"text-gray-600 mt-2"},OS={class:"bg-gray-200 rounded-full h-2 overflow-hidden"},PS={class:"text-sm text-gray-600"},VS={class:"mt-1"},WS={class:"space-y-2 text-left"},qS={class:"flex-shrink-0 mr-3"},jS={key:0,class:"w-5 h-5 bg-green-500 rounded-full flex items-center justify-center"},ZS={key:1,class:"w-5 h-5 bg-primary-500 rounded-full animate-pulse"},XS={key:2,class:"w-5 h-5 bg-gray-300 rounded-full"},zS={key:2,class:"text-center space-y-6"},$S={class:"text-gray-600 mt-2"},AR={class:"bg-green-50 border border-green-200 rounded-lg p-4"},eR={class:"text-sm text-green-800 space-y-1"},tR={class:"space-y-3"},iR=["disabled"],oR={key:3,class:"space-y-6 text-center"},nR={class:"space-y-4"},rR={class:"text-gray-600"},gR={class:"bg-gray-200 rounded-full h-2 overflow-hidden"},sR={class:"text-sm text-gray-600"},aR={class:"mt-1"},IR={key:4,class:"text-center mt-4"},CR={class:"text-sm text-red-600"},lR={class:"flex justify-end space-x-3 p-6 border-t border-gray-200"},BR=["disabled"],QR={__name:"GenerateModal",props:{config:{type:Object,required:!0}},emits:["close","generate","startFlash"],setup(A,{emit:e}){const{t}=ve(),i=A,o=e,{deviceInfo:n,checkDeviceStatus:r,isDeviceOnline:g}=Nn(),s=EA(!1),a=EA(!1),I=EA(0),l=EA(""),C=EA(""),Q=EA(""),h=EA(null),f=EA(null),u=EA(!1),E=EA(0),D=EA(""),c=EA(""),d=hA(()=>[{id:1,name:t("progressSteps.init"),status:"pending"},{id:2,name:t("progressSteps.font"),status:"pending"},{id:3,name:t("progressSteps.wakeword"),status:"pending"},{id:4,name:t("progressSteps.emoji"),status:"pending"},{id:5,name:t("progressSteps.background"),status:"pending"},{id:6,name:t("progressSteps.index"),status:"pending"},{id:7,name:t("progressSteps.spiffs"),status:"pending"},{id:8,name:t("progressSteps.package"),status:"pending"}]),p=EA([]),v=_i({render:()=>GA("svg",{fill:"currentColor",viewBox:"0 0 20 20"},[GA("path",{d:"M4 3a2 2 0 00-2 2v1a1 1 0 001 1h14a1 1 0 001-1V5a2 2 0 00-2-2H4zM3 8a1 1 0 011-1h12a1 1 0 011 1v5a2 2 0 01-2 2H5a2 2 0 01-2-2V8z"})])}),N=_i({render:()=>GA("svg",{fill:"currentColor",viewBox:"0 0 20 20"},[GA("path",{"fill-rule":"evenodd",d:"M7 4a3 3 0 016 0v4a3 3 0 11-6 0V4zm4 10.93A7.001 7.001 0 0017 8a1 1 0 10-2 0A5 5 0 015 8a1 1 0 00-2 0 7.001 7.001 0 006 6.93V17H6a1 1 0 100 2h8a1 1 0 100-2h-3v-2.07z","clip-rule":"evenodd"})])}),G=_i({render:()=>GA("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[GA("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 4l8 16m-6-6h4"})])}),H=_i({render:()=>GA("svg",{fill:"currentColor",viewBox:"0 0 20 20"},[GA("path",{"fill-rule":"evenodd",d:"M4 3a2 2 0 00-2 2v10a2 2 0 002 2h12a2 2 0 002-2V5a2 2 0 00-2-2H4zm12 12H4l4-8 3 6 2-4 3 6z","clip-rule":"evenodd"})])}),S=hA(()=>p.value.length>0),b=()=>{const _=i.config.theme.wakeword;return!_||_.type==="none"?t("wakewordConfig.noWakeword"):_.type==="preset"?{wn9s_hilexin:"Hi,乐鑫",wn9s_hiesp:"Hi,ESP",wn9s_nihaoxiaozhi:"你好小智",wn9_nihaoxiaozhi_tts:"你好小智",wn9_alexa:"Alexa"}[_.preset]||_.preset:_.type==="custom"?_.custom.name||t("wakewordConfig.customWakeword"):t("wakewordConfig.noWakeword")},L=()=>i.config.theme.font.type==="preset"?i.config.theme.font.preset.replace("font_","").replace("_"," "):t("generateModal.customFont"),QA=()=>i.config.theme.emoji.type==="preset"&&i.config.theme.emoji.preset?i.config.theme.emoji.preset==="twemoji32"?"Twemoji 32×32":"Twemoji 64×64":i.config.theme.emoji.type==="custom"?t("generateModal.customEmoji"):i.config.theme.emoji.type==="none"?t("emojiConfig.noEmojiPack"):t("generateModal.notConfigured"),dA=()=>{p.value=[],p.value.push({id:"index",name:"index.json",description:"配置索引文件",icon:v,iconColor:"text-blue-500",size:"1KB"});const _=i.config.theme.wakeword;if(_&&_.type!=="none"&&p.value.push({id:"srmodels",name:"srmodels.bin",description:_.type==="custom"?"自定义命令词模型":"预设唤醒词模型",icon:N,iconColor:"text-green-500",size:_.type==="custom"?"~1.2MB":"~300KB"}),i.config.theme.font.type==="preset"){const W={font_puhui_deepseek_14_1:"180KB",font_puhui_deepseek_16_4:"720KB",font_puhui_deepseek_20_4:"1.1MB",font_puhui_deepseek_30_4:"2.5MB"};p.value.push({id:"font",name:`${i.config.theme.font.preset}.bin`,description:"预设字体文件",icon:G,iconColor:"text-yellow-500",size:W[i.config.theme.font.preset]||"500KB"})}else if(i.config.theme.font.custom.file){const W=i.config.theme.font.custom,z=Math.max(100,W.size*W.size*W.bpp*.7);p.value.push({id:"font",name:`font_custom_${W.size}_${W.bpp}.bin`,description:"自定义字体文件",icon:G,iconColor:"text-yellow-500",size:z>1024?`${(z/1024).toFixed(1)}MB`:`${Math.round(z)}KB`,estimated:!0})}if(i.config.theme.emoji.type==="preset"&&i.config.theme.emoji.preset){const W=["neutral","happy","laughing","funny","sad","angry","crying","loving","embarrassed","surprised","shocked","thinking","winking","cool","relaxed","delicious","kissy","confident","sleepy","silly","confused"],z=i.config.theme.emoji.preset==="twemoji64"?"3KB":"1KB";W.forEach(DA=>{p.value.push({id:`emoji_${DA}`,name:`${DA}.png`,description:`${DA}表情图片`,icon:H,iconColor:"text-pink-500",size:z})})}else if(i.config.theme.emoji.type==="custom"){const W=i.config.theme.emoji.custom,z=W.emotionMap||{},DA=W.fileMap||{};if(W.images,Object.keys(z).length===0||Object.keys(DA).length===0){console.error(t("errors.incompatibleEmojiData"));return}const NA=new Map,oe=new Map;Object.entries(z).forEach(([LA,Y])=>{const $=DA[Y];if($){if(!NA.has(Y)){const AA=Math.round($.size/1024);NA.set(Y,{file:$,size:AA>1024?`${(AA/1024).toFixed(1)}MB`:`${AA}KB`,emotions:[]})}NA.get(Y).emotions.push(LA),oe.set(LA,Y)}}),NA.forEach((LA,Y)=>{const $=LA.emotions.join(", "),AA=LA.emotions.length>1;p.value.push({id:`emoji_${Y.substring(0,8)}`,name:`emoji_${Y.substring(0,8)}.${LA.file.name.split(".").pop()}`,description:AA?`共享表情图片 (${$})`:`${$}表情图片`,icon:H,iconColor:AA?"text-purple-500":"text-pink-500",size:LA.size,isCustomEmoji:!0})}),NA.size1024?`${(DA/1024).toFixed(1)}MB`:`${DA}KB`,estimated:!0})}if(i.config.theme.skin.dark.backgroundType==="image"&&i.config.theme.skin.dark.backgroundImage){const{width:W,height:z}=i.config.chip.display,DA=Math.round(W*z*2/1024);p.value.push({id:"bg_dark",name:"background_dark.raw",description:"深色模式背景图片",icon:H,iconColor:"text-indigo-500",size:DA>1024?`${(DA/1024).toFixed(1)}MB`:`${DA}KB`,estimated:!0})}},IA=_=>{if(_===0)return"0 B";const W=1024,z=["B","KB","MB","GB"],DA=Math.floor(Math.log(_)/Math.log(W));return`${parseFloat((_/Math.pow(W,DA)).toFixed(2))} ${z[DA]}`},oA=_=>{if(_<1e3)return`${_}ms`;if(_<6e4)return`${(_/1e3).toFixed(1)}s`;{const W=Math.floor(_/6e4),z=Math.floor(_%6e4/1e3);return`${W}m ${z}s`}},X=async()=>{s.value=!0,I.value=0,f.value=Date.now();try{const _=new _l;_.setConfig(i.config);const W=await _.generateAssetsBin((NA,oe)=>{I.value=parseInt(NA),l.value=oe;const LA=Math.floor(NA/(100/d.value.length));d.value.forEach((Y,$)=>{${NA.status="completed"}),o("generate",p.value.map(NA=>({id:NA.id,name:NA.name})))}catch(_){console.error("生成 assets.bin 失败:",_),s.value=!1,a.value=!1,alert(t("errors.generationFailed",{error:_.message}))}},tA=()=>{if(h.value){const _=URL.createObjectURL(h.value),W=document.createElement("a");W.href=_,W.download="assets.bin",W.style.display="none",document.body.appendChild(W),W.click(),document.body.removeChild(W),URL.revokeObjectURL(_)}else console.error(t("errors.noFileToDownload"))},fA=async()=>{if(!h.value){alert(t("errors.noFileToDownload"));return}if(!g.value){alert(t("errors.deviceOffline"));return}if(n.value.assetsPartition&&n.value.assetsPartition.size){const _=n.value.assetsPartition.size,W=h.value.size;if(W>_){const z=(W/1024/1024).toFixed(2),DA=(_/1024/1024).toFixed(2);alert(t("errors.fileTooLarge",{fileSize:z,partitionSize:DA}));return}}u.value=!0,E.value=0,D.value=t("flashProgress.startingFileTransfer"),c.value="";try{o("startFlash",{blob:h.value,onProgress:(_,W)=>{E.value=_,D.value=W},onComplete:()=>{u.value=!1,E.value=100,D.value=t("flashProgress.flashCompleted")},onError:_=>{u.value=!1,c.value=_,console.error(t("flashProgress.onlineFlashFailed",{error:_}))}})}catch(_){u.value=!1,c.value=t("flashProgress.onlineFlashFailed",{error:_.message}),console.error(t("flashProgress.onlineFlashFailed",{error:_}))}};return Ft(async()=>{dA(),await r(!1)}),(_,W)=>(T(),K("div",IS,[B("div",CS,[B("div",lS,[B("h3",BS,F(_.$t("generateModal.title")),1),u.value?(T(),K("div",QS,F(_.$t("generateModal.flashingInProgress")),1)):(T(),K("button",{key:0,onClick:W[0]||(W[0]=z=>_.$emit("close")),class:"text-gray-400 hover:text-gray-500"},[...W[3]||(W[3]=[B("svg",{class:"w-6 h-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])]))]),B("div",cS,[!s.value&&!a.value?(T(),K("div",ES,[B("div",null,[B("h4",uS,F(_.$t("generateModal.confirmConfig")),1),B("div",hS,[B("div",fS,[B("span",dS,F(_.$t("generateModal.chipModel")),1),B("span",pS,F(A.config.chip.model.toUpperCase()),1)]),B("div",mS,[B("span",yS,F(_.$t("generateModal.resolution")),1),B("span",wS,F(A.config.chip.display.width)+"×"+F(A.config.chip.display.height),1)]),B("div",DS,[B("span",kS,F(_.$t("generateModal.wakeword")),1),B("span",vS,F(b()),1)]),B("div",FS,[B("span",SS,F(_.$t("generateModal.font")),1),B("span",RS,F(L()),1)]),B("div",bS,[B("span",NS,F(_.$t("generateModal.emoji")),1),B("span",GS,F(QA()),1)])])]),B("div",null,[B("h4",LS,F(_.$t("generateModal.fileList")),1),B("div",US,[(T(!0),K(qA,null,Ke(p.value,z=>(T(),K("div",{key:z.id,class:"flex items-center justify-between px-3 py-2 border border-gray-200 rounded bg-gray-50"},[B("div",MS,[(T(),ye(HI(z.icon),{class:kA(["w-4 h-4 mr-2",z.iconColor])},null,8,["class"])),B("span",xS,F(z.name),1)]),B("div",JS,[gt(F(z.size)+" ",1),z.estimated?(T(),K("span",TS,F(_.$t("generateModal.estimated")),1)):sA("",!0),z.isCustomEmoji?(T(),K("span",HS,F(_.$t("generateModal.compressed")),1)):sA("",!0)])]))),128))])])])):sA("",!0),s.value?(T(),K("div",YS,[W[5]||(W[5]=B("div",{class:"flex items-center justify-center"},[B("div",{class:"animate-spin rounded-full h-16 w-16 border-b-2 border-primary-500"})],-1)),B("div",_S,[B("p",KS,F(_.$t("generateModal.generating")),1),B("div",OS,[B("div",{class:"bg-primary-500 h-2 rounded-full transition-all duration-500 ease-out",style:VA({width:I.value+"%"})},null,4)]),B("div",PS,[B("div",null,F(l.value),1),B("div",VS,F(_.$t("generateModal.progress",{progress:I.value})),1)])]),B("div",WS,[(T(!0),K(qA,null,Ke(d.value,z=>(T(),K("div",{key:z.id,class:"flex items-center text-sm"},[B("div",qS,[z.status==="completed"?(T(),K("div",jS,[...W[4]||(W[4]=[B("svg",{class:"w-3 h-3 text-white",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z","clip-rule":"evenodd"})],-1)])])):z.status==="processing"?(T(),K("div",ZS)):(T(),K("div",XS))]),B("span",{class:kA([z.status==="completed"?"text-green-700":z.status==="processing"?"text-primary-700":"text-gray-500"])},F(z.name),3)]))),128))])])):sA("",!0),a.value&&!u.value?(T(),K("div",zS,[W[8]||(W[8]=B("div",{class:"mx-auto flex items-center justify-center"},[B("svg",{class:"w-20 h-20 text-green-600",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z","clip-rule":"evenodd"})])],-1)),B("div",null,[B("p",$S,F(_.$t("generateModal.completed")),1)]),B("div",AR,[B("div",eR,[B("div",null,F(_.$t("generateModal.filename")),1),B("div",null,F(_.$t("generateModal.fileSize",{size:C.value})),1),B("div",null,F(_.$t("generateModal.generationTime",{time:Q.value})),1)])]),B("div",tR,[B("button",{onClick:tA,class:"w-full bg-gray-100 hover:bg-gray-200 text-gray-700 px-6 py-3 rounded-lg font-medium transition-colors flex items-center justify-center"},[W[6]||(W[6]=B("svg",{class:"w-5 h-5 mr-2",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M3 17a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm3.293-7.707a1 1 0 011.414 0L9 10.586V3a1 1 0 112 0v7.586l1.293-1.293a1 1 0 111.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z","clip-rule":"evenodd"})],-1)),gt(" "+F(_.$t("generateModal.downloadAssets")),1)]),B("button",{onClick:fA,disabled:!BA(g),class:"w-full bg-blue-500 hover:bg-blue-600 disabled:bg-gray-300 text-white px-6 py-3 rounded-lg font-medium transition-colors flex items-center justify-center"},[W[7]||(W[7]=B("svg",{class:"w-5 h-5 mr-2",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M3 17a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm3.293-7.707a1 1 0 011.414 0L9 10.586V3a1 1 0 112 0v7.586l1.293-1.293a1 1 0 111.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z","clip-rule":"evenodd"})],-1)),gt(" "+F(_.$t("generateModal.flashToDevice")),1)],8,iR)])])):sA("",!0),u.value&&!c.value?(T(),K("div",oR,[W[9]||(W[9]=B("div",{class:"flex items-center justify-center"},[B("div",{class:"animate-spin rounded-full h-16 w-16 border-b-2 border-blue-500"})],-1)),B("div",nR,[B("p",rR,F(_.$t("generateModal.flashing")),1),B("div",gR,[B("div",{class:"bg-blue-500 h-2 rounded-full transition-all duration-500 ease-out",style:VA({width:E.value+"%"})},null,4)]),B("div",sR,[B("div",null,F(D.value),1),B("div",aR,F(_.$t("generateModal.progress",{progress:E.value})),1)])])])):sA("",!0),c.value?(T(),K("div",IR,[B("p",CR,F(c.value),1)])):sA("",!0)]),B("div",lR,[!s.value&&!a.value?(T(),K("button",{key:0,onClick:W[1]||(W[1]=z=>_.$emit("close")),class:"px-4 py-2 text-sm font-medium text-gray-700 bg-gray-100 hover:bg-gray-200 rounded-md transition-colors"},F(_.$t("common.cancel")),1)):sA("",!0),!s.value&&!a.value?(T(),K("button",{key:1,onClick:X,disabled:!S.value,class:"px-6 py-2 text-sm font-medium text-white bg-primary-500 hover:bg-primary-600 disabled:bg-gray-300 rounded-md transition-colors"},F(_.$t("common.start"))+" "+F(_.$t("common.generate")),9,BR)):sA("",!0),a.value&&!u.value?(T(),K("button",{key:2,onClick:W[2]||(W[2]=z=>_.$emit("close")),class:"px-4 py-2 text-sm font-medium text-gray-700 bg-gray-100 hover:bg-gray-200 rounded-md transition-colors"},F(_.$t("common.close")),1)):sA("",!0)])])]))}},cR={class:"flex items-center justify-between mb-2"},ER={class:"flex items-center"},uR={class:"text-blue-800 font-medium"},hR={class:"text-blue-600 text-sm mb-3"},fR={class:"flex justify-end space-x-2"},dR={class:"flex items-center justify-center mb-8"},pR={class:"flex flex-col items-center"},mR={class:"text-sm mt-2 text-gray-600"},yR={key:0,class:"w-16 h-0.5 bg-gray-300 mx-4"},wR={class:"bg-white rounded-lg shadow-sm border p-6"},Kl={__name:"HomePage",setup(A){const e=Nn(),{t}=ve(),i=EA(30),o=EA(null),n=EA(0),r=EA(!1),g=EA("wakeword"),s=EA(!1),a=EA(!1),I=EA(!1),l=EA(!0),C=new _l,Q=EA(null),h=EA(""),f=[{titleKey:"steps.chip",key:"chip"},{titleKey:"steps.theme",key:"theme"},{titleKey:"steps.generate",key:"generate"}],u=EA({chip:{model:"",display:{width:320,height:240,color:"RGB565"}},theme:{wakeword:{type:"none",preset:"",custom:{name:"",command:"",threshold:20,duration:3e3,model:"mn6_cn"}},font:{type:"none",preset:"",hide_subtitle:!1,custom:{file:null,size:20,bpp:4,charset:"deepseek"}},emoji:{type:"none",preset:"",custom:{size:{width:160,height:120},images:{}}},skin:{light:{backgroundType:"color",backgroundColor:"#ffffff",textColor:"#000000",backgroundImage:null},dark:{backgroundType:"color",backgroundColor:"#121212",textColor:"#ffffff",backgroundImage:null}}}});hA(()=>u.value.chip.model&&(u.value.theme.font.type==="none"||u.value.theme.font.preset||u.value.theme.font.custom.file));const E=IA=>IA{n.value{n.value>0&&n.value--},d=()=>{r.value=!0},p=async IA=>{},v=async(IA,oA={})=>await e.callMcpTool(IA,oA),N=async IA=>{const{blob:oA,onProgress:X,onComplete:tA,onError:fA}=IA;try{X(15,t("flashProgress.checkingDeviceStatus"));try{if((await v("self.get_device_status")).code!==0)throw new Error(t("flashProgress.deviceOfflineOrUnresponsive",{error:t("flashProgress.unableToGetDeviceStatus")}))}catch(_){console.error("检查设备状态失败:",_),fA(t("flashProgress.deviceOfflineOrUnresponsive",{error:_.msg}));return}X(30,t("flashProgress.uploadingFile"));try{const _=new FormData;_.append("file",oA,"assets.bin");const z=await(await fetch("/xiaozhi/otaMag/uploadAssetsBin",{method:"POST",body:_,headers:{Authorization:`Bearer ${e.token.value}`}})).json();z.code!==0&&await Promise.reject(z),h.value=z.data}catch{fA(t("flashProgress.uploadFailed"));return}X(45,t("flashProgress.settingDeviceDownloadUrl"));try{const _=await v("self.assets.set_download_url",{url:h.value});_.code!==0&&await Promise.reject(_)}catch(_){console.error("设置下载URL失败:",_),fA(t("flashProgress.setDownloadUrlFailed",{error:_.msg}));return}X(60,t("flashProgress.waitingForDeviceReboot")),await v("self.reboot").catch(_=>{console.warn("reboot指令调用警告(设备可能已重启):",_)}),X(75,t("flashProgress.deviceReady")),o.value=setInterval(()=>{if(X(90,t("flashProgress.flashCompleted")),i.value-=1,i.value<=0){clearInterval(o.value),i.value=30,o.value=null,fA("请求超时,请检查设备烧录是否异常");return}v("self.get_device_status").then(_=>{o.value&&_.code===0&&(clearInterval(o.value),o.value=null,i.value=30,tA())})},5e3)}catch(_){console.error("在线烧录失败:",_),fA(t("flashProgress.onlineFlashFailed",{error:_.msg}))}},G=IA=>{g.value=IA},H=async()=>{var IA,oA,X;try{l.value=!0;const tA=await Qe.loadConfig();if(tA){u.value=tA.config,n.value=0,g.value="wakeword",s.value=!0,a.value=!0,await S(),Q.value&&clearTimeout(Q.value),Q.value=setTimeout(()=>{s.value=!1},5e3),C.setConfig(u.value,{strict:!1}),await C.restoreAllResourcesFromStorage(u.value);try{const fA=((X=(oA=(IA=u.value)==null?void 0:IA.theme)==null?void 0:oA.emoji)==null?void 0:X.custom)||{},_=fA.images||{},W=fA.fileMap||{},z=fA.emotionMap||{};u.value={...u.value,theme:{...u.value.theme,emoji:{...u.value.theme.emoji,custom:{...fA,images:{..._},fileMap:{...W},emotionMap:{...z}}}}}}catch(fA){console.error("刷新表情配置引用失败:",fA)}}else s.value=!1,a.value=!1}catch(tA){console.error("加载配置失败:",tA),s.value=!1,a.value=!1}finally{l.value=!1}},S=async()=>{var IA,oA,X;try{const tA=(X=(oA=(IA=u.value)==null?void 0:IA.theme)==null?void 0:oA.emoji)==null?void 0:X.custom;if(!tA)return;const fA=Object.keys(tA.images||{}).length>0,_=tA.fileMap&&Object.keys(tA.fileMap).length>0,W=tA.emotionMap&&Object.keys(tA.emotionMap).length>0;if(fA&&(!_||!W)){console.warn("⚠️ 检测到旧版本的表情数据结构(不兼容)"),console.log("正在清理旧数据...");try{const DA=Object.keys(tA.images||{});for(const NA of DA)await Qe.deleteFile(`emoji_${NA}`);console.log(`已删除 ${DA.length} 个旧表情文件`)}catch(DA){console.warn("清理旧表情文件时出错:",DA)}u.value.theme.emoji.custom={size:tA.size||{width:64,height:64},images:{},fileMap:{},emotionMap:{}},u.value.theme.emoji.type==="custom"&&(u.value.theme.emoji.type="",console.log("已重置表情类型,请重新选择")),await b(),console.log("✅ 旧表情数据已完全清除"),setTimeout(()=>{alert(`检测到旧版本的表情数据结构已被清除。 + +新版本使用文件去重技术,可以节省存储空间。 + +请重新上传自定义表情图片。`)},500)}}catch(tA){console.error("清理旧表情数据时出错:",tA)}},b=async()=>{try{await Qe.saveConfig(u.value)}catch(IA){console.error("保存配置失败:",IA)}},L=async()=>{try{I.value=!0,await C.clearAllStoredData();const IA={model:u.value.chip.model,display:{...u.value.chip.display}};u.value={chip:IA,theme:{wakeword:{type:"none",preset:"",custom:{name:"",command:"",threshold:20,model:"mn6_cn"}},font:{type:"none",preset:"",hide_subtitle:!1,custom:{file:null,size:20,bpp:4,charset:"deepseek"}},emoji:{type:"none",preset:"",custom:{size:{width:64,height:64},images:{}}},skin:{light:{backgroundType:"color",backgroundColor:"#ffffff",textColor:"#000000",backgroundImage:null},dark:{backgroundType:"color",backgroundColor:"#121212",textColor:"#ffffff",backgroundImage:null}}}},n.value=0,g.value="wakeword",s.value=!1,a.value=!1}catch(IA){console.error("重置配置失败:",IA),alert(t("errors.resetFailed"))}finally{I.value=!1}};ae(u,async IA=>{!l.value&&a.value&&await b()},{deep:!0}),Ft(async()=>{await Qe.initialize(),await H()}),Ci(()=>{Q.value&&(clearTimeout(Q.value),clearInterval(o.value))});const QA=()=>{s.value=!1,Q.value&&clearTimeout(Q.value)},dA=()=>{Q.value&&clearTimeout(Q.value),Q.value=setTimeout(()=>{s.value=!1},5e3)};return(IA,oA)=>(T(),K("div",null,[s.value?(T(),K("div",{key:0,class:"fixed bottom-4 right-4 z-50 bg-blue-50 border border-blue-200 rounded-lg p-4 shadow-lg transition-opacity duration-300 min-w-[300px]",onMouseenter:dA},[B("div",cR,[B("div",ER,[oA[3]||(oA[3]=B("svg",{class:"w-5 h-5 text-blue-500 mr-2",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z","clip-rule":"evenodd"})],-1)),B("span",uR,F(IA.$t("configNotice.title")),1)]),B("button",{onClick:QA,class:"text-gray-500 hover:text-gray-700"},[...oA[4]||(oA[4]=[B("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])]),B("p",hR,F(IA.$t("configNotice.message")),1),B("div",fR,[B("button",{onClick:L,class:"px-3 py-1 text-sm text-red-600 hover:text-red-800 font-medium"},F(IA.$t("configNotice.restart")),1)])],32)):sA("",!0),B("div",dR,[(T(),K(qA,null,Ke(f,(X,tA)=>B("div",{key:tA,class:"flex items-center"},[B("div",pR,[B("div",{class:kA(E(tA))},F(tA+1),3),B("span",mR,F(IA.$t(X.titleKey)),1)]),tAu.value.chip=X),onNext:D},null,8,["modelValue"])):sA("",!0),n.value===1?(T(),ye(yy,{key:1,modelValue:u.value.theme,"onUpdate:modelValue":oA[1]||(oA[1]=X=>u.value.theme=X),chipModel:u.value.chip.model,activeTab:g.value,onNext:D,onPrev:c,onTabChange:G},null,8,["modelValue","chipModel","activeTab"])):sA("",!0),n.value===2?(T(),ye(Ew,{key:2,config:u.value,onGenerate:d,onPrev:c},null,8,["config"])):sA("",!0)]),r.value?(T(),ye(QR,{key:1,config:u.value,onClose:oA[2]||(oA[2]=X=>r.value=!1),onGenerate:p,onStartFlash:N},null,8,["config"])):sA("",!0)]))}},DR=Object.freeze(Object.defineProperty({__proto__:null,default:Kl},Symbol.toStringTag,{value:"Module"})),kR={class:"min-h-screen bg-gray-50"},vR={class:"bg-white shadow-sm border-b"},FR={class:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-4"},SR={class:"flex flex-col relative sm:flex-row items-start sm:items-center justify-between gap-3 sm:gap-0"},RR={class:"text-2xl font-bold text-gray-900"},bR={class:"flex items-center space-x-4"},NR={class:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"},GR={__name:"App",setup(A){const e=EA(""),t=()=>{e.value&&(window.location.href=e.value)};return Ft(()=>{e.value=sessionStorage.getItem("devicePath")}),(i,o)=>(T(),K("div",kR,[B("header",vR,[B("div",FR,[B("div",SR,[e.value?(T(),K("div",{key:0,class:"bg-primary-500 hover:bg-primary-600 text-white px-6 py-1 rounded-md cursor-pointer",onClick:t},"返回")):sA("",!0),B("h1",RR,F(i.$t("header.title")),1),B("div",bR,[TA(Eh),TA(gd)])])])]),B("main",NR,[TA(Kl)])]))}};/*! + * vue-router v4.6.4 + * (c) 2025 Eduardo San Martin Morote + * @license MIT + */const Ei=typeof document<"u";function Ol(A){return typeof A=="object"||"displayName"in A||"props"in A||"__vccOpts"in A}function LR(A){return A.__esModule||A[Symbol.toStringTag]==="Module"||A.default&&Ol(A.default)}const MA=Object.assign;function nr(A,e){const t={};for(const i in e){const o=e[i];t[i]=qe(o)?o.map(A):A(o)}return t}const zi=()=>{},qe=Array.isArray;function Ha(A,e){const t={};for(const i in A)t[i]=i in e?e[i]:A[i];return t}const Pl=/#/g,UR=/&/g,MR=/\//g,xR=/=/g,JR=/\?/g,Vl=/\+/g,TR=/%5B/g,HR=/%5D/g,Wl=/%5E/g,YR=/%60/g,ql=/%7B/g,_R=/%7C/g,jl=/%7D/g,KR=/%20/g;function Fg(A){return A==null?"":encodeURI(""+A).replace(_R,"|").replace(TR,"[").replace(HR,"]")}function OR(A){return Fg(A).replace(ql,"{").replace(jl,"}").replace(Wl,"^")}function Yr(A){return Fg(A).replace(Vl,"%2B").replace(KR,"+").replace(Pl,"%23").replace(UR,"%26").replace(YR,"`").replace(ql,"{").replace(jl,"}").replace(Wl,"^")}function PR(A){return Yr(A).replace(xR,"%3D")}function VR(A){return Fg(A).replace(Pl,"%23").replace(JR,"%3F")}function WR(A){return VR(A).replace(MR,"%2F")}function Qo(A){if(A==null)return null;try{return decodeURIComponent(""+A)}catch{}return""+A}const qR=/\/$/,jR=A=>A.replace(qR,"");function rr(A,e,t="/"){let i,o={},n="",r="";const g=e.indexOf("#");let s=e.indexOf("?");return s=g>=0&&s>g?-1:s,s>=0&&(i=e.slice(0,s),n=e.slice(s,g>0?g:e.length),o=A(n.slice(1))),g>=0&&(i=i||e.slice(0,g),r=e.slice(g,e.length)),i=$R(i??e,t),{fullPath:i+n+r,path:i,query:o,hash:Qo(r)}}function ZR(A,e){const t=e.query?A(e.query):"";return e.path+(t&&"?")+t+(e.hash||"")}function Ya(A,e){return!e||!A.toLowerCase().startsWith(e.toLowerCase())?A:A.slice(e.length)||"/"}function XR(A,e,t){const i=e.matched.length-1,o=t.matched.length-1;return i>-1&&i===o&&bi(e.matched[i],t.matched[o])&&Zl(e.params,t.params)&&A(e.query)===A(t.query)&&e.hash===t.hash}function bi(A,e){return(A.aliasOf||A)===(e.aliasOf||e)}function Zl(A,e){if(Object.keys(A).length!==Object.keys(e).length)return!1;for(var t in A)if(!zR(A[t],e[t]))return!1;return!0}function zR(A,e){return qe(A)?_a(A,e):qe(e)?_a(e,A):(A==null?void 0:A.valueOf())===(e==null?void 0:e.valueOf())}function _a(A,e){return qe(e)?A.length===e.length&&A.every((t,i)=>t===e[i]):A.length===1&&A[0]===e}function $R(A,e){if(A.startsWith("/"))return A;if(!A)return e;const t=e.split("/"),i=A.split("/"),o=i[i.length-1];(o===".."||o===".")&&i.push("");let n=t.length-1,r,g;for(r=0;r1&&n--;else break;return t.slice(0,n).join("/")+"/"+i.slice(r).join("/")}const Gt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let _r=function(A){return A.pop="pop",A.push="push",A}({}),gr=function(A){return A.back="back",A.forward="forward",A.unknown="",A}({});function Ab(A){if(!A)if(Ei){const e=document.querySelector("base");A=e&&e.getAttribute("href")||"/",A=A.replace(/^\w+:\/\/[^\/]+/,"")}else A="/";return A[0]!=="/"&&A[0]!=="#"&&(A="/"+A),jR(A)}const eb=/^[^#]+#/;function tb(A,e){return A.replace(eb,"#")+e}function ib(A,e){const t=document.documentElement.getBoundingClientRect(),i=A.getBoundingClientRect();return{behavior:e.behavior,left:i.left-t.left-(e.left||0),top:i.top-t.top-(e.top||0)}}const Un=()=>({left:window.scrollX,top:window.scrollY});function ob(A){let e;if("el"in A){const t=A.el,i=typeof t=="string"&&t.startsWith("#"),o=typeof t=="string"?i?document.getElementById(t.slice(1)):document.querySelector(t):t;if(!o)return;e=ib(o,A)}else e=A;"scrollBehavior"in document.documentElement.style?window.scrollTo(e):window.scrollTo(e.left!=null?e.left:window.scrollX,e.top!=null?e.top:window.scrollY)}function Ka(A,e){return(history.state?history.state.position-e:-1)+A}const Kr=new Map;function nb(A,e){Kr.set(A,e)}function rb(A){const e=Kr.get(A);return Kr.delete(A),e}function gb(A){return typeof A=="string"||A&&typeof A=="object"}function Xl(A){return typeof A=="string"||typeof A=="symbol"}let XA=function(A){return A[A.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",A[A.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",A[A.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",A[A.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",A[A.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",A}({});const zl=Symbol("");XA.MATCHER_NOT_FOUND+"",XA.NAVIGATION_GUARD_REDIRECT+"",XA.NAVIGATION_ABORTED+"",XA.NAVIGATION_CANCELLED+"",XA.NAVIGATION_DUPLICATED+"";function Ni(A,e){return MA(new Error,{type:A,[zl]:!0},e)}function ct(A,e){return A instanceof Error&&zl in A&&(e==null||!!(A.type&e))}const sb=["params","query","hash"];function ab(A){if(typeof A=="string")return A;if(A.path!=null)return A.path;const e={};for(const t of sb)t in A&&(e[t]=A[t]);return JSON.stringify(e,null,2)}function Ib(A){const e={};if(A===""||A==="?")return e;const t=(A[0]==="?"?A.slice(1):A).split("&");for(let i=0;io&&Yr(o)):[i&&Yr(i)]).forEach(o=>{o!==void 0&&(e+=(e.length?"&":"")+t,o!=null&&(e+="="+o))})}return e}function Cb(A){const e={};for(const t in A){const i=A[t];i!==void 0&&(e[t]=qe(i)?i.map(o=>o==null?null:""+o):i==null?i:""+i)}return e}const lb=Symbol(""),Pa=Symbol(""),Sg=Symbol(""),$l=Symbol(""),Or=Symbol("");function Yi(){let A=[];function e(i){return A.push(i),()=>{const o=A.indexOf(i);o>-1&&A.splice(o,1)}}function t(){A=[]}return{add:e,list:()=>A.slice(),reset:t}}function Tt(A,e,t,i,o,n=r=>r()){const r=i&&(i.enterCallbacks[o]=i.enterCallbacks[o]||[]);return()=>new Promise((g,s)=>{const a=C=>{C===!1?s(Ni(XA.NAVIGATION_ABORTED,{from:t,to:e})):C instanceof Error?s(C):gb(C)?s(Ni(XA.NAVIGATION_GUARD_REDIRECT,{from:e,to:C})):(r&&i.enterCallbacks[o]===r&&typeof C=="function"&&r.push(C),g())},I=n(()=>A.call(i&&i.instances[o],e,t,a));let l=Promise.resolve(I);A.length<3&&(l=l.then(a)),l.catch(C=>s(C))})}function sr(A,e,t,i,o=n=>n()){const n=[];for(const r of A)for(const g in r.components){let s=r.components[g];if(!(e!=="beforeRouteEnter"&&!r.instances[g]))if(Ol(s)){const a=(s.__vccOpts||s)[e];a&&n.push(Tt(a,t,i,r,g,o))}else{let a=s();n.push(()=>a.then(I=>{if(!I)throw new Error(`Couldn't resolve component "${g}" at "${r.path}"`);const l=LR(I)?I.default:I;r.mods[g]=I,r.components[g]=l;const C=(l.__vccOpts||l)[e];return C&&Tt(C,t,i,r,g,o)()}))}}return n}function Bb(A,e){const t=[],i=[],o=[],n=Math.max(e.matched.length,A.matched.length);for(let r=0;rbi(a,g))?i.push(g):t.push(g));const s=A.matched[r];s&&(e.matched.find(a=>bi(a,s))||o.push(s))}return[t,i,o]}/*! + * vue-router v4.6.4 + * (c) 2025 Eduardo San Martin Morote + * @license MIT + */let Qb=()=>location.protocol+"//"+location.host;function AB(A,e){const{pathname:t,search:i,hash:o}=e,n=A.indexOf("#");if(n>-1){let r=o.includes(A.slice(n))?A.slice(n).length:1,g=o.slice(r);return g[0]!=="/"&&(g="/"+g),Ya(g,"")}return Ya(t,A)+i+o}function cb(A,e,t,i){let o=[],n=[],r=null;const g=({state:C})=>{const Q=AB(A,location),h=t.value,f=e.value;let u=0;if(C){if(t.value=Q,e.value=C,r&&r===h){r=null;return}u=f?C.position-f.position:0}else i(Q);o.forEach(E=>{E(t.value,h,{delta:u,type:_r.pop,direction:u?u>0?gr.forward:gr.back:gr.unknown})})};function s(){r=t.value}function a(C){o.push(C);const Q=()=>{const h=o.indexOf(C);h>-1&&o.splice(h,1)};return n.push(Q),Q}function I(){if(document.visibilityState==="hidden"){const{history:C}=window;if(!C.state)return;C.replaceState(MA({},C.state,{scroll:Un()}),"")}}function l(){for(const C of n)C();n=[],window.removeEventListener("popstate",g),window.removeEventListener("pagehide",I),document.removeEventListener("visibilitychange",I)}return window.addEventListener("popstate",g),window.addEventListener("pagehide",I),document.addEventListener("visibilitychange",I),{pauseListeners:s,listen:a,destroy:l}}function Va(A,e,t,i=!1,o=!1){return{back:A,current:e,forward:t,replaced:i,position:window.history.length,scroll:o?Un():null}}function Eb(A){const{history:e,location:t}=window,i={value:AB(A,t)},o={value:e.state};o.value||n(i.value,{back:null,current:i.value,forward:null,position:e.length-1,replaced:!0,scroll:null},!0);function n(s,a,I){const l=A.indexOf("#"),C=l>-1?(t.host&&document.querySelector("base")?A:A.slice(l))+s:Qb()+A+s;try{e[I?"replaceState":"pushState"](a,"",C),o.value=a}catch(Q){console.error(Q),t[I?"replace":"assign"](C)}}function r(s,a){n(s,MA({},e.state,Va(o.value.back,s,o.value.forward,!0),a,{position:o.value.position}),!0),i.value=s}function g(s,a){const I=MA({},o.value,e.state,{forward:s,scroll:Un()});n(I.current,I,!0),n(s,MA({},Va(i.value,s,null),{position:I.position+1},a),!1),i.value=s}return{location:i,state:o,push:g,replace:r}}function ub(A){A=Ab(A);const e=Eb(A),t=cb(A,e.state,e.location,e.replace);function i(n,r=!0){r||t.pauseListeners(),history.go(n)}const o=MA({location:"",base:A,go:i,createHref:tb.bind(null,A)},e,t);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>e.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>e.state.value}),o}let ni=function(A){return A[A.Static=0]="Static",A[A.Param=1]="Param",A[A.Group=2]="Group",A}({});var ne=function(A){return A[A.Static=0]="Static",A[A.Param=1]="Param",A[A.ParamRegExp=2]="ParamRegExp",A[A.ParamRegExpEnd=3]="ParamRegExpEnd",A[A.EscapeNext=4]="EscapeNext",A}(ne||{});const hb={type:ni.Static,value:""},fb=/[a-zA-Z0-9_]/;function db(A){if(!A)return[[]];if(A==="/")return[[hb]];if(!A.startsWith("/"))throw new Error(`Invalid path "${A}"`);function e(Q){throw new Error(`ERR (${t})/"${a}": ${Q}`)}let t=ne.Static,i=t;const o=[];let n;function r(){n&&o.push(n),n=[]}let g=0,s,a="",I="";function l(){a&&(t===ne.Static?n.push({type:ni.Static,value:a}):t===ne.Param||t===ne.ParamRegExp||t===ne.ParamRegExpEnd?(n.length>1&&(s==="*"||s==="+")&&e(`A repeatable param (${a}) must be alone in its segment. eg: '/:ids+.`),n.push({type:ni.Param,value:a,regexp:I,repeatable:s==="*"||s==="+",optional:s==="*"||s==="?"})):e("Invalid state to consume buffer"),a="")}function C(){a+=s}for(;ge.length?e.length===1&&e[0]===pe.Static+pe.Segment?1:-1:0}function eB(A,e){let t=0;const i=A.score,o=e.score;for(;t0&&e[e.length-1]<0}const Db={strict:!1,end:!0,sensitive:!1};function kb(A,e,t){const i=yb(db(A.path),t),o=MA(i,{record:A,parent:e,children:[],alias:[]});return e&&!o.record.aliasOf==!e.record.aliasOf&&e.children.push(o),o}function vb(A,e){const t=[],i=new Map;e=Ha(Db,e);function o(l){return i.get(l)}function n(l,C,Q){const h=!Q,f=Za(l);f.aliasOf=Q&&Q.record;const u=Ha(e,l),E=[f];if("alias"in l){const d=typeof l.alias=="string"?[l.alias]:l.alias;for(const p of d)E.push(Za(MA({},f,{components:Q?Q.record.components:f.components,path:p,aliasOf:Q?Q.record:f})))}let D,c;for(const d of E){const{path:p}=d;if(C&&p[0]!=="/"){const v=C.record.path,N=v[v.length-1]==="/"?"":"/";d.path=C.record.path+(p&&N+p)}if(D=kb(d,C,u),Q?Q.alias.push(D):(c=c||D,c!==D&&c.alias.push(D),h&&l.name&&!Xa(D)&&r(l.name)),tB(D)&&s(D),f.children){const v=f.children;for(let N=0;N{r(c)}:zi}function r(l){if(Xl(l)){const C=i.get(l);C&&(i.delete(l),t.splice(t.indexOf(C),1),C.children.forEach(r),C.alias.forEach(r))}else{const C=t.indexOf(l);C>-1&&(t.splice(C,1),l.record.name&&i.delete(l.record.name),l.children.forEach(r),l.alias.forEach(r))}}function g(){return t}function s(l){const C=Rb(l,t);t.splice(C,0,l),l.record.name&&!Xa(l)&&i.set(l.record.name,l)}function a(l,C){let Q,h={},f,u;if("name"in l&&l.name){if(Q=i.get(l.name),!Q)throw Ni(XA.MATCHER_NOT_FOUND,{location:l});u=Q.record.name,h=MA(ja(C.params,Q.keys.filter(c=>!c.optional).concat(Q.parent?Q.parent.keys.filter(c=>c.optional):[]).map(c=>c.name)),l.params&&ja(l.params,Q.keys.map(c=>c.name))),f=Q.stringify(h)}else if(l.path!=null)f=l.path,Q=t.find(c=>c.re.test(f)),Q&&(h=Q.parse(f),u=Q.record.name);else{if(Q=C.name?i.get(C.name):t.find(c=>c.re.test(C.path)),!Q)throw Ni(XA.MATCHER_NOT_FOUND,{location:l,currentLocation:C});u=Q.record.name,h=MA({},C.params,l.params),f=Q.stringify(h)}const E=[];let D=Q;for(;D;)E.unshift(D.record),D=D.parent;return{name:u,path:f,params:h,matched:E,meta:Sb(E)}}A.forEach(l=>n(l));function I(){t.length=0,i.clear()}return{addRoute:n,resolve:a,removeRoute:r,clearRoutes:I,getRoutes:g,getRecordMatcher:o}}function ja(A,e){const t={};for(const i of e)i in A&&(t[i]=A[i]);return t}function Za(A){const e={path:A.path,redirect:A.redirect,name:A.name,meta:A.meta||{},aliasOf:A.aliasOf,beforeEnter:A.beforeEnter,props:Fb(A),children:A.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in A?A.components||null:A.component&&{default:A.component}};return Object.defineProperty(e,"mods",{value:{}}),e}function Fb(A){const e={},t=A.props||!1;if("component"in A)e.default=t;else for(const i in A.components)e[i]=typeof t=="object"?t[i]:t;return e}function Xa(A){for(;A;){if(A.record.aliasOf)return!0;A=A.parent}return!1}function Sb(A){return A.reduce((e,t)=>MA(e,t.meta),{})}function Rb(A,e){let t=0,i=e.length;for(;t!==i;){const n=t+i>>1;eB(A,e[n])<0?i=n:t=n+1}const o=bb(A);return o&&(i=e.lastIndexOf(o,i-1)),i}function bb(A){let e=A;for(;e=e.parent;)if(tB(e)&&eB(A,e)===0)return e}function tB({record:A}){return!!(A.name||A.components&&Object.keys(A.components).length||A.redirect)}function za(A){const e=rt(Sg),t=rt($l),i=hA(()=>{const s=BA(A.to);return e.resolve(s)}),o=hA(()=>{const{matched:s}=i.value,{length:a}=s,I=s[a-1],l=t.matched;if(!I||!l.length)return-1;const C=l.findIndex(bi.bind(null,I));if(C>-1)return C;const Q=$a(s[a-2]);return a>1&&$a(I)===Q&&l[l.length-1].path!==Q?l.findIndex(bi.bind(null,s[a-2])):C}),n=hA(()=>o.value>-1&&Mb(t.params,i.value.params)),r=hA(()=>o.value>-1&&o.value===t.matched.length-1&&Zl(t.params,i.value.params));function g(s={}){if(Ub(s)){const a=e[BA(A.replace)?"replace":"push"](BA(A.to)).catch(zi);return A.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>a),a}return Promise.resolve()}return{route:i,href:hA(()=>i.value.href),isActive:n,isExactActive:r,navigate:g}}function Nb(A){return A.length===1?A[0]:A}const Gb=ho({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:za,setup(A,{slots:e}){const t=pn(za(A)),{options:i}=rt(Sg),o=hA(()=>({[AI(A.activeClass,i.linkActiveClass,"router-link-active")]:t.isActive,[AI(A.exactActiveClass,i.linkExactActiveClass,"router-link-exact-active")]:t.isExactActive}));return()=>{const n=e.default&&Nb(e.default(t));return A.custom?n:GA("a",{"aria-current":t.isExactActive?A.ariaCurrentValue:null,href:t.href,onClick:t.navigate,class:o.value},n)}}}),Lb=Gb;function Ub(A){if(!(A.metaKey||A.altKey||A.ctrlKey||A.shiftKey)&&!A.defaultPrevented&&!(A.button!==void 0&&A.button!==0)){if(A.currentTarget&&A.currentTarget.getAttribute){const e=A.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return A.preventDefault&&A.preventDefault(),!0}}function Mb(A,e){for(const t in e){const i=e[t],o=A[t];if(typeof i=="string"){if(i!==o)return!1}else if(!qe(o)||o.length!==i.length||i.some((n,r)=>n.valueOf()!==o[r].valueOf()))return!1}return!0}function $a(A){return A?A.aliasOf?A.aliasOf.path:A.path:""}const AI=(A,e,t)=>A??e??t,xb=ho({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(A,{attrs:e,slots:t}){const i=rt(Or),o=hA(()=>A.route||i.value),n=rt(Pa,0),r=hA(()=>{let a=BA(n);const{matched:I}=o.value;let l;for(;(l=I[a])&&!l.components;)a++;return a}),g=hA(()=>o.value.matched[r.value]);Ho(Pa,hA(()=>r.value+1)),Ho(lb,g),Ho(Or,o);const s=EA();return ae(()=>[s.value,g.value,A.name],([a,I,l],[C,Q,h])=>{I&&(I.instances[l]=a,Q&&Q!==I&&a&&a===C&&(I.leaveGuards.size||(I.leaveGuards=Q.leaveGuards),I.updateGuards.size||(I.updateGuards=Q.updateGuards))),a&&I&&(!Q||!bi(I,Q)||!C)&&(I.enterCallbacks[l]||[]).forEach(f=>f(a))},{flush:"post"}),()=>{const a=o.value,I=A.name,l=g.value,C=l&&l.components[I];if(!C)return eI(t.default,{Component:C,route:a});const Q=l.props[I],h=Q?Q===!0?a.params:typeof Q=="function"?Q(a):Q:null,u=GA(C,MA({},h,e,{onVnodeUnmounted:E=>{E.component.isUnmounted&&(l.instances[I]=null)},ref:s}));return eI(t.default,{Component:u,route:a})||u}}});function eI(A,e){if(!A)return null;const t=A(e);return t.length===1?t[0]:t}const Jb=xb;function Tb(A){const e=vb(A.routes,A),t=A.parseQuery||Ib,i=A.stringifyQuery||Oa,o=A.history,n=Yi(),r=Yi(),g=Yi(),s=tg(Gt);let a=Gt;Ei&&A.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const I=nr.bind(null,Y=>""+Y),l=nr.bind(null,WR),C=nr.bind(null,Qo);function Q(Y,$){let AA,cA;return Xl(Y)?(AA=e.getRecordMatcher(Y),cA=$):cA=Y,e.addRoute(cA,AA)}function h(Y){const $=e.getRecordMatcher(Y);$&&e.removeRoute($)}function f(){return e.getRoutes().map(Y=>Y.record)}function u(Y){return!!e.getRecordMatcher(Y)}function E(Y,$){if($=MA({},$||s.value),typeof Y=="string"){const k=rr(t,Y,$.path),x=e.resolve({path:k.path},$),q=o.createHref(k.fullPath);return MA(k,x,{params:C(x.params),hash:Qo(k.hash),redirectedFrom:void 0,href:q})}let AA;if(Y.path!=null)AA=MA({},Y,{path:rr(t,Y.path,$.path).path});else{const k=MA({},Y.params);for(const x in k)k[x]==null&&delete k[x];AA=MA({},Y,{params:l(k)}),$.params=l($.params)}const cA=e.resolve(AA,$),SA=Y.hash||"";cA.params=I(C(cA.params));const w=ZR(i,MA({},Y,{hash:OR(SA),path:cA.path})),R=o.createHref(w);return MA({fullPath:w,hash:SA,query:i===Oa?Cb(Y.query):Y.query||{}},cA,{redirectedFrom:void 0,href:R})}function D(Y){return typeof Y=="string"?rr(t,Y,s.value.path):MA({},Y)}function c(Y,$){if(a!==Y)return Ni(XA.NAVIGATION_CANCELLED,{from:$,to:Y})}function d(Y){return N(Y)}function p(Y){return d(MA(D(Y),{replace:!0}))}function v(Y,$){const AA=Y.matched[Y.matched.length-1];if(AA&&AA.redirect){const{redirect:cA}=AA;let SA=typeof cA=="function"?cA(Y,$):cA;return typeof SA=="string"&&(SA=SA.includes("?")||SA.includes("#")?SA=D(SA):{path:SA},SA.params={}),MA({query:Y.query,hash:Y.hash,params:SA.path!=null?{}:Y.params},SA)}}function N(Y,$){const AA=a=E(Y),cA=s.value,SA=Y.state,w=Y.force,R=Y.replace===!0,k=v(AA,cA);if(k)return N(MA(D(k),{state:typeof k=="object"?MA({},SA,k.state):SA,force:w,replace:R}),$||AA);const x=AA;x.redirectedFrom=$;let q;return!w&&XR(i,cA,AA)&&(q=Ni(XA.NAVIGATION_DUPLICATED,{to:x,from:cA}),W(cA,cA,!0,!1)),(q?Promise.resolve(q):S(x,cA)).catch(V=>ct(V)?ct(V,XA.NAVIGATION_GUARD_REDIRECT)?V:_(V):tA(V,x,cA)).then(V=>{if(V){if(ct(V,XA.NAVIGATION_GUARD_REDIRECT))return N(MA({replace:R},D(V.to),{state:typeof V.to=="object"?MA({},SA,V.to.state):SA,force:w}),$||x)}else V=L(x,cA,!0,R,SA);return b(x,cA,V),V})}function G(Y,$){const AA=c(Y,$);return AA?Promise.reject(AA):Promise.resolve()}function H(Y){const $=NA.values().next().value;return $&&typeof $.runWithContext=="function"?$.runWithContext(Y):Y()}function S(Y,$){let AA;const[cA,SA,w]=Bb(Y,$);AA=sr(cA.reverse(),"beforeRouteLeave",Y,$);for(const k of cA)k.leaveGuards.forEach(x=>{AA.push(Tt(x,Y,$))});const R=G.bind(null,Y,$);return AA.push(R),LA(AA).then(()=>{AA=[];for(const k of n.list())AA.push(Tt(k,Y,$));return AA.push(R),LA(AA)}).then(()=>{AA=sr(SA,"beforeRouteUpdate",Y,$);for(const k of SA)k.updateGuards.forEach(x=>{AA.push(Tt(x,Y,$))});return AA.push(R),LA(AA)}).then(()=>{AA=[];for(const k of w)if(k.beforeEnter)if(qe(k.beforeEnter))for(const x of k.beforeEnter)AA.push(Tt(x,Y,$));else AA.push(Tt(k.beforeEnter,Y,$));return AA.push(R),LA(AA)}).then(()=>(Y.matched.forEach(k=>k.enterCallbacks={}),AA=sr(w,"beforeRouteEnter",Y,$,H),AA.push(R),LA(AA))).then(()=>{AA=[];for(const k of r.list())AA.push(Tt(k,Y,$));return AA.push(R),LA(AA)}).catch(k=>ct(k,XA.NAVIGATION_CANCELLED)?k:Promise.reject(k))}function b(Y,$,AA){g.list().forEach(cA=>H(()=>cA(Y,$,AA)))}function L(Y,$,AA,cA,SA){const w=c(Y,$);if(w)return w;const R=$===Gt,k=Ei?history.state:{};AA&&(cA||R?o.replace(Y.fullPath,MA({scroll:R&&k&&k.scroll},SA)):o.push(Y.fullPath,SA)),s.value=Y,W(Y,$,AA,R),_()}let QA;function dA(){QA||(QA=o.listen((Y,$,AA)=>{if(!oe.listening)return;const cA=E(Y),SA=v(cA,oe.currentRoute.value);if(SA){N(MA(SA,{replace:!0,force:!0}),cA).catch(zi);return}a=cA;const w=s.value;Ei&&nb(Ka(w.fullPath,AA.delta),Un()),S(cA,w).catch(R=>ct(R,XA.NAVIGATION_ABORTED|XA.NAVIGATION_CANCELLED)?R:ct(R,XA.NAVIGATION_GUARD_REDIRECT)?(N(MA(D(R.to),{force:!0}),cA).then(k=>{ct(k,XA.NAVIGATION_ABORTED|XA.NAVIGATION_DUPLICATED)&&!AA.delta&&AA.type===_r.pop&&o.go(-1,!1)}).catch(zi),Promise.reject()):(AA.delta&&o.go(-AA.delta,!1),tA(R,cA,w))).then(R=>{R=R||L(cA,w,!1),R&&(AA.delta&&!ct(R,XA.NAVIGATION_CANCELLED)?o.go(-AA.delta,!1):AA.type===_r.pop&&ct(R,XA.NAVIGATION_ABORTED|XA.NAVIGATION_DUPLICATED)&&o.go(-1,!1)),b(cA,w,R)}).catch(zi)}))}let IA=Yi(),oA=Yi(),X;function tA(Y,$,AA){_(Y);const cA=oA.list();return cA.length?cA.forEach(SA=>SA(Y,$,AA)):console.error(Y),Promise.reject(Y)}function fA(){return X&&s.value!==Gt?Promise.resolve():new Promise((Y,$)=>{IA.add([Y,$])})}function _(Y){return X||(X=!Y,dA(),IA.list().forEach(([$,AA])=>Y?AA(Y):$()),IA.reset()),Y}function W(Y,$,AA,cA){const{scrollBehavior:SA}=A;if(!Ei||!SA)return Promise.resolve();const w=!AA&&rb(Ka(Y.fullPath,0))||(cA||!AA)&&history.state&&history.state.scroll||null;return uo().then(()=>SA(Y,$,w)).then(R=>R&&ob(R)).catch(R=>tA(R,Y,$))}const z=Y=>o.go(Y);let DA;const NA=new Set,oe={currentRoute:s,listening:!0,addRoute:Q,removeRoute:h,clearRoutes:e.clearRoutes,hasRoute:u,getRoutes:f,resolve:E,options:A,push:d,replace:p,go:z,back:()=>z(-1),forward:()=>z(1),beforeEach:n.add,beforeResolve:r.add,afterEach:g.add,onError:oA.add,isReady:fA,install(Y){Y.component("RouterLink",Lb),Y.component("RouterView",Jb),Y.config.globalProperties.$router=oe,Object.defineProperty(Y.config.globalProperties,"$route",{enumerable:!0,get:()=>BA(s)}),Ei&&!DA&&s.value===Gt&&(DA=!0,d(o.location).catch(cA=>{}));const $={};for(const cA in Gt)Object.defineProperty($,cA,{get:()=>s.value[cA],enumerable:!0});Y.provide(Sg,oe),Y.provide($l,DI($)),Y.provide(Or,s);const AA=Y.unmount;NA.add(Y),Y.unmount=function(){NA.delete(Y),NA.size<1&&(a=Gt,QA&&QA(),QA=null,s.value=Gt,DA=!1,X=!1),AA()}}};function LA(Y){return Y.reduce(($,AA)=>$.then(()=>H(AA)),Promise.resolve())}return oe}const Hb=[{path:"/",name:"Home",component:()=>Ul(()=>Promise.resolve().then(()=>DR),void 0,import.meta.url)}],Yb=Tb({history:ub("./"),routes:Hb}),_b=fu({legacy:!1,locale:ed(),fallbackLocale:"en",messages:Ad}),Rg=fc(GR);Rg.use(Yb);Rg.use(_b);Rg.mount("#app"); diff --git a/main/manager-web/public/generator/assets/index-CrIJdTCK.css b/main/manager-web/public/generator/assets/index-CrIJdTCK.css new file mode 100644 index 00000000..2674bc17 --- /dev/null +++ b/main/manager-web/public/generator/assets/index-CrIJdTCK.css @@ -0,0 +1 @@ +*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.bottom-4{bottom:1rem}.right-0{right:0}.right-4{right:1rem}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.h-0\.5{height:.125rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-3{height:.75rem}.h-32{height:8rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-full{height:100%}.max-h-32{max-height:8rem}.max-h-64{max-height:16rem}.max-h-\[90vh\]{max-height:90vh}.min-h-96{min-height:24rem}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[300px\]{min-width:300px}.max-w-2xl{max-width:42rem}.max-w-32{max-width:8rem}.max-w-7xl{max-width:80rem}.max-w-full{max-width:100%}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.grow{flex-grow:1}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-items-center{justify-items:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.border-green-200{--tw-border-opacity: 1;border-color:rgb(187 247 208 / var(--tw-border-opacity, 1))}.border-green-300{--tw-border-opacity: 1;border-color:rgb(134 239 172 / var(--tw-border-opacity, 1))}.border-orange-200{--tw-border-opacity: 1;border-color:rgb(254 215 170 / var(--tw-border-opacity, 1))}.border-primary-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-red-300{--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1))}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-yellow-200{--tw-border-opacity: 1;border-color:rgb(254 240 138 / var(--tw-border-opacity, 1))}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-500{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity, 1))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-pink-100{--tw-bg-opacity: 1;background-color:rgb(252 231 243 / var(--tw-bg-opacity, 1))}.bg-primary-50{--tw-bg-opacity: 1;background-color:rgb(240 249 255 / var(--tw-bg-opacity, 1))}.bg-primary-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-red-400{--tw-bg-opacity: 1;background-color:rgb(248 113 113 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-sky-100{--tw-bg-opacity: 1;background-color:rgb(224 242 254 / var(--tw-bg-opacity, 1))}.bg-stone-100{--tw-bg-opacity: 1;background-color:rgb(245 245 244 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity, 1))}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(254 252 232 / var(--tw-bg-opacity, 1))}.bg-opacity-10{--tw-bg-opacity: .1}.bg-opacity-50{--tw-bg-opacity: .5}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pr-10{padding-right:2.5rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-tight{line-height:1.25}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-green-900{--tw-text-opacity: 1;color:rgb(20 83 45 / var(--tw-text-opacity, 1))}.text-indigo-500{--tw-text-opacity: 1;color:rgb(99 102 241 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-800{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity, 1))}.text-pink-500{--tw-text-opacity: 1;color:rgb(236 72 153 / var(--tw-text-opacity, 1))}.text-primary-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-primary-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-purple-500{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.text-yellow-700{--tw-text-opacity: 1;color:rgb(161 98 7 / var(--tw-text-opacity, 1))}.text-yellow-900{--tw-text-opacity: 1;color:rgb(113 63 18 / var(--tw-text-opacity, 1))}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-inner{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.grayscale{--tw-grayscale: grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.step-indicator{display:flex;height:2rem;width:2rem;align-items:center;justify-content:center;border-radius:9999px;font-size:.875rem;line-height:1.25rem;font-weight:500}.step-indicator.active{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.step-indicator.completed{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.step-indicator.inactive{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.tab-button{border-top-left-radius:.5rem;border-top-right-radius:.5rem;border-bottom-width:2px;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.tab-button.active{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.tab-button.inactive{border-color:transparent;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.tab-button.inactive:hover{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1));--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:left-\[2px\]:after{content:var(--tw-content);left:2px}.after\:top-\[2px\]:after{content:var(--tw-content);top:2px}.after\:h-5:after{content:var(--tw-content);height:1.25rem}.after\:w-5:after{content:var(--tw-content);width:1.25rem}.after\:rounded-full:after{content:var(--tw-content);border-radius:9999px}.after\:border:after{content:var(--tw-content);border-width:1px}.after\:border-gray-300:after{content:var(--tw-content);--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.after\:bg-white:after{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.after\:transition-all:after{content:var(--tw-content);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.after\:content-\[\'\'\]:after{--tw-content: "";content:var(--tw-content)}.hover\:border-gray-300:hover{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.hover\:border-gray-400:hover{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.hover\:bg-blue-600:hover{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-600:hover{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.hover\:bg-green-600:hover{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.hover\:bg-pink-200:hover{--tw-bg-opacity: 1;background-color:rgb(251 207 232 / var(--tw-bg-opacity, 1))}.hover\:bg-primary-600:hover{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.hover\:bg-red-600:hover{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.hover\:bg-sky-200:hover{--tw-bg-opacity: 1;background-color:rgb(186 230 253 / var(--tw-bg-opacity, 1))}.hover\:bg-stone-200:hover{--tw-bg-opacity: 1;background-color:rgb(231 229 228 / var(--tw-bg-opacity, 1))}.hover\:bg-yellow-200:hover{--tw-bg-opacity: 1;background-color:rgb(254 240 138 / var(--tw-bg-opacity, 1))}.hover\:text-gray-500:hover{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.hover\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.hover\:text-gray-900:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.hover\:text-primary-500:hover{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.hover\:text-red-500:hover{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.hover\:text-red-800:hover{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.focus\:border-primary-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus\:bg-gray-100:focus{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-blue-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.focus\:ring-primary-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.disabled\:bg-gray-300:disabled{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.peer:checked~.peer-checked\:bg-primary-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.peer:checked~.peer-checked\:after\:translate-x-full:after{content:var(--tw-content);--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:checked~.peer-checked\:after\:border-white:after{content:var(--tw-content);--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.peer:focus~.peer-focus\:outline-none{outline:2px solid transparent;outline-offset:2px}.peer:focus~.peer-focus\:ring-4{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}@media (min-width: 640px){.sm\:mr-2{margin-right:.5rem}.sm\:inline{display:inline}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:gap-0{gap:0px}.sm\:space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2rem * var(--tw-space-x-reverse));margin-left:calc(2rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width: 768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width: 1024px){.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:w-80{width:20rem}.lg\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:px-8{padding-left:2rem;padding-right:2rem}}.emoji-container[data-v-aa1dde40]{display:flex;align-items:center;justify-content:center}.emoji-image[data-v-aa1dde40]{border-radius:8px;-o-object-fit:contain;object-fit:contain}.emoji-fallback[data-v-aa1dde40]{display:flex;align-items:center;justify-content:center}.text-message[data-v-aa1dde40]{line-height:1;word-wrap:break-word} diff --git a/main/manager-web/public/generator/favicon.ico b/main/manager-web/public/generator/favicon.ico new file mode 100644 index 00000000..5f285a58 Binary files /dev/null and b/main/manager-web/public/generator/favicon.ico differ diff --git a/main/manager-web/public/generator/index.html b/main/manager-web/public/generator/index.html new file mode 100644 index 00000000..ab8a05af --- /dev/null +++ b/main/manager-web/public/generator/index.html @@ -0,0 +1,15 @@ + + + + + + + + Xiaozhi AI Customization + + + + +
+ + diff --git a/main/manager-web/public/generator/static/README.md b/main/manager-web/public/generator/static/README.md new file mode 100644 index 00000000..ea7f407d --- /dev/null +++ b/main/manager-web/public/generator/static/README.md @@ -0,0 +1,20 @@ + +### Alibaba Puhui Fonts + +https://www.alibabafonts.com/ + +### twemoji32 / twemoji64 + +https://github.com/twitter/twemoji + +### Wakenet models + +The wakenet model weights are copied from the ESP-SR repo. + +https://github.com/espressif/esp-sr/tree/master/model/wakenet_model + +### Multinet models + +The multinet model weights are copied from the ESP-SR repo. + +https://github.com/espressif/esp-sr/tree/master/model/multinet_model diff --git a/main/manager-web/public/generator/static/charsets/deepseek.txt b/main/manager-web/public/generator/static/charsets/deepseek.txt new file mode 100644 index 00000000..fb1e6351 Binary files /dev/null and b/main/manager-web/public/generator/static/charsets/deepseek.txt differ diff --git a/main/manager-web/public/generator/static/charsets/gb2312.txt b/main/manager-web/public/generator/static/charsets/gb2312.txt new file mode 100644 index 00000000..5cb91d49 --- /dev/null +++ b/main/manager-web/public/generator/static/charsets/gb2312.txt @@ -0,0 +1,7445 @@ +  +、 +。 +・ +ˉ +ˇ +¨ +〃 +々 +― +~ +‖ +… +‘ +’ +“ +” +〔 +〕 +〈 +〉 +《 +》 +「 +」 +『 +』 +〖 +〗 +【 +】 +± +× +÷ +∶ +∧ +∨ +∑ +∏ +∪ +∩ +∈ +∷ +√ +⊥ +∥ +∠ +⌒ +⊙ +∫ +∮ +≡ +≌ +≈ +∽ +∝ +≠ +≮ +≯ +≤ +≥ +∞ +∵ +∴ +♂ +♀ +° +′ +″ +℃ +$ +¤ +¢ +£ +‰ +§ +№ +☆ +★ +○ +● +◎ +◇ +◆ +□ +■ +△ +▲ +※ +→ +← +↑ +↓ +〓 +⒈ +⒉ +⒊ +⒋ +⒌ +⒍ +⒎ +⒏ +⒐ +⒑ +⒒ +⒓ +⒔ +⒕ +⒖ +⒗ +⒘ +⒙ +⒚ +⒛ +⑴ +⑵ +⑶ +⑷ +⑸ +⑹ +⑺ +⑻ +⑼ +⑽ +⑾ +⑿ +⒀ +⒁ +⒂ +⒃ +⒄ +⒅ +⒆ +⒇ +① +② +③ +④ +⑤ +⑥ +⑦ +⑧ +⑨ +⑩ +㈠ +㈡ +㈢ +㈣ +㈤ +㈥ +㈦ +㈧ +㈨ +㈩ +Ⅰ +Ⅱ +Ⅲ +Ⅳ +Ⅴ +Ⅵ +Ⅶ +Ⅷ +Ⅸ +Ⅹ +Ⅺ +Ⅻ +! +" +# +¥ +% +& +' +( +) +* ++ +, +- +. +/ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +: +; +< += +> +? +@ +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y +Z +[ +\ +] +^ +_ +` +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x +y +z +{ +| +} + ̄ +ぁ +あ +ぃ +い +ぅ +う +ぇ +え +ぉ +お +か +が +き +ぎ +く +ぐ +け +げ +こ +ご +さ +ざ +し +じ +す +ず +せ +ぜ +そ +ぞ +た +だ +ち +ぢ +っ +つ +づ +て +で +と +ど +な +に +ぬ +ね +の +は +ば +ぱ +ひ +び +ぴ +ふ +ぶ +ぷ +へ +べ +ぺ +ほ +ぼ +ぽ +ま +み +む +め +も +ゃ +や +ゅ +ゆ +ょ +よ +ら +り +る +れ +ろ +ゎ +わ +ゐ +ゑ +を +ん +ァ +ア +ィ +イ +ゥ +ウ +ェ +エ +ォ +オ +カ +ガ +キ +ギ +ク +グ +ケ +ゲ +コ +ゴ +サ +ザ +シ +ジ +ス +ズ +セ +ゼ +ソ +ゾ +タ +ダ +チ +ヂ +ッ +ツ +ヅ +テ +デ +ト +ド +ナ +ニ +ヌ +ネ +ノ +ハ +バ +パ +ヒ +ビ +ピ +フ +ブ +プ +ヘ +ベ +ペ +ホ +ボ +ポ +マ +ミ +ム +メ +モ +ャ +ヤ +ュ +ユ +ョ +ヨ +ラ +リ +ル +レ +ロ +ヮ +ワ +ヰ +ヱ +ヲ +ン +ヴ +ヵ +ヶ +Α +Β +Γ +Δ +Ε +Ζ +Η +Θ +Ι +Κ +Λ +Μ +Ν +Ξ +Ο +Π +Ρ +Σ +Τ +Υ +Φ +Χ +Ψ +Ω +α +β +γ +δ +ε +ζ +η +θ +ι +κ +λ +μ +ν +ξ +ο +π +ρ +σ +τ +υ +φ +χ +ψ +ω +А +Б +В +Г +Д +Е +Ё +Ж +З +И +Й +К +Л +М +Н +О +П +Р +С +Т +У +Ф +Х +Ц +Ч +Ш +Щ +Ъ +Ы +Ь +Э +Ю +Я +а +б +в +г +д +е +ё +ж +з +и +й +к +л +м +н +о +п +р +с +т +у +ф +х +ц +ч +ш +щ +ъ +ы +ь +э +ю +я +ā +á +ǎ +à +ē +é +ě +è +ī +í +ǐ +ì +ō +ó +ǒ +ò +ū +ú +ǔ +ù +ǖ +ǘ +ǚ +ǜ +ü +ê +ㄅ +ㄆ +ㄇ +ㄈ +ㄉ +ㄊ +ㄋ +ㄌ +ㄍ +ㄎ +ㄏ +ㄐ +ㄑ +ㄒ +ㄓ +ㄔ +ㄕ +ㄖ +ㄗ +ㄘ +ㄙ +ㄚ +ㄛ +ㄜ +ㄝ +ㄞ +ㄟ +ㄠ +ㄡ +ㄢ +ㄣ +ㄤ +ㄥ +ㄦ +ㄧ +ㄨ +ㄩ +─ +━ +│ +┃ +┄ +┅ +┆ +┇ +┈ +┉ +┊ +┋ +┌ +┍ +┎ +┏ +┐ +┑ +┒ +┓ +└ +┕ +┖ +┗ +┘ +┙ +┚ +┛ +├ +┝ +┞ +┟ +┠ +┡ +┢ +┣ +┤ +┥ +┦ +┧ +┨ +┩ +┪ +┫ +┬ +┭ +┮ +┯ +┰ +┱ +┲ +┳ +┴ +┵ +┶ +┷ +┸ +┹ +┺ +┻ +┼ +┽ +┾ +┿ +╀ +╁ +╂ +╃ +╄ +╅ +╆ +╇ +╈ +╉ +╊ +╋ +啊 +阿 +埃 +挨 +哎 +唉 +哀 +皑 +癌 +蔼 +矮 +艾 +碍 +爱 +隘 +鞍 +氨 +安 +俺 +按 +暗 +岸 +胺 +案 +肮 +昂 +盎 +凹 +敖 +熬 +翱 +袄 +傲 +奥 +懊 +澳 +芭 +捌 +扒 +叭 +吧 +笆 +八 +疤 +巴 +拔 +跋 +靶 +把 +耙 +坝 +霸 +罢 +爸 +白 +柏 +百 +摆 +佰 +败 +拜 +稗 +斑 +班 +搬 +扳 +般 +颁 +板 +版 +扮 +拌 +伴 +瓣 +半 +办 +绊 +邦 +帮 +梆 +榜 +膀 +绑 +棒 +磅 +蚌 +镑 +傍 +谤 +苞 +胞 +包 +褒 +剥 +薄 +雹 +保 +堡 +饱 +宝 +抱 +报 +暴 +豹 +鲍 +爆 +杯 +碑 +悲 +卑 +北 +辈 +背 +贝 +钡 +倍 +狈 +备 +惫 +焙 +被 +奔 +苯 +本 +笨 +崩 +绷 +甭 +泵 +蹦 +迸 +逼 +鼻 +比 +鄙 +笔 +彼 +碧 +蓖 +蔽 +毕 +毙 +毖 +币 +庇 +痹 +闭 +敝 +弊 +必 +辟 +壁 +臂 +避 +陛 +鞭 +边 +编 +贬 +扁 +便 +变 +卞 +辨 +辩 +辫 +遍 +标 +彪 +膘 +表 +鳖 +憋 +别 +瘪 +彬 +斌 +濒 +滨 +宾 +摈 +兵 +冰 +柄 +丙 +秉 +饼 +炳 +病 +并 +玻 +菠 +播 +拨 +钵 +波 +博 +勃 +搏 +铂 +箔 +伯 +帛 +舶 +脖 +膊 +渤 +泊 +驳 +捕 +卜 +哺 +补 +埠 +不 +布 +步 +簿 +部 +怖 +擦 +猜 +裁 +材 +才 +财 +睬 +踩 +采 +彩 +菜 +蔡 +餐 +参 +蚕 +残 +惭 +惨 +灿 +苍 +舱 +仓 +沧 +藏 +操 +糙 +槽 +曹 +草 +厕 +策 +侧 +册 +测 +层 +蹭 +插 +叉 +茬 +茶 +查 +碴 +搽 +察 +岔 +差 +诧 +拆 +柴 +豺 +搀 +掺 +蝉 +馋 +谗 +缠 +铲 +产 +阐 +颤 +昌 +猖 +场 +尝 +常 +长 +偿 +肠 +厂 +敞 +畅 +唱 +倡 +超 +抄 +钞 +朝 +嘲 +潮 +巢 +吵 +炒 +车 +扯 +撤 +掣 +彻 +澈 +郴 +臣 +辰 +尘 +晨 +忱 +沉 +陈 +趁 +衬 +撑 +称 +城 +橙 +成 +呈 +乘 +程 +惩 +澄 +诚 +承 +逞 +骋 +秤 +吃 +痴 +持 +匙 +池 +迟 +弛 +驰 +耻 +齿 +侈 +尺 +赤 +翅 +斥 +炽 +充 +冲 +虫 +崇 +宠 +抽 +酬 +畴 +踌 +稠 +愁 +筹 +仇 +绸 +瞅 +丑 +臭 +初 +出 +橱 +厨 +躇 +锄 +雏 +滁 +除 +楚 +础 +储 +矗 +搐 +触 +处 +揣 +川 +穿 +椽 +传 +船 +喘 +串 +疮 +窗 +幢 +床 +闯 +创 +吹 +炊 +捶 +锤 +垂 +春 +椿 +醇 +唇 +淳 +纯 +蠢 +戳 +绰 +疵 +茨 +磁 +雌 +辞 +慈 +瓷 +词 +此 +刺 +赐 +次 +聪 +葱 +囱 +匆 +从 +丛 +凑 +粗 +醋 +簇 +促 +蹿 +篡 +窜 +摧 +崔 +催 +脆 +瘁 +粹 +淬 +翠 +村 +存 +寸 +磋 +撮 +搓 +措 +挫 +错 +搭 +达 +答 +瘩 +打 +大 +呆 +歹 +傣 +戴 +带 +殆 +代 +贷 +袋 +待 +逮 +怠 +耽 +担 +丹 +单 +郸 +掸 +胆 +旦 +氮 +但 +惮 +淡 +诞 +弹 +蛋 +当 +挡 +党 +荡 +档 +刀 +捣 +蹈 +倒 +岛 +祷 +导 +到 +稻 +悼 +道 +盗 +德 +得 +的 +蹬 +灯 +登 +等 +瞪 +凳 +邓 +堤 +低 +滴 +迪 +敌 +笛 +狄 +涤 +翟 +嫡 +抵 +底 +地 +蒂 +第 +帝 +弟 +递 +缔 +颠 +掂 +滇 +碘 +点 +典 +靛 +垫 +电 +佃 +甸 +店 +惦 +奠 +淀 +殿 +碉 +叼 +雕 +凋 +刁 +掉 +吊 +钓 +调 +跌 +爹 +碟 +蝶 +迭 +谍 +叠 +丁 +盯 +叮 +钉 +顶 +鼎 +锭 +定 +订 +丢 +东 +冬 +董 +懂 +动 +栋 +侗 +恫 +冻 +洞 +兜 +抖 +斗 +陡 +豆 +逗 +痘 +都 +督 +毒 +犊 +独 +读 +堵 +睹 +赌 +杜 +镀 +肚 +度 +渡 +妒 +端 +短 +锻 +段 +断 +缎 +堆 +兑 +队 +对 +墩 +吨 +蹲 +敦 +顿 +囤 +钝 +盾 +遁 +掇 +哆 +多 +夺 +垛 +躲 +朵 +跺 +舵 +剁 +惰 +堕 +蛾 +峨 +鹅 +俄 +额 +讹 +娥 +恶 +厄 +扼 +遏 +鄂 +饿 +恩 +而 +儿 +耳 +尔 +饵 +洱 +二 +贰 +发 +罚 +筏 +伐 +乏 +阀 +法 +珐 +藩 +帆 +番 +翻 +樊 +矾 +钒 +繁 +凡 +烦 +反 +返 +范 +贩 +犯 +饭 +泛 +坊 +芳 +方 +肪 +房 +防 +妨 +仿 +访 +纺 +放 +菲 +非 +啡 +飞 +肥 +匪 +诽 +吠 +肺 +废 +沸 +费 +芬 +酚 +吩 +氛 +分 +纷 +坟 +焚 +汾 +粉 +奋 +份 +忿 +愤 +粪 +丰 +封 +枫 +蜂 +峰 +锋 +风 +疯 +烽 +逢 +冯 +缝 +讽 +奉 +凤 +佛 +否 +夫 +敷 +肤 +孵 +扶 +拂 +辐 +幅 +氟 +符 +伏 +俘 +服 +浮 +涪 +福 +袱 +弗 +甫 +抚 +辅 +俯 +釜 +斧 +脯 +腑 +府 +腐 +赴 +副 +覆 +赋 +复 +傅 +付 +阜 +父 +腹 +负 +富 +讣 +附 +妇 +缚 +咐 +噶 +嘎 +该 +改 +概 +钙 +盖 +溉 +干 +甘 +杆 +柑 +竿 +肝 +赶 +感 +秆 +敢 +赣 +冈 +刚 +钢 +缸 +肛 +纲 +岗 +港 +杠 +篙 +皋 +高 +膏 +羔 +糕 +搞 +镐 +稿 +告 +哥 +歌 +搁 +戈 +鸽 +胳 +疙 +割 +革 +葛 +格 +蛤 +阁 +隔 +铬 +个 +各 +给 +根 +跟 +耕 +更 +庚 +羹 +埂 +耿 +梗 +工 +攻 +功 +恭 +龚 +供 +躬 +公 +宫 +弓 +巩 +汞 +拱 +贡 +共 +钩 +勾 +沟 +苟 +狗 +垢 +构 +购 +够 +辜 +菇 +咕 +箍 +估 +沽 +孤 +姑 +鼓 +古 +蛊 +骨 +谷 +股 +故 +顾 +固 +雇 +刮 +瓜 +剐 +寡 +挂 +褂 +乖 +拐 +怪 +棺 +关 +官 +冠 +观 +管 +馆 +罐 +惯 +灌 +贯 +光 +广 +逛 +瑰 +规 +圭 +硅 +归 +龟 +闺 +轨 +鬼 +诡 +癸 +桂 +柜 +跪 +贵 +刽 +辊 +滚 +棍 +锅 +郭 +国 +果 +裹 +过 +哈 +骸 +孩 +海 +氦 +亥 +害 +骇 +酣 +憨 +邯 +韩 +含 +涵 +寒 +函 +喊 +罕 +翰 +撼 +捍 +旱 +憾 +悍 +焊 +汗 +汉 +夯 +杭 +航 +壕 +嚎 +豪 +毫 +郝 +好 +耗 +号 +浩 +呵 +喝 +荷 +菏 +核 +禾 +和 +何 +合 +盒 +貉 +阂 +河 +涸 +赫 +褐 +鹤 +贺 +嘿 +黑 +痕 +很 +狠 +恨 +哼 +亨 +横 +衡 +恒 +轰 +哄 +烘 +虹 +鸿 +洪 +宏 +弘 +红 +喉 +侯 +猴 +吼 +厚 +候 +后 +呼 +乎 +忽 +瑚 +壶 +葫 +胡 +蝴 +狐 +糊 +湖 +弧 +虎 +唬 +护 +互 +沪 +户 +花 +哗 +华 +猾 +滑 +画 +划 +化 +话 +槐 +徊 +怀 +淮 +坏 +欢 +环 +桓 +还 +缓 +换 +患 +唤 +痪 +豢 +焕 +涣 +宦 +幻 +荒 +慌 +黄 +磺 +蝗 +簧 +皇 +凰 +惶 +煌 +晃 +幌 +恍 +谎 +灰 +挥 +辉 +徽 +恢 +蛔 +回 +毁 +悔 +慧 +卉 +惠 +晦 +贿 +秽 +会 +烩 +汇 +讳 +诲 +绘 +荤 +昏 +婚 +魂 +浑 +混 +豁 +活 +伙 +火 +获 +或 +惑 +霍 +货 +祸 +击 +圾 +基 +机 +畸 +稽 +积 +箕 +肌 +饥 +迹 +激 +讥 +鸡 +姬 +绩 +缉 +吉 +极 +棘 +辑 +籍 +集 +及 +急 +疾 +汲 +即 +嫉 +级 +挤 +几 +脊 +己 +蓟 +技 +冀 +季 +伎 +祭 +剂 +悸 +济 +寄 +寂 +计 +记 +既 +忌 +际 +妓 +继 +纪 +嘉 +枷 +夹 +佳 +家 +加 +荚 +颊 +贾 +甲 +钾 +假 +稼 +价 +架 +驾 +嫁 +歼 +监 +坚 +尖 +笺 +间 +煎 +兼 +肩 +艰 +奸 +缄 +茧 +检 +柬 +碱 +硷 +拣 +捡 +简 +俭 +剪 +减 +荐 +槛 +鉴 +践 +贱 +见 +键 +箭 +件 +健 +舰 +剑 +饯 +渐 +溅 +涧 +建 +僵 +姜 +将 +浆 +江 +疆 +蒋 +桨 +奖 +讲 +匠 +酱 +降 +蕉 +椒 +礁 +焦 +胶 +交 +郊 +浇 +骄 +娇 +嚼 +搅 +铰 +矫 +侥 +脚 +狡 +角 +饺 +缴 +绞 +剿 +教 +酵 +轿 +较 +叫 +窖 +揭 +接 +皆 +秸 +街 +阶 +截 +劫 +节 +桔 +杰 +捷 +睫 +竭 +洁 +结 +解 +姐 +戒 +藉 +芥 +界 +借 +介 +疥 +诫 +届 +巾 +筋 +斤 +金 +今 +津 +襟 +紧 +锦 +仅 +谨 +进 +靳 +晋 +禁 +近 +烬 +浸 +尽 +劲 +荆 +兢 +茎 +睛 +晶 +鲸 +京 +惊 +精 +粳 +经 +井 +警 +景 +颈 +静 +境 +敬 +镜 +径 +痉 +靖 +竟 +竞 +净 +炯 +窘 +揪 +究 +纠 +玖 +韭 +久 +灸 +九 +酒 +厩 +救 +旧 +臼 +舅 +咎 +就 +疚 +鞠 +拘 +狙 +疽 +居 +驹 +菊 +局 +咀 +矩 +举 +沮 +聚 +拒 +据 +巨 +具 +距 +踞 +锯 +俱 +句 +惧 +炬 +剧 +捐 +鹃 +娟 +倦 +眷 +卷 +绢 +撅 +攫 +抉 +掘 +倔 +爵 +觉 +决 +诀 +绝 +均 +菌 +钧 +军 +君 +峻 +俊 +竣 +浚 +郡 +骏 +喀 +咖 +卡 +咯 +开 +揩 +楷 +凯 +慨 +刊 +堪 +勘 +坎 +砍 +看 +康 +慷 +糠 +扛 +抗 +亢 +炕 +考 +拷 +烤 +靠 +坷 +苛 +柯 +棵 +磕 +颗 +科 +壳 +咳 +可 +渴 +克 +刻 +客 +课 +肯 +啃 +垦 +恳 +坑 +吭 +空 +恐 +孔 +控 +抠 +口 +扣 +寇 +枯 +哭 +窟 +苦 +酷 +库 +裤 +夸 +垮 +挎 +跨 +胯 +块 +筷 +侩 +快 +宽 +款 +匡 +筐 +狂 +框 +矿 +眶 +旷 +况 +亏 +盔 +岿 +窥 +葵 +奎 +魁 +傀 +馈 +愧 +溃 +坤 +昆 +捆 +困 +括 +扩 +廓 +阔 +垃 +拉 +喇 +蜡 +腊 +辣 +啦 +莱 +来 +赖 +蓝 +婪 +栏 +拦 +篮 +阑 +兰 +澜 +谰 +揽 +览 +懒 +缆 +烂 +滥 +琅 +榔 +狼 +廊 +郎 +朗 +浪 +捞 +劳 +牢 +老 +佬 +姥 +酪 +烙 +涝 +勒 +乐 +雷 +镭 +蕾 +磊 +累 +儡 +垒 +擂 +肋 +类 +泪 +棱 +楞 +冷 +厘 +梨 +犁 +黎 +篱 +狸 +离 +漓 +理 +李 +里 +鲤 +礼 +莉 +荔 +吏 +栗 +丽 +厉 +励 +砾 +历 +利 +傈 +例 +俐 +痢 +立 +粒 +沥 +隶 +力 +璃 +哩 +俩 +联 +莲 +连 +镰 +廉 +怜 +涟 +帘 +敛 +脸 +链 +恋 +炼 +练 +粮 +凉 +梁 +粱 +良 +两 +辆 +量 +晾 +亮 +谅 +撩 +聊 +僚 +疗 +燎 +寥 +辽 +潦 +了 +撂 +镣 +廖 +料 +列 +裂 +烈 +劣 +猎 +琳 +林 +磷 +霖 +临 +邻 +鳞 +淋 +凛 +赁 +吝 +拎 +玲 +菱 +零 +龄 +铃 +伶 +羚 +凌 +灵 +陵 +岭 +领 +另 +令 +溜 +琉 +榴 +硫 +馏 +留 +刘 +瘤 +流 +柳 +六 +龙 +聋 +咙 +笼 +窿 +隆 +垄 +拢 +陇 +楼 +娄 +搂 +篓 +漏 +陋 +芦 +卢 +颅 +庐 +炉 +掳 +卤 +虏 +鲁 +麓 +碌 +露 +路 +赂 +鹿 +潞 +禄 +录 +陆 +戮 +驴 +吕 +铝 +侣 +旅 +履 +屡 +缕 +虑 +氯 +律 +率 +滤 +绿 +峦 +挛 +孪 +滦 +卵 +乱 +掠 +略 +抡 +轮 +伦 +仑 +沦 +纶 +论 +萝 +螺 +罗 +逻 +锣 +箩 +骡 +裸 +落 +洛 +骆 +络 +妈 +麻 +玛 +码 +蚂 +马 +骂 +嘛 +吗 +埋 +买 +麦 +卖 +迈 +脉 +瞒 +馒 +蛮 +满 +蔓 +曼 +慢 +漫 +谩 +芒 +茫 +盲 +氓 +忙 +莽 +猫 +茅 +锚 +毛 +矛 +铆 +卯 +茂 +冒 +帽 +貌 +贸 +么 +玫 +枚 +梅 +酶 +霉 +煤 +没 +眉 +媒 +镁 +每 +美 +昧 +寐 +妹 +媚 +门 +闷 +们 +萌 +蒙 +檬 +盟 +锰 +猛 +梦 +孟 +眯 +醚 +靡 +糜 +迷 +谜 +弥 +米 +秘 +觅 +泌 +蜜 +密 +幂 +棉 +眠 +绵 +冕 +免 +勉 +娩 +缅 +面 +苗 +描 +瞄 +藐 +秒 +渺 +庙 +妙 +蔑 +灭 +民 +抿 +皿 +敏 +悯 +闽 +明 +螟 +鸣 +铭 +名 +命 +谬 +摸 +摹 +蘑 +模 +膜 +磨 +摩 +魔 +抹 +末 +莫 +墨 +默 +沫 +漠 +寞 +陌 +谋 +牟 +某 +拇 +牡 +亩 +姆 +母 +墓 +暮 +幕 +募 +慕 +木 +目 +睦 +牧 +穆 +拿 +哪 +呐 +钠 +那 +娜 +纳 +氖 +乃 +奶 +耐 +奈 +南 +男 +难 +囊 +挠 +脑 +恼 +闹 +淖 +呢 +馁 +内 +嫩 +能 +妮 +霓 +倪 +泥 +尼 +拟 +你 +匿 +腻 +逆 +溺 +蔫 +拈 +年 +碾 +撵 +捻 +念 +娘 +酿 +鸟 +尿 +捏 +聂 +孽 +啮 +镊 +镍 +涅 +您 +柠 +狞 +凝 +宁 +拧 +泞 +牛 +扭 +钮 +纽 +脓 +浓 +农 +弄 +奴 +努 +怒 +女 +暖 +虐 +疟 +挪 +懦 +糯 +诺 +哦 +欧 +鸥 +殴 +藕 +呕 +偶 +沤 +啪 +趴 +爬 +帕 +怕 +琶 +拍 +排 +牌 +徘 +湃 +派 +攀 +潘 +盘 +磐 +盼 +畔 +判 +叛 +乓 +庞 +旁 +耪 +胖 +抛 +咆 +刨 +炮 +袍 +跑 +泡 +呸 +胚 +培 +裴 +赔 +陪 +配 +佩 +沛 +喷 +盆 +砰 +抨 +烹 +澎 +彭 +蓬 +棚 +硼 +篷 +膨 +朋 +鹏 +捧 +碰 +坯 +砒 +霹 +批 +披 +劈 +琵 +毗 +啤 +脾 +疲 +皮 +匹 +痞 +僻 +屁 +譬 +篇 +偏 +片 +骗 +飘 +漂 +瓢 +票 +撇 +瞥 +拼 +频 +贫 +品 +聘 +乒 +坪 +苹 +萍 +平 +凭 +瓶 +评 +屏 +坡 +泼 +颇 +婆 +破 +魄 +迫 +粕 +剖 +扑 +铺 +仆 +莆 +葡 +菩 +蒲 +埔 +朴 +圃 +普 +浦 +谱 +曝 +瀑 +期 +欺 +栖 +戚 +妻 +七 +凄 +漆 +柒 +沏 +其 +棋 +奇 +歧 +畦 +崎 +脐 +齐 +旗 +祈 +祁 +骑 +起 +岂 +乞 +企 +启 +契 +砌 +器 +气 +迄 +弃 +汽 +泣 +讫 +掐 +恰 +洽 +牵 +扦 +钎 +铅 +千 +迁 +签 +仟 +谦 +乾 +黔 +钱 +钳 +前 +潜 +遣 +浅 +谴 +堑 +嵌 +欠 +歉 +枪 +呛 +腔 +羌 +墙 +蔷 +强 +抢 +橇 +锹 +敲 +悄 +桥 +瞧 +乔 +侨 +巧 +鞘 +撬 +翘 +峭 +俏 +窍 +切 +茄 +且 +怯 +窃 +钦 +侵 +亲 +秦 +琴 +勤 +芹 +擒 +禽 +寝 +沁 +青 +轻 +氢 +倾 +卿 +清 +擎 +晴 +氰 +情 +顷 +请 +庆 +琼 +穷 +秋 +丘 +邱 +球 +求 +囚 +酋 +泅 +趋 +区 +蛆 +曲 +躯 +屈 +驱 +渠 +取 +娶 +龋 +趣 +去 +圈 +颧 +权 +醛 +泉 +全 +痊 +拳 +犬 +券 +劝 +缺 +炔 +瘸 +却 +鹊 +榷 +确 +雀 +裙 +群 +然 +燃 +冉 +染 +瓤 +壤 +攘 +嚷 +让 +饶 +扰 +绕 +惹 +热 +壬 +仁 +人 +忍 +韧 +任 +认 +刃 +妊 +纫 +扔 +仍 +日 +戎 +茸 +蓉 +荣 +融 +熔 +溶 +容 +绒 +冗 +揉 +柔 +肉 +茹 +蠕 +儒 +孺 +如 +辱 +乳 +汝 +入 +褥 +软 +阮 +蕊 +瑞 +锐 +闰 +润 +若 +弱 +撒 +洒 +萨 +腮 +鳃 +塞 +赛 +三 +叁 +伞 +散 +桑 +嗓 +丧 +搔 +骚 +扫 +嫂 +瑟 +色 +涩 +森 +僧 +莎 +砂 +杀 +刹 +沙 +纱 +傻 +啥 +煞 +筛 +晒 +珊 +苫 +杉 +山 +删 +煽 +衫 +闪 +陕 +擅 +赡 +膳 +善 +汕 +扇 +缮 +墒 +伤 +商 +赏 +晌 +上 +尚 +裳 +梢 +捎 +稍 +烧 +芍 +勺 +韶 +少 +哨 +邵 +绍 +奢 +赊 +蛇 +舌 +舍 +赦 +摄 +射 +慑 +涉 +社 +设 +砷 +申 +呻 +伸 +身 +深 +娠 +绅 +神 +沈 +审 +婶 +甚 +肾 +慎 +渗 +声 +生 +甥 +牲 +升 +绳 +省 +盛 +剩 +胜 +圣 +师 +失 +狮 +施 +湿 +诗 +尸 +虱 +十 +石 +拾 +时 +什 +食 +蚀 +实 +识 +史 +矢 +使 +屎 +驶 +始 +式 +示 +士 +世 +柿 +事 +拭 +誓 +逝 +势 +是 +嗜 +噬 +适 +仕 +侍 +释 +饰 +氏 +市 +恃 +室 +视 +试 +收 +手 +首 +守 +寿 +授 +售 +受 +瘦 +兽 +蔬 +枢 +梳 +殊 +抒 +输 +叔 +舒 +淑 +疏 +书 +赎 +孰 +熟 +薯 +暑 +曙 +署 +蜀 +黍 +鼠 +属 +术 +述 +树 +束 +戍 +竖 +墅 +庶 +数 +漱 +恕 +刷 +耍 +摔 +衰 +甩 +帅 +栓 +拴 +霜 +双 +爽 +谁 +水 +睡 +税 +吮 +瞬 +顺 +舜 +说 +硕 +朔 +烁 +斯 +撕 +嘶 +思 +私 +司 +丝 +死 +肆 +寺 +嗣 +四 +伺 +似 +饲 +巳 +松 +耸 +怂 +颂 +送 +宋 +讼 +诵 +搜 +艘 +擞 +嗽 +苏 +酥 +俗 +素 +速 +粟 +僳 +塑 +溯 +宿 +诉 +肃 +酸 +蒜 +算 +虽 +隋 +随 +绥 +髓 +碎 +岁 +穗 +遂 +隧 +祟 +孙 +损 +笋 +蓑 +梭 +唆 +缩 +琐 +索 +锁 +所 +塌 +他 +它 +她 +塔 +獭 +挞 +蹋 +踏 +胎 +苔 +抬 +台 +泰 +酞 +太 +态 +汰 +坍 +摊 +贪 +瘫 +滩 +坛 +檀 +痰 +潭 +谭 +谈 +坦 +毯 +袒 +碳 +探 +叹 +炭 +汤 +塘 +搪 +堂 +棠 +膛 +唐 +糖 +倘 +躺 +淌 +趟 +烫 +掏 +涛 +滔 +绦 +萄 +桃 +逃 +淘 +陶 +讨 +套 +特 +藤 +腾 +疼 +誊 +梯 +剔 +踢 +锑 +提 +题 +蹄 +啼 +体 +替 +嚏 +惕 +涕 +剃 +屉 +天 +添 +填 +田 +甜 +恬 +舔 +腆 +挑 +条 +迢 +眺 +跳 +贴 +铁 +帖 +厅 +听 +烃 +汀 +廷 +停 +亭 +庭 +挺 +艇 +通 +桐 +酮 +瞳 +同 +铜 +彤 +童 +桶 +捅 +筒 +统 +痛 +偷 +投 +头 +透 +凸 +秃 +突 +图 +徒 +途 +涂 +屠 +土 +吐 +兔 +湍 +团 +推 +颓 +腿 +蜕 +褪 +退 +吞 +屯 +臀 +拖 +托 +脱 +鸵 +陀 +驮 +驼 +椭 +妥 +拓 +唾 +挖 +哇 +蛙 +洼 +娃 +瓦 +袜 +歪 +外 +豌 +弯 +湾 +玩 +顽 +丸 +烷 +完 +碗 +挽 +晚 +皖 +惋 +宛 +婉 +万 +腕 +汪 +王 +亡 +枉 +网 +往 +旺 +望 +忘 +妄 +威 +巍 +微 +危 +韦 +违 +桅 +围 +唯 +惟 +为 +潍 +维 +苇 +萎 +委 +伟 +伪 +尾 +纬 +未 +蔚 +味 +畏 +胃 +喂 +魏 +位 +渭 +谓 +尉 +慰 +卫 +瘟 +温 +蚊 +文 +闻 +纹 +吻 +稳 +紊 +问 +嗡 +翁 +瓮 +挝 +蜗 +涡 +窝 +我 +斡 +卧 +握 +沃 +巫 +呜 +钨 +乌 +污 +诬 +屋 +无 +芜 +梧 +吾 +吴 +毋 +武 +五 +捂 +午 +舞 +伍 +侮 +坞 +戊 +雾 +晤 +物 +勿 +务 +悟 +误 +昔 +熙 +析 +西 +硒 +矽 +晰 +嘻 +吸 +锡 +牺 +稀 +息 +希 +悉 +膝 +夕 +惜 +熄 +烯 +溪 +汐 +犀 +檄 +袭 +席 +习 +媳 +喜 +铣 +洗 +系 +隙 +戏 +细 +瞎 +虾 +匣 +霞 +辖 +暇 +峡 +侠 +狭 +下 +厦 +夏 +吓 +掀 +锨 +先 +仙 +鲜 +纤 +咸 +贤 +衔 +舷 +闲 +涎 +弦 +嫌 +显 +险 +现 +献 +县 +腺 +馅 +羡 +宪 +陷 +限 +线 +相 +厢 +镶 +香 +箱 +襄 +湘 +乡 +翔 +祥 +详 +想 +响 +享 +项 +巷 +橡 +像 +向 +象 +萧 +硝 +霄 +削 +哮 +嚣 +销 +消 +宵 +淆 +晓 +小 +孝 +校 +肖 +啸 +笑 +效 +楔 +些 +歇 +蝎 +鞋 +协 +挟 +携 +邪 +斜 +胁 +谐 +写 +械 +卸 +蟹 +懈 +泄 +泻 +谢 +屑 +薪 +芯 +锌 +欣 +辛 +新 +忻 +心 +信 +衅 +星 +腥 +猩 +惺 +兴 +刑 +型 +形 +邢 +行 +醒 +幸 +杏 +性 +姓 +兄 +凶 +胸 +匈 +汹 +雄 +熊 +休 +修 +羞 +朽 +嗅 +锈 +秀 +袖 +绣 +墟 +戌 +需 +虚 +嘘 +须 +徐 +许 +蓄 +酗 +叙 +旭 +序 +畜 +恤 +絮 +婿 +绪 +续 +轩 +喧 +宣 +悬 +旋 +玄 +选 +癣 +眩 +绚 +靴 +薛 +学 +穴 +雪 +血 +勋 +熏 +循 +旬 +询 +寻 +驯 +巡 +殉 +汛 +训 +讯 +逊 +迅 +压 +押 +鸦 +鸭 +呀 +丫 +芽 +牙 +蚜 +崖 +衙 +涯 +雅 +哑 +亚 +讶 +焉 +咽 +阉 +烟 +淹 +盐 +严 +研 +蜒 +岩 +延 +言 +颜 +阎 +炎 +沿 +奄 +掩 +眼 +衍 +演 +艳 +堰 +燕 +厌 +砚 +雁 +唁 +彦 +焰 +宴 +谚 +验 +殃 +央 +鸯 +秧 +杨 +扬 +佯 +疡 +羊 +洋 +阳 +氧 +仰 +痒 +养 +样 +漾 +邀 +腰 +妖 +瑶 +摇 +尧 +遥 +窑 +谣 +姚 +咬 +舀 +药 +要 +耀 +椰 +噎 +耶 +爷 +野 +冶 +也 +页 +掖 +业 +叶 +曳 +腋 +夜 +液 +一 +壹 +医 +揖 +铱 +依 +伊 +衣 +颐 +夷 +遗 +移 +仪 +胰 +疑 +沂 +宜 +姨 +彝 +椅 +蚁 +倚 +已 +乙 +矣 +以 +艺 +抑 +易 +邑 +屹 +亿 +役 +臆 +逸 +肄 +疫 +亦 +裔 +意 +毅 +忆 +义 +益 +溢 +诣 +议 +谊 +译 +异 +翼 +翌 +绎 +茵 +荫 +因 +殷 +音 +阴 +姻 +吟 +银 +淫 +寅 +饮 +尹 +引 +隐 +印 +英 +樱 +婴 +鹰 +应 +缨 +莹 +萤 +营 +荧 +蝇 +迎 +赢 +盈 +影 +颖 +硬 +映 +哟 +拥 +佣 +臃 +痈 +庸 +雍 +踊 +蛹 +咏 +泳 +涌 +永 +恿 +勇 +用 +幽 +优 +悠 +忧 +尤 +由 +邮 +铀 +犹 +油 +游 +酉 +有 +友 +右 +佑 +釉 +诱 +又 +幼 +迂 +淤 +于 +盂 +榆 +虞 +愚 +舆 +余 +俞 +逾 +鱼 +愉 +渝 +渔 +隅 +予 +娱 +雨 +与 +屿 +禹 +宇 +语 +羽 +玉 +域 +芋 +郁 +吁 +遇 +喻 +峪 +御 +愈 +欲 +狱 +育 +誉 +浴 +寓 +裕 +预 +豫 +驭 +鸳 +渊 +冤 +元 +垣 +袁 +原 +援 +辕 +园 +员 +圆 +猿 +源 +缘 +远 +苑 +愿 +怨 +院 +曰 +约 +越 +跃 +钥 +岳 +粤 +月 +悦 +阅 +耘 +云 +郧 +匀 +陨 +允 +运 +蕴 +酝 +晕 +韵 +孕 +匝 +砸 +杂 +栽 +哉 +灾 +宰 +载 +再 +在 +咱 +攒 +暂 +赞 +赃 +脏 +葬 +遭 +糟 +凿 +藻 +枣 +早 +澡 +蚤 +躁 +噪 +造 +皂 +灶 +燥 +责 +择 +则 +泽 +贼 +怎 +增 +憎 +曾 +赠 +扎 +喳 +渣 +札 +轧 +铡 +闸 +眨 +栅 +榨 +咋 +乍 +炸 +诈 +摘 +斋 +宅 +窄 +债 +寨 +瞻 +毡 +詹 +粘 +沾 +盏 +斩 +辗 +崭 +展 +蘸 +栈 +占 +战 +站 +湛 +绽 +樟 +章 +彰 +漳 +张 +掌 +涨 +杖 +丈 +帐 +账 +仗 +胀 +瘴 +障 +招 +昭 +找 +沼 +赵 +照 +罩 +兆 +肇 +召 +遮 +折 +哲 +蛰 +辙 +者 +锗 +蔗 +这 +浙 +珍 +斟 +真 +甄 +砧 +臻 +贞 +针 +侦 +枕 +疹 +诊 +震 +振 +镇 +阵 +蒸 +挣 +睁 +征 +狰 +争 +怔 +整 +拯 +正 +政 +帧 +症 +郑 +证 +芝 +枝 +支 +吱 +蜘 +知 +肢 +脂 +汁 +之 +织 +职 +直 +植 +殖 +执 +值 +侄 +址 +指 +止 +趾 +只 +旨 +纸 +志 +挚 +掷 +至 +致 +置 +帜 +峙 +制 +智 +秩 +稚 +质 +炙 +痔 +滞 +治 +窒 +中 +盅 +忠 +钟 +衷 +终 +种 +肿 +重 +仲 +众 +舟 +周 +州 +洲 +诌 +粥 +轴 +肘 +帚 +咒 +皱 +宙 +昼 +骤 +珠 +株 +蛛 +朱 +猪 +诸 +诛 +逐 +竹 +烛 +煮 +拄 +瞩 +嘱 +主 +著 +柱 +助 +蛀 +贮 +铸 +筑 +住 +注 +祝 +驻 +抓 +爪 +拽 +专 +砖 +转 +撰 +赚 +篆 +桩 +庄 +装 +妆 +撞 +壮 +状 +椎 +锥 +追 +赘 +坠 +缀 +谆 +准 +捉 +拙 +卓 +桌 +琢 +茁 +酌 +啄 +着 +灼 +浊 +兹 +咨 +资 +姿 +滋 +淄 +孜 +紫 +仔 +籽 +滓 +子 +自 +渍 +字 +鬃 +棕 +踪 +宗 +综 +总 +纵 +邹 +走 +奏 +揍 +租 +足 +卒 +族 +祖 +诅 +阻 +组 +钻 +纂 +嘴 +醉 +最 +罪 +尊 +遵 +昨 +左 +佐 +柞 +做 +作 +坐 +座 +亍 +丌 +兀 +丐 +廿 +卅 +丕 +亘 +丞 +鬲 +孬 +噩 +丨 +禺 +丿 +匕 +乇 +夭 +爻 +卮 +氐 +囟 +胤 +馗 +毓 +睾 +鼗 +丶 +亟 +鼐 +乜 +乩 +亓 +芈 +孛 +啬 +嘏 +仄 +厍 +厝 +厣 +厥 +厮 +靥 +赝 +匚 +叵 +匦 +匮 +匾 +赜 +卦 +卣 +刂 +刈 +刎 +刭 +刳 +刿 +剀 +剌 +剞 +剡 +剜 +蒯 +剽 +劂 +劁 +劐 +劓 +冂 +罔 +亻 +仃 +仉 +仂 +仨 +仡 +仫 +仞 +伛 +仳 +伢 +佤 +仵 +伥 +伧 +伉 +伫 +佞 +佧 +攸 +佚 +佝 +佟 +佗 +伲 +伽 +佶 +佴 +侑 +侉 +侃 +侏 +佾 +佻 +侪 +佼 +侬 +侔 +俦 +俨 +俪 +俅 +俚 +俣 +俜 +俑 +俟 +俸 +倩 +偌 +俳 +倬 +倏 +倮 +倭 +俾 +倜 +倌 +倥 +倨 +偾 +偃 +偕 +偈 +偎 +偬 +偻 +傥 +傧 +傩 +傺 +僖 +儆 +僭 +僬 +僦 +僮 +儇 +儋 +仝 +氽 +佘 +佥 +俎 +龠 +汆 +籴 +兮 +巽 +黉 +馘 +冁 +夔 +勹 +匍 +訇 +匐 +凫 +夙 +兕 +亠 +兖 +亳 +衮 +袤 +亵 +脔 +裒 +禀 +嬴 +蠃 +羸 +冫 +冱 +冽 +冼 +凇 +冖 +冢 +冥 +讠 +讦 +讧 +讪 +讴 +讵 +讷 +诂 +诃 +诋 +诏 +诎 +诒 +诓 +诔 +诖 +诘 +诙 +诜 +诟 +诠 +诤 +诨 +诩 +诮 +诰 +诳 +诶 +诹 +诼 +诿 +谀 +谂 +谄 +谇 +谌 +谏 +谑 +谒 +谔 +谕 +谖 +谙 +谛 +谘 +谝 +谟 +谠 +谡 +谥 +谧 +谪 +谫 +谮 +谯 +谲 +谳 +谵 +谶 +卩 +卺 +阝 +阢 +阡 +阱 +阪 +阽 +阼 +陂 +陉 +陔 +陟 +陧 +陬 +陲 +陴 +隈 +隍 +隗 +隰 +邗 +邛 +邝 +邙 +邬 +邡 +邴 +邳 +邶 +邺 +邸 +邰 +郏 +郅 +邾 +郐 +郄 +郇 +郓 +郦 +郢 +郜 +郗 +郛 +郫 +郯 +郾 +鄄 +鄢 +鄞 +鄣 +鄱 +鄯 +鄹 +酃 +酆 +刍 +奂 +劢 +劬 +劭 +劾 +哿 +勐 +勖 +勰 +叟 +燮 +矍 +廴 +凵 +凼 +鬯 +厶 +弁 +畚 +巯 +坌 +垩 +垡 +塾 +墼 +壅 +壑 +圩 +圬 +圪 +圳 +圹 +圮 +圯 +坜 +圻 +坂 +坩 +垅 +坫 +垆 +坼 +坻 +坨 +坭 +坶 +坳 +垭 +垤 +垌 +垲 +埏 +垧 +垴 +垓 +垠 +埕 +埘 +埚 +埙 +埒 +垸 +埴 +埯 +埸 +埤 +埝 +堋 +堍 +埽 +埭 +堀 +堞 +堙 +塄 +堠 +塥 +塬 +墁 +墉 +墚 +墀 +馨 +鼙 +懿 +艹 +艽 +艿 +芏 +芊 +芨 +芄 +芎 +芑 +芗 +芙 +芫 +芸 +芾 +芰 +苈 +苊 +苣 +芘 +芷 +芮 +苋 +苌 +苁 +芩 +芴 +芡 +芪 +芟 +苄 +苎 +芤 +苡 +茉 +苷 +苤 +茏 +茇 +苜 +苴 +苒 +苘 +茌 +苻 +苓 +茑 +茚 +茆 +茔 +茕 +苠 +苕 +茜 +荑 +荛 +荜 +茈 +莒 +茼 +茴 +茱 +莛 +荞 +茯 +荏 +荇 +荃 +荟 +荀 +茗 +荠 +茭 +茺 +茳 +荦 +荥 +荨 +茛 +荩 +荬 +荪 +荭 +荮 +莰 +荸 +莳 +莴 +莠 +莪 +莓 +莜 +莅 +荼 +莶 +莩 +荽 +莸 +荻 +莘 +莞 +莨 +莺 +莼 +菁 +萁 +菥 +菘 +堇 +萘 +萋 +菝 +菽 +菖 +萜 +萸 +萑 +萆 +菔 +菟 +萏 +萃 +菸 +菹 +菪 +菅 +菀 +萦 +菰 +菡 +葜 +葑 +葚 +葙 +葳 +蒇 +蒈 +葺 +蒉 +葸 +萼 +葆 +葩 +葶 +蒌 +蒎 +萱 +葭 +蓁 +蓍 +蓐 +蓦 +蒽 +蓓 +蓊 +蒿 +蒺 +蓠 +蒡 +蒹 +蒴 +蒗 +蓥 +蓣 +蔌 +甍 +蔸 +蓰 +蔹 +蔟 +蔺 +蕖 +蔻 +蓿 +蓼 +蕙 +蕈 +蕨 +蕤 +蕞 +蕺 +瞢 +蕃 +蕲 +蕻 +薤 +薨 +薇 +薏 +蕹 +薮 +薜 +薅 +薹 +薷 +薰 +藓 +藁 +藜 +藿 +蘧 +蘅 +蘩 +蘖 +蘼 +廾 +弈 +夼 +奁 +耷 +奕 +奚 +奘 +匏 +尢 +尥 +尬 +尴 +扌 +扪 +抟 +抻 +拊 +拚 +拗 +拮 +挢 +拶 +挹 +捋 +捃 +掭 +揶 +捱 +捺 +掎 +掴 +捭 +掬 +掊 +捩 +掮 +掼 +揲 +揸 +揠 +揿 +揄 +揞 +揎 +摒 +揆 +掾 +摅 +摁 +搋 +搛 +搠 +搌 +搦 +搡 +摞 +撄 +摭 +撖 +摺 +撷 +撸 +撙 +撺 +擀 +擐 +擗 +擤 +擢 +攉 +攥 +攮 +弋 +忒 +甙 +弑 +卟 +叱 +叽 +叩 +叨 +叻 +吒 +吖 +吆 +呋 +呒 +呓 +呔 +呖 +呃 +吡 +呗 +呙 +吣 +吲 +咂 +咔 +呷 +呱 +呤 +咚 +咛 +咄 +呶 +呦 +咝 +哐 +咭 +哂 +咴 +哒 +咧 +咦 +哓 +哔 +呲 +咣 +哕 +咻 +咿 +哌 +哙 +哚 +哜 +咩 +咪 +咤 +哝 +哏 +哞 +唛 +哧 +唠 +哽 +唔 +哳 +唢 +唣 +唏 +唑 +唧 +唪 +啧 +喏 +喵 +啉 +啭 +啁 +啕 +唿 +啐 +唼 +唷 +啖 +啵 +啶 +啷 +唳 +唰 +啜 +喋 +嗒 +喃 +喱 +喹 +喈 +喁 +喟 +啾 +嗖 +喑 +啻 +嗟 +喽 +喾 +喔 +喙 +嗪 +嗷 +嗉 +嘟 +嗑 +嗫 +嗬 +嗔 +嗦 +嗝 +嗄 +嗯 +嗥 +嗲 +嗳 +嗌 +嗍 +嗨 +嗵 +嗤 +辔 +嘞 +嘈 +嘌 +嘁 +嘤 +嘣 +嗾 +嘀 +嘧 +嘭 +噘 +嘹 +噗 +嘬 +噍 +噢 +噙 +噜 +噌 +噔 +嚆 +噤 +噱 +噫 +噻 +噼 +嚅 +嚓 +嚯 +囔 +囗 +囝 +囡 +囵 +囫 +囹 +囿 +圄 +圊 +圉 +圜 +帏 +帙 +帔 +帑 +帱 +帻 +帼 +帷 +幄 +幔 +幛 +幞 +幡 +岌 +屺 +岍 +岐 +岖 +岈 +岘 +岙 +岑 +岚 +岜 +岵 +岢 +岽 +岬 +岫 +岱 +岣 +峁 +岷 +峄 +峒 +峤 +峋 +峥 +崂 +崃 +崧 +崦 +崮 +崤 +崞 +崆 +崛 +嵘 +崾 +崴 +崽 +嵬 +嵛 +嵯 +嵝 +嵫 +嵋 +嵊 +嵩 +嵴 +嶂 +嶙 +嶝 +豳 +嶷 +巅 +彳 +彷 +徂 +徇 +徉 +後 +徕 +徙 +徜 +徨 +徭 +徵 +徼 +衢 +彡 +犭 +犰 +犴 +犷 +犸 +狃 +狁 +狎 +狍 +狒 +狨 +狯 +狩 +狲 +狴 +狷 +猁 +狳 +猃 +狺 +狻 +猗 +猓 +猡 +猊 +猞 +猝 +猕 +猢 +猹 +猥 +猬 +猸 +猱 +獐 +獍 +獗 +獠 +獬 +獯 +獾 +舛 +夥 +飧 +夤 +夂 +饣 +饧 +饨 +饩 +饪 +饫 +饬 +饴 +饷 +饽 +馀 +馄 +馇 +馊 +馍 +馐 +馑 +馓 +馔 +馕 +庀 +庑 +庋 +庖 +庥 +庠 +庹 +庵 +庾 +庳 +赓 +廒 +廑 +廛 +廨 +廪 +膺 +忄 +忉 +忖 +忏 +怃 +忮 +怄 +忡 +忤 +忾 +怅 +怆 +忪 +忭 +忸 +怙 +怵 +怦 +怛 +怏 +怍 +怩 +怫 +怊 +怿 +怡 +恸 +恹 +恻 +恺 +恂 +恪 +恽 +悖 +悚 +悭 +悝 +悃 +悒 +悌 +悛 +惬 +悻 +悱 +惝 +惘 +惆 +惚 +悴 +愠 +愦 +愕 +愣 +惴 +愀 +愎 +愫 +慊 +慵 +憬 +憔 +憧 +憷 +懔 +懵 +忝 +隳 +闩 +闫 +闱 +闳 +闵 +闶 +闼 +闾 +阃 +阄 +阆 +阈 +阊 +阋 +阌 +阍 +阏 +阒 +阕 +阖 +阗 +阙 +阚 +丬 +爿 +戕 +氵 +汔 +汜 +汊 +沣 +沅 +沐 +沔 +沌 +汨 +汩 +汴 +汶 +沆 +沩 +泐 +泔 +沭 +泷 +泸 +泱 +泗 +沲 +泠 +泖 +泺 +泫 +泮 +沱 +泓 +泯 +泾 +洹 +洧 +洌 +浃 +浈 +洇 +洄 +洙 +洎 +洫 +浍 +洮 +洵 +洚 +浏 +浒 +浔 +洳 +涑 +浯 +涞 +涠 +浞 +涓 +涔 +浜 +浠 +浼 +浣 +渚 +淇 +淅 +淞 +渎 +涿 +淠 +渑 +淦 +淝 +淙 +渖 +涫 +渌 +涮 +渫 +湮 +湎 +湫 +溲 +湟 +溆 +湓 +湔 +渲 +渥 +湄 +滟 +溱 +溘 +滠 +漭 +滢 +溥 +溧 +溽 +溻 +溷 +滗 +溴 +滏 +溏 +滂 +溟 +潢 +潆 +潇 +漤 +漕 +滹 +漯 +漶 +潋 +潴 +漪 +漉 +漩 +澉 +澍 +澌 +潸 +潲 +潼 +潺 +濑 +濉 +澧 +澹 +澶 +濂 +濡 +濮 +濞 +濠 +濯 +瀚 +瀣 +瀛 +瀹 +瀵 +灏 +灞 +宀 +宄 +宕 +宓 +宥 +宸 +甯 +骞 +搴 +寤 +寮 +褰 +寰 +蹇 +謇 +辶 +迓 +迕 +迥 +迮 +迤 +迩 +迦 +迳 +迨 +逅 +逄 +逋 +逦 +逑 +逍 +逖 +逡 +逵 +逶 +逭 +逯 +遄 +遑 +遒 +遐 +遨 +遘 +遢 +遛 +暹 +遴 +遽 +邂 +邈 +邃 +邋 +彐 +彗 +彖 +彘 +尻 +咫 +屐 +屙 +孱 +屣 +屦 +羼 +弪 +弩 +弭 +艴 +弼 +鬻 +屮 +妁 +妃 +妍 +妩 +妪 +妣 +妗 +姊 +妫 +妞 +妤 +姒 +妲 +妯 +姗 +妾 +娅 +娆 +姝 +娈 +姣 +姘 +姹 +娌 +娉 +娲 +娴 +娑 +娣 +娓 +婀 +婧 +婊 +婕 +娼 +婢 +婵 +胬 +媪 +媛 +婷 +婺 +媾 +嫫 +媲 +嫒 +嫔 +媸 +嫠 +嫣 +嫱 +嫖 +嫦 +嫘 +嫜 +嬉 +嬗 +嬖 +嬲 +嬷 +孀 +尕 +尜 +孚 +孥 +孳 +孑 +孓 +孢 +驵 +驷 +驸 +驺 +驿 +驽 +骀 +骁 +骅 +骈 +骊 +骐 +骒 +骓 +骖 +骘 +骛 +骜 +骝 +骟 +骠 +骢 +骣 +骥 +骧 +纟 +纡 +纣 +纥 +纨 +纩 +纭 +纰 +纾 +绀 +绁 +绂 +绉 +绋 +绌 +绐 +绔 +绗 +绛 +绠 +绡 +绨 +绫 +绮 +绯 +绱 +绲 +缍 +绶 +绺 +绻 +绾 +缁 +缂 +缃 +缇 +缈 +缋 +缌 +缏 +缑 +缒 +缗 +缙 +缜 +缛 +缟 +缡 +缢 +缣 +缤 +缥 +缦 +缧 +缪 +缫 +缬 +缭 +缯 +缰 +缱 +缲 +缳 +缵 +幺 +畿 +巛 +甾 +邕 +玎 +玑 +玮 +玢 +玟 +珏 +珂 +珑 +玷 +玳 +珀 +珉 +珈 +珥 +珙 +顼 +琊 +珩 +珧 +珞 +玺 +珲 +琏 +琪 +瑛 +琦 +琥 +琨 +琰 +琮 +琬 +琛 +琚 +瑁 +瑜 +瑗 +瑕 +瑙 +瑷 +瑭 +瑾 +璜 +璎 +璀 +璁 +璇 +璋 +璞 +璨 +璩 +璐 +璧 +瓒 +璺 +韪 +韫 +韬 +杌 +杓 +杞 +杈 +杩 +枥 +枇 +杪 +杳 +枘 +枧 +杵 +枨 +枞 +枭 +枋 +杷 +杼 +柰 +栉 +柘 +栊 +柩 +枰 +栌 +柙 +枵 +柚 +枳 +柝 +栀 +柃 +枸 +柢 +栎 +柁 +柽 +栲 +栳 +桠 +桡 +桎 +桢 +桄 +桤 +梃 +栝 +桕 +桦 +桁 +桧 +桀 +栾 +桊 +桉 +栩 +梵 +梏 +桴 +桷 +梓 +桫 +棂 +楮 +棼 +椟 +椠 +棹 +椤 +棰 +椋 +椁 +楗 +棣 +椐 +楱 +椹 +楠 +楂 +楝 +榄 +楫 +榀 +榘 +楸 +椴 +槌 +榇 +榈 +槎 +榉 +楦 +楣 +楹 +榛 +榧 +榻 +榫 +榭 +槔 +榱 +槁 +槊 +槟 +榕 +槠 +榍 +槿 +樯 +槭 +樗 +樘 +橥 +槲 +橄 +樾 +檠 +橐 +橛 +樵 +檎 +橹 +樽 +樨 +橘 +橼 +檑 +檐 +檩 +檗 +檫 +猷 +獒 +殁 +殂 +殇 +殄 +殒 +殓 +殍 +殚 +殛 +殡 +殪 +轫 +轭 +轱 +轲 +轳 +轵 +轶 +轸 +轷 +轹 +轺 +轼 +轾 +辁 +辂 +辄 +辇 +辋 +辍 +辎 +辏 +辘 +辚 +軎 +戋 +戗 +戛 +戟 +戢 +戡 +戥 +戤 +戬 +臧 +瓯 +瓴 +瓿 +甏 +甑 +甓 +攴 +旮 +旯 +旰 +昊 +昙 +杲 +昃 +昕 +昀 +炅 +曷 +昝 +昴 +昱 +昶 +昵 +耆 +晟 +晔 +晁 +晏 +晖 +晡 +晗 +晷 +暄 +暌 +暧 +暝 +暾 +曛 +曜 +曦 +曩 +贲 +贳 +贶 +贻 +贽 +赀 +赅 +赆 +赈 +赉 +赇 +赍 +赕 +赙 +觇 +觊 +觋 +觌 +觎 +觏 +觐 +觑 +牮 +犟 +牝 +牦 +牯 +牾 +牿 +犄 +犋 +犍 +犏 +犒 +挈 +挲 +掰 +搿 +擘 +耄 +毪 +毳 +毽 +毵 +毹 +氅 +氇 +氆 +氍 +氕 +氘 +氙 +氚 +氡 +氩 +氤 +氪 +氲 +攵 +敕 +敫 +牍 +牒 +牖 +爰 +虢 +刖 +肟 +肜 +肓 +肼 +朊 +肽 +肱 +肫 +肭 +肴 +肷 +胧 +胨 +胩 +胪 +胛 +胂 +胄 +胙 +胍 +胗 +朐 +胝 +胫 +胱 +胴 +胭 +脍 +脎 +胲 +胼 +朕 +脒 +豚 +脶 +脞 +脬 +脘 +脲 +腈 +腌 +腓 +腴 +腙 +腚 +腱 +腠 +腩 +腼 +腽 +腭 +腧 +塍 +媵 +膈 +膂 +膑 +滕 +膣 +膪 +臌 +朦 +臊 +膻 +臁 +膦 +欤 +欷 +欹 +歃 +歆 +歙 +飑 +飒 +飓 +飕 +飙 +飚 +殳 +彀 +毂 +觳 +斐 +齑 +斓 +於 +旆 +旄 +旃 +旌 +旎 +旒 +旖 +炀 +炜 +炖 +炝 +炻 +烀 +炷 +炫 +炱 +烨 +烊 +焐 +焓 +焖 +焯 +焱 +煳 +煜 +煨 +煅 +煲 +煊 +煸 +煺 +熘 +熳 +熵 +熨 +熠 +燠 +燔 +燧 +燹 +爝 +爨 +灬 +焘 +煦 +熹 +戾 +戽 +扃 +扈 +扉 +礻 +祀 +祆 +祉 +祛 +祜 +祓 +祚 +祢 +祗 +祠 +祯 +祧 +祺 +禅 +禊 +禚 +禧 +禳 +忑 +忐 +怼 +恝 +恚 +恧 +恁 +恙 +恣 +悫 +愆 +愍 +慝 +憩 +憝 +懋 +懑 +戆 +肀 +聿 +沓 +泶 +淼 +矶 +矸 +砀 +砉 +砗 +砘 +砑 +斫 +砭 +砜 +砝 +砹 +砺 +砻 +砟 +砼 +砥 +砬 +砣 +砩 +硎 +硭 +硖 +硗 +砦 +硐 +硇 +硌 +硪 +碛 +碓 +碚 +碇 +碜 +碡 +碣 +碲 +碹 +碥 +磔 +磙 +磉 +磬 +磲 +礅 +磴 +礓 +礤 +礞 +礴 +龛 +黹 +黻 +黼 +盱 +眄 +眍 +盹 +眇 +眈 +眚 +眢 +眙 +眭 +眦 +眵 +眸 +睐 +睑 +睇 +睃 +睚 +睨 +睢 +睥 +睿 +瞍 +睽 +瞀 +瞌 +瞑 +瞟 +瞠 +瞰 +瞵 +瞽 +町 +畀 +畎 +畋 +畈 +畛 +畲 +畹 +疃 +罘 +罡 +罟 +詈 +罨 +罴 +罱 +罹 +羁 +罾 +盍 +盥 +蠲 +钅 +钆 +钇 +钋 +钊 +钌 +钍 +钏 +钐 +钔 +钗 +钕 +钚 +钛 +钜 +钣 +钤 +钫 +钪 +钭 +钬 +钯 +钰 +钲 +钴 +钶 +钷 +钸 +钹 +钺 +钼 +钽 +钿 +铄 +铈 +铉 +铊 +铋 +铌 +铍 +铎 +铐 +铑 +铒 +铕 +铖 +铗 +铙 +铘 +铛 +铞 +铟 +铠 +铢 +铤 +铥 +铧 +铨 +铪 +铩 +铫 +铮 +铯 +铳 +铴 +铵 +铷 +铹 +铼 +铽 +铿 +锃 +锂 +锆 +锇 +锉 +锊 +锍 +锎 +锏 +锒 +锓 +锔 +锕 +锖 +锘 +锛 +锝 +锞 +锟 +锢 +锪 +锫 +锩 +锬 +锱 +锲 +锴 +锶 +锷 +锸 +锼 +锾 +锿 +镂 +锵 +镄 +镅 +镆 +镉 +镌 +镎 +镏 +镒 +镓 +镔 +镖 +镗 +镘 +镙 +镛 +镞 +镟 +镝 +镡 +镢 +镤 +镥 +镦 +镧 +镨 +镩 +镪 +镫 +镬 +镯 +镱 +镲 +镳 +锺 +矧 +矬 +雉 +秕 +秭 +秣 +秫 +稆 +嵇 +稃 +稂 +稞 +稔 +稹 +稷 +穑 +黏 +馥 +穰 +皈 +皎 +皓 +皙 +皤 +瓞 +瓠 +甬 +鸠 +鸢 +鸨 +鸩 +鸪 +鸫 +鸬 +鸲 +鸱 +鸶 +鸸 +鸷 +鸹 +鸺 +鸾 +鹁 +鹂 +鹄 +鹆 +鹇 +鹈 +鹉 +鹋 +鹌 +鹎 +鹑 +鹕 +鹗 +鹚 +鹛 +鹜 +鹞 +鹣 +鹦 +鹧 +鹨 +鹩 +鹪 +鹫 +鹬 +鹱 +鹭 +鹳 +疒 +疔 +疖 +疠 +疝 +疬 +疣 +疳 +疴 +疸 +痄 +疱 +疰 +痃 +痂 +痖 +痍 +痣 +痨 +痦 +痤 +痫 +痧 +瘃 +痱 +痼 +痿 +瘐 +瘀 +瘅 +瘌 +瘗 +瘊 +瘥 +瘘 +瘕 +瘙 +瘛 +瘼 +瘢 +瘠 +癀 +瘭 +瘰 +瘿 +瘵 +癃 +瘾 +瘳 +癍 +癞 +癔 +癜 +癖 +癫 +癯 +翊 +竦 +穸 +穹 +窀 +窆 +窈 +窕 +窦 +窠 +窬 +窨 +窭 +窳 +衤 +衩 +衲 +衽 +衿 +袂 +袢 +裆 +袷 +袼 +裉 +裢 +裎 +裣 +裥 +裱 +褚 +裼 +裨 +裾 +裰 +褡 +褙 +褓 +褛 +褊 +褴 +褫 +褶 +襁 +襦 +襻 +疋 +胥 +皲 +皴 +矜 +耒 +耔 +耖 +耜 +耠 +耢 +耥 +耦 +耧 +耩 +耨 +耱 +耋 +耵 +聃 +聆 +聍 +聒 +聩 +聱 +覃 +顸 +颀 +颃 +颉 +颌 +颍 +颏 +颔 +颚 +颛 +颞 +颟 +颡 +颢 +颥 +颦 +虍 +虔 +虬 +虮 +虿 +虺 +虼 +虻 +蚨 +蚍 +蚋 +蚬 +蚝 +蚧 +蚣 +蚪 +蚓 +蚩 +蚶 +蛄 +蚵 +蛎 +蚰 +蚺 +蚱 +蚯 +蛉 +蛏 +蚴 +蛩 +蛱 +蛲 +蛭 +蛳 +蛐 +蜓 +蛞 +蛴 +蛟 +蛘 +蛑 +蜃 +蜇 +蛸 +蜈 +蜊 +蜍 +蜉 +蜣 +蜻 +蜞 +蜥 +蜮 +蜚 +蜾 +蝈 +蜴 +蜱 +蜩 +蜷 +蜿 +螂 +蜢 +蝽 +蝾 +蝻 +蝠 +蝰 +蝌 +蝮 +螋 +蝓 +蝣 +蝼 +蝤 +蝙 +蝥 +螓 +螯 +螨 +蟒 +蟆 +螈 +螅 +螭 +螗 +螃 +螫 +蟥 +螬 +螵 +螳 +蟋 +蟓 +螽 +蟑 +蟀 +蟊 +蟛 +蟪 +蟠 +蟮 +蠖 +蠓 +蟾 +蠊 +蠛 +蠡 +蠹 +蠼 +缶 +罂 +罄 +罅 +舐 +竺 +竽 +笈 +笃 +笄 +笕 +笊 +笫 +笏 +筇 +笸 +笪 +笙 +笮 +笱 +笠 +笥 +笤 +笳 +笾 +笞 +筘 +筚 +筅 +筵 +筌 +筝 +筠 +筮 +筻 +筢 +筲 +筱 +箐 +箦 +箧 +箸 +箬 +箝 +箨 +箅 +箪 +箜 +箢 +箫 +箴 +篑 +篁 +篌 +篝 +篚 +篥 +篦 +篪 +簌 +篾 +篼 +簏 +簖 +簋 +簟 +簪 +簦 +簸 +籁 +籀 +臾 +舁 +舂 +舄 +臬 +衄 +舡 +舢 +舣 +舭 +舯 +舨 +舫 +舸 +舻 +舳 +舴 +舾 +艄 +艉 +艋 +艏 +艚 +艟 +艨 +衾 +袅 +袈 +裘 +裟 +襞 +羝 +羟 +羧 +羯 +羰 +羲 +籼 +敉 +粑 +粝 +粜 +粞 +粢 +粲 +粼 +粽 +糁 +糇 +糌 +糍 +糈 +糅 +糗 +糨 +艮 +暨 +羿 +翎 +翕 +翥 +翡 +翦 +翩 +翮 +翳 +糸 +絷 +綦 +綮 +繇 +纛 +麸 +麴 +赳 +趄 +趔 +趑 +趱 +赧 +赭 +豇 +豉 +酊 +酐 +酎 +酏 +酤 +酢 +酡 +酰 +酩 +酯 +酽 +酾 +酲 +酴 +酹 +醌 +醅 +醐 +醍 +醑 +醢 +醣 +醪 +醭 +醮 +醯 +醵 +醴 +醺 +豕 +鹾 +趸 +跫 +踅 +蹙 +蹩 +趵 +趿 +趼 +趺 +跄 +跖 +跗 +跚 +跞 +跎 +跏 +跛 +跆 +跬 +跷 +跸 +跣 +跹 +跻 +跤 +踉 +跽 +踔 +踝 +踟 +踬 +踮 +踣 +踯 +踺 +蹀 +踹 +踵 +踽 +踱 +蹉 +蹁 +蹂 +蹑 +蹒 +蹊 +蹰 +蹶 +蹼 +蹯 +蹴 +躅 +躏 +躔 +躐 +躜 +躞 +豸 +貂 +貊 +貅 +貘 +貔 +斛 +觖 +觞 +觚 +觜 +觥 +觫 +觯 +訾 +謦 +靓 +雩 +雳 +雯 +霆 +霁 +霈 +霏 +霎 +霪 +霭 +霰 +霾 +龀 +龃 +龅 +龆 +龇 +龈 +龉 +龊 +龌 +黾 +鼋 +鼍 +隹 +隼 +隽 +雎 +雒 +瞿 +雠 +銎 +銮 +鋈 +錾 +鍪 +鏊 +鎏 +鐾 +鑫 +鱿 +鲂 +鲅 +鲆 +鲇 +鲈 +稣 +鲋 +鲎 +鲐 +鲑 +鲒 +鲔 +鲕 +鲚 +鲛 +鲞 +鲟 +鲠 +鲡 +鲢 +鲣 +鲥 +鲦 +鲧 +鲨 +鲩 +鲫 +鲭 +鲮 +鲰 +鲱 +鲲 +鲳 +鲴 +鲵 +鲶 +鲷 +鲺 +鲻 +鲼 +鲽 +鳄 +鳅 +鳆 +鳇 +鳊 +鳋 +鳌 +鳍 +鳎 +鳏 +鳐 +鳓 +鳔 +鳕 +鳗 +鳘 +鳙 +鳜 +鳝 +鳟 +鳢 +靼 +鞅 +鞑 +鞒 +鞔 +鞯 +鞫 +鞣 +鞲 +鞴 +骱 +骰 +骷 +鹘 +骶 +骺 +骼 +髁 +髀 +髅 +髂 +髋 +髌 +髑 +魅 +魃 +魇 +魉 +魈 +魍 +魑 +飨 +餍 +餮 +饕 +饔 +髟 +髡 +髦 +髯 +髫 +髻 +髭 +髹 +鬈 +鬏 +鬓 +鬟 +鬣 +麽 +麾 +縻 +麂 +麇 +麈 +麋 +麒 +鏖 +麝 +麟 +黛 +黜 +黝 +黠 +黟 +黢 +黩 +黧 +黥 +黪 +黯 +鼢 +鼬 +鼯 +鼹 +鼷 +鼽 +鼾 +齄 diff --git a/main/manager-web/public/generator/static/charsets/latin1.txt b/main/manager-web/public/generator/static/charsets/latin1.txt new file mode 100644 index 00000000..e38d77a0 --- /dev/null +++ b/main/manager-web/public/generator/static/charsets/latin1.txt @@ -0,0 +1,190 @@ + +! +" +# +$ +% +& +' +( +) +* ++ +, +- +. +/ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +: +; +< += +> +? +@ +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y +Z +[ +\ +] +^ +_ +` +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x +y +z +{ +| +} +~ +¡ +¢ +£ +¤ +¥ +¦ +§ +¨ +© +ª +« +¬ +­ +® +¯ +° +± +² +³ +´ +µ +¶ +· +¸ +¹ +º +» +¼ +½ +¾ +¿ +À +Á +Â +Ã +Ä +Å +Æ +Ç +È +É +Ê +Ë +Ì +Í +Î +Ï +Ð +Ñ +Ò +Ó +Ô +Õ +Ö +× +Ø +Ù +Ú +Û +Ü +Ý +Þ +ß +à +á +â +ã +ä +å +æ +ç +è +é +ê +ë +ì +í +î +ï +ð +ñ +ò +ó +ô +õ +ö +÷ +ø +ù +ú +û +ü +ý +þ +ÿ diff --git a/main/manager-web/public/generator/static/charsets/qwen18409.txt b/main/manager-web/public/generator/static/charsets/qwen18409.txt new file mode 100644 index 00000000..addc99d1 Binary files /dev/null and b/main/manager-web/public/generator/static/charsets/qwen18409.txt differ diff --git a/main/manager-web/public/generator/static/fonts/font_noto_qwen_14_1.bin b/main/manager-web/public/generator/static/fonts/font_noto_qwen_14_1.bin new file mode 100644 index 00000000..3f6995c6 Binary files /dev/null and b/main/manager-web/public/generator/static/fonts/font_noto_qwen_14_1.bin differ diff --git a/main/manager-web/public/generator/static/fonts/font_noto_qwen_16_4.bin b/main/manager-web/public/generator/static/fonts/font_noto_qwen_16_4.bin new file mode 100644 index 00000000..8b582d5a Binary files /dev/null and b/main/manager-web/public/generator/static/fonts/font_noto_qwen_16_4.bin differ diff --git a/main/manager-web/public/generator/static/fonts/font_noto_qwen_20_4.bin b/main/manager-web/public/generator/static/fonts/font_noto_qwen_20_4.bin new file mode 100644 index 00000000..5820e985 Binary files /dev/null and b/main/manager-web/public/generator/static/fonts/font_noto_qwen_20_4.bin differ diff --git a/main/manager-web/public/generator/static/fonts/font_noto_qwen_30_4.bin b/main/manager-web/public/generator/static/fonts/font_noto_qwen_30_4.bin new file mode 100644 index 00000000..cd8fdd51 Binary files /dev/null and b/main/manager-web/public/generator/static/fonts/font_noto_qwen_30_4.bin differ diff --git a/main/manager-web/public/generator/static/fonts/font_puhui_deepseek_14_1.bin b/main/manager-web/public/generator/static/fonts/font_puhui_deepseek_14_1.bin new file mode 100644 index 00000000..a4679fb8 Binary files /dev/null and b/main/manager-web/public/generator/static/fonts/font_puhui_deepseek_14_1.bin differ diff --git a/main/manager-web/public/generator/static/fonts/font_puhui_deepseek_16_4.bin b/main/manager-web/public/generator/static/fonts/font_puhui_deepseek_16_4.bin new file mode 100644 index 00000000..e3003ae7 Binary files /dev/null and b/main/manager-web/public/generator/static/fonts/font_puhui_deepseek_16_4.bin differ diff --git a/main/manager-web/public/generator/static/fonts/font_puhui_deepseek_20_4.bin b/main/manager-web/public/generator/static/fonts/font_puhui_deepseek_20_4.bin new file mode 100644 index 00000000..8f643a5b Binary files /dev/null and b/main/manager-web/public/generator/static/fonts/font_puhui_deepseek_20_4.bin differ diff --git a/main/manager-web/public/generator/static/fonts/font_puhui_deepseek_30_4.bin b/main/manager-web/public/generator/static/fonts/font_puhui_deepseek_30_4.bin new file mode 100644 index 00000000..d2a35b5c Binary files /dev/null and b/main/manager-web/public/generator/static/fonts/font_puhui_deepseek_30_4.bin differ diff --git a/main/manager-web/public/generator/static/fonts/noto_qwen.ttf b/main/manager-web/public/generator/static/fonts/noto_qwen.ttf new file mode 100644 index 00000000..56fc61b4 Binary files /dev/null and b/main/manager-web/public/generator/static/fonts/noto_qwen.ttf differ diff --git a/main/manager-web/public/generator/static/fonts/puhui_deepseek.ttf b/main/manager-web/public/generator/static/fonts/puhui_deepseek.ttf new file mode 100644 index 00000000..d4644fe5 Binary files /dev/null and b/main/manager-web/public/generator/static/fonts/puhui_deepseek.ttf differ diff --git a/main/manager-web/public/generator/static/multinet_model/fst/commands_cn.txt b/main/manager-web/public/generator/static/multinet_model/fst/commands_cn.txt new file mode 100644 index 00000000..f813fa04 --- /dev/null +++ b/main/manager-web/public/generator/static/multinet_model/fst/commands_cn.txt @@ -0,0 +1,313 @@ +1,ba xiao shi hou guan ji +2,ba xiao shi hou kai ji +3,bi kai wo chui +4,chao qiang feng su +5,chao zhe wo chui +6,chou shi mo shi +7,chu shi mo shi +8,da kai bai feng +9,da kai bing xiang +10,da kai chou shi mo shi +11,da kai chu jun +12,da kai chu shi mo shi +13,da kai dian fu re +14,da kai ding chu feng +15,da kai ding xiang chu wu +16,da kai er tong fang leng feng +17,da kai fang zhi chui +18,da kai feng ji +19,da kai fu re +20,da kai gan zao +21,da kai huan ji tiao wen +22,da kai jia shi +23,da kai jing hua +24,da kai jun yun feng +25,da kai kong tiao +26,da kai kong tiao deng guang +27,da kai mu ying feng +28,da kai mu qing feng +29,da kai pai feng mo shi +30,da kai pai qi +31,da kai pai qi mo shi +32,da kai qiang jing +33,da kai quan wu feng gan +34,da kai rou feng gan +35,da kai shang wu feng gan +36,da kai shang xia bai feng +37,da kai shang xia sao feng +38,da kai sen ba +39,da kai shu sheng +40,da kai shu shi feng +41,da kai shui mian +42,da kai si ji chu shi +43,da kai si ji chu shi mo shi +44,da kai song feng +45,da kai song feng mo shi +46,da kai wu feng gan +47,da kai xia wu feng gan +48,da kai xin feng +49,da kai xiu xian mo shi +50,da kai xuan zhuan song feng +51,da kai yi jian chu wu +52,da kai zhi leng +53,da kai zhi leng mo shi +54,da kai zhi re +55,da kai zhi re mo shi +56,da kai zhi kong wen +57,da kai zhi neng guan jia +58,da kai zhi neng sha jun +59,da kai zhi neng sheng dian +60,da kai zhi qing jie +61,da kai zhi wen gan +62,da kai zhuan shu wen du +63,da kai zi dong mo shi +64,da kai zuo you bai feng +65,da kai zuo you sao feng +66,di feng su +67,di su feng +68,di yi dian +69,dian fu re +70,tiao cheng zui leng +71,tiao cheng zui nuan +72,tiao da feng su +73,tiao da xin feng +74,tiao dao er shi ba du +75,tiao dao er shi du +76,tiao dao er shi er du +77,tiao dao er shi jiu du +78,tiao dao er shi liu du +79,tiao dao er shi qi du +80,tiao dao er shi san du +81,tiao dao er shi si du +82,tiao dao er shi wu du +83,tiao dao er shi yi du +84,tiao dao san shi du +85,tiao dao shi ba du +86,tiao dao shi jiu du +87,tiao dao shi liu du +88,tiao dao shi qi du +89,tiao dao zui leng +90,tiao dao zui nuan +91,tiao di ling dian wu du +92,tiao di wen du +93,tiao di yi du +94,tiao gao er shi du +95,tiao gao ling dian wu du +96,tiao gao wen du +97,tiao gao wu du +98,tiao gao yi du +99,tiao leng yi dian +100,tiao nuan +101,tiao nuan yi dian +102,tiao xiao feng su +103,tiao xiao xin feng +104,ding chu feng +105,ding shi wu rao +106,ding xiang chu wu +107,er tong fang leng feng +108,er dang xin feng +109,feng da yi dian +110,feng su da dian +111,feng su er dang +112,feng su san dang +113,feng su xiao dian +114,feng su yi dang +115,feng wang shang chui +116,feng wang xia chui +117,feng wang you chui +118,feng wang zhong jian chui +119,feng wang zuo chui +120,feng xiang shang chui +121,feng xiang xia chui +122,feng xiang you chui +123,feng xiang zhong jian chui +124,feng xiang zuo chui +125,feng xiao yi dian +126,gao feng su +127,gao su feng +128,guan bi bai feng +129,fang zhi chui +130,guan bi dian fu re +131,guan bi ding chu feng +132,guan bi ding xiang chu wu +133,guan bi er tong fang leng feng +134,guan bi fang zhi chui +135,guan bi feng ji +136,guan bi fu re +137,guan bi huan qi +138,guan bi huan qi mo shi +139,guan bi jia shi +140,guan bi jie neng +141,guan bi jun yun feng +142,guan bi kong tiao +143,guan bi kong tiao deng guang +144,guan bi mu ying feng +145,guan bi mu qing feng +146,guan bi qiang jing +147,guan bi quan wu feng gan +148,guan bi rou feng gan +149,guan bi sen ba +150,guan bi shang wu feng gan +151,guan bi shang xia bai feng +152,guan bi shang xia sao feng +153,guan bi shu sheng +154,guan bi shui mian +155,guan bi si ji chu shi +156,guan bi si ji chu shi mo shi +157,guan bi wu feng gan +158,guan bi xia wu feng gan +159,guan bi xin feng +160,guan bi xuan zhuan song feng +161,guan bi yi jian chu wu +162,guan bi zhi kong wen +163,guan bi zhi qing jie +164,guan bi zhong wen bao wen +165,guan bi zhuan xiang wen du er +166,guan bi zhuan xiang wen du san +167,guan bi zhuan xiang wen du yi +168,guan bi zuo you bai feng +169,guan bi zuo you sao feng +170,guan bi zhuan shu wen du +171,guan diao bai feng +172,guan diao dian fu re +173,guan diao ding chu feng +174,guan diao ding xiang chu wu +175,guan diao er tong fang leng feng +176,guan diao fang zhi chui +177,guan diao gan zao +178,guan diao huan qi +179,guan diao huan qi mo shi +180,guan diao jia shi +181,guan diao jing hua +182,guan diao jun yun feng +183,guan diao kong tiao +184,guan diao kong tiao deng guang +185,guan diao qiang jing +186,guan diao quan wu feng gan +187,guan diao rou feng gan +188,guan diao shang wu feng gan +189,guan diao shang xia bai feng +190,guan diao shu sheng +191,guan diao shui mian +192,guan diao si ji chu shi +193,guan diao si ji chu shi mo shi +194,guan diao wu feng gan +195,guan diao xia wu feng gan +196,guan diao xin feng +197,guan diao xuan zhuan song feng +198,guan diao yi jian chu wu +199,guan diao zhi kong wen +200,guan diao zhi qing jie +201,guan diao zuo you bai feng +202,guan kong tiao +203,guan shang xia bai feng +204,guan shang xia feng +205,guan xin feng +206,guan zuo you bai feng +207,guan zuo you feng +208,guan bi zhi neng sheng dian +209,jian xiao feng su +210,jian xiao pu tong xin feng +211,jian xiao xin feng +212,jiang di wen du +213,jing yin feng +214,jing yin feng su +215,jun yun feng +216,kai kong tiao +217,kai qi bai feng +218,kai qi chu shi +219,kai qi chu shi mo shi +220,kai qi kong tiao +221,kai qi pai feng mo shi +222,kai qi shang xia sao feng +223,kai qi tong feng +224,kai qi zhi leng +225,kai qi zhi leng mo shi +226,kai qi zhi re +227,kai qi zhi re mo shi +228,kai qi zuo you sao feng +229,kai shi chu wei +230,kong tiao da kai +231,kong tiao guan bi +232,kong tiao guan diao +233,kong tiao guan ji +234,kong tiao kai ji +235,kong tiao kai shi pei wang +236,kong tiao lian wang +237,kong tiao chong xin pei wang +238,kai xin feng +239,leng yi dian +240,nuan yi dian +241,pu tong xin feng +242,qi dong kong tiao +243,qiang jing xin feng +244,qiang li feng +245,qiang li feng su +246,qu shi mo shi +247,quan wu feng gan +248,rou feng gan +249,san dang xin feng +250,shang wu feng gan +251,shang xia bai feng +252,shang xia feng +253,sheng gao wen du +254,sheng dao zui gao +255,sheng dao zui gao wei zhi +256,si dang xin feng +257,si ji chu shi +258,si ji chu shi mo shi +259,song feng mo shi +260,tai leng le +261,tai re le +262,ting zhi shang xia bai feng +263,ting zhi shang xia sao feng +264,ting zhi bai feng +265,ting zhi zhuan shu wen du +266,ting zhi zuo you bai feng +267,ting zhi zuo you sao feng +268,xia wu feng gan +269,xin feng da dian +270,xin feng er dang +271,xin feng qiang jing +272,xin feng qiang jing dang +273,xin feng san dang +274,xin feng si dang +275,xin feng xiao dian +276,xin feng yi dang +277,xin feng zui da +278,xin feng zui da dang +279,xin feng zui xiao +280,xin feng zui xiao dang +281,xuan zhuan song feng +282,yi dang xin feng +283,you dian leng +284,you dian re +285,zai gao yi dian +286,zeng da feng su +287,zeng da xin feng +288,zhi leng mo shi +289,zhi re mo shi +290,zhi kong wen +291,zhi neng wu rao +292,zhi qing jie +293,zhong deng feng +294,zhong feng su +295,zhong su feng +296,zi dong +297,zi dong feng +298,zi dong feng su +299,zi dong mo shi +300,zui da feng +301,zui da feng su +302,zui da xin feng +303,zui xiao feng +304,zui xiao feng su +305,zui xiao xin feng +306,zuo you bai feng +307,zuo you feng +308,bang wo guan deng +309,bang wo kai deng +310,da kai dian deng +311,guan bi dian deng +312,xiao le xiao le +313,xiao xin xiao xin \ No newline at end of file diff --git a/main/manager-web/public/generator/static/multinet_model/fst/commands_en.txt b/main/manager-web/public/generator/static/multinet_model/fst/commands_en.txt new file mode 100644 index 00000000..adbb281b --- /dev/null +++ b/main/manager-web/public/generator/static/multinet_model/fst/commands_en.txt @@ -0,0 +1,49 @@ +1,TELL ME A JOKE,TfL Mm c qbK +2,SING A SONG,Sgl c Sel +3,PLAY NEWS CHANNEL,PLd NoZ paNcL +4,TURN ON MY SOUNDBOX,TkN nN Mi StNDBnKS +5,TURN OFF MY SOUNDBOX,TkN eF Mi StNDBnKS +5,TURN OF MY SOUNDBOX,TkN cV Mi StNDBnKS +6,HIGHEST VOLUME,hicST VnLYoM +7,LOWEST VOLUME,LbcST VnLYoM +8,INCREASE THE VOLUME,gNKRmS jc VnLYoM +9,DECREASE THE VOLUME,DgKRmS jc VnLYoM +10,TURN ON THE TV,TkN nN jc TmVm +11,TURN OFF THE TV,TkN eF jc TmVm +11,TURN OF THE TV,TkN cV jc TmVm +12,MAKE ME A TEA,MdK Mm c Tm +13,MAKE ME A COFFEE,MdK Mm c KnFm +14,TURN ON THE LIGHT,TkN nN jc LiT +15,TURN OFF THE LIGHT,TkN eF jc LiT +15,TURN OF THE LIGHT,TkN cV jc LiT +16,CHANGE THE COLOR TO RED,pdNq jc KcLk To RfD +17,CHANGE THE COLOR TO GREEN,pdNq jc KcLk To GRmN +18,TURN ON ALL THE LIGHTS,TkN nN eL jc LiTS +19,TURN OFF ALL THE LIGHTS,TkN eF eL jc LiTS +19,TURN OF ALL THE LIGHTS,TkN cV eL jc LiTS +20,TURN ON THE AIR CONDITIONER,TkN nN jc fR KcNDgscNk +21,TURN OFF THE AIR CONDITIONER,TkN eF jc fR KcNDgscNk +21,TURN OF THE AIR CONDITIONER,TkN cV jc fR KcNDgscNk +22,SET THE TEMPERATURE TO SIXTEEN DEGREES,SfT jc TfMPRcpk To SgKSTmN DgGRmZ +23,SET THE TEMPERATURE TO SEVENTEEN DEGREES,SfT jc TfMPRcpk To SfVcNTmN DgGRmZ +24,SET THE TEMPERATURE TO EIGHTEEN DEGREES,SfT jc TfMPRcpk To dTmN DgGRmZ +25,SET THE TEMPERATURE TO NINETEEN DEGREES,SfT jc TfMPRcpk To NiNTmN DgGRmZ +26,SET THE TEMPERATURE TO TWENTY DEGREES,SfT jc TfMPRcpk To TWfNTm DgGRmZ +27,SET THE TEMPERATURE TO TWENTY ONE DEGREES,SfT jc TfMPRcpk To TWfNTm WcN DgGRmZ +28,SET THE TEMPERATURE TO TWENTY TWO DEGREES,SfT jc TfMPRcpk To TWfNTm To DgGRmZ +29,SET THE TEMPERATURE TO TWENTY THREE DEGREES,SfT jc TfMPRcpk To TWfNTm vRm DgGRmZ +30,SET THE TEMPERATURE TO TWENTY FOUR DEGREES,SfT jc TfMPRcpk To TWfNTm FeR DgGRmZ +31,SET THE TEMPERATURE TO TWENTY FIVE DEGREES,SfT jc TfMPRcpk To TWfNTm FiV DgGRmZ +32,SET THE TEMPERATURE TO TWENTY SIX DEGREES,SfT jc TfMPRcpk To TWfNTm SgKS DgGRmZ +33,LOWEST FAN SPEED,LbcST FaN SPmD +34,MEDIUM FAN SPEED,MmDmcM FaN SPmD +35,HIGHEST FAN SPEED,hicST FaN SPmD +36,AUTO ADJUST THE FAN SPEED,eTb cqcST jc FaN SPmD +37,DECREASE THE FAN SPEED,DgKRmS jc FaN SPmD +38,INCREASE THE FAN SPEED,gNKRmS jc FaN SPmD +39,INCREASE THE TEMPERATURE,gNKRmS jc TfMPRcpk +40,DECREASE THE TEMPERATURE,DgKRmS jc TfMPRcpk +41,COOLING MODE,KoLgl MbD +42,HEATING MODE,hmTgl MbD +43,VENTILATION MODE,VfNTcLdscN MbD +44,DEHUMIDIFY MODE,DmhYoMgDcFi MbD diff --git a/main/manager-web/public/generator/static/multinet_model/mn6_cn/_MODEL_INFO_ b/main/manager-web/public/generator/static/multinet_model/mn6_cn/_MODEL_INFO_ new file mode 100644 index 00000000..626a8406 --- /dev/null +++ b/main/manager-web/public/generator/static/multinet_model/mn6_cn/_MODEL_INFO_ @@ -0,0 +1,2 @@ +# (neural network type)_(model data version)_(lable1_detection windown length_threshold for 90%_threshold for 95%)_(lable2 ...)_... +MN6_v3_chinese_8_0.9_0.90 diff --git a/main/manager-web/public/generator/static/multinet_model/mn6_cn/mn6_data b/main/manager-web/public/generator/static/multinet_model/mn6_cn/mn6_data new file mode 100644 index 00000000..b0e33f67 Binary files /dev/null and b/main/manager-web/public/generator/static/multinet_model/mn6_cn/mn6_data differ diff --git a/main/manager-web/public/generator/static/multinet_model/mn6_cn/mn6_index b/main/manager-web/public/generator/static/multinet_model/mn6_cn/mn6_index new file mode 100644 index 00000000..cecbd2fb Binary files /dev/null and b/main/manager-web/public/generator/static/multinet_model/mn6_cn/mn6_index differ diff --git a/main/manager-web/public/generator/static/multinet_model/mn6_cn/vocab b/main/manager-web/public/generator/static/multinet_model/mn6_cn/vocab new file mode 100644 index 00000000..70484041 --- /dev/null +++ b/main/manager-web/public/generator/static/multinet_model/mn6_cn/vocab @@ -0,0 +1,408 @@ + 0 + 0 + 0 +▁a -6.00389 +▁ai -6.00389 +▁an -6.00389 +▁ang -6.00389 +▁ao -6.00389 +▁ba -6.00389 +▁bai -6.00389 +▁ban -6.00389 +▁bang -6.00389 +▁bao -6.00389 +▁bei -6.00389 +▁ben -6.00389 +▁beng -6.00389 +▁bi -6.00389 +▁bian -6.00389 +▁biao -6.00389 +▁bie -6.00389 +▁bin -6.00389 +▁bing -6.00389 +▁bo -6.00389 +▁bu -6.00389 +▁ca -6.00389 +▁cai -6.00389 +▁can -6.00389 +▁cang -6.00389 +▁cao -6.00389 +▁ce -6.00389 +▁cen -6.00389 +▁ceng -6.00389 +▁cha -6.00389 +▁chai -6.00389 +▁chan -6.00389 +▁chang -6.00389 +▁chao -6.00389 +▁che -6.00389 +▁chen -6.00389 +▁cheng -6.00389 +▁chi -6.00389 +▁chong -6.00389 +▁chou -6.00389 +▁chu -6.00389 +▁chuai -6.00389 +▁chuan -6.00389 +▁chuang -6.00389 +▁chui -6.00389 +▁chun -6.00389 +▁chuo -6.00389 +▁ci -6.00389 +▁cong -6.00389 +▁cou -6.00389 +▁cu -6.00389 +▁cuan -6.00389 +▁cui -6.00389 +▁cun -6.00389 +▁cuo -6.00389 +▁da -6.00389 +▁dai -6.00389 +▁dan -6.00389 +▁dang -6.00389 +▁dao -6.00389 +▁de -6.00389 +▁dei -6.00389 +▁deng -6.00389 +▁di -6.00389 +▁dia -6.00389 +▁dian -6.00389 +▁diao -6.00389 +▁die -6.00389 +▁ding -6.00389 +▁diu -6.00389 +▁dong -6.00389 +▁dou -6.00389 +▁du -6.00389 +▁duan -6.00389 +▁dui -6.00389 +▁dun -6.00389 +▁duo -6.00389 +▁e -6.00389 +▁ei -6.00389 +▁en -6.00389 +▁eng -6.00389 +▁er -6.00389 +▁fa -6.00389 +▁fan -6.00389 +▁fang -6.00389 +▁fei -6.00389 +▁fen -6.00389 +▁feng -6.00389 +▁fo -6.00389 +▁fou -6.00389 +▁fu -6.00389 +▁ga -6.00389 +▁gai -6.00389 +▁gan -6.00389 +▁gang -6.00389 +▁gao -6.00389 +▁ge -6.00389 +▁gei -6.00389 +▁gen -6.00389 +▁geng -6.00389 +▁gong -6.00389 +▁gou -6.00389 +▁gu -6.00389 +▁gua -6.00389 +▁guai -6.00389 +▁guan -6.00389 +▁guang -6.00389 +▁gui -6.00389 +▁gun -6.00389 +▁guo -6.00389 +▁ha -6.00389 +▁hai -6.00389 +▁han -6.00389 +▁hang -6.00389 +▁hao -6.00389 +▁he -6.00389 +▁hei -6.00389 +▁hen -6.00389 +▁heng -6.00389 +▁hong -6.00389 +▁hou -6.00389 +▁hu -6.00389 +▁hua -6.00389 +▁huai -6.00389 +▁huan -6.00389 +▁huang -6.00389 +▁hui -6.00389 +▁hun -6.00389 +▁huo -6.00389 +▁ji -6.00389 +▁jia -6.00389 +▁jian -6.00389 +▁jiang -6.00389 +▁jiao -6.00389 +▁jie -6.00389 +▁jin -6.00389 +▁jing -6.00389 +▁jiong -6.00389 +▁jiu -6.00389 +▁ju -6.00389 +▁juan -6.00389 +▁jue -6.00389 +▁jun -6.00389 +▁ka -6.00389 +▁kai -6.00389 +▁kan -6.00389 +▁kang -6.00389 +▁kao -6.00389 +▁ke -6.00389 +▁ken -6.00389 +▁keng -6.00389 +▁kong -6.00389 +▁kou -6.00389 +▁ku -6.00389 +▁kua -6.00389 +▁kuai -6.00389 +▁kuan -6.00389 +▁kuang -6.00389 +▁kui -6.00389 +▁kun -6.00389 +▁kuo -6.00389 +▁la -6.00389 +▁lai -6.00389 +▁lan -6.00389 +▁lang -6.00389 +▁lao -6.00389 +▁le -6.00389 +▁lei -6.00389 +▁leng -6.00389 +▁li -6.00389 +▁lia -6.00389 +▁lian -6.00389 +▁liang -6.00389 +▁liao -6.00389 +▁lie -6.00389 +▁lin -6.00389 +▁ling -6.00389 +▁liu -6.00389 +▁long -6.00389 +▁lou -6.00389 +▁lu -6.00389 +▁luan -6.00389 +▁lun -6.00389 +▁luo -6.00389 +▁lv -6.00389 +▁lve -6.00389 +▁ma -6.00389 +▁mai -6.00389 +▁man -6.00389 +▁mang -6.00389 +▁mao -6.00389 +▁me -6.00389 +▁mei -6.00389 +▁men -6.00389 +▁meng -6.00389 +▁mi -6.00389 +▁mian -6.00389 +▁miao -6.00389 +▁mie -6.00389 +▁min -6.00389 +▁ming -6.00389 +▁miu -6.00389 +▁mo -6.00389 +▁mou -6.00389 +▁mu -6.00389 +▁n -6.00389 +▁na -6.00389 +▁nai -6.00389 +▁nan -6.00389 +▁nang -6.00389 +▁nao -6.00389 +▁ne -6.00389 +▁nei -6.00389 +▁nen -6.00389 +▁neng -6.00389 +▁ni -6.00389 +▁nian -6.00389 +▁niang -6.00389 +▁niao -6.00389 +▁nie -6.00389 +▁nin -6.00389 +▁ning -6.00389 +▁niu -6.00389 +▁nong -6.00389 +▁nou -6.00389 +▁nu -6.00389 +▁nuan -6.00389 +▁nuo -6.00389 +▁nv -6.00389 +▁nve -6.00389 +▁o -6.00389 +▁ou -6.00389 +▁pa -6.00389 +▁pai -6.00389 +▁pan -6.00389 +▁pang -6.00389 +▁pao -6.00389 +▁pei -6.00389 +▁pen -6.00389 +▁peng -6.00389 +▁pi -6.00389 +▁pian -6.00389 +▁piao -6.00389 +▁pie -6.00389 +▁pin -6.00389 +▁ping -6.00389 +▁po -6.00389 +▁pou -6.00389 +▁pu -6.00389 +▁qi -6.00389 +▁qia -6.00389 +▁qian -6.00389 +▁qiang -6.00389 +▁qiao -6.00389 +▁qie -6.00389 +▁qin -6.00389 +▁qing -6.00389 +▁qiong -6.00389 +▁qiu -6.00389 +▁qu -6.00389 +▁quan -6.00389 +▁que -6.00389 +▁qun -6.00389 +▁ran -6.00389 +▁rang -6.00389 +▁rao -6.00389 +▁re -6.00389 +▁ren -6.00389 +▁reng -6.00389 +▁ri -6.00389 +▁rong -6.00389 +▁rou -6.00389 +▁ru -6.00389 +▁ruan -6.00389 +▁rui -6.00389 +▁run -6.00389 +▁ruo -6.00389 +▁sa -6.00389 +▁sai -6.00389 +▁san -6.00389 +▁sang -6.00389 +▁sao -6.00389 +▁se -6.00389 +▁sen -6.00389 +▁seng -6.00389 +▁sha -6.00389 +▁shai -6.00389 +▁shan -6.00389 +▁shang -6.00389 +▁shao -6.00389 +▁she -6.00389 +▁shei -6.00389 +▁shen -6.00389 +▁sheng -6.00389 +▁shi -6.00389 +▁shou -6.00389 +▁shu -6.00389 +▁shua -6.00389 +▁shuai -6.00389 +▁shuan -6.00389 +▁shuang -6.00389 +▁shui -6.00389 +▁shun -6.00389 +▁shuo -6.00389 +▁si -6.00389 +▁song -6.00389 +▁sou -6.00389 +▁su -6.00389 +▁suan -6.00389 +▁sui -6.00389 +▁sun -6.00389 +▁suo -6.00389 +▁ta -6.00389 +▁tai -6.00389 +▁tan -6.00389 +▁tang -6.00389 +▁tao -6.00389 +▁te -6.00389 +▁teng -6.00389 +▁ti -6.00389 +▁tian -6.00389 +▁tiao -6.00389 +▁tie -6.00389 +▁ting -6.00389 +▁tong -6.00389 +▁tou -6.00389 +▁tu -6.00389 +▁tuan -6.00389 +▁tui -6.00389 +▁tun -6.00389 +▁tuo -6.00389 +▁wa -6.00389 +▁wai -6.00389 +▁wan -6.00389 +▁wang -6.00389 +▁wei -6.00389 +▁wen -6.00389 +▁weng -6.00389 +▁wo -6.00389 +▁wu -6.00389 +▁xi -6.00389 +▁xia -6.00389 +▁xian -6.00389 +▁xiang -6.00389 +▁xiao -6.00389 +▁xie -6.00389 +▁xin -6.00389 +▁xing -6.00389 +▁xiong -6.00389 +▁xiu -6.00389 +▁xu -6.00389 +▁xuan -6.00389 +▁xue -6.00389 +▁xun -6.00389 +▁ya -6.00389 +▁yan -6.00389 +▁yang -6.00389 +▁yao -6.00389 +▁ye -6.00389 +▁yi -6.00389 +▁yin -6.00389 +▁ying -6.00389 +▁yo -6.00389 +▁yong -6.00389 +▁you -6.00389 +▁yu -6.00389 +▁yuan -6.00389 +▁yue -6.00389 +▁yun -6.00389 +▁za -6.00389 +▁zai -6.00389 +▁zan -6.00389 +▁zang -6.00389 +▁zao -6.00389 +▁ze -6.00389 +▁zei -6.00389 +▁zen -6.00389 +▁zeng -6.00389 +▁zha -6.00389 +▁zhai -6.00389 +▁zhan -6.00389 +▁zhang -6.00389 +▁zhao -6.00389 +▁zhe -6.00389 +▁zhen -6.00389 +▁zheng -6.00389 +▁zhi -6.00389 +▁zhong -6.00389 +▁zhou -6.00389 +▁zhu -6.00389 +▁zhua -6.00389 +▁zhuai -6.00389 +▁zhuan -6.00389 +▁zhuang -6.00389 +▁zhui -6.00389 +▁zhun -6.00389 +▁zhuo -6.00389 +▁zi -6.00389 +▁zong -6.00389 +▁zou -6.00389 +▁zu -6.00389 +▁zuan -6.00389 +▁zui -6.00389 +▁zun -6.00389 +▁zuo -6.00389 diff --git a/main/manager-web/public/generator/static/multinet_model/mn6_en/_MODEL_INFO_ b/main/manager-web/public/generator/static/multinet_model/mn6_en/_MODEL_INFO_ new file mode 100644 index 00000000..dc2c373a --- /dev/null +++ b/main/manager-web/public/generator/static/multinet_model/mn6_en/_MODEL_INFO_ @@ -0,0 +1,2 @@ +# (neural network type)_(model data version)_(lable1_detection windown length_threshold for 90%_threshold for 95%)_(lable2 ...)_... +MN6_v11_english_8_0.9_0.90 diff --git a/main/manager-web/public/generator/static/multinet_model/mn6_en/mn6_data b/main/manager-web/public/generator/static/multinet_model/mn6_en/mn6_data new file mode 100644 index 00000000..313d20b1 Binary files /dev/null and b/main/manager-web/public/generator/static/multinet_model/mn6_en/mn6_data differ diff --git a/main/manager-web/public/generator/static/multinet_model/mn6_en/mn6_index b/main/manager-web/public/generator/static/multinet_model/mn6_en/mn6_index new file mode 100644 index 00000000..5db24af4 Binary files /dev/null and b/main/manager-web/public/generator/static/multinet_model/mn6_en/mn6_index differ diff --git a/main/manager-web/public/generator/static/multinet_model/mn6_en/vocab b/main/manager-web/public/generator/static/multinet_model/mn6_en/vocab new file mode 100644 index 00000000..c19bc3a8 --- /dev/null +++ b/main/manager-web/public/generator/static/multinet_model/mn6_en/vocab @@ -0,0 +1,496 @@ + 0 + 0 + 0 +S -3.07889 +▁THE -3.40423 +T -3.88725 +▁A -3.92112 +N -4.09564 +D -4.11012 +ED -4.1357 +E -4.14799 +▁OF -4.26336 +Y -4.29626 +▁AND -4.33585 +▁S -4.3654 +▁IN -4.3757 +R -4.40673 +▁TO -4.4224 +▁ -4.44313 +A -4.53295 +ING -4.609 +P -4.6255 +O -4.64585 +M -4.70827 +▁HE -4.88611 +ER -4.8978 +C -4.91954 +G -4.92569 +I -4.94376 +L -4.99607 +▁WAS -5.03879 +RE -5.04049 +▁IS -5.04139 +B -5.05608 +U -5.0919 +IN -5.09797 +AL -5.11326 +F -5.14736 +▁RE -5.17026 +▁C -5.18734 +W -5.20708 +LE -5.2265 +AR -5.22738 +LY -5.25158 +K -5.26829 +▁E -5.28591 +▁IT -5.29688 +▁I -5.30127 +▁FOR -5.32154 +▁BE -5.32403 +OR -5.34223 +▁F -5.37851 +RI -5.43106 +UR -5.45431 +TER -5.45866 +ES -5.45872 +LL -5.48135 +TH -5.52073 +▁HIS -5.55833 +CE -5.56702 +▁THAT -5.57592 +AN -5.59288 +▁W -5.6041 +VE -5.60931 +ST -5.62437 +ENT -5.65017 +H -5.65339 +▁WITH -5.6706 +▁DE -5.68992 +▁AS -5.69156 +ON -5.72969 +▁G -5.74921 +EN -5.78306 +▁ON -5.78979 +SE -5.79199 +▁T -5.79727 +CH -5.81344 +IT -5.81754 +▁ME -5.82634 +ND -5.8311 +IC -5.85196 +IL -5.90067 +LI -5.93408 +▁ARE -5.93654 +▁AT -5.9387 +LA -5.94726 +NE -5.95697 +TE -5.96039 +▁BY -5.96685 +▁SO -5.9722 +ATION -5.98634 +▁YOU -5.9876 +NG -5.99006 +ME -5.99601 +RO -6.02152 +▁CON -6.02394 +▁HER -6.0293 +▁LA -6.03015 +▁THIS -6.04492 +▁DO -6.07943 +▁B -6.08512 +▁NOT -6.08671 +▁SHE -6.09068 +EL -6.1097 +▁HO -6.11901 +▁AN -6.12235 +▁MA -6.12322 +▁LE -6.12454 +CK -6.1247 +' -6.12699 +▁HAD -6.13045 +RA -6.13689 +AD -6.14076 +▁O -6.14214 +▁P -6.20087 +IR -6.21724 +LO -6.22267 +▁MO -6.22307 +ION -6.22672 +▁CO -6.23029 +▁CA -6.23812 +▁SU -6.26152 +▁SE -6.26695 +▁BUT -6.27228 +▁FROM -6.27467 +▁EX -6.28074 +▁HA -6.28098 +VER -6.28125 +▁PO -6.28914 +▁SA -6.2916 +▁WERE -6.30425 +▁NO -6.30776 +ET -6.31275 +▁BO -6.31689 +▁PRO -6.32041 +CI -6.32454 +▁FA -6.32788 +▁RO -6.32906 +V -6.34332 +▁OR -6.36826 +GE -6.37052 +▁LI -6.37484 +▁WE -6.37675 +MENT -6.37907 +VI -6.38565 +▁HAVE -6.39316 +US -6.40326 +▁BA -6.42561 +▁LO -6.42993 +THER -6.43168 +▁ALSO -6.47489 +▁ALL -6.50533 +X -6.50653 +▁K -6.52042 +Z -6.52984 +PE -6.53095 +IVE -6.53508 +▁ONE -6.53996 +▁WA -6.54638 +KE -6.55093 +▁RA -6.55191 +UL -6.55216 +ECT -6.55335 +▁UN -6.56427 +PP -6.56492 +ANT -6.56898 +CO -6.57329 +TED -6.57444 +▁GO -6.58303 +▁THEY -6.59422 +▁HIM -6.59522 +TI -6.60893 +HO -6.61054 +ITY -6.61409 +▁PA -6.61551 +▁TE -6.6184 +IS -6.62109 +▁HAS -6.63168 +AT -6.6365 +TA -6.63933 +LU -6.64536 +▁COM -6.64737 +MP -6.64779 +IES -6.64855 +▁NE -6.6488 +RY -6.65295 +▁SP -6.66979 +▁THERE -6.68432 +▁MY -6.68952 +▁US -6.69133 +AM -6.70139 +UN -6.71227 +LD -6.71897 +DE -6.72339 +ATE -6.72648 +IST -6.72921 +IGHT -6.73344 +▁WHICH -6.73445 +UT -6.74595 +TION -6.7483 +▁PRE -6.75246 +▁STA -6.75454 +MO -6.77175 +QU -6.77352 +EST -6.77941 +▁WHO -6.78426 +OM -6.79011 +▁EN -6.79139 +RU -6.7931 +UND -6.8019 +▁DI -6.80283 +▁MI -6.80652 +▁CAN -6.8222 +▁DA -6.83626 +▁THEIR -6.83991 +▁MAN -6.85115 +FF -6.85206 +IG -6.85213 +ERS -6.85821 +▁SOME -6.86373 +J -6.87215 +▁SAID -6.8771 +IDE -6.88655 +ENCE -6.88893 +▁BEEN -6.88897 +UGH -6.89375 +▁CHA -6.89704 +OL -6.90369 +AS -6.90373 +▁FE -6.90451 +ALLY -6.90772 +▁PER -6.91705 +▁TRA -6.91809 +▁DIS -6.92071 +ISH -6.92646 +▁OUT -6.93475 +TU -6.94591 +▁TWO -6.95006 +TEN -6.95389 +ANCE -6.95667 +ABLE -6.95742 +▁FI -6.95763 +ATED -6.96277 +MAN -6.96672 +ARD -6.97351 +IM -6.97412 +▁COMP -6.97531 +TO -6.97737 +▁UP -6.98066 +▁DR -6.98419 +▁WHEN -6.99258 +ID -6.99533 +▁VI -6.99727 +▁MAR -7.0055 +MI -7.00807 +▁OTHER -7.00956 +UM -7.01895 +ACH -7.02126 +▁TIME -7.02406 +VO -7.03375 +AGE -7.03636 +▁WILL -7.03689 +LES -7.0385 +SON -7.04028 +▁WOULD -7.04116 +▁AFTER -7.04746 +DI -7.05154 +HE -7.05471 +CTION -7.06388 +DER -7.07653 +▁SEE -7.08034 +TOR -7.08927 +TING -7.09141 +IA -7.09335 +IAN -7.09403 +▁RI -7.10291 +▁KNOW -7.10479 +▁GA -7.1099 +▁WI -7.11445 +MA -7.11769 +NO -7.12181 +LOW -7.12665 +▁HU -7.13031 +▁WHAT -7.13396 +▁AL -7.13463 +LAND -7.14441 +TURE -7.15932 +CA -7.17135 +INE -7.17506 +▁PRI -7.17772 +SH -7.20164 +▁INTO -7.20364 +▁BU -7.21223 +▁MORE -7.21481 +▁VA -7.21647 +PORT -7.2194 +▁PART -7.23217 +▁FIRST -7.23582 +OUS -7.23769 +TRA -7.24264 +▁ITS -7.2429 +HA -7.24538 +ITE -7.25177 +▁IF -7.25488 +▁NEW -7.25627 +ICAL -7.26377 +TIC -7.26381 +PER -7.26693 +▁CAR -7.26944 +▁RU -7.27772 +ITION -7.28408 +FUL -7.29445 +BO -7.29669 +▁NAME -7.30452 +TON -7.30697 +▁OVER -7.31507 +TRO -7.32087 +▁GRA -7.3217 +▁BRO -7.32641 +ACT -7.33136 +▁NOW -7.34355 +AST -7.35111 +CU -7.35545 +▁SHA -7.35997 +▁WORK -7.36627 +▁YEAR -7.36661 +VEN -7.36903 +▁NA -7.37128 +WAY -7.38026 +▁ONLY -7.38736 +BER -7.38879 +LF -7.4099 +ARY -7.41035 +▁LIKE -7.42306 +▁COULD -7.42436 +▁VERY -7.42967 +▁ANY -7.43986 +▁THESE -7.44827 +▁PLAY -7.45178 +▁MOST -7.45687 +WARD -7.45972 +▁TA -7.46343 +▁THAN -7.46455 +BA -7.4685 +▁PAR -7.47386 +▁COUNT -7.47686 +▁EVEN -7.48424 +VA -7.4928 +▁DID -7.4948 +▁DAY -7.49797 +▁PU -7.51069 +▁MU -7.51234 +ROW -7.5153 +▁ABOUT -7.516 +▁MANY -7.51664 +▁WELL -7.53807 +▁JO -7.54001 +▁UNDER -7.54177 +▁ACC -7.55773 +▁PE -7.56034 +▁AGAIN -7.5605 +▁SCHOOL -7.56228 +▁MAY -7.5694 +▁PI -7.57678 +▁MADE -7.57897 +▁DU -7.59393 +RESS -7.59781 +▁THREE -7.60489 +▁GREAT -7.60498 +▁YOUR -7.60601 +▁MIN -7.60861 +VING -7.61683 +IOUS -7.61753 +▁BI -7.62307 +▁LITTLE -7.62497 +▁COL -7.62618 +▁CHI -7.63267 +▁THOUGH -7.63364 +▁LONG -7.63534 +▁JA -7.63895 +▁THROUGH -7.64648 +▁HIGH -7.64926 +▁LOOK -7.6521 +FORM -7.65936 +▁FIN -7.66407 +▁KI -7.6669 +▁HI -7.67024 +NESS -7.68112 +▁HAND -7.68612 +▁IMP -7.68653 +▁OLD -7.7006 +SHIP -7.70413 +▁DOWN -7.71157 +▁BRI -7.71511 +▁BEFORE -7.71936 +▁SUCH -7.72039 +▁HOWEVER -7.728 +▁OWN -7.75294 +▁TAKE -7.76308 +▁GOOD -7.76874 +▁MON -7.76942 +▁FOUND -7.77054 +▁GU -7.78223 +▁EVERY -7.78939 +▁STATE -7.7907 +▁WHERE -7.79278 +CTOR -7.79962 +▁NEVER -7.80492 +IZE -7.80764 +▁TOWN -7.81842 +▁BACK -7.82046 +▁SHOULD -7.8246 +▁UPON -7.83734 +▁HOUSE -7.84511 +IV -7.85541 +▁PH -7.86099 +▁PLACE -7.87672 +▁MISS -7.88612 +▁CAME -7.8866 +▁JU -7.88931 +▁QUI -7.90935 +▁MUCH -7.91921 +IBLE -7.93599 +▁JUST -7.93659 +▁FOUR -7.94758 +▁PEOPLE -7.94857 +▁FOLLOW -7.94871 +▁MUST -7.95395 +▁LIFE -7.96048 +▁LARGE -7.96278 +▁MAKE -7.9675 +▁INCLUDE -7.96818 +▁NORTH -7.97504 +▁DURING -7.98067 +▁SOUTH -7.99293 +▁STILL -7.9973 +▁TI -7.99869 +▁SEVERAL -8.00559 +ATIVE -8.0089 +▁PASS -8.03179 +▁JE -8.0351 +▁CALLED -8.04403 +▁THING -8.05018 +▁SHOW -8.05214 +▁THI -8.0527 +▁WHILE -8.07217 +▁NI -8.08629 +▁WORLD -8.08951 +▁THINK -8.09877 +QUI -8.11332 +▁BECAME -8.11496 +▁MISTER -8.11977 +▁HIMSELF -8.13559 +▁BORN -8.13768 +▁APPEAR -8.14342 +▁ANOTHER -8.15291 +TTLE -8.1567 +▁TURN -8.1729 +▁OPEN -8.18109 +▁SMALL -8.19434 +▁WITHOUT -8.21613 +▁THOSE -8.24015 +▁MUSIC -8.24442 +▁SECOND -8.25535 +▁GENERAL -8.25552 +▁WORD -8.25754 +▁BETWEEN -8.26687 +▁RIGHT -8.27526 +▁REMAIN -8.27935 +▁TOOK -8.28184 +▁DIRECT -8.28644 +▁MIGHT -8.30341 +▁NIGHT -8.31281 +▁RETURN -8.315 +▁BOOK -8.32654 +▁MEMBER -8.32963 +WOOD -8.33563 +▁FRIEND -8.33879 +▁LOCATED -8.3518 +▁CHILDREN -8.38972 +▁FILM -8.39793 +▁OPERA -8.40359 +▁CONSIDER -8.40997 +▁SIX -8.41371 +▁NUMBER -8.42239 +▁QUA -8.42348 +▁GROUP -8.45124 +▁CLOSE -8.45242 +▁FAMILY -8.45315 +▁PUBLIC -8.46476 +▁POWER -8.46486 +▁BLACK -8.46615 +▁NOTHING -8.46827 +▁UNIVERSITY -8.48681 +▁JOHN -8.49126 +Q -10.4251 diff --git a/main/manager-web/public/generator/static/multinet_model/mn7_cn/_MODEL_INFO_ b/main/manager-web/public/generator/static/multinet_model/mn7_cn/_MODEL_INFO_ new file mode 100644 index 00000000..a50062a5 --- /dev/null +++ b/main/manager-web/public/generator/static/multinet_model/mn7_cn/_MODEL_INFO_ @@ -0,0 +1,2 @@ +# (neural network type)_(model data version)_(lable1_detection windown length_threshold for 90%_threshold for 95%)_(lable2 ...)_... +MN7_v1_chinese_8_0.9_0.90 diff --git a/main/manager-web/public/generator/static/multinet_model/mn7_cn/mn7_data b/main/manager-web/public/generator/static/multinet_model/mn7_cn/mn7_data new file mode 100644 index 00000000..1a187864 Binary files /dev/null and b/main/manager-web/public/generator/static/multinet_model/mn7_cn/mn7_data differ diff --git a/main/manager-web/public/generator/static/multinet_model/mn7_cn/mn7_index b/main/manager-web/public/generator/static/multinet_model/mn7_cn/mn7_index new file mode 100644 index 00000000..92322309 Binary files /dev/null and b/main/manager-web/public/generator/static/multinet_model/mn7_cn/mn7_index differ diff --git a/main/manager-web/public/generator/static/multinet_model/mn7_cn/vocab b/main/manager-web/public/generator/static/multinet_model/mn7_cn/vocab new file mode 100644 index 00000000..70484041 --- /dev/null +++ b/main/manager-web/public/generator/static/multinet_model/mn7_cn/vocab @@ -0,0 +1,408 @@ + 0 + 0 + 0 +▁a -6.00389 +▁ai -6.00389 +▁an -6.00389 +▁ang -6.00389 +▁ao -6.00389 +▁ba -6.00389 +▁bai -6.00389 +▁ban -6.00389 +▁bang -6.00389 +▁bao -6.00389 +▁bei -6.00389 +▁ben -6.00389 +▁beng -6.00389 +▁bi -6.00389 +▁bian -6.00389 +▁biao -6.00389 +▁bie -6.00389 +▁bin -6.00389 +▁bing -6.00389 +▁bo -6.00389 +▁bu -6.00389 +▁ca -6.00389 +▁cai -6.00389 +▁can -6.00389 +▁cang -6.00389 +▁cao -6.00389 +▁ce -6.00389 +▁cen -6.00389 +▁ceng -6.00389 +▁cha -6.00389 +▁chai -6.00389 +▁chan -6.00389 +▁chang -6.00389 +▁chao -6.00389 +▁che -6.00389 +▁chen -6.00389 +▁cheng -6.00389 +▁chi -6.00389 +▁chong -6.00389 +▁chou -6.00389 +▁chu -6.00389 +▁chuai -6.00389 +▁chuan -6.00389 +▁chuang -6.00389 +▁chui -6.00389 +▁chun -6.00389 +▁chuo -6.00389 +▁ci -6.00389 +▁cong -6.00389 +▁cou -6.00389 +▁cu -6.00389 +▁cuan -6.00389 +▁cui -6.00389 +▁cun -6.00389 +▁cuo -6.00389 +▁da -6.00389 +▁dai -6.00389 +▁dan -6.00389 +▁dang -6.00389 +▁dao -6.00389 +▁de -6.00389 +▁dei -6.00389 +▁deng -6.00389 +▁di -6.00389 +▁dia -6.00389 +▁dian -6.00389 +▁diao -6.00389 +▁die -6.00389 +▁ding -6.00389 +▁diu -6.00389 +▁dong -6.00389 +▁dou -6.00389 +▁du -6.00389 +▁duan -6.00389 +▁dui -6.00389 +▁dun -6.00389 +▁duo -6.00389 +▁e -6.00389 +▁ei -6.00389 +▁en -6.00389 +▁eng -6.00389 +▁er -6.00389 +▁fa -6.00389 +▁fan -6.00389 +▁fang -6.00389 +▁fei -6.00389 +▁fen -6.00389 +▁feng -6.00389 +▁fo -6.00389 +▁fou -6.00389 +▁fu -6.00389 +▁ga -6.00389 +▁gai -6.00389 +▁gan -6.00389 +▁gang -6.00389 +▁gao -6.00389 +▁ge -6.00389 +▁gei -6.00389 +▁gen -6.00389 +▁geng -6.00389 +▁gong -6.00389 +▁gou -6.00389 +▁gu -6.00389 +▁gua -6.00389 +▁guai -6.00389 +▁guan -6.00389 +▁guang -6.00389 +▁gui -6.00389 +▁gun -6.00389 +▁guo -6.00389 +▁ha -6.00389 +▁hai -6.00389 +▁han -6.00389 +▁hang -6.00389 +▁hao -6.00389 +▁he -6.00389 +▁hei -6.00389 +▁hen -6.00389 +▁heng -6.00389 +▁hong -6.00389 +▁hou -6.00389 +▁hu -6.00389 +▁hua -6.00389 +▁huai -6.00389 +▁huan -6.00389 +▁huang -6.00389 +▁hui -6.00389 +▁hun -6.00389 +▁huo -6.00389 +▁ji -6.00389 +▁jia -6.00389 +▁jian -6.00389 +▁jiang -6.00389 +▁jiao -6.00389 +▁jie -6.00389 +▁jin -6.00389 +▁jing -6.00389 +▁jiong -6.00389 +▁jiu -6.00389 +▁ju -6.00389 +▁juan -6.00389 +▁jue -6.00389 +▁jun -6.00389 +▁ka -6.00389 +▁kai -6.00389 +▁kan -6.00389 +▁kang -6.00389 +▁kao -6.00389 +▁ke -6.00389 +▁ken -6.00389 +▁keng -6.00389 +▁kong -6.00389 +▁kou -6.00389 +▁ku -6.00389 +▁kua -6.00389 +▁kuai -6.00389 +▁kuan -6.00389 +▁kuang -6.00389 +▁kui -6.00389 +▁kun -6.00389 +▁kuo -6.00389 +▁la -6.00389 +▁lai -6.00389 +▁lan -6.00389 +▁lang -6.00389 +▁lao -6.00389 +▁le -6.00389 +▁lei -6.00389 +▁leng -6.00389 +▁li -6.00389 +▁lia -6.00389 +▁lian -6.00389 +▁liang -6.00389 +▁liao -6.00389 +▁lie -6.00389 +▁lin -6.00389 +▁ling -6.00389 +▁liu -6.00389 +▁long -6.00389 +▁lou -6.00389 +▁lu -6.00389 +▁luan -6.00389 +▁lun -6.00389 +▁luo -6.00389 +▁lv -6.00389 +▁lve -6.00389 +▁ma -6.00389 +▁mai -6.00389 +▁man -6.00389 +▁mang -6.00389 +▁mao -6.00389 +▁me -6.00389 +▁mei -6.00389 +▁men -6.00389 +▁meng -6.00389 +▁mi -6.00389 +▁mian -6.00389 +▁miao -6.00389 +▁mie -6.00389 +▁min -6.00389 +▁ming -6.00389 +▁miu -6.00389 +▁mo -6.00389 +▁mou -6.00389 +▁mu -6.00389 +▁n -6.00389 +▁na -6.00389 +▁nai -6.00389 +▁nan -6.00389 +▁nang -6.00389 +▁nao -6.00389 +▁ne -6.00389 +▁nei -6.00389 +▁nen -6.00389 +▁neng -6.00389 +▁ni -6.00389 +▁nian -6.00389 +▁niang -6.00389 +▁niao -6.00389 +▁nie -6.00389 +▁nin -6.00389 +▁ning -6.00389 +▁niu -6.00389 +▁nong -6.00389 +▁nou -6.00389 +▁nu -6.00389 +▁nuan -6.00389 +▁nuo -6.00389 +▁nv -6.00389 +▁nve -6.00389 +▁o -6.00389 +▁ou -6.00389 +▁pa -6.00389 +▁pai -6.00389 +▁pan -6.00389 +▁pang -6.00389 +▁pao -6.00389 +▁pei -6.00389 +▁pen -6.00389 +▁peng -6.00389 +▁pi -6.00389 +▁pian -6.00389 +▁piao -6.00389 +▁pie -6.00389 +▁pin -6.00389 +▁ping -6.00389 +▁po -6.00389 +▁pou -6.00389 +▁pu -6.00389 +▁qi -6.00389 +▁qia -6.00389 +▁qian -6.00389 +▁qiang -6.00389 +▁qiao -6.00389 +▁qie -6.00389 +▁qin -6.00389 +▁qing -6.00389 +▁qiong -6.00389 +▁qiu -6.00389 +▁qu -6.00389 +▁quan -6.00389 +▁que -6.00389 +▁qun -6.00389 +▁ran -6.00389 +▁rang -6.00389 +▁rao -6.00389 +▁re -6.00389 +▁ren -6.00389 +▁reng -6.00389 +▁ri -6.00389 +▁rong -6.00389 +▁rou -6.00389 +▁ru -6.00389 +▁ruan -6.00389 +▁rui -6.00389 +▁run -6.00389 +▁ruo -6.00389 +▁sa -6.00389 +▁sai -6.00389 +▁san -6.00389 +▁sang -6.00389 +▁sao -6.00389 +▁se -6.00389 +▁sen -6.00389 +▁seng -6.00389 +▁sha -6.00389 +▁shai -6.00389 +▁shan -6.00389 +▁shang -6.00389 +▁shao -6.00389 +▁she -6.00389 +▁shei -6.00389 +▁shen -6.00389 +▁sheng -6.00389 +▁shi -6.00389 +▁shou -6.00389 +▁shu -6.00389 +▁shua -6.00389 +▁shuai -6.00389 +▁shuan -6.00389 +▁shuang -6.00389 +▁shui -6.00389 +▁shun -6.00389 +▁shuo -6.00389 +▁si -6.00389 +▁song -6.00389 +▁sou -6.00389 +▁su -6.00389 +▁suan -6.00389 +▁sui -6.00389 +▁sun -6.00389 +▁suo -6.00389 +▁ta -6.00389 +▁tai -6.00389 +▁tan -6.00389 +▁tang -6.00389 +▁tao -6.00389 +▁te -6.00389 +▁teng -6.00389 +▁ti -6.00389 +▁tian -6.00389 +▁tiao -6.00389 +▁tie -6.00389 +▁ting -6.00389 +▁tong -6.00389 +▁tou -6.00389 +▁tu -6.00389 +▁tuan -6.00389 +▁tui -6.00389 +▁tun -6.00389 +▁tuo -6.00389 +▁wa -6.00389 +▁wai -6.00389 +▁wan -6.00389 +▁wang -6.00389 +▁wei -6.00389 +▁wen -6.00389 +▁weng -6.00389 +▁wo -6.00389 +▁wu -6.00389 +▁xi -6.00389 +▁xia -6.00389 +▁xian -6.00389 +▁xiang -6.00389 +▁xiao -6.00389 +▁xie -6.00389 +▁xin -6.00389 +▁xing -6.00389 +▁xiong -6.00389 +▁xiu -6.00389 +▁xu -6.00389 +▁xuan -6.00389 +▁xue -6.00389 +▁xun -6.00389 +▁ya -6.00389 +▁yan -6.00389 +▁yang -6.00389 +▁yao -6.00389 +▁ye -6.00389 +▁yi -6.00389 +▁yin -6.00389 +▁ying -6.00389 +▁yo -6.00389 +▁yong -6.00389 +▁you -6.00389 +▁yu -6.00389 +▁yuan -6.00389 +▁yue -6.00389 +▁yun -6.00389 +▁za -6.00389 +▁zai -6.00389 +▁zan -6.00389 +▁zang -6.00389 +▁zao -6.00389 +▁ze -6.00389 +▁zei -6.00389 +▁zen -6.00389 +▁zeng -6.00389 +▁zha -6.00389 +▁zhai -6.00389 +▁zhan -6.00389 +▁zhang -6.00389 +▁zhao -6.00389 +▁zhe -6.00389 +▁zhen -6.00389 +▁zheng -6.00389 +▁zhi -6.00389 +▁zhong -6.00389 +▁zhou -6.00389 +▁zhu -6.00389 +▁zhua -6.00389 +▁zhuai -6.00389 +▁zhuan -6.00389 +▁zhuang -6.00389 +▁zhui -6.00389 +▁zhun -6.00389 +▁zhuo -6.00389 +▁zi -6.00389 +▁zong -6.00389 +▁zou -6.00389 +▁zu -6.00389 +▁zuan -6.00389 +▁zui -6.00389 +▁zun -6.00389 +▁zuo -6.00389 diff --git a/main/manager-web/public/generator/static/multinet_model/mn7_en/_MODEL_INFO_ b/main/manager-web/public/generator/static/multinet_model/mn7_en/_MODEL_INFO_ new file mode 100644 index 00000000..2baff012 --- /dev/null +++ b/main/manager-web/public/generator/static/multinet_model/mn7_en/_MODEL_INFO_ @@ -0,0 +1,2 @@ +# (neural network type)_(model data version)_(lable1_detection windown length_threshold for 90%_threshold for 95%)_(lable2 ...)_... +MN7_v2_english_8_0.9_0.90 diff --git a/main/manager-web/public/generator/static/multinet_model/mn7_en/mn7_data b/main/manager-web/public/generator/static/multinet_model/mn7_en/mn7_data new file mode 100644 index 00000000..bcc765db Binary files /dev/null and b/main/manager-web/public/generator/static/multinet_model/mn7_en/mn7_data differ diff --git a/main/manager-web/public/generator/static/multinet_model/mn7_en/mn7_index b/main/manager-web/public/generator/static/multinet_model/mn7_en/mn7_index new file mode 100644 index 00000000..e019725d Binary files /dev/null and b/main/manager-web/public/generator/static/multinet_model/mn7_en/mn7_index differ diff --git a/main/manager-web/public/generator/static/multinet_model/mn7_en/vocab b/main/manager-web/public/generator/static/multinet_model/mn7_en/vocab new file mode 100644 index 00000000..429e9681 --- /dev/null +++ b/main/manager-web/public/generator/static/multinet_model/mn7_en/vocab @@ -0,0 +1,496 @@ + 0 + 0 + 0 +▁jc -3.50373 +D -3.5684 +Z -3.78123 +▁ -3.79998 +S -3.83618 +T -3.87046 +L -4.10747 +k -4.11347 +m -4.19593 +N -4.22335 +▁c -4.22589 +▁cND -4.27701 +▁To -4.29056 +▁cV -4.31859 +gl -4.33672 +▁gN -4.37203 +▁S -4.4714 +cN -4.49621 +M -4.54434 +K -4.63236 +cL -4.67913 +▁K -4.71478 +▁F -4.74325 +d -4.82918 +▁i -4.85698 +R -4.86703 +P -4.92216 +▁WnZ -5.00484 +V -5.02262 +b -5.03227 +▁gZ -5.05364 +Lm -5.10135 +F -5.12035 +▁P -5.12086 +▁hm -5.12715 +c -5.13687 +▁h -5.15949 +▁gT -5.18356 +ST -5.19187 +q -5.21425 +▁Yo -5.22842 +cS -5.22968 +▁FeR -5.23966 +o -5.26657 +▁T -5.27106 +i -5.2919 +▁jaT -5.31665 +B -5.3544 +a -5.35965 +eR -5.38129 +▁B -5.38271 +cT -5.43331 +G -5.47756 +gK -5.5056 +cD -5.50664 +▁hgZ -5.53485 +nR -5.53996 +W -5.5877 +▁Wgj -5.60166 +p -5.60441 +cM -5.61738 +cNT -5.62181 +▁G -5.63642 +▁aZ -5.71277 +fR -5.71746 +▁nR -5.71804 +▁ST -5.72643 +▁TnM -5.74877 +v -5.77125 +Tk -5.77647 +▁Bm -5.78607 +▁nN -5.81834 +▁jfR -5.85378 +f -5.85578 +▁hk -5.90336 +e -5.9078 +▁Nb -5.90836 +Rm -5.91096 +gL -5.91741 +▁jgS -5.91979 +▁Dg -5.9272 +▁Bi -5.93789 +▁Rg -5.95634 +▁haD -5.96296 +▁aT -5.96296 +▁s -5.97546 +n -5.98883 +▁NnT -6.00763 +gN -6.01002 +▁Wk -6.01178 +dscN -6.01329 +▁V -6.01564 +fL -6.02194 +▁Mi -6.02826 +cZ -6.04709 +Yo -6.04782 +▁haV -6.05726 +s -6.07188 +▁a -6.07615 +▁sm -6.08078 +cK -6.09 +▁aN -6.09715 +▁WcN -6.10703 +gT -6.11357 +▁BcT -6.15304 +aN -6.16532 +▁Mm -6.16782 +▁fS -6.1714 +gR -6.18534 +scN -6.18622 +▁jd -6.1994 +▁Wm -6.24759 +u -6.25542 +t -6.25927 +▁FRcM -6.27249 +kZ -6.27958 +dT -6.28288 +▁eL -6.29125 +▁Rm -6.29208 +gD -6.29997 +▁cP -6.3241 +▁Tm -6.32699 +g -6.34756 +gV -6.35953 +gZ -6.36227 +▁eR -6.37034 +McN -6.3715 +dN -6.37315 +kD -6.37589 +▁KcM -6.38682 +▁Sm -6.38905 +▁Do -6.3974 +▁hgM -6.40994 +▁BR -6.42479 +▁Rf -6.42856 +cNS -6.43498 +▁SP -6.44143 +iN -6.44191 +▁GR -6.45766 +cB -6.46027 +▁p -6.46846 +gS -6.47832 +cST -6.48588 +▁Sb -6.49067 +gST -6.49181 +fNT -6.49573 +iT -6.49735 +▁Wi -6.50855 +▁WfN -6.52316 +Vk -6.52443 +gs -6.52706 +▁PR -6.52774 +▁v -6.53108 +▁f -6.56235 +▁KaN -6.5666 +▁Li -6.57229 +iD -6.58316 +▁Kn -6.5832 +TcD -6.58484 +w -6.59819 +▁haZ -6.60379 +cP -6.60889 +▁WcT -6.61385 +▁KR -6.62303 +fN -6.62737 +aND -6.63035 +▁Wgp -6.63954 +▁WwD -6.65084 +▁DgS -6.65373 +cF -6.65712 +mZ -6.66699 +▁SfD -6.67477 +pk -6.69479 +TS -6.695 +fKT -6.70052 +McNT -6.70319 +Dm -6.71245 +▁eLSb -6.71705 +eL -6.71759 +▁BgN -6.72228 +▁tT -6.73979 +▁MeR -6.74077 +aL -6.7427 +▁ho -6.75134 +jk -6.76713 +▁WgL -6.77334 +cBcL -6.77345 +▁Rc -6.77421 +aK -6.77939 +cTm -6.78357 +nL -6.78623 +▁KcN -6.79348 +fT -6.79532 +▁ScM -6.80766 +SP -6.8082 +cq -6.80856 +fRm -6.81043 +nN -6.81225 +▁DR -6.81469 +▁Md -6.81943 +▁gK -6.82419 +▁Sd -6.83334 +▁MaN -6.83827 +▁Ld -6.84033 +h -6.84414 +▁Gb -6.84487 +▁Lf -6.8514 +fND -6.85243 +▁PLd -6.85302 +▁gF -6.85796 +▁TiM -6.86458 +▁Rd -6.86507 +▁Mg -6.87118 +▁Wg -6.87192 +fS -6.87345 +aM -6.87513 +▁ht -6.87937 +▁Dd -6.88576 +▁Mc -6.89067 +▁No -6.90141 +TcN -6.90439 +▁DgD -6.9107 +▁Pk -6.91445 +nT -6.91539 +l -6.91848 +mN -6.91959 +▁VfRm -6.92163 +▁Ma -6.92804 +bN -6.94291 +nP -6.94333 +cG -6.96256 +KS -6.96275 +fST -6.96416 +tND -6.96664 +▁Df -6.9701 +▁jfM -6.97647 +▁LiK -6.99176 +▁Wd -6.9979 +tN -7.00168 +▁Y -7.00423 +▁m -7.00454 +gM -7.00971 +▁fN -7.01195 +cV -7.01324 +▁gTS -7.01639 +aT -7.02274 +▁eF -7.02734 +▁cjk -7.03753 +gscN -7.04204 +bLD -7.0527 +Pk -7.0586 +▁PRn -7.06185 +▁jfN -7.0651 +▁Mf -7.07005 +aKT -7.07351 +▁SK -7.08235 +▁YeR -7.08512 +▁STR -7.08684 +▁aFTk -7.08805 +bZ -7.0882 +Rf -7.09352 +▁Nt -7.10726 +Bk -7.10801 +cLm -7.10932 +aP -7.12006 +iZ -7.12318 +▁gNTo -7.12848 +▁KnN -7.13285 +Yc -7.13939 +Tm -7.13985 +Fk -7.1449 +▁Pa -7.1512 +▁KW -7.15296 +BcL -7.16211 +▁Bf -7.16276 +▁Rb -7.1675 +▁KwD -7.17276 +▁cBtT -7.17381 +▁MfRm -7.17527 +Y -7.17661 +Li -7.184 +gq -7.18822 +TRc -7.19102 +Rd -7.21693 +▁BL -7.21734 +▁Sk -7.21835 +▁bVk -7.22379 +▁PnRT -7.23661 +wR -7.23753 +▁fM -7.2383 +▁Dc -7.2417 +fP -7.2455 +gP -7.25885 +Rb -7.2592 +Lb -7.26108 +fK -7.26502 +▁k -7.27224 +▁fNm -7.27675 +▁LwK -7.28554 +▁jmZ -7.29014 +▁bNLm -7.29574 +▁tk -7.29717 +▁FkST -7.29888 +▁WfL -7.29891 +fM -7.30488 +▁Bn -7.30592 +KW -7.3139 +Sm -7.32676 +gF -7.33304 +mc -7.34274 +▁WnNT -7.34378 +▁FR -7.34529 +▁WkK -7.34753 +▁n -7.34886 +bK -7.35356 +nK -7.35381 +▁WfR -7.36005 +j -7.37283 +▁hmR -7.37391 +qk -7.39067 +▁Lm -7.39275 +PeRT -7.39586 +▁Ro -7.39659 +▁TdK -7.40401 +▁Le -7.4074 +YcL -7.41016 +▁jaN -7.41385 +▁Ra -7.41443 +▁cGfN -7.41565 +▁vglK -7.42018 +▁Se -7.42935 +▁YgR -7.43003 +▁NdM -7.43696 +▁Si -7.44106 +▁hi -7.44334 +▁GwD -7.44411 +▁LgTcL -7.44823 +LcND -7.45773 +▁MdD -7.46048 +▁KeR -7.46645 +▁GRdT -7.47876 +▁Ba -7.48457 +▁NfVk -7.50238 +VcL -7.50301 +▁Lel -7.50448 +rcN -7.50475 +dTcD -7.50866 +▁qcST -7.51138 +▁La -7.51687 +FcL -7.51989 +▁Pn -7.52134 +lK -7.53701 +▁MbST -7.54063 +▁Wf -7.54358 +▁MdK -7.54487 +▁SkV -7.54717 +▁BgG -7.55028 +▁Dn -7.55184 +▁cN -7.55296 +▁MfNm -7.5575 +▁DtN -7.55772 +▁MnR -7.56086 +▁cS -7.56592 +▁swD -7.57011 +▁RiT -7.57032 +▁BgL -7.57481 +▁BaK -7.57536 +▁jb -7.57705 +fNS -7.57997 +▁NeR -7.58034 +▁GfT -7.58184 +▁gM -7.58286 +▁BgFeR -7.58361 +▁PRf -7.58469 +▁vRo -7.58732 +▁vRm -7.58886 +▁Dm -7.5917 +▁TRa -7.59345 +▁haND -7.59921 +▁MfN -7.6038 +▁PRc -7.60597 +▁MgS -7.61131 +▁Lb -7.61746 +▁Mn -7.63249 +▁bLD -7.63333 +▁Mcp -7.63656 +▁Scp -7.64435 +gKcL -7.64576 +▁Di -7.64679 +gG -7.65583 +alK -7.661 +▁DnN -7.67024 +▁TfL -7.67744 +▁GgV -7.68746 +YwR -7.70829 +▁SKoL -7.71139 +▁Mb -7.71499 +▁cPnN -7.72335 +▁WeR -7.72428 +▁LfT -7.72701 +▁bN -7.76208 +▁KdM -7.77118 +▁McST -7.7726 +▁hbM -7.78221 +▁FtND -7.79333 +▁gMP -7.80415 +▁veT -7.81381 +▁gGZ -7.81882 +▁STgL -7.82014 +fKscN -7.82577 +▁Wn -7.83255 +▁Rn -7.83329 +▁PmPcL -7.85228 +r -7.85566 +lG -7.86083 +▁Nd -7.8709 +▁htfVk -7.88052 +▁TRi -7.88154 +▁LcV -7.88601 +▁hgMSfLF -7.90396 +▁LaST -7.9066 +▁cWd -7.9196 +▁Bbv -7.93391 +▁hbL -7.93782 +▁MgSTk -7.9585 +▁Nn -7.9685 +▁FmL -7.97302 +▁NmD -7.97977 +▁fKS -7.9861 +▁Nf -7.9904 +▁TkN -7.99385 +sgP -7.99594 +▁FnLb -7.99942 +▁hfLP -8.00141 +▁NgR -8.02016 +▁mVgN -8.02157 +▁gNKLoD -8.02707 +▁Ycl -8.04963 +▁SgTm -8.05047 +▁MoV -8.06119 +▁qf -8.06562 +▁WgvtT -8.06755 +▁fVkm -8.07061 +▁Ln -8.07269 +▁Lo -8.08834 +▁KtNT -8.09315 +▁cNcjk -8.09509 +▁LnRq -8.09678 +▁bPcN -8.09941 +▁Fnjk -8.09952 +▁FRfND -8.1047 +▁KeLD -8.11978 +▁WkLD -8.12246 +▁WeTk -8.13249 +▁LfFT -8.14443 +▁TwK -8.15221 +▁TRo -8.17328 +▁ScMvgl -8.17768 +▁PRg -8.17899 +▁DwRgl -8.18843 +▁SfVRcL -8.20676 +▁Ncvgl -8.21837 +▁Ri -8.22799 +▁SMeL -8.2586 +▁BgKdM -8.26814 +▁PLaN -8.27884 +▁eLWdZ -8.28205 +▁TeK -8.29486 +▁BwK -8.30129 +▁PwT -8.31272 +▁BgTWmN -8.31697 +▁RgTkN -8.33086 +▁aSKT -8.33259 +▁BeRN -8.33271 +▁Da -8.3384 +▁SfKcND -8.3531 +▁RgMdN -8.36742 +▁qfNkcL -8.37399 +▁PRgNS -8.3743 +▁KcNTgNYo -8.38148 +▁pgLDRcN -8.38604 +▁pdNq -8.3899 +▁FaMcLm -8.41463 +▁KcNSgDk -8.43512 +▁BgKeZ -8.44313 +▁haPcN -8.46647 +STRcK -8.46792 +▁qnN -8.46846 +▁Stv -8.47119 +▁NfKST -8.48221 +▁BgLmV -8.48721 +▁fNmvgl -8.49723 +▁WwMcN -8.50511 diff --git a/main/manager-web/public/generator/static/twemoji32/angry.png b/main/manager-web/public/generator/static/twemoji32/angry.png new file mode 100644 index 00000000..03ac1ab1 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji32/angry.png differ diff --git a/main/manager-web/public/generator/static/twemoji32/confident.png b/main/manager-web/public/generator/static/twemoji32/confident.png new file mode 100644 index 00000000..c2ef3410 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji32/confident.png differ diff --git a/main/manager-web/public/generator/static/twemoji32/confused.png b/main/manager-web/public/generator/static/twemoji32/confused.png new file mode 100644 index 00000000..ba53b4c7 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji32/confused.png differ diff --git a/main/manager-web/public/generator/static/twemoji32/cool.png b/main/manager-web/public/generator/static/twemoji32/cool.png new file mode 100644 index 00000000..4209644e Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji32/cool.png differ diff --git a/main/manager-web/public/generator/static/twemoji32/crying.png b/main/manager-web/public/generator/static/twemoji32/crying.png new file mode 100644 index 00000000..6373a2f2 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji32/crying.png differ diff --git a/main/manager-web/public/generator/static/twemoji32/delicious.png b/main/manager-web/public/generator/static/twemoji32/delicious.png new file mode 100644 index 00000000..8996abc4 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji32/delicious.png differ diff --git a/main/manager-web/public/generator/static/twemoji32/embarrassed.png b/main/manager-web/public/generator/static/twemoji32/embarrassed.png new file mode 100644 index 00000000..bdf3011b Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji32/embarrassed.png differ diff --git a/main/manager-web/public/generator/static/twemoji32/funny.png b/main/manager-web/public/generator/static/twemoji32/funny.png new file mode 100644 index 00000000..356f17c9 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji32/funny.png differ diff --git a/main/manager-web/public/generator/static/twemoji32/happy.png b/main/manager-web/public/generator/static/twemoji32/happy.png new file mode 100644 index 00000000..b55e2db7 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji32/happy.png differ diff --git a/main/manager-web/public/generator/static/twemoji32/kissy.png b/main/manager-web/public/generator/static/twemoji32/kissy.png new file mode 100644 index 00000000..7b3586c3 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji32/kissy.png differ diff --git a/main/manager-web/public/generator/static/twemoji32/laughing.png b/main/manager-web/public/generator/static/twemoji32/laughing.png new file mode 100644 index 00000000..8a0e9d85 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji32/laughing.png differ diff --git a/main/manager-web/public/generator/static/twemoji32/loving.png b/main/manager-web/public/generator/static/twemoji32/loving.png new file mode 100644 index 00000000..8131599b Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji32/loving.png differ diff --git a/main/manager-web/public/generator/static/twemoji32/neutral.png b/main/manager-web/public/generator/static/twemoji32/neutral.png new file mode 100644 index 00000000..a9416d33 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji32/neutral.png differ diff --git a/main/manager-web/public/generator/static/twemoji32/relaxed.png b/main/manager-web/public/generator/static/twemoji32/relaxed.png new file mode 100644 index 00000000..de106bae Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji32/relaxed.png differ diff --git a/main/manager-web/public/generator/static/twemoji32/sad.png b/main/manager-web/public/generator/static/twemoji32/sad.png new file mode 100644 index 00000000..9b859cc9 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji32/sad.png differ diff --git a/main/manager-web/public/generator/static/twemoji32/shocked.png b/main/manager-web/public/generator/static/twemoji32/shocked.png new file mode 100644 index 00000000..d4634ba1 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji32/shocked.png differ diff --git a/main/manager-web/public/generator/static/twemoji32/silly.png b/main/manager-web/public/generator/static/twemoji32/silly.png new file mode 100644 index 00000000..f2a4f25c Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji32/silly.png differ diff --git a/main/manager-web/public/generator/static/twemoji32/sleepy.png b/main/manager-web/public/generator/static/twemoji32/sleepy.png new file mode 100644 index 00000000..c6ec0cee Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji32/sleepy.png differ diff --git a/main/manager-web/public/generator/static/twemoji32/surprised.png b/main/manager-web/public/generator/static/twemoji32/surprised.png new file mode 100644 index 00000000..f629e7de Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji32/surprised.png differ diff --git a/main/manager-web/public/generator/static/twemoji32/thinking.png b/main/manager-web/public/generator/static/twemoji32/thinking.png new file mode 100644 index 00000000..33f0de69 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji32/thinking.png differ diff --git a/main/manager-web/public/generator/static/twemoji32/winking.png b/main/manager-web/public/generator/static/twemoji32/winking.png new file mode 100644 index 00000000..45d97913 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji32/winking.png differ diff --git a/main/manager-web/public/generator/static/twemoji64/angry.png b/main/manager-web/public/generator/static/twemoji64/angry.png new file mode 100644 index 00000000..548f69c0 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji64/angry.png differ diff --git a/main/manager-web/public/generator/static/twemoji64/confident.png b/main/manager-web/public/generator/static/twemoji64/confident.png new file mode 100644 index 00000000..b3809d9b Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji64/confident.png differ diff --git a/main/manager-web/public/generator/static/twemoji64/confused.png b/main/manager-web/public/generator/static/twemoji64/confused.png new file mode 100644 index 00000000..cfd40220 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji64/confused.png differ diff --git a/main/manager-web/public/generator/static/twemoji64/cool.png b/main/manager-web/public/generator/static/twemoji64/cool.png new file mode 100644 index 00000000..da797d03 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji64/cool.png differ diff --git a/main/manager-web/public/generator/static/twemoji64/crying.png b/main/manager-web/public/generator/static/twemoji64/crying.png new file mode 100644 index 00000000..3402dfe4 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji64/crying.png differ diff --git a/main/manager-web/public/generator/static/twemoji64/delicious.png b/main/manager-web/public/generator/static/twemoji64/delicious.png new file mode 100644 index 00000000..0f3476cd Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji64/delicious.png differ diff --git a/main/manager-web/public/generator/static/twemoji64/embarrassed.png b/main/manager-web/public/generator/static/twemoji64/embarrassed.png new file mode 100644 index 00000000..5825dcb8 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji64/embarrassed.png differ diff --git a/main/manager-web/public/generator/static/twemoji64/funny.png b/main/manager-web/public/generator/static/twemoji64/funny.png new file mode 100644 index 00000000..ee2dcbab Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji64/funny.png differ diff --git a/main/manager-web/public/generator/static/twemoji64/happy.png b/main/manager-web/public/generator/static/twemoji64/happy.png new file mode 100644 index 00000000..47d2fe79 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji64/happy.png differ diff --git a/main/manager-web/public/generator/static/twemoji64/kissy.png b/main/manager-web/public/generator/static/twemoji64/kissy.png new file mode 100644 index 00000000..5026d768 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji64/kissy.png differ diff --git a/main/manager-web/public/generator/static/twemoji64/laughing.png b/main/manager-web/public/generator/static/twemoji64/laughing.png new file mode 100644 index 00000000..0998ecd4 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji64/laughing.png differ diff --git a/main/manager-web/public/generator/static/twemoji64/loving.png b/main/manager-web/public/generator/static/twemoji64/loving.png new file mode 100644 index 00000000..014f6512 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji64/loving.png differ diff --git a/main/manager-web/public/generator/static/twemoji64/neutral.png b/main/manager-web/public/generator/static/twemoji64/neutral.png new file mode 100644 index 00000000..9098816a Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji64/neutral.png differ diff --git a/main/manager-web/public/generator/static/twemoji64/relaxed.png b/main/manager-web/public/generator/static/twemoji64/relaxed.png new file mode 100644 index 00000000..9713dd0a Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji64/relaxed.png differ diff --git a/main/manager-web/public/generator/static/twemoji64/sad.png b/main/manager-web/public/generator/static/twemoji64/sad.png new file mode 100644 index 00000000..38f3e9c3 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji64/sad.png differ diff --git a/main/manager-web/public/generator/static/twemoji64/shocked.png b/main/manager-web/public/generator/static/twemoji64/shocked.png new file mode 100644 index 00000000..cb5f5510 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji64/shocked.png differ diff --git a/main/manager-web/public/generator/static/twemoji64/silly.png b/main/manager-web/public/generator/static/twemoji64/silly.png new file mode 100644 index 00000000..a940adb2 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji64/silly.png differ diff --git a/main/manager-web/public/generator/static/twemoji64/sleepy.png b/main/manager-web/public/generator/static/twemoji64/sleepy.png new file mode 100644 index 00000000..e2496d91 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji64/sleepy.png differ diff --git a/main/manager-web/public/generator/static/twemoji64/surprised.png b/main/manager-web/public/generator/static/twemoji64/surprised.png new file mode 100644 index 00000000..3d99266c Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji64/surprised.png differ diff --git a/main/manager-web/public/generator/static/twemoji64/thinking.png b/main/manager-web/public/generator/static/twemoji64/thinking.png new file mode 100644 index 00000000..a0bd6d11 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji64/thinking.png differ diff --git a/main/manager-web/public/generator/static/twemoji64/winking.png b/main/manager-web/public/generator/static/twemoji64/winking.png new file mode 100644 index 00000000..777f8ac7 Binary files /dev/null and b/main/manager-web/public/generator/static/twemoji64/winking.png differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn7_xiaoaitongxue/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn7_xiaoaitongxue/_MODEL_INFO_ new file mode 100644 index 00000000..8fd85ce7 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn7_xiaoaitongxue/_MODEL_INFO_ @@ -0,0 +1 @@ +wakeNet7_v1_小爱同学_6_0.97_0.92 \ No newline at end of file diff --git a/main/manager-web/public/generator/static/wakenet_model/wn7_xiaoaitongxue/wn7_data b/main/manager-web/public/generator/static/wakenet_model/wn7_xiaoaitongxue/wn7_data new file mode 100644 index 00000000..1a4010c8 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn7_xiaoaitongxue/wn7_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn7_xiaoaitongxue/wn7_index b/main/manager-web/public/generator/static/wakenet_model/wn7_xiaoaitongxue/wn7_index new file mode 100644 index 00000000..e55730dd Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn7_xiaoaitongxue/wn7_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn7q8_xiaoaitongxue/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn7q8_xiaoaitongxue/_MODEL_INFO_ new file mode 100644 index 00000000..d9644889 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn7q8_xiaoaitongxue/_MODEL_INFO_ @@ -0,0 +1 @@ +wakeNet7Q8_v1h8_小爱同学_5_0.97_0.98 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn7q8_xiaoaitongxue/wn7q8_data b/main/manager-web/public/generator/static/wakenet_model/wn7q8_xiaoaitongxue/wn7q8_data new file mode 100644 index 00000000..71f4ba3c Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn7q8_xiaoaitongxue/wn7q8_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn7q8_xiaoaitongxue/wn7q8_index b/main/manager-web/public/generator/static/wakenet_model/wn7q8_xiaoaitongxue/wn7q8_index new file mode 100644 index 00000000..5584199c Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn7q8_xiaoaitongxue/wn7q8_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn8_alexa/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn8_alexa/_MODEL_INFO_ new file mode 100644 index 00000000..d7162f6a --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn8_alexa/_MODEL_INFO_ @@ -0,0 +1 @@ +wakeNet8_v5h8_Alexa_5_0.57_0.60 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn8_alexa/wn8_data b/main/manager-web/public/generator/static/wakenet_model/wn8_alexa/wn8_data new file mode 100644 index 00000000..8184e163 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn8_alexa/wn8_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn8_alexa/wn8_index b/main/manager-web/public/generator/static/wakenet_model/wn8_alexa/wn8_index new file mode 100644 index 00000000..21e3452c Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn8_alexa/wn8_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn8_hiesp/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn8_hiesp/_MODEL_INFO_ new file mode 100644 index 00000000..9f3ef24a --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn8_hiesp/_MODEL_INFO_ @@ -0,0 +1 @@ +WakeNet8_v3h8_Hi,ESP_5_0.60_0.616 \ No newline at end of file diff --git a/main/manager-web/public/generator/static/wakenet_model/wn8_hiesp/wn8_data b/main/manager-web/public/generator/static/wakenet_model/wn8_hiesp/wn8_data new file mode 100644 index 00000000..491a3eb8 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn8_hiesp/wn8_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn8_hiesp/wn8_index b/main/manager-web/public/generator/static/wakenet_model/wn8_hiesp/wn8_index new file mode 100644 index 00000000..cf8a3219 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn8_hiesp/wn8_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn8_hilexin/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn8_hilexin/_MODEL_INFO_ new file mode 100644 index 00000000..b5ad0083 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn8_hilexin/_MODEL_INFO_ @@ -0,0 +1 @@ +WakeNet8_v3h8_嗨乐鑫_5_0.625_0.635 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn8_hilexin/wn8_data b/main/manager-web/public/generator/static/wakenet_model/wn8_hilexin/wn8_data new file mode 100644 index 00000000..430d06d9 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn8_hilexin/wn8_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn8_hilexin/wn8_index b/main/manager-web/public/generator/static/wakenet_model/wn8_hilexin/wn8_index new file mode 100644 index 00000000..cf8a3219 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn8_hilexin/wn8_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_alexa/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_alexa/_MODEL_INFO_ new file mode 100644 index 00000000..007180f0 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_alexa/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_v4h8_Alexa_3_0.640_0.650 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_alexa/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_alexa/wn9_data new file mode 100644 index 00000000..bc01f7e7 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_alexa/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_alexa/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_alexa/wn9_index new file mode 100644 index 00000000..a4dd2054 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_alexa/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_astrolabe_tts/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_astrolabe_tts/_MODEL_INFO_ new file mode 100644 index 00000000..3e9d7b58 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_astrolabe_tts/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts1h8_Astrolabe_3_0.625_0.632 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_astrolabe_tts/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_astrolabe_tts/wn9_data new file mode 100644 index 00000000..1003ab24 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_astrolabe_tts/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_astrolabe_tts/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_astrolabe_tts/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_astrolabe_tts/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_bluechip_tts2/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_bluechip_tts2/_MODEL_INFO_ new file mode 100644 index 00000000..9dfba123 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_bluechip_tts2/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9_tts2h12_BlueChip_3_0.622_0.626 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_bluechip_tts2/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_bluechip_tts2/wn9_data new file mode 100644 index 00000000..eee8a084 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_bluechip_tts2/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_bluechip_tts2/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_bluechip_tts2/wn9_index new file mode 100644 index 00000000..802f87bb Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_bluechip_tts2/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_computer_tts/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_computer_tts/_MODEL_INFO_ new file mode 100644 index 00000000..32b4c278 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_computer_tts/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts1h8_Computer_3_0.648_0.650 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_computer_tts/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_computer_tts/wn9_data new file mode 100644 index 00000000..a50e2d5e Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_computer_tts/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_computer_tts/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_computer_tts/wn9_index new file mode 100644 index 00000000..a4dd2054 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_computer_tts/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_customword/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_customword/_MODEL_INFO_ new file mode 100644 index 00000000..fc059b5f --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_customword/_MODEL_INFO_ @@ -0,0 +1 @@ +WakeNet9_v1h24_小爱同学_3_0.620_0.627 \ No newline at end of file diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_customword/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_customword/wn9_data new file mode 100644 index 00000000..0ce76950 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_customword/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_customword/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_customword/wn9_index new file mode 100644 index 00000000..0e86f0ac Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_customword/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hai1xiao3ou1_tts3/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_hai1xiao3ou1_tts3/_MODEL_INFO_ new file mode 100644 index 00000000..a7da5148 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_hai1xiao3ou1_tts3/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9_tts2h12_嗨小欧_3_0.599_0.604 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hai1xiao3ou1_tts3/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_hai1xiao3ou1_tts3/wn9_data new file mode 100644 index 00000000..6e468d12 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_hai1xiao3ou1_tts3/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hai1xiao3ou1_tts3/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_hai1xiao3ou1_tts3/wn9_index new file mode 100644 index 00000000..802f87bb Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_hai1xiao3ou1_tts3/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_haixiaowu_tts/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_haixiaowu_tts/_MODEL_INFO_ new file mode 100644 index 00000000..11d3a1c8 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_haixiaowu_tts/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts2h8_Hi,小巫_3_0.639_0.642 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_haixiaowu_tts/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_haixiaowu_tts/wn9_data new file mode 100644 index 00000000..2e53010d Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_haixiaowu_tts/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_haixiaowu_tts/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_haixiaowu_tts/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_haixiaowu_tts/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_heyily_tts2/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_heyily_tts2/_MODEL_INFO_ new file mode 100644 index 00000000..95cd3cf4 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_heyily_tts2/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts2h12_Hey,Ily_3_0.630_0.635 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_heyily_tts2/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_heyily_tts2/wn9_data new file mode 100644 index 00000000..fb5c88f1 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_heyily_tts2/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_heyily_tts2/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_heyily_tts2/wn9_index new file mode 100644 index 00000000..802f87bb Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_heyily_tts2/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_heyivy_tts2/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_heyivy_tts2/_MODEL_INFO_ new file mode 100644 index 00000000..0e2849d9 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_heyivy_tts2/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9_tts2h12_Hey Ivy_3_0.619_0.623 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_heyivy_tts2/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_heyivy_tts2/wn9_data new file mode 100644 index 00000000..b0594052 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_heyivy_tts2/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_heyivy_tts2/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_heyivy_tts2/wn9_index new file mode 100644 index 00000000..41d0c45c Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_heyivy_tts2/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_heyprinter_tts/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_heyprinter_tts/_MODEL_INFO_ new file mode 100644 index 00000000..f6ef6cc4 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_heyprinter_tts/_MODEL_INFO_ @@ -0,0 +1,2 @@ +# (neural network type)_(model data version)_(label1_detection window length_threshold for 90%_threshold for 95%)_(label2 ...)_... +wakenet9l_tts1h8_Heyprinter_3_0.623_0.629 \ No newline at end of file diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_heyprinter_tts/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_heyprinter_tts/wn9_data new file mode 100644 index 00000000..a999bd89 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_heyprinter_tts/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_heyprinter_tts/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_heyprinter_tts/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_heyprinter_tts/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_heywanda_tts/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_heywanda_tts/_MODEL_INFO_ new file mode 100644 index 00000000..1f1aa506 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_heywanda_tts/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts1h8_Hey,Wanda_3_0.641_0.644 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_heywanda_tts/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_heywanda_tts/wn9_data new file mode 100644 index 00000000..f3d184af Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_heywanda_tts/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_heywanda_tts/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_heywanda_tts/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_heywanda_tts/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_heywillow_tts/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_heywillow_tts/_MODEL_INFO_ new file mode 100644 index 00000000..e47c47bd --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_heywillow_tts/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts1h8_Hey,Willow_3_0.644_0.650 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_heywillow_tts/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_heywillow_tts/wn9_data new file mode 100644 index 00000000..fa92239f Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_heywillow_tts/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_heywillow_tts/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_heywillow_tts/wn9_index new file mode 100644 index 00000000..a4dd2054 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_heywillow_tts/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hiandy_tts2/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_hiandy_tts2/_MODEL_INFO_ new file mode 100644 index 00000000..981bd28f --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_hiandy_tts2/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9_tts2h12_Hi Andy_3_0.618_0.622 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hiandy_tts2/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_hiandy_tts2/wn9_data new file mode 100644 index 00000000..9e21bf5b Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_hiandy_tts2/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hiandy_tts2/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_hiandy_tts2/wn9_index new file mode 100644 index 00000000..41d0c45c Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_hiandy_tts2/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hiesp/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_hiesp/_MODEL_INFO_ new file mode 100644 index 00000000..0373ecf1 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_hiesp/_MODEL_INFO_ @@ -0,0 +1 @@ +wakeNet9_v1h24_Hi,ESP_3_0.63_0.635 \ No newline at end of file diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hiesp/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_hiesp/wn9_data new file mode 100644 index 00000000..7d99255f Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_hiesp/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hiesp/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_hiesp/wn9_index new file mode 100644 index 00000000..3845b374 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_hiesp/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hifairy_tts2/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_hifairy_tts2/_MODEL_INFO_ new file mode 100644 index 00000000..e79c9419 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_hifairy_tts2/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9_tts2h12_Hi fairy_3_0.611_0.617 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hifairy_tts2/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_hifairy_tts2/wn9_data new file mode 100644 index 00000000..060d6269 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_hifairy_tts2/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hifairy_tts2/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_hifairy_tts2/wn9_index new file mode 100644 index 00000000..41d0c45c Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_hifairy_tts2/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hijason_tts2/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_hijason_tts2/_MODEL_INFO_ new file mode 100644 index 00000000..78e1ddb9 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_hijason_tts2/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts2h12_Hi,Jason_3_0.642_0.645 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hijason_tts2/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_hijason_tts2/wn9_data new file mode 100644 index 00000000..3947d65e Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_hijason_tts2/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hijason_tts2/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_hijason_tts2/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_hijason_tts2/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hijolly_tts2/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_hijolly_tts2/_MODEL_INFO_ new file mode 100644 index 00000000..2518157a --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_hijolly_tts2/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9_tts2h12_Hi jolly_3_0.622_0.626 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hijolly_tts2/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_hijolly_tts2/wn9_data new file mode 100644 index 00000000..8c41e571 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_hijolly_tts2/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hijolly_tts2/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_hijolly_tts2/wn9_index new file mode 100644 index 00000000..802f87bb Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_hijolly_tts2/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hijoy_tts/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_hijoy_tts/_MODEL_INFO_ new file mode 100644 index 00000000..69187dc9 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_hijoy_tts/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts1h8_Hi,Joy_3_0.631_0.633 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hijoy_tts/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_hijoy_tts/wn9_data new file mode 100644 index 00000000..bc8703c7 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_hijoy_tts/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hijoy_tts/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_hijoy_tts/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_hijoy_tts/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hilexin/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_hilexin/_MODEL_INFO_ new file mode 100644 index 00000000..72ee45b1 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_hilexin/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9_v1h24_嗨,乐鑫_3_0.608_0.615 \ No newline at end of file diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hilexin/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_hilexin/wn9_data new file mode 100644 index 00000000..61611cfc Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_hilexin/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hilexin/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_hilexin/wn9_index new file mode 100644 index 00000000..3845b374 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_hilexin/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hilili_tts/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_hilili_tts/_MODEL_INFO_ new file mode 100644 index 00000000..2d224f70 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_hilili_tts/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts1h8_Hi,Lily or Hi,莉莉_3_0.633_0.639 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hilili_tts/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_hilili_tts/wn9_data new file mode 100644 index 00000000..e32961dd Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_hilili_tts/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hilili_tts/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_hilili_tts/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_hilili_tts/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_himfive/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_himfive/_MODEL_INFO_ new file mode 100644 index 00000000..79f074d6 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_himfive/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_v2h8_Hi,M Five_3_0.640_0.645 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_himfive/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_himfive/wn9_data new file mode 100644 index 00000000..990cdc6c Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_himfive/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_himfive/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_himfive/wn9_index new file mode 100644 index 00000000..a4dd2054 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_himfive/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_himiaomiao_tts/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_himiaomiao_tts/_MODEL_INFO_ new file mode 100644 index 00000000..fb677fce --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_himiaomiao_tts/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts1h8_Hi,喵喵_3_0.636_0.641 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_himiaomiao_tts/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_himiaomiao_tts/wn9_data new file mode 100644 index 00000000..0a156580 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_himiaomiao_tts/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_himiaomiao_tts/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_himiaomiao_tts/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_himiaomiao_tts/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hitelly_tts/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_hitelly_tts/_MODEL_INFO_ new file mode 100644 index 00000000..497c92c0 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_hitelly_tts/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts2h8v5_hitelly_3_0.625_0.629 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hitelly_tts/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_hitelly_tts/wn9_data new file mode 100644 index 00000000..c78eb81e Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_hitelly_tts/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hitelly_tts/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_hitelly_tts/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_hitelly_tts/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hiwalle_tts2/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_hiwalle_tts2/_MODEL_INFO_ new file mode 100644 index 00000000..42c5ebf0 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_hiwalle_tts2/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts2h12_Hi,Wall,E or Hi,瓦力_3_0.630_0.635 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hiwalle_tts2/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_hiwalle_tts2/wn9_data new file mode 100644 index 00000000..ae2aa4f2 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_hiwalle_tts2/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hiwalle_tts2/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_hiwalle_tts2/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_hiwalle_tts2/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hixiaoxing_tts/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_hixiaoxing_tts/_MODEL_INFO_ new file mode 100644 index 00000000..0845b8ad --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_hixiaoxing_tts/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts1h8_Hi,小星_3_0.626_0.630 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hixiaoxing_tts/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_hixiaoxing_tts/wn9_data new file mode 100644 index 00000000..ae78e26c Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_hixiaoxing_tts/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_hixiaoxing_tts/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_hixiaoxing_tts/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_hixiaoxing_tts/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_jarvis_tts/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_jarvis_tts/_MODEL_INFO_ new file mode 100644 index 00000000..0a3fa44a --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_jarvis_tts/_MODEL_INFO_ @@ -0,0 +1,2 @@ +# (neural network type)_(model data version)_(lable1_detection windown length_threshold for 90%_threshold for 95%)_(lable2 ...)_... +wakenet9l_tts1h8_Jarvis_3_0.627_0.632 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_jarvis_tts/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_jarvis_tts/wn9_data new file mode 100644 index 00000000..15aaf596 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_jarvis_tts/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_jarvis_tts/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_jarvis_tts/wn9_index new file mode 100644 index 00000000..a4dd2054 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_jarvis_tts/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_linaiban_tts2/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_linaiban_tts2/_MODEL_INFO_ new file mode 100644 index 00000000..bc790841 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_linaiban_tts2/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts2h12_Linaiban_3_0.635_0.640 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_linaiban_tts2/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_linaiban_tts2/wn9_data new file mode 100644 index 00000000..e4dd1b76 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_linaiban_tts2/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_linaiban_tts2/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_linaiban_tts2/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_linaiban_tts2/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_miaomiaotongxue_tts/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_miaomiaotongxue_tts/_MODEL_INFO_ new file mode 100644 index 00000000..b3352220 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_miaomiaotongxue_tts/_MODEL_INFO_ @@ -0,0 +1,2 @@ +# (neural network type)_(model data version)_(label1_detection window length_threshold for 90%_threshold for 95%)_(label2 ...)_... +wakenet9l_tts1h8_喵喵同学_3_0.644_0.648 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_miaomiaotongxue_tts/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_miaomiaotongxue_tts/wn9_data new file mode 100644 index 00000000..8908bee8 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_miaomiaotongxue_tts/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_miaomiaotongxue_tts/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_miaomiaotongxue_tts/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_miaomiaotongxue_tts/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_mycroft_tts/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_mycroft_tts/_MODEL_INFO_ new file mode 100644 index 00000000..37abe11f --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_mycroft_tts/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts1h8_Mycroft_3_0.625_0.629 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_mycroft_tts/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_mycroft_tts/wn9_data new file mode 100644 index 00000000..b23e7806 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_mycroft_tts/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_mycroft_tts/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_mycroft_tts/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_mycroft_tts/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_ni3hao3xiao3mai4_tts2/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_ni3hao3xiao3mai4_tts2/_MODEL_INFO_ new file mode 100644 index 00000000..6a667c5d --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_ni3hao3xiao3mai4_tts2/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9_tts2h12_你好小脉_3_0.615_0.622 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_ni3hao3xiao3mai4_tts2/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_ni3hao3xiao3mai4_tts2/wn9_data new file mode 100644 index 00000000..eeafe884 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_ni3hao3xiao3mai4_tts2/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_ni3hao3xiao3mai4_tts2/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_ni3hao3xiao3mai4_tts2/wn9_index new file mode 100644 index 00000000..802f87bb Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_ni3hao3xiao3mai4_tts2/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_ni3hao3xiao3rui4_tts3/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_ni3hao3xiao3rui4_tts3/_MODEL_INFO_ new file mode 100644 index 00000000..d4f002ff --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_ni3hao3xiao3rui4_tts3/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9_tts2h12_Ni3Hao3Xiao3Rui4_3_0.610_0.619 \ No newline at end of file diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_ni3hao3xiao3rui4_tts3/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_ni3hao3xiao3rui4_tts3/wn9_data new file mode 100644 index 00000000..4a7b1e0e Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_ni3hao3xiao3rui4_tts3/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_ni3hao3xiao3rui4_tts3/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_ni3hao3xiao3rui4_tts3/wn9_index new file mode 100644 index 00000000..41d0c45c Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_ni3hao3xiao3rui4_tts3/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_nihaobaiying_tts2/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaobaiying_tts2/_MODEL_INFO_ new file mode 100644 index 00000000..d7afde5b --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaobaiying_tts2/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts2h12_你好百应_3_0.613_0.620 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_nihaobaiying_tts2/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaobaiying_tts2/wn9_data new file mode 100644 index 00000000..e36b901e Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaobaiying_tts2/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_nihaobaiying_tts2/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaobaiying_tts2/wn9_index new file mode 100644 index 00000000..802f87bb Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaobaiying_tts2/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_nihaodongdong_tts2/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaodongdong_tts2/_MODEL_INFO_ new file mode 100644 index 00000000..72f7cc3f --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaodongdong_tts2/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9_tts2h12_你好东东_3_0.632_0.637 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_nihaodongdong_tts2/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaodongdong_tts2/wn9_data new file mode 100644 index 00000000..61d313a0 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaodongdong_tts2/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_nihaodongdong_tts2/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaodongdong_tts2/wn9_index new file mode 100644 index 00000000..802f87bb Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaodongdong_tts2/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_nihaomiaoban_tts2/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaomiaoban_tts2/_MODEL_INFO_ new file mode 100644 index 00000000..b929396a --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaomiaoban_tts2/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9_tts2h12_你好喵伴_3_0.632_0.637 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_nihaomiaoban_tts2/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaomiaoban_tts2/wn9_data new file mode 100644 index 00000000..1738b929 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaomiaoban_tts2/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_nihaomiaoban_tts2/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaomiaoban_tts2/wn9_index new file mode 100644 index 00000000..802f87bb Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaomiaoban_tts2/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoan_tts2/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoan_tts2/_MODEL_INFO_ new file mode 100644 index 00000000..2e378ce9 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoan_tts2/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9_tts2h12_nihaoxiaoan_3_0.621_0.625 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoan_tts2/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoan_tts2/wn9_data new file mode 100644 index 00000000..d4aa3409 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoan_tts2/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoan_tts2/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoan_tts2/wn9_index new file mode 100644 index 00000000..802f87bb Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoan_tts2/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoxin_tts/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoxin_tts/_MODEL_INFO_ new file mode 100644 index 00000000..7d3bde52 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoxin_tts/_MODEL_INFO_ @@ -0,0 +1,2 @@ +# (neural network type)_(model data version)_(label1_detection window length_threshold for 90%_threshold for 95%)_(label2 ...)_... +wakenet9l_tts1h8_你好小鑫_3_0.635_0.639 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoxin_tts/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoxin_tts/wn9_data new file mode 100644 index 00000000..42060985 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoxin_tts/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoxin_tts/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoxin_tts/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoxin_tts/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoyi_tts2/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoyi_tts2/_MODEL_INFO_ new file mode 100644 index 00000000..f4ebcb78 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoyi_tts2/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts2h12_你好小益_3_0.635_0.638 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoyi_tts2/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoyi_tts2/wn9_data new file mode 100644 index 00000000..067cdb57 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoyi_tts2/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoyi_tts2/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoyi_tts2/wn9_index new file mode 100644 index 00000000..802f87bb Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaoyi_tts2/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaozhi/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaozhi/_MODEL_INFO_ new file mode 100644 index 00000000..ced51743 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaozhi/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9_v1h12_你好小智_3_0.585_0.595 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaozhi/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaozhi/wn9_data new file mode 100644 index 00000000..4e6d9ac7 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaozhi/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaozhi/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaozhi/wn9_index new file mode 100644 index 00000000..54f7583f Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaozhi/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaozhi_tts/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaozhi_tts/_MODEL_INFO_ new file mode 100644 index 00000000..1c23285f --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaozhi_tts/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts1h8_你好小智_3_0.631_0.635 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaozhi_tts/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaozhi_tts/wn9_data new file mode 100644 index 00000000..cf5f97d7 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaozhi_tts/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaozhi_tts/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaozhi_tts/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_nihaoxiaozhi_tts/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_sophia_tts/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_sophia_tts/_MODEL_INFO_ new file mode 100644 index 00000000..c2b72b60 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_sophia_tts/_MODEL_INFO_ @@ -0,0 +1,2 @@ +# (neural network type)_(model data version)_(label1_detection window length_threshold for 90%_threshold for 95%)_(label2 ...)_... +wakenet9l_tts1h8v2_Sophia_3_0.647_0.649 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_sophia_tts/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_sophia_tts/wn9_data new file mode 100644 index 00000000..cc358b9e Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_sophia_tts/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_sophia_tts/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_sophia_tts/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_sophia_tts/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_sophia_tts_v1/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_sophia_tts_v1/_MODEL_INFO_ new file mode 100644 index 00000000..9acd3e53 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_sophia_tts_v1/_MODEL_INFO_ @@ -0,0 +1,2 @@ +# (neural network type)_(model data version)_(lable1_detection windown length_threshold for 90%_threshold for 95%)_(lable2 ...)_... +wakenet9l_tts1h8_Sophia_3_0.624_0.642 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_sophia_tts_v1/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_sophia_tts_v1/wn9_data new file mode 100644 index 00000000..3b6f1154 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_sophia_tts_v1/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_sophia_tts_v1/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_sophia_tts_v1/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_sophia_tts_v1/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoaitongxue/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoaitongxue/_MODEL_INFO_ new file mode 100644 index 00000000..fc059b5f --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoaitongxue/_MODEL_INFO_ @@ -0,0 +1 @@ +WakeNet9_v1h24_小爱同学_3_0.620_0.627 \ No newline at end of file diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoaitongxue/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoaitongxue/wn9_data new file mode 100644 index 00000000..0ce76950 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoaitongxue/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoaitongxue/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoaitongxue/wn9_index new file mode 100644 index 00000000..0e86f0ac Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoaitongxue/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaobinxiaobin_tts/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaobinxiaobin_tts/_MODEL_INFO_ new file mode 100644 index 00000000..997b3fc5 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaobinxiaobin_tts/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts1h8_小滨小滨,小冰小冰_3_0.614_0.623 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaobinxiaobin_tts/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaobinxiaobin_tts/wn9_data new file mode 100644 index 00000000..7b768bee Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaobinxiaobin_tts/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaobinxiaobin_tts/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaobinxiaobin_tts/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaobinxiaobin_tts/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaojianxiaojian_tts2/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaojianxiaojian_tts2/_MODEL_INFO_ new file mode 100644 index 00000000..8f5357aa --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaojianxiaojian_tts2/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts2h12_小箭小箭_3_0.635_0.640 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaojianxiaojian_tts2/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaojianxiaojian_tts2/wn9_data new file mode 100644 index 00000000..b02d8e8a Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaojianxiaojian_tts2/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaojianxiaojian_tts2/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaojianxiaojian_tts2/wn9_index new file mode 100644 index 00000000..802f87bb Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaojianxiaojian_tts2/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaokangtongxue_tts2/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaokangtongxue_tts2/_MODEL_INFO_ new file mode 100644 index 00000000..0a884fbc --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaokangtongxue_tts2/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts2h12_小康同学_3_0.636_0.640 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaokangtongxue_tts2/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaokangtongxue_tts2/wn9_data new file mode 100644 index 00000000..5f2e1c6d Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaokangtongxue_tts2/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaokangtongxue_tts2/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaokangtongxue_tts2/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaokangtongxue_tts2/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaolongxiaolong_tts/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaolongxiaolong_tts/_MODEL_INFO_ new file mode 100644 index 00000000..1f5017b9 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaolongxiaolong_tts/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts1h8_小龙小龙_3_0.624_0.628 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaolongxiaolong_tts/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaolongxiaolong_tts/wn9_data new file mode 100644 index 00000000..eac77af0 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaolongxiaolong_tts/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaolongxiaolong_tts/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaolongxiaolong_tts/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaolongxiaolong_tts/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoluxiaolu_tts2/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoluxiaolu_tts2/_MODEL_INFO_ new file mode 100644 index 00000000..2a4cb723 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoluxiaolu_tts2/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9_tts2h12_小鹿小鹿_3_0.640_0.645 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoluxiaolu_tts2/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoluxiaolu_tts2/wn9_data new file mode 100644 index 00000000..8c45b4e2 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoluxiaolu_tts2/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoluxiaolu_tts2/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoluxiaolu_tts2/wn9_index new file mode 100644 index 00000000..41d0c45c Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoluxiaolu_tts2/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaomeitongxue_tts/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaomeitongxue_tts/_MODEL_INFO_ new file mode 100644 index 00000000..ee9c0d7d --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaomeitongxue_tts/_MODEL_INFO_ @@ -0,0 +1,2 @@ +# (neural network type)_(model data version)_(label1_detection window length_threshold for 90%_threshold for 95%)_(label2 ...)_... +wakenet9l_tts1h8_小美同学_3_0.633_0.644 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaomeitongxue_tts/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaomeitongxue_tts/wn9_data new file mode 100644 index 00000000..f81aaae5 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaomeitongxue_tts/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaomeitongxue_tts/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaomeitongxue_tts/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaomeitongxue_tts/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaomingtongxue_tts2/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaomingtongxue_tts2/_MODEL_INFO_ new file mode 100644 index 00000000..cfecde4b --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaomingtongxue_tts2/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts2h12_小明同学_3_0.626_0.632 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaomingtongxue_tts2/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaomingtongxue_tts2/wn9_data new file mode 100644 index 00000000..08cf80df Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaomingtongxue_tts2/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaomingtongxue_tts2/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaomingtongxue_tts2/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaomingtongxue_tts2/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaosurou_tts2/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaosurou_tts2/_MODEL_INFO_ new file mode 100644 index 00000000..dc4cba90 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaosurou_tts2/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts2h12_小酥肉_3_0.625_0.630 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaosurou_tts2/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaosurou_tts2/wn9_data new file mode 100644 index 00000000..aa9e0ba6 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaosurou_tts2/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaosurou_tts2/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaosurou_tts2/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaosurou_tts2/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaotexiaote_tts2/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaotexiaote_tts2/_MODEL_INFO_ new file mode 100644 index 00000000..db307161 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaotexiaote_tts2/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts2h12_小特小特_3_0.605_0.610 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaotexiaote_tts2/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaotexiaote_tts2/wn9_data new file mode 100644 index 00000000..7aabb87c Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaotexiaote_tts2/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaotexiaote_tts2/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaotexiaote_tts2/wn9_index new file mode 100644 index 00000000..802f87bb Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaotexiaote_tts2/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoyaxiaoya_tts2/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoyaxiaoya_tts2/_MODEL_INFO_ new file mode 100644 index 00000000..5fadbc29 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoyaxiaoya_tts2/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9_tts2h12_小鸭小鸭_3_0.595_0.600 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoyaxiaoya_tts2/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoyaxiaoya_tts2/wn9_data new file mode 100644 index 00000000..dff2ee43 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoyaxiaoya_tts2/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoyaxiaoya_tts2/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoyaxiaoya_tts2/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoyaxiaoya_tts2/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoyutongxue_tts2/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoyutongxue_tts2/_MODEL_INFO_ new file mode 100644 index 00000000..37dae7b6 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoyutongxue_tts2/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9l_tts2h12_小宇同学_3_0.624_0.630 \ No newline at end of file diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoyutongxue_tts2/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoyutongxue_tts2/wn9_data new file mode 100644 index 00000000..8499ca9d Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoyutongxue_tts2/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoyutongxue_tts2/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoyutongxue_tts2/wn9_index new file mode 100644 index 00000000..5e7c8816 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9_xiaoyutongxue_tts2/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9s_alexa/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9s_alexa/_MODEL_INFO_ new file mode 100644 index 00000000..2947c1a3 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9s_alexa/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9s_v4h8_Alexa_3_0.640_0.650 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9s_alexa/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9s_alexa/wn9_data new file mode 100644 index 00000000..bc01f7e7 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9s_alexa/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9s_alexa/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9s_alexa/wn9_index new file mode 100644 index 00000000..a4dd2054 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9s_alexa/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9s_hiesp/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9s_hiesp/_MODEL_INFO_ new file mode 100644 index 00000000..f1356d7a --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9s_hiesp/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9_tts2h12_Hi,ESP_3_0.630_0.635 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9s_hiesp/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9s_hiesp/wn9_data new file mode 100644 index 00000000..9b0c90d6 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9s_hiesp/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9s_hiesp/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9s_hiesp/wn9_index new file mode 100644 index 00000000..e52727fb Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9s_hiesp/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9s_hijason/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9s_hijason/_MODEL_INFO_ new file mode 100644 index 00000000..a7cb6538 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9s_hijason/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9_tts2h12v2_Hi,Jason_3_0.630_0.635 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9s_hijason/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9s_hijason/wn9_data new file mode 100644 index 00000000..311851a4 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9s_hijason/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9s_hijason/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9s_hijason/wn9_index new file mode 100644 index 00000000..e52727fb Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9s_hijason/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9s_hilexin/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9s_hilexin/_MODEL_INFO_ new file mode 100644 index 00000000..08504046 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9s_hilexin/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9s_tts2h8_嗨乐鑫_3_0.630_0.635 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9s_hilexin/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9s_hilexin/wn9_data new file mode 100644 index 00000000..0e3653dc Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9s_hilexin/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9s_hilexin/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9s_hilexin/wn9_index new file mode 100644 index 00000000..e52727fb Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9s_hilexin/wn9_index differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9s_nihaoxiaozhi/_MODEL_INFO_ b/main/manager-web/public/generator/static/wakenet_model/wn9s_nihaoxiaozhi/_MODEL_INFO_ new file mode 100644 index 00000000..1a39f339 --- /dev/null +++ b/main/manager-web/public/generator/static/wakenet_model/wn9s_nihaoxiaozhi/_MODEL_INFO_ @@ -0,0 +1 @@ +wakenet9s_tts2h8v2_你好小智_3_0.630_0.635 diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9s_nihaoxiaozhi/wn9_data b/main/manager-web/public/generator/static/wakenet_model/wn9s_nihaoxiaozhi/wn9_data new file mode 100644 index 00000000..d57eb9e2 Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9s_nihaoxiaozhi/wn9_data differ diff --git a/main/manager-web/public/generator/static/wakenet_model/wn9s_nihaoxiaozhi/wn9_index b/main/manager-web/public/generator/static/wakenet_model/wn9s_nihaoxiaozhi/wn9_index new file mode 100644 index 00000000..e52727fb Binary files /dev/null and b/main/manager-web/public/generator/static/wakenet_model/wn9s_nihaoxiaozhi/wn9_index differ diff --git a/main/manager-web/public/generator/workers/gif.js b/main/manager-web/public/generator/workers/gif.js new file mode 100644 index 00000000..2e4d2042 --- /dev/null +++ b/main/manager-web/public/generator/workers/gif.js @@ -0,0 +1,3 @@ +// gif.js 0.2.0 - https://github.com/jnordberg/gif.js +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.GIF=f()}})(function(){var define,module,exports;return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o0&&this._events[type].length>m){this._events[type].warned=true;console.error("(node) warning: possible EventEmitter memory "+"leak detected. %d listeners added. "+"Use emitter.setMaxListeners() to increase limit.",this._events[type].length);if(typeof console.trace==="function"){console.trace()}}}return this};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.once=function(type,listener){if(!isFunction(listener))throw TypeError("listener must be a function");var fired=false;function g(){this.removeListener(type,g);if(!fired){fired=true;listener.apply(this,arguments)}}g.listener=listener;this.on(type,g);return this};EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events||!this._events[type])return this;list=this._events[type];length=list.length;position=-1;if(list===listener||isFunction(list.listener)&&list.listener===listener){delete this._events[type];if(this._events.removeListener)this.emit("removeListener",type,listener)}else if(isObject(list)){for(i=length;i-- >0;){if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}}if(position<0)return this;if(list.length===1){list.length=0;delete this._events[type]}else{list.splice(position,1)}if(this._events.removeListener)this.emit("removeListener",type,listener)}return this};EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener){if(arguments.length===0)this._events={};else if(this._events[type])delete this._events[type];return this}if(arguments.length===0){for(key in this._events){if(key==="removeListener")continue;this.removeAllListeners(key)}this.removeAllListeners("removeListener");this._events={};return this}listeners=this._events[type];if(isFunction(listeners)){this.removeListener(type,listeners)}else if(listeners){while(listeners.length)this.removeListener(type,listeners[listeners.length-1])}delete this._events[type];return this};EventEmitter.prototype.listeners=function(type){var ret;if(!this._events||!this._events[type])ret=[];else if(isFunction(this._events[type]))ret=[this._events[type]];else ret=this._events[type].slice();return ret};EventEmitter.prototype.listenerCount=function(type){if(this._events){var evlistener=this._events[type];if(isFunction(evlistener))return 1;else if(evlistener)return evlistener.length}return 0};EventEmitter.listenerCount=function(emitter,type){return emitter.listenerCount(type)};function isFunction(arg){return typeof arg==="function"}function isNumber(arg){return typeof arg==="number"}function isObject(arg){return typeof arg==="object"&&arg!==null}function isUndefined(arg){return arg===void 0}},{}],2:[function(require,module,exports){var UA,browser,mode,platform,ua;ua=navigator.userAgent.toLowerCase();platform=navigator.platform.toLowerCase();UA=ua.match(/(opera|ie|firefox|chrome|version)[\s\/:]([\w\d\.]+)?.*?(safari|version[\s\/:]([\w\d\.]+)|$)/)||[null,"unknown",0];mode=UA[1]==="ie"&&document.documentMode;browser={name:UA[1]==="version"?UA[3]:UA[1],version:mode||parseFloat(UA[1]==="opera"&&UA[4]?UA[4]:UA[2]),platform:{name:ua.match(/ip(?:ad|od|hone)/)?"ios":(ua.match(/(?:webos|android)/)||platform.match(/mac|win|linux/)||["other"])[0]}};browser[browser.name]=true;browser[browser.name+parseInt(browser.version,10)]=true;browser.platform[browser.platform.name]=true;module.exports=browser},{}],3:[function(require,module,exports){var EventEmitter,GIF,browser,extend=function(child,parent){for(var key in parent){if(hasProp.call(parent,key))child[key]=parent[key]}function ctor(){this.constructor=child}ctor.prototype=parent.prototype;child.prototype=new ctor;child.__super__=parent.prototype;return child},hasProp={}.hasOwnProperty,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;iref;i=0<=ref?++j:--j){results.push(null)}return results}.call(this);numWorkers=this.spawnWorkers();if(this.options.globalPalette===true){this.renderNextFrame()}else{for(i=j=0,ref=numWorkers;0<=ref?jref;i=0<=ref?++j:--j){this.renderNextFrame()}}this.emit("start");return this.emit("progress",0)};GIF.prototype.abort=function(){var worker;while(true){worker=this.activeWorkers.shift();if(worker==null){break}this.log("killing active worker");worker.terminate()}this.running=false;return this.emit("abort")};GIF.prototype.spawnWorkers=function(){var j,numWorkers,ref,results;numWorkers=Math.min(this.options.workers,this.frames.length);(function(){results=[];for(var j=ref=this.freeWorkers.length;ref<=numWorkers?jnumWorkers;ref<=numWorkers?j++:j--){results.push(j)}return results}).apply(this).forEach(function(_this){return function(i){var worker;_this.log("spawning worker "+i);worker=new Worker(_this.options.workerScript);worker.onmessage=function(event){_this.activeWorkers.splice(_this.activeWorkers.indexOf(worker),1);_this.freeWorkers.push(worker);return _this.frameFinished(event.data)};return _this.freeWorkers.push(worker)}}(this));return numWorkers};GIF.prototype.frameFinished=function(frame){var i,j,ref;this.log("frame "+frame.index+" finished - "+this.activeWorkers.length+" active");this.finishedFrames++;this.emit("progress",this.finishedFrames/this.frames.length);this.imageParts[frame.index]=frame;if(this.options.globalPalette===true){this.options.globalPalette=frame.globalPalette;this.log("global palette analyzed");if(this.frames.length>2){for(i=j=1,ref=this.freeWorkers.length;1<=ref?jref;i=1<=ref?++j:--j){this.renderNextFrame()}}}if(indexOf.call(this.imageParts,null)>=0){return this.renderNextFrame()}else{return this.finishRendering()}};GIF.prototype.finishRendering=function(){var data,frame,i,image,j,k,l,len,len1,len2,len3,offset,page,ref,ref1,ref2;len=0;ref=this.imageParts;for(j=0,len1=ref.length;j=this.frames.length){return}frame=this.frames[this.nextFrame++];worker=this.freeWorkers.shift();task=this.getTask(frame);this.log("starting frame "+(task.index+1)+" of "+this.frames.length);this.activeWorkers.push(worker);return worker.postMessage(task)};GIF.prototype.getContextData=function(ctx){return ctx.getImageData(0,0,this.options.width,this.options.height).data};GIF.prototype.getImageData=function(image){var ctx;if(this._canvas==null){this._canvas=document.createElement("canvas");this._canvas.width=this.options.width;this._canvas.height=this.options.height}ctx=this._canvas.getContext("2d");ctx.setFill=this.options.background;ctx.fillRect(0,0,this.options.width,this.options.height);ctx.drawImage(image,0,0);return this.getContextData(ctx)};GIF.prototype.getTask=function(frame){var index,task;index=this.frames.indexOf(frame);task={index:index,last:index===this.frames.length-1,delay:frame.delay,transparent:frame.transparent,width:this.options.width,height:this.options.height,quality:this.options.quality,dither:this.options.dither,globalPalette:this.options.globalPalette,repeat:this.options.repeat,canTransfer:browser.name==="chrome"};if(frame.data!=null){task.data=frame.data}else if(frame.context!=null){task.data=this.getContextData(frame.context)}else if(frame.image!=null){task.data=this.getImageData(frame.image)}else{throw new Error("Invalid frame")}return task};GIF.prototype.log=function(){var args;args=1<=arguments.length?slice.call(arguments,0):[];if(!this.options.debug){return}return console.log.apply(console,args)};return GIF}(EventEmitter);module.exports=GIF},{"./browser.coffee":2,events:1}]},{},[3])(3)}); +//# sourceMappingURL=gif.js.map diff --git a/main/manager-web/public/generator/workers/gif.worker.js b/main/manager-web/public/generator/workers/gif.worker.js new file mode 100644 index 00000000..269624e6 --- /dev/null +++ b/main/manager-web/public/generator/workers/gif.worker.js @@ -0,0 +1,3 @@ +// gif.worker.js 0.2.0 - https://github.com/jnordberg/gif.js +(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o=ByteArray.pageSize)this.newPage();this.pages[this.page][this.cursor++]=val};ByteArray.prototype.writeUTFBytes=function(string){for(var l=string.length,i=0;i=0)this.dispose=disposalCode};GIFEncoder.prototype.setRepeat=function(repeat){this.repeat=repeat};GIFEncoder.prototype.setTransparent=function(color){this.transparent=color};GIFEncoder.prototype.addFrame=function(imageData){this.image=imageData;this.colorTab=this.globalPalette&&this.globalPalette.slice?this.globalPalette:null;this.getImagePixels();this.analyzePixels();if(this.globalPalette===true)this.globalPalette=this.colorTab;if(this.firstFrame){this.writeLSD();this.writePalette();if(this.repeat>=0){this.writeNetscapeExt()}}this.writeGraphicCtrlExt();this.writeImageDesc();if(!this.firstFrame&&!this.globalPalette)this.writePalette();this.writePixels();this.firstFrame=false};GIFEncoder.prototype.finish=function(){this.out.writeByte(59)};GIFEncoder.prototype.setQuality=function(quality){if(quality<1)quality=1;this.sample=quality};GIFEncoder.prototype.setDither=function(dither){if(dither===true)dither="FloydSteinberg";this.dither=dither};GIFEncoder.prototype.setGlobalPalette=function(palette){this.globalPalette=palette};GIFEncoder.prototype.getGlobalPalette=function(){return this.globalPalette&&this.globalPalette.slice&&this.globalPalette.slice(0)||this.globalPalette};GIFEncoder.prototype.writeHeader=function(){this.out.writeUTFBytes("GIF89a")};GIFEncoder.prototype.analyzePixels=function(){if(!this.colorTab){this.neuQuant=new NeuQuant(this.pixels,this.sample);this.neuQuant.buildColormap();this.colorTab=this.neuQuant.getColormap()}if(this.dither){this.ditherPixels(this.dither.replace("-serpentine",""),this.dither.match(/-serpentine/)!==null)}else{this.indexPixels()}this.pixels=null;this.colorDepth=8;this.palSize=7;if(this.transparent!==null){this.transIndex=this.findClosest(this.transparent,true)}};GIFEncoder.prototype.indexPixels=function(imgq){var nPix=this.pixels.length/3;this.indexedPixels=new Uint8Array(nPix);var k=0;for(var j=0;j=0&&x1+x=0&&y1+y>16,(c&65280)>>8,c&255,used)};GIFEncoder.prototype.findClosestRGB=function(r,g,b,used){if(this.colorTab===null)return-1;if(this.neuQuant&&!used){return this.neuQuant.lookupRGB(r,g,b)}var c=b|g<<8|r<<16;var minpos=0;var dmin=256*256*256;var len=this.colorTab.length;for(var i=0,index=0;i=0){disp=dispose&7}disp<<=2;this.out.writeByte(0|disp|0|transp);this.writeShort(this.delay);this.out.writeByte(this.transIndex);this.out.writeByte(0)};GIFEncoder.prototype.writeImageDesc=function(){this.out.writeByte(44);this.writeShort(0);this.writeShort(0);this.writeShort(this.width);this.writeShort(this.height);if(this.firstFrame||this.globalPalette){this.out.writeByte(0)}else{this.out.writeByte(128|0|0|0|this.palSize)}};GIFEncoder.prototype.writeLSD=function(){this.writeShort(this.width);this.writeShort(this.height);this.out.writeByte(128|112|0|this.palSize);this.out.writeByte(0);this.out.writeByte(0)};GIFEncoder.prototype.writeNetscapeExt=function(){this.out.writeByte(33);this.out.writeByte(255);this.out.writeByte(11);this.out.writeUTFBytes("NETSCAPE2.0");this.out.writeByte(3);this.out.writeByte(1);this.writeShort(this.repeat);this.out.writeByte(0)};GIFEncoder.prototype.writePalette=function(){this.out.writeBytes(this.colorTab);var n=3*256-this.colorTab.length;for(var i=0;i>8&255)};GIFEncoder.prototype.writePixels=function(){var enc=new LZWEncoder(this.width,this.height,this.indexedPixels,this.colorDepth);enc.encode(this.out)};GIFEncoder.prototype.stream=function(){return this.out};module.exports=GIFEncoder},{"./LZWEncoder.js":2,"./TypedNeuQuant.js":3}],2:[function(require,module,exports){var EOF=-1;var BITS=12;var HSIZE=5003;var masks=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535];function LZWEncoder(width,height,pixels,colorDepth){var initCodeSize=Math.max(2,colorDepth);var accum=new Uint8Array(256);var htab=new Int32Array(HSIZE);var codetab=new Int32Array(HSIZE);var cur_accum,cur_bits=0;var a_count;var free_ent=0;var maxcode;var clear_flg=false;var g_init_bits,ClearCode,EOFCode;function char_out(c,outs){accum[a_count++]=c;if(a_count>=254)flush_char(outs)}function cl_block(outs){cl_hash(HSIZE);free_ent=ClearCode+2;clear_flg=true;output(ClearCode,outs)}function cl_hash(hsize){for(var i=0;i=0){disp=hsize_reg-i;if(i===0)disp=1;do{if((i-=disp)<0)i+=hsize_reg;if(htab[i]===fcode){ent=codetab[i];continue outer_loop}}while(htab[i]>=0)}output(ent,outs);ent=c;if(free_ent<1<0){outs.writeByte(a_count);outs.writeBytes(accum,0,a_count);a_count=0}}function MAXCODE(n_bits){return(1<0)cur_accum|=code<=8){char_out(cur_accum&255,outs);cur_accum>>=8;cur_bits-=8}if(free_ent>maxcode||clear_flg){if(clear_flg){maxcode=MAXCODE(n_bits=g_init_bits);clear_flg=false}else{++n_bits;if(n_bits==BITS)maxcode=1<0){char_out(cur_accum&255,outs);cur_accum>>=8;cur_bits-=8}flush_char(outs)}}this.encode=encode}module.exports=LZWEncoder},{}],3:[function(require,module,exports){var ncycles=100;var netsize=256;var maxnetpos=netsize-1;var netbiasshift=4;var intbiasshift=16;var intbias=1<>betashift;var betagamma=intbias<>3;var radiusbiasshift=6;var radiusbias=1<>3);var i,v;for(i=0;i>=netbiasshift;network[i][1]>>=netbiasshift;network[i][2]>>=netbiasshift;network[i][3]=i}}function altersingle(alpha,i,b,g,r){network[i][0]-=alpha*(network[i][0]-b)/initalpha;network[i][1]-=alpha*(network[i][1]-g)/initalpha;network[i][2]-=alpha*(network[i][2]-r)/initalpha}function alterneigh(radius,i,b,g,r){var lo=Math.abs(i-radius);var hi=Math.min(i+radius,netsize);var j=i+1;var k=i-1;var m=1;var p,a;while(jlo){a=radpower[m++];if(jlo){p=network[k--];p[0]-=a*(p[0]-b)/alpharadbias;p[1]-=a*(p[1]-g)/alpharadbias;p[2]-=a*(p[2]-r)/alpharadbias}}}function contest(b,g,r){var bestd=~(1<<31);var bestbiasd=bestd;var bestpos=-1;var bestbiaspos=bestpos;var i,n,dist,biasdist,betafreq;for(i=0;i>intbiasshift-netbiasshift);if(biasdist>betashift;freq[i]-=betafreq;bias[i]+=betafreq<>1;for(j=previouscol+1;j>1;for(j=previouscol+1;j<256;j++)netindex[j]=maxnetpos}function inxsearch(b,g,r){var a,p,dist;var bestd=1e3;var best=-1;var i=netindex[g];var j=i-1;while(i=0){if(i=bestd)i=netsize;else{i++;if(dist<0)dist=-dist;a=p[0]-b;if(a<0)a=-a;dist+=a;if(dist=0){p=network[j];dist=g-p[1];if(dist>=bestd)j=-1;else{j--;if(dist<0)dist=-dist;a=p[0]-b;if(a<0)a=-a;dist+=a;if(dist>radiusbiasshift;if(rad<=1)rad=0;for(i=0;i=lengthcount)pix-=lengthcount;i++;if(delta===0)delta=1;if(i%delta===0){alpha-=alpha/alphadec;radius-=radius/radiusdec;rad=radius>>radiusbiasshift;if(rad<=1)rad=0;for(j=0;j { + callback(res); + }) .networkFail((err) => { console.error('获取设备状态失败:', err); RequestService.reAjaxFun(() => { diff --git a/main/manager-web/src/components/HeaderBar.vue b/main/manager-web/src/components/HeaderBar.vue index c661f6fc..5e43eb83 100644 --- a/main/manager-web/src/components/HeaderBar.vue +++ b/main/manager-web/src/components/HeaderBar.vue @@ -167,7 +167,7 @@ - + {{ userInfo.username || "加载中..." }} @@ -668,6 +668,7 @@ export default { align-items: center; gap: 10px; min-width: 120px; + cursor: pointer; } .logo-img { @@ -795,11 +796,15 @@ export default { color: #909399; visibility: hidden; } - +.more-dropdown { + padding: 0; +} .more-dropdown .el-dropdown-link { display: flex; align-items: center; gap: 7px; + height: 100%; + padding: 0 15px; } .search-history-item:hover .clear-item-icon { @@ -841,6 +846,9 @@ export default { flex-shrink: 0; cursor: pointer; } +.el-user-dropdown { + cursor: pointer; +} /* 导航文本样式 - 支持中英文换行 */ .nav-text { diff --git a/main/manager-web/src/components/TtsModel.vue b/main/manager-web/src/components/TtsModel.vue index 8f0f0b47..4038b8a8 100644 --- a/main/manager-web/src/components/TtsModel.vue +++ b/main/manager-web/src/components/TtsModel.vue @@ -49,15 +49,15 @@ {{ scope.row.remark }} - + - + diff --git a/main/manager-web/src/i18n/de.js b/main/manager-web/src/i18n/de.js index 005fd9db..408f6a33 100644 --- a/main/manager-web/src/i18n/de.js +++ b/main/manager-web/src/i18n/de.js @@ -448,6 +448,7 @@ export default { 'device.bindWithCode': '6-stelliger Bestätigungscode-Bindung', 'device.manualAdd': 'Manuell hinzufügen', 'device.unbind': 'Bindung aufheben', + 'device.deviceThemeGeneration': 'Gerätethema erstellen', 'device.toolCall': 'Werkzeugaufruf', 'device.selectAtLeastOne': 'Bitte wählen Sie mindestens einen Datensatz aus', 'device.confirmBatchUnbind': 'Sind Sie sicher, dass Sie {count} ausgewählte Geräte entbinden möchten?', @@ -1124,7 +1125,7 @@ export default { 'voiceClone.training': 'Training', 'voiceClone.trainSuccess': 'Training erfolgreich', 'voiceClone.trainFailed': 'Training fehlgeschlagen', - 'voiceClone.itemsPerPage': '{items} Einträge pro Seite', + 'voiceClone.itemsPerPage': '{items} Einträge/Seite', 'voiceClone.firstPage': 'Erste Seite', 'voiceClone.prevPage': 'Vorherige Seite', 'voiceClone.nextPage': 'Nächste Seite', diff --git a/main/manager-web/src/i18n/en.js b/main/manager-web/src/i18n/en.js index ecf7a539..6229ed65 100644 --- a/main/manager-web/src/i18n/en.js +++ b/main/manager-web/src/i18n/en.js @@ -448,6 +448,7 @@ export default { 'device.bindWithCode': '6-digit Verification Code Binding', 'device.manualAdd': 'Manual Add', 'device.unbind': 'Unbind', + 'device.deviceThemeGeneration': 'Device theme generation', 'device.toolCall': 'Tool Call', 'device.selectAtLeastOne': 'Please select at least one record', 'device.confirmBatchUnbind': 'Are you sure you want to unbind {count} selected devices?', @@ -1124,7 +1125,7 @@ export default { 'voiceClone.training': 'Training', 'voiceClone.trainSuccess': 'Training successful', 'voiceClone.trainFailed': 'Training failed', - 'voiceClone.itemsPerPage': '{items} items per page', + 'voiceClone.itemsPerPage': '{items} items/page', 'voiceClone.firstPage': 'First Page', 'voiceClone.prevPage': 'Previous Page', 'voiceClone.nextPage': 'Next Page', diff --git a/main/manager-web/src/i18n/vi.js b/main/manager-web/src/i18n/vi.js index 18e13033..4de7cd49 100644 --- a/main/manager-web/src/i18n/vi.js +++ b/main/manager-web/src/i18n/vi.js @@ -448,6 +448,7 @@ export default { 'device.bindWithCode': 'Liên kết bằng mã xác minh 6 chữ số', 'device.manualAdd': 'Thêm thủ công', 'device.unbind': 'Hủy liên kết', + 'device.deviceThemeGeneration': 'Tạo chủ đề thiết bị', 'device.toolCall': 'Gọi công cụ', 'device.selectAtLeastOne': 'Vui lòng chọn ít nhất một bản ghi', 'device.confirmBatchUnbind': 'Bạn có chắc chắn muốn hủy liên kết {count} thiết bị đã chọn?', @@ -1124,7 +1125,7 @@ export default { 'voiceClone.training': 'Đang huấn luyện', 'voiceClone.trainSuccess': 'Huấn luyện thành công', 'voiceClone.trainFailed': 'Huấn luyện thất bại', - 'voiceClone.itemsPerPage': '{items} mục mỗi trang', + 'voiceClone.itemsPerPage': '{items} mục/trang', 'voiceClone.firstPage': 'Trang đầu', 'voiceClone.prevPage': 'Trang trước', 'voiceClone.nextPage': 'Trang sau', diff --git a/main/manager-web/src/i18n/zh_CN.js b/main/manager-web/src/i18n/zh_CN.js index 718040c4..f4850cc8 100644 --- a/main/manager-web/src/i18n/zh_CN.js +++ b/main/manager-web/src/i18n/zh_CN.js @@ -448,6 +448,7 @@ export default { 'device.bindWithCode': '6位验证码绑定', 'device.manualAdd': '手动添加', 'device.unbind': '解绑', + 'device.deviceThemeGeneration': '设备主题生成', 'device.toolCall': '工具调用', 'device.selectAtLeastOne': '请至少选择一条记录', 'device.confirmBatchUnbind': '确认要解绑选中的 {count} 台设备吗?', @@ -1124,7 +1125,7 @@ export default { 'voiceClone.training': '训练中', 'voiceClone.trainSuccess': '训练成功', 'voiceClone.trainFailed': '训练失败', - 'voiceClone.itemsPerPage': '每页 {items} 条', + 'voiceClone.itemsPerPage': '{items}条/页', 'voiceClone.firstPage': '首页', 'voiceClone.prevPage': '上一页', 'voiceClone.nextPage': '下一页', diff --git a/main/manager-web/src/i18n/zh_TW.js b/main/manager-web/src/i18n/zh_TW.js index 6be0f64f..e97fb054 100644 --- a/main/manager-web/src/i18n/zh_TW.js +++ b/main/manager-web/src/i18n/zh_TW.js @@ -448,6 +448,7 @@ export default { 'device.bindWithCode': '6位驗證碼綁定', 'device.manualAdd': '手動添加', 'device.unbind': '解綁', + 'device.deviceThemeGeneration': '設備主題生成', 'device.toolCall': '工具調用', 'device.selectAtLeastOne': '請至少選擇一條記錄', 'device.confirmBatchUnbind': '確認要解綁選中的 {count} 台設備嗎?', @@ -1124,7 +1125,7 @@ export default { 'voiceClone.training': '訓練中', 'voiceClone.trainSuccess': '訓練成功', 'voiceClone.trainFailed': '訓練失敗', - 'voiceClone.itemsPerPage': '每頁 {items} 條', + 'voiceClone.itemsPerPage': '{items}條/頁', 'voiceClone.firstPage': '首頁', 'voiceClone.prevPage': '上一頁', 'voiceClone.nextPage': '下一頁', diff --git a/main/manager-web/src/views/DeviceManagement.vue b/main/manager-web/src/views/DeviceManagement.vue index 3dcf7bca..d6aeaeb0 100644 --- a/main/manager-web/src/views/DeviceManagement.vue +++ b/main/manager-web/src/views/DeviceManagement.vue @@ -64,6 +64,9 @@ {{ $t('device.unbind') }} + + {{ $t('device.deviceThemeGeneration') }} + @@ -334,6 +337,13 @@ export default { }); }); }, + handleGenertor(row) { + const pathname = window.location.pathname; + const basePath = pathname.split('/').slice(0, -1).join('/'); + const url = `${window.location.origin}${basePath}/generator/?deviceId=${row.device_id}`; + sessionStorage.setItem('devicePath', window.location.href); + window.location.href = url; + }, goFirst() { this.currentPage = 1; }, @@ -385,7 +395,10 @@ export default { // 获取设备状态 fetchDeviceStatus(agentId) { + // 开启表格等待状态,处理动态加载表头导致鼠标所在行的hover事件无法移除的问题 + this.loading = true; Api.device.getDeviceStatus(agentId, ({ data }) => { + this.loading = false; if (data.code === 0) { try { // 解析后端返回的设备状态JSON @@ -467,6 +480,11 @@ export default { this.$message.error(msg || this.$t('message.error')) }) }, + // 判断是否可以生成表情、主题、字体bin文件 + isGenerate(row) { + const version = row.firmwareVersion.replace(/\./g, ''); + return Number(version) >= 200; + }, } }; diff --git a/main/manager-web/src/views/login.vue b/main/manager-web/src/views/login.vue index f9dd0748..0edbd2e5 100644 --- a/main/manager-web/src/views/login.vue +++ b/main/manager-web/src/views/login.vue @@ -5,12 +5,12 @@
- - + +