ci: auto build & obfuscate [2026-04-11 18:45:22] (Jenkins #14)

This commit is contained in:
Jenkins CI
2026-04-11 18:45:22 +08:00
parent 2291a871eb
commit c50e1a9425
14 changed files with 169 additions and 29 deletions

View File

@@ -87,6 +87,13 @@ function saveBreakArmorPrompt() {
showToastr('success', '破甲预设已保存!'); showToastr('success', '破甲预设已保存!');
} }
function autosaveBreakArmorPrompt() {
const newPrompt = $panel.find('#cwb-break-armor-prompt-textarea').val();
getSettings().cwb_break_armor_prompt = newPrompt;
state.currentBreakArmorPrompt = newPrompt;
saveSettingsDebounced();
}
function resetBreakArmorPrompt() { function resetBreakArmorPrompt() {
getSettings().cwb_break_armor_prompt = cwbCompleteDefaultSettings.cwb_break_armor_prompt; getSettings().cwb_break_armor_prompt = cwbCompleteDefaultSettings.cwb_break_armor_prompt;
state.currentBreakArmorPrompt = cwbCompleteDefaultSettings.cwb_break_armor_prompt; state.currentBreakArmorPrompt = cwbCompleteDefaultSettings.cwb_break_armor_prompt;
@@ -107,6 +114,13 @@ function saveCharCardPrompt() {
showToastr('success', '角色卡预设已保存!'); showToastr('success', '角色卡预设已保存!');
} }
function autosaveCharCardPrompt() {
const newPrompt = $panel.find('#cwb-char-card-prompt-textarea').val();
getSettings().cwb_char_card_prompt = newPrompt;
state.currentCharCardPrompt = newPrompt;
saveSettingsDebounced();
}
function resetCharCardPrompt() { function resetCharCardPrompt() {
getSettings().cwb_char_card_prompt = cwbCompleteDefaultSettings.cwb_char_card_prompt; getSettings().cwb_char_card_prompt = cwbCompleteDefaultSettings.cwb_char_card_prompt;
state.currentCharCardPrompt = cwbCompleteDefaultSettings.cwb_char_card_prompt; state.currentCharCardPrompt = cwbCompleteDefaultSettings.cwb_char_card_prompt;
@@ -129,6 +143,16 @@ function saveAutoUpdateThreshold() {
} }
} }
function autosaveAutoUpdateThreshold() {
const valStr = $panel.find('#cwb-auto-update-threshold').val();
const newT = parseInt(valStr, 10);
if (!isNaN(newT) && newT >= 1) {
getSettings().cwb_auto_update_threshold = newT;
state.autoUpdateThreshold = newT;
saveSettingsDebounced();
}
}
function saveScanDepth() { function saveScanDepth() {
const valStr = $panel.find('#cwb-scan-depth').val(); const valStr = $panel.find('#cwb-scan-depth').val();
const newT = parseInt(valStr, 10); const newT = parseInt(valStr, 10);
@@ -143,6 +167,16 @@ function saveScanDepth() {
} }
} }
function autosaveScanDepth() {
const valStr = $panel.find('#cwb-scan-depth').val();
const newT = parseInt(valStr, 10);
if (!isNaN(newT) && newT >= 1) {
getSettings().cwb_scan_depth = newT;
state.scanDepth = newT;
saveSettingsDebounced();
}
}
function bindWorldBookSettings() { function bindWorldBookSettings() {
const MAX_RETRIES = 10; const MAX_RETRIES = 10;
const RETRY_DELAY = 200; const RETRY_DELAY = 200;
@@ -287,11 +321,12 @@ export function bindSettingsEvents($settingsPanel) {
// 同时更新设置和状态API Key 经 configManager 写入 localStorage // 同时更新设置和状态API Key 经 configManager 写入 localStorage
configManager.set('cwb_api_key', apiKey); configManager.set('cwb_api_key', apiKey);
state.customApiConfig.apiKey = apiKey; state.customApiConfig.apiKey = apiKey;
updateApiStatusDisplay($panel);
console.log('[CWB] API Key已更新 - 状态长度:', state.customApiConfig.apiKey?.length || 0); console.log('[CWB] API Key已更新 - 状态长度:', state.customApiConfig.apiKey?.length || 0);
}); });
$panel.on('change', '#cwb-api-model', function() { $panel.on('input change', '#cwb-api-model', function(event) {
const model = $(this).val(); const model = $(this).val();
// 同时更新设置和状态 // 同时更新设置和状态
@@ -303,11 +338,16 @@ export function bindSettingsEvents($settingsPanel) {
console.log('[CWB] 模型已更新 - 设置:', getSettings().cwb_api_model, ', 状态:', state.customApiConfig.model); console.log('[CWB] 模型已更新 - 设置:', getSettings().cwb_api_model, ', 状态:', state.customApiConfig.model);
if (model) { if (model && event.type === 'change') {
showToastr('success', `模型已选择: ${model}`); showToastr('success', `模型已选择: ${model}`);
} }
}); });
$panel.on('input change', '#cwb-break-armor-prompt-textarea', autosaveBreakArmorPrompt);
$panel.on('input change', '#cwb-char-card-prompt-textarea', autosaveCharCardPrompt);
$panel.on('input change', '#cwb-auto-update-threshold', autosaveAutoUpdateThreshold);
$panel.on('input change', '#cwb-scan-depth', autosaveScanDepth);
$panel.on('click', '#cwb-load-models', () => fetchModelsAndConnect($panel)); $panel.on('click', '#cwb-load-models', () => fetchModelsAndConnect($panel));
$panel.on('click', '#cwb-save-break-armor-prompt', saveBreakArmorPrompt); $panel.on('click', '#cwb-save-break-armor-prompt', saveBreakArmorPrompt);

View File

@@ -522,13 +522,15 @@ export async function testApiConnection() {
try { try {
const apiSettings = await getApiSettings(); const apiSettings = await getApiSettings();
const apiProvider = apiSettings.apiProvider || 'openai';
const requiresApiKey = !['sillytavern_backend', 'sillytavern_preset'].includes(apiProvider);
if (apiSettings.apiProvider === 'sillytavern_preset') { if (apiProvider === 'sillytavern_preset') {
if (!apiSettings.tavernProfile) { if (!apiSettings.tavernProfile) {
throw new Error("请先在下方选择一个SillyTavern预设"); throw new Error("请先在下方选择一个SillyTavern预设");
} }
} else { } else {
if (!apiSettings.apiUrl || !apiSettings.apiKey || !apiSettings.model) { if (!apiSettings.apiUrl || !apiSettings.model) {
throw new Error("API配置不完整请检查URL、Key和模型选择"); throw new Error("API配置不完整请检查URL、Key和模型选择");
} }
} }

View File

@@ -329,7 +329,7 @@ export async function getPlotOptimizedWorldbookContent(context, apiSettings, isC
selectedWorldbooks: apiSettings.plotOpt_selectedWorldbooks, selectedWorldbooks: apiSettings.plotOpt_selectedWorldbooks,
autoSelectWorldbooks: apiSettings.plotOpt_autoSelectWorldbooks || [], autoSelectWorldbooks: apiSettings.plotOpt_autoSelectWorldbooks || [],
worldbookCharLimit: apiSettings.plotOpt_worldbookCharLimit, worldbookCharLimit: apiSettings.plotOpt_worldbookCharLimit,
contextLimit: apiSettings.plotOpt_contextLimit || 5, contextLimit: apiSettings.plotOpt_contextLimit ?? apiSettings.plotOpt_contextTurnCount ?? 5,
enabledWorldbookEntries: apiSettings.plotOpt_enabledWorldbookEntries, enabledWorldbookEntries: apiSettings.plotOpt_enabledWorldbookEntries,
}; };
} }

View File

@@ -423,7 +423,7 @@ export async function processPlotOptimization(currentUserMessage, contextMessage
} }
let history = ''; let history = '';
const contextLimit = settings.plotOpt_contextLimit || 0; const contextLimit = settings.plotOpt_contextLimit ?? settings.plotOpt_contextTurnCount ?? 0;
if (contextLimit > 0 && contextMessages.length > 0) { if (contextLimit > 0 && contextMessages.length > 0) {
const historyMessages = contextMessages.slice(-contextLimit); const historyMessages = contextMessages.slice(-contextLimit);

View File

@@ -610,7 +610,7 @@ async function onPlotGenerationAfterCommands(type, params, dryRun) {
}, 100); }, 100);
}); });
const contextTurnCount = globalSettings.plotOpt_contextLimit || 10; const contextTurnCount = globalSettings.plotOpt_contextLimit ?? globalSettings.plotOpt_contextTurnCount ?? 10;
const contextSource = isFromTextarea ? context.chat : context.chat.slice(0, -1); const contextSource = isFromTextarea ? context.chat : context.chat.slice(0, -1);
const slicedContext = contextTurnCount > 0 ? contextSource.slice(-contextTurnCount) : contextSource; const slicedContext = contextTurnCount > 0 ? contextSource.slice(-contextTurnCount) : contextSource;

View File

@@ -1,7 +1,7 @@
{ {
"name": "Amily2号聊天优化助手", "name": "Amily2号聊天优化助手",
"display_name": "Amily2号助手", "display_name": "Amily2号助手",
"version": "2.0.2", "version": "2.0.3",
"author": "Wx-2025", "author": "Wx-2025",
"description": "一个拥有独立UI的智能引擎正文优化、自动总结、记忆表格、rag向量、隐藏楼层、剧情推进等多功能整合。", "description": "一个拥有独立UI的智能引擎正文优化、自动总结、记忆表格、rag向量、隐藏楼层、剧情推进等多功能整合。",
"minSillyTavernVersion": "1.10.0", "minSillyTavernVersion": "1.10.0",

View File

@@ -1035,8 +1035,8 @@ export function bindModalEvents() {
}); });
container container
.off("change.amily2.text") .off("input.amily2.text change.amily2.text")
.on("change.amily2.text", "#amily2_api_url, #amily2_api_key, #amily2_optimization_target_tag", function () { .on("input.amily2.text change.amily2.text", "#amily2_api_url, #amily2_api_key, #amily2_optimization_target_tag", function () {
if (!pluginAuthStatus.authorized) return; if (!pluginAuthStatus.authorized) return;
const key = snakeToCamel(this.id.replace("amily2_", "")); const key = snakeToCamel(this.id.replace("amily2_", ""));
// apiKey 是敏感字段,必须经 configManager 写入 localStorage // apiKey 是敏感字段,必须经 configManager 写入 localStorage
@@ -1082,6 +1082,25 @@ export function bindModalEvents() {
}, },
); );
container
.off("input.amily2.number change.amily2.number")
.on(
"input.amily2.number change.amily2.number",
"#amily2_max_tokens, #amily2_temperature, #amily2_context_messages",
function () {
if (!pluginAuthStatus.authorized) return;
const key = snakeToCamel(this.id.replace("amily2_", ""));
const value = this.id.includes("temperature")
? parseFloat(this.value)
: parseInt(this.value, 10);
if (Number.isNaN(value)) return;
$(`#${this.id}_value`).text(value);
updateAndSaveSetting(key, value);
},
);
const promptMap = { const promptMap = {
mainPrompt: "#amily2_main_prompt", mainPrompt: "#amily2_main_prompt",
systemPrompt: "#amily2_system_prompt", systemPrompt: "#amily2_system_prompt",
@@ -1103,6 +1122,14 @@ export function bindModalEvents() {
.off("change.amily2.prompt_selector") .off("change.amily2.prompt_selector")
.on("change.amily2.prompt_selector", selector, updateEditorView); .on("change.amily2.prompt_selector", selector, updateEditorView);
container
.off("input.amily2.unified_editor change.amily2.unified_editor")
.on("input.amily2.unified_editor change.amily2.unified_editor", editor, function () {
const selectedKey = $(selector).val();
if (!selectedKey) return;
updateAndSaveSetting(selectedKey, $(this).val());
});
container container
.off("click.amily2.unified_save") .off("click.amily2.unified_save")
.on("click.amily2.unified_save", unifiedSaveButton, function () { .on("click.amily2.unified_save", unifiedSaveButton, function () {
@@ -1125,8 +1152,8 @@ export function bindModalEvents() {
}); });
container container
.off("change.amily2.lore_settings") .off("input.amily2.lore_settings change.amily2.lore_settings")
.on("change.amily2.lore_settings", .on("input.amily2.lore_settings change.amily2.lore_settings",
'select[id^="amily2_lore_"], input#amily2_lore_depth_input', 'select[id^="amily2_lore_"], input#amily2_lore_depth_input',
function () { function () {
if (!pluginAuthStatus.authorized) return; if (!pluginAuthStatus.authorized) return;

View File

@@ -184,6 +184,25 @@ function opt_getMergedSettings() {
return { ...globalSettings, ...characterSettings }; return { ...globalSettings, ...characterSettings };
} }
function bindInputLikeSave(element, handler) {
if (!element) return;
element.oninput = handler;
element.onchange = handler;
}
function syncModelMirror(inputElement, selectElement) {
if (!inputElement || !selectElement) return;
const value = inputElement.value || '';
if (!value) return;
let option = Array.from(selectElement.options || []).find(item => item.value === value);
if (!option) {
option = new Option(value, value, true, true);
selectElement.add(option);
}
selectElement.value = value;
}
function opt_bindSlider(panel, sliderId, displayId) { function opt_bindSlider(panel, sliderId, displayId) {
@@ -641,14 +660,15 @@ function opt_loadSettings(panel) {
modelSelect.append(new Option('<-请先获取模型', '', true, true)); modelSelect.append(new Option('<-请先获取模型', '', true, true));
} }
syncModelMirror(modelInput.get(0), modelSelect.get(0));
panel.find('#amily2_opt_max_tokens').val(settings.plotOpt_max_tokens); panel.find('#amily2_opt_max_tokens').val(settings.plotOpt_max_tokens);
panel.find('#amily2_opt_temperature').val(settings.plotOpt_temperature); panel.find('#amily2_opt_temperature').val(settings.plotOpt_temperature);
panel.find('#amily2_opt_top_p').val(settings.plotOpt_top_p); panel.find('#amily2_opt_top_p').val(settings.plotOpt_top_p);
panel.find('#amily2_opt_presence_penalty').val(settings.plotOpt_presence_penalty); panel.find('#amily2_opt_presence_penalty').val(settings.plotOpt_presence_penalty);
panel.find('#amily2_opt_frequency_penalty').val(settings.plotOpt_frequency_penalty); panel.find('#amily2_opt_frequency_penalty').val(settings.plotOpt_frequency_penalty);
panel.find('#amily2_opt_context_turn_count').val(settings.plotOpt_contextTurnCount); const contextLimit = settings.plotOpt_contextLimit ?? settings.plotOpt_contextTurnCount ?? defaultSettings.plotOpt_contextLimit;
panel.find('#amily2_opt_worldbook_char_limit').val(settings.plotOpt_worldbookCharLimit); panel.find('#amily2_opt_worldbook_char_limit').val(settings.plotOpt_worldbookCharLimit);
panel.find('#amily2_opt_context_limit').val(settings.plotOpt_contextLimit); panel.find('#amily2_opt_context_limit').val(contextLimit);
panel.find('#amily2_opt_rate_main').val(settings.plotOpt_rateMain); panel.find('#amily2_opt_rate_main').val(settings.plotOpt_rateMain);
panel.find('#amily2_opt_rate_personal').val(settings.plotOpt_ratePersonal); panel.find('#amily2_opt_rate_personal').val(settings.plotOpt_ratePersonal);
@@ -680,7 +700,6 @@ function opt_loadSettings(panel) {
opt_bindSlider(panel, '#amily2_opt_top_p', '#amily2_opt_top_p_value'); opt_bindSlider(panel, '#amily2_opt_top_p', '#amily2_opt_top_p_value');
opt_bindSlider(panel, '#amily2_opt_presence_penalty', '#amily2_opt_presence_penalty_value'); opt_bindSlider(panel, '#amily2_opt_presence_penalty', '#amily2_opt_presence_penalty_value');
opt_bindSlider(panel, '#amily2_opt_frequency_penalty', '#amily2_opt_frequency_penalty_value'); opt_bindSlider(panel, '#amily2_opt_frequency_penalty', '#amily2_opt_frequency_penalty_value');
opt_bindSlider(panel, '#amily2_opt_context_turn_count', '#amily2_opt_context_turn_count_value');
opt_bindSlider(panel, '#amily2_opt_worldbook_char_limit', '#amily2_opt_worldbook_char_limit_value'); opt_bindSlider(panel, '#amily2_opt_worldbook_char_limit', '#amily2_opt_worldbook_char_limit_value');
opt_bindSlider(panel, '#amily2_opt_context_limit', '#amily2_opt_context_limit_value'); opt_bindSlider(panel, '#amily2_opt_context_limit', '#amily2_opt_context_limit_value');
@@ -795,15 +814,22 @@ function bindConcurrentApiEvents() {
fields.forEach(field => { fields.forEach(field => {
const element = document.getElementById(field.id); const element = document.getElementById(field.id);
if (element) { if (element) {
element.addEventListener('change', function() { const saveField = function() {
if (field.sensitive) { if (field.sensitive) {
configManager.set(field.key, this.value); configManager.set(field.key, this.value);
} else { } else {
if (!extension_settings[extensionName]) extension_settings[extensionName] = {}; if (!extension_settings[extensionName]) extension_settings[extensionName] = {};
extension_settings[extensionName][field.key] = this.value; extension_settings[extensionName][field.key] = this.value;
saveSettingsDebounced(); saveSettingsDebounced();
if (field.key === 'plotOpt_concurrentModel') {
syncModelMirror(
document.getElementById('amily2_plotOpt_concurrentModel'),
document.getElementById('amily2_plotOpt_concurrentModel_select')
);
}
} }
}); };
bindInputLikeSave(element, saveField);
} }
}); });
@@ -1192,6 +1218,13 @@ export function initializePlotOptimizationBindings() {
handleSettingChange(this); handleSettingChange(this);
}); });
panel.on('input.amily2_opt change.amily2_opt', '#amily2_opt_model', function() {
syncModelMirror(
panel.find('#amily2_opt_model').get(0),
panel.find('#amily2_opt_model_select').get(0)
);
});
panel.on('change.amily2_opt', '#amily2_opt_model_select', function() { panel.on('change.amily2_opt', '#amily2_opt_model_select', function() {
const selectedModel = $(this).val(); const selectedModel = $(this).val();
if (selectedModel) { if (selectedModel) {
@@ -1408,13 +1441,20 @@ function bindJqyhApiEvents() {
element.value = field.sensitive element.value = field.sensitive
? (configManager.get(field.key) || '') ? (configManager.get(field.key) || '')
: (extension_settings[extensionName][field.key] || ''); : (extension_settings[extensionName][field.key] || '');
element.addEventListener('change', function() { const saveField = function() {
if (field.sensitive) { if (field.sensitive) {
configManager.set(field.key, this.value); configManager.set(field.key, this.value);
} else { } else {
updateAndSaveSetting(field.key, this.value); updateAndSaveSetting(field.key, this.value);
if (field.key === 'jqyhModel') {
syncModelMirror(
document.getElementById('amily2_jqyh_model'),
document.getElementById('amily2_jqyh_model_select')
);
}
} }
}); };
bindInputLikeSave(element, saveField);
} }
}); });

View File

@@ -198,10 +198,20 @@ export function updatePlotOptimizationUI() {
const settings = getMergedPlotOptSettings(); const settings = getMergedPlotOptSettings();
if (!settings) return; if (!settings) return;
const contextLimit = settings.plotOpt_contextLimit ?? settings.plotOpt_contextTurnCount ?? defaultSettings.plotOpt_contextLimit;
const worldbookCharLimit = settings.plotOpt_worldbookCharLimit ?? defaultSettings.plotOpt_worldbookCharLimit;
const worldbookEnabled = settings.plotOpt_worldbookEnabled ?? settings.plotOpt_worldbook_enabled ?? defaultSettings.plotOpt_worldbookEnabled;
let tableEnabledValue = settings.plotOpt_tableEnabled;
if (tableEnabledValue === true) {
tableEnabledValue = 'main';
} else if (tableEnabledValue === false || tableEnabledValue === undefined) {
tableEnabledValue = 'disabled';
}
$('#amily2_opt_enabled').prop('checked', settings.plotOpt_enabled); $('#amily2_opt_enabled').prop('checked', settings.plotOpt_enabled);
$('#amily2_opt_ejs_enabled').prop('checked', settings.plotOpt_ejsEnabled); $('#amily2_opt_ejs_enabled').prop('checked', settings.plotOpt_ejsEnabled);
$('#amily2_opt_worldbook_enabled').prop('checked', settings.plotOpt_worldbook_enabled); $('#amily2_opt_worldbook_enabled').prop('checked', worldbookEnabled);
$('#amily2_opt_table_enabled').prop('checked', settings.plotOpt_tableEnabled); $('#amily2_opt_table_enabled').val(tableEnabledValue);
$('#amily2_opt_main_prompt').val(settings.plotOpt_mainPrompt); $('#amily2_opt_main_prompt').val(settings.plotOpt_mainPrompt);
$('#amily2_opt_system_prompt').val(settings.plotOpt_systemPrompt); $('#amily2_opt_system_prompt').val(settings.plotOpt_systemPrompt);
@@ -213,13 +223,12 @@ export function updatePlotOptimizationUI() {
$('#amily2_opt_rate_cuckold').val(settings.plotOpt_rateCuckold); $('#amily2_opt_rate_cuckold').val(settings.plotOpt_rateCuckold);
const sliders = { const sliders = {
'#amily2_opt_context_limit': 'plotOpt_contextLimit', '#amily2_opt_context_limit': contextLimit,
'#amily2_opt_worldbook_char_limit': 'plotOpt_worldbookCharLimit', '#amily2_opt_worldbook_char_limit': worldbookCharLimit,
}; };
for (const sliderId in sliders) { for (const sliderId in sliders) {
const key = sliders[sliderId]; const value = sliders[sliderId];
const value = settings[key];
const valueDisplayId = `${sliderId}_value`; const valueDisplayId = `${sliderId}_value`;
if (value !== undefined) { if (value !== undefined) {

View File

@@ -1195,6 +1195,8 @@ function bindWorldBookSettings() {
const refreshButton = document.getElementById('table_refresh_worldbooks'); const refreshButton = document.getElementById('table_refresh_worldbooks');
const bookListContainer = document.getElementById('table_worldbook_checkbox_list'); const bookListContainer = document.getElementById('table_worldbook_checkbox_list');
const entryListContainer = document.getElementById('table_worldbook_entry_list'); const entryListContainer = document.getElementById('table_worldbook_entry_list');
const bookSearchInput = document.getElementById('table_worldbook_search');
const entrySearchInput = document.getElementById('table_entry_search');
if (!enabledCheckbox || !limitSlider || !limitValueSpan || !sourceRadios.length || !manualSelectWrapper || !refreshButton || !bookListContainer || !entryListContainer) { if (!enabledCheckbox || !limitSlider || !limitValueSpan || !sourceRadios.length || !manualSelectWrapper || !refreshButton || !bookListContainer || !entryListContainer) {
log('无法找到世界书设置的相关UI元素绑定失败。', 'warn'); log('无法找到世界书设置的相关UI元素绑定失败。', 'warn');
@@ -1380,6 +1382,26 @@ function bindWorldBookSettings() {
} }
}); });
if (bookSearchInput) {
bookSearchInput.addEventListener('input', () => {
const keyword = bookSearchInput.value.trim().toLowerCase();
bookListContainer.querySelectorAll('.checkbox-item').forEach(item => {
const text = item.textContent.toLowerCase();
item.style.display = text.includes(keyword) ? '' : 'none';
});
});
}
if (entrySearchInput) {
entrySearchInput.addEventListener('input', () => {
const keyword = entrySearchInput.value.trim().toLowerCase();
entryListContainer.querySelectorAll('.checkbox-item').forEach(item => {
const text = item.textContent.toLowerCase();
item.style.display = text.includes(keyword) ? '' : 'none';
});
});
}
enabledCheckbox.dataset.eventsBound = 'true'; enabledCheckbox.dataset.eventsBound = 'true';
log('世界书设置已成功绑定。', 'success'); log('世界书设置已成功绑定。', 'success');
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
const a0_0x5c5c0e=a0_0x4eab;function a0_0x4eab(_0x342a13,_0x41c77f){_0x342a13=_0x342a13-0x1a1;const _0x542630=a0_0x5426();let _0x4eab07=_0x542630[_0x342a13];if(a0_0x4eab['xbsEpW']===undefined){var _0x4c393d=function(_0x4742ab){const _0x3b50d9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x524eeb='',_0x22d34d='';for(let _0x3b0c97=0x0,_0x4458b1,_0x551732,_0xcece37=0x0;_0x551732=_0x4742ab['charAt'](_0xcece37++);~_0x551732&&(_0x4458b1=_0x3b0c97%0x4?_0x4458b1*0x40+_0x551732:_0x551732,_0x3b0c97++%0x4)?_0x524eeb+=String['fromCharCode'](0xff&_0x4458b1>>(-0x2*_0x3b0c97&0x6)):0x0){_0x551732=_0x3b50d9['indexOf'](_0x551732);}for(let _0x21292b=0x0,_0x93b71e=_0x524eeb['length'];_0x21292b<_0x93b71e;_0x21292b++){_0x22d34d+='%'+('00'+_0x524eeb['charCodeAt'](_0x21292b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x22d34d);};const _0x3c254c=function(_0x2f61bb,_0x5d8ee5){let _0x14804c=[],_0x312f8e=0x0,_0x433c63,_0x1e782b='';_0x2f61bb=_0x4c393d(_0x2f61bb);let _0xf84281;for(_0xf84281=0x0;_0xf84281<0x100;_0xf84281++){_0x14804c[_0xf84281]=_0xf84281;}for(_0xf84281=0x0;_0xf84281<0x100;_0xf84281++){_0x312f8e=(_0x312f8e+_0x14804c[_0xf84281]+_0x5d8ee5['charCodeAt'](_0xf84281%_0x5d8ee5['length']))%0x100,_0x433c63=_0x14804c[_0xf84281],_0x14804c[_0xf84281]=_0x14804c[_0x312f8e],_0x14804c[_0x312f8e]=_0x433c63;}_0xf84281=0x0,_0x312f8e=0x0;for(let _0x182f5b=0x0;_0x182f5b<_0x2f61bb['length'];_0x182f5b++){_0xf84281=(_0xf84281+0x1)%0x100,_0x312f8e=(_0x312f8e+_0x14804c[_0xf84281])%0x100,_0x433c63=_0x14804c[_0xf84281],_0x14804c[_0xf84281]=_0x14804c[_0x312f8e],_0x14804c[_0x312f8e]=_0x433c63,_0x1e782b+=String['fromCharCode'](_0x2f61bb['charCodeAt'](_0x182f5b)^_0x14804c[(_0x14804c[_0xf84281]+_0x14804c[_0x312f8e])%0x100]);}return _0x1e782b;};a0_0x4eab['qiLUNh']=_0x3c254c,a0_0x4eab['mXuVKl']={},a0_0x4eab['xbsEpW']=!![];}const _0xb03368=_0x542630[0x0],_0x7ed489=_0x342a13+_0xb03368,_0x5b588f=a0_0x4eab['mXuVKl'][_0x7ed489];return!_0x5b588f?(a0_0x4eab['zjwGTp']===undefined&&(a0_0x4eab['zjwGTp']=!![]),_0x4eab07=a0_0x4eab['qiLUNh'](_0x4eab07,_0x41c77f),a0_0x4eab['mXuVKl'][_0x7ed489]=_0x4eab07):_0x4eab07=_0x5b588f,_0x4eab07;}(function(_0x36ea27,_0x4f2172){const _0x246bc7=a0_0x4eab,_0x80eab3=_0x36ea27();while(!![]){try{const _0x46ea22=parseInt(_0x246bc7(0x1aa,'Fhs0'))/0x1+-parseInt(_0x246bc7(0x1b1,'z1qq'))/0x2+parseInt(_0x246bc7(0x1ae,'4*5M'))/0x3+-parseInt(_0x246bc7(0x1a6,'&8HG'))/0x4*(-parseInt(_0x246bc7(0x1a1,'4*5M'))/0x5)+parseInt(_0x246bc7(0x1a5,'(Hmz'))/0x6*(parseInt(_0x246bc7(0x1ab,']uik'))/0x7)+-parseInt(_0x246bc7(0x1b3,'&8HG'))/0x8+-parseInt(_0x246bc7(0x1a9,'EPCL'))/0x9;if(_0x46ea22===_0x4f2172)break;else _0x80eab3['push'](_0x80eab3['shift']());}catch(_0x4d482d){_0x80eab3['push'](_0x80eab3['shift']());}}}(a0_0x5426,0xa111c));export const SENSITIVE_KEYS=new Set([a0_0x5c5c0e(0x1a2,'q33p'),a0_0x5c5c0e(0x1a3,'#F)G'),a0_0x5c5c0e(0x1b8,'9XAK'),a0_0x5c5c0e(0x1b7,']uik'),a0_0x5c5c0e(0x1a4,']Aaa'),a0_0x5c5c0e(0x1b4,'6$Ev'),a0_0x5c5c0e(0x1a8,'0!NU'),a0_0x5c5c0e(0x1af,'xrIJ')]);function a0_0x5426(){const _0x4af114=['W4xdKW/cMt7dM1ldQmk9za','xmkGWRFcLmkcW4lcMa','WR3cUG7dSIWIwSkxWO/dU8oFAa','WPZcGLJdN0RcMaldT8kXsmoJncy','W695W57cJmocWRFdM8kSF8oYDa','W6VdQYdcOuRcMhJcTKpcJuKXW4m','aCkqWQSMwSkQWPNdPsNdUHCZ','k8knW50efh8qltFdKmowWQddJq','i8kdWQqyxxfDWPO','W6ldI0hcGtZdPCopfCk7hSkOiW','pSkGWP/dPujtWR3dMqtdVSowpG','W4tdQ8oDeCoaWQdcKCo6W5bO','u8kZkapcKKRdIdVcV8oLW5DBW6C','lv05sCoAW4m2WQhcGmoCj00','WROsW7mPtGqtWO1SjSkQWQ4','WRVcUqxdScOMdCk2WQ3dOSoQCSo6','wYCXW7LIWRXhb8ogWQS','c8oWkSoLWPldU2rjW5lcGCknca','ySoGh8o3WRVdV2y/Fc56W7S','CSoyWOrcydXamJVdVa','W5z8W69bpCkdWO7dRhBdJ8kQW7hcVeeshmo0W6f3WQBdHJVcNwW','W6xcVX/dTfJcS8oK','mmkHW73cLZmRWP7dOW','DCogWPWqCeC','WQpcKHZdGuBcP8oChCkVoCkYg8kMWQW'];a0_0x5426=function(){return _0x4af114;};return a0_0x5426();} const a0_0x298f9d=a0_0x4d90;function a0_0x4d90(_0xd8eb08,_0x30c1ec){_0xd8eb08=_0xd8eb08-0xa9;const _0x1c435d=a0_0x1c43();let _0x4d9017=_0x1c435d[_0xd8eb08];if(a0_0x4d90['xLNknf']===undefined){var _0x1e898b=function(_0x3ade65){const _0xfe7414='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4a88c8='',_0x33a5d0='';for(let _0x3528da=0x0,_0x3dd198,_0x2a4387,_0x36309c=0x0;_0x2a4387=_0x3ade65['charAt'](_0x36309c++);~_0x2a4387&&(_0x3dd198=_0x3528da%0x4?_0x3dd198*0x40+_0x2a4387:_0x2a4387,_0x3528da++%0x4)?_0x4a88c8+=String['fromCharCode'](0xff&_0x3dd198>>(-0x2*_0x3528da&0x6)):0x0){_0x2a4387=_0xfe7414['indexOf'](_0x2a4387);}for(let _0x3e3afd=0x0,_0x12283b=_0x4a88c8['length'];_0x3e3afd<_0x12283b;_0x3e3afd++){_0x33a5d0+='%'+('00'+_0x4a88c8['charCodeAt'](_0x3e3afd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x33a5d0);};const _0x2d8f09=function(_0x162190,_0x4d05d1){let _0x19193f=[],_0x2458f9=0x0,_0x24bd2e,_0x475342='';_0x162190=_0x1e898b(_0x162190);let _0x2a0921;for(_0x2a0921=0x0;_0x2a0921<0x100;_0x2a0921++){_0x19193f[_0x2a0921]=_0x2a0921;}for(_0x2a0921=0x0;_0x2a0921<0x100;_0x2a0921++){_0x2458f9=(_0x2458f9+_0x19193f[_0x2a0921]+_0x4d05d1['charCodeAt'](_0x2a0921%_0x4d05d1['length']))%0x100,_0x24bd2e=_0x19193f[_0x2a0921],_0x19193f[_0x2a0921]=_0x19193f[_0x2458f9],_0x19193f[_0x2458f9]=_0x24bd2e;}_0x2a0921=0x0,_0x2458f9=0x0;for(let _0x56709d=0x0;_0x56709d<_0x162190['length'];_0x56709d++){_0x2a0921=(_0x2a0921+0x1)%0x100,_0x2458f9=(_0x2458f9+_0x19193f[_0x2a0921])%0x100,_0x24bd2e=_0x19193f[_0x2a0921],_0x19193f[_0x2a0921]=_0x19193f[_0x2458f9],_0x19193f[_0x2458f9]=_0x24bd2e,_0x475342+=String['fromCharCode'](_0x162190['charCodeAt'](_0x56709d)^_0x19193f[(_0x19193f[_0x2a0921]+_0x19193f[_0x2458f9])%0x100]);}return _0x475342;};a0_0x4d90['wJfnjd']=_0x2d8f09,a0_0x4d90['VbAmzd']={},a0_0x4d90['xLNknf']=!![];}const _0x45efbe=_0x1c435d[0x0],_0x345ace=_0xd8eb08+_0x45efbe,_0xdfb673=a0_0x4d90['VbAmzd'][_0x345ace];return!_0xdfb673?(a0_0x4d90['EzvPdR']===undefined&&(a0_0x4d90['EzvPdR']=!![]),_0x4d9017=a0_0x4d90['wJfnjd'](_0x4d9017,_0x30c1ec),a0_0x4d90['VbAmzd'][_0x345ace]=_0x4d9017):_0x4d9017=_0xdfb673,_0x4d9017;}(function(_0x2671ac,_0x21e49f){const _0x25300c=a0_0x4d90,_0x20984a=_0x2671ac();while(!![]){try{const _0x4e2224=-parseInt(_0x25300c(0xbf,'NTpu'))/0x1*(-parseInt(_0x25300c(0xae,'EDUi'))/0x2)+parseInt(_0x25300c(0xb1,'5aC6'))/0x3+parseInt(_0x25300c(0xb6,'RG1E'))/0x4+parseInt(_0x25300c(0xb9,'K$ck'))/0x5+-parseInt(_0x25300c(0xb8,'K$ck'))/0x6+parseInt(_0x25300c(0xaf,'r@&b'))/0x7+-parseInt(_0x25300c(0xb0,'TFY!'))/0x8*(parseInt(_0x25300c(0xaa,'TX(H'))/0x9);if(_0x4e2224===_0x21e49f)break;else _0x20984a['push'](_0x20984a['shift']());}catch(_0x550d4c){_0x20984a['push'](_0x20984a['shift']());}}}(a0_0x1c43,0x3d097));function a0_0x1c43(){const _0x3b4529=['cCoTW6bbWPLgWQZdLCkTDMyR','W5H0WRZdGCo4WOu','palcMSoqDSkVnmoUiH8','A8o6kwldSSo6jCoja3lcU8kNW6C','W7CPF1fOtM3cGmkMcXKCWR0','qSkgW7LSpComW4ldR8onoxS','W7a2fmoOWRxdGSkTy8o6W6G','ws0BlCkKW5KJW6Gu','WPCGW5RcRCo3WP3cPJytWP8SW40','W6ddR1ldLLdcUvyr','WROvW7O/WPXpEqBdLLFcLmkj','x0fLlSowW59CWOldUxuyErBcOConwshcLZ5jWP0arcm','WOxdLCkMhKmHW7aMi8kN','W4qLW6ygW6ykemop','WOGkpXrPWPXssmkMcCkRqW','lmoBbmk1W5jpFNVdKYWbCG','W69JW7NcLdyTWROjvG','cK9zW5qGB8kgW7ZdRNactG','dK9yW54HBSkjW67dHxCIDW','BY/dN8kLW4XYWO1Tlmk5','A8o7lwpdSCo8ASoPdNJcL8kJ','WPtcQfLOWQdcMafYW5PXW4XFW5D8','W7VcM8kDW4LdgfNdUsPO','W4aHCJ12WOK9CdqpW5Ld','WPqPW69xWOr8W6mesSoD'];a0_0x1c43=function(){return _0x3b4529;};return a0_0x1c43();}export const SENSITIVE_KEYS=new Set([a0_0x298f9d(0xc1,'AAB@'),a0_0x298f9d(0xbc,'0)lj'),a0_0x298f9d(0xb2,'G2(k'),a0_0x298f9d(0xa9,'^]JU'),a0_0x298f9d(0xb3,'dDKl'),a0_0x298f9d(0xbd,'FB9('),a0_0x298f9d(0xac,'&m8U'),a0_0x298f9d(0xad,'7tZx')]);