From b3c2200c7ed7da2e8f4b89ec881a3e9fd8866131 Mon Sep 17 00:00:00 2001 From: SillyStar-Github <90102598+SillyStar-Github@users.noreply.github.com> Date: Mon, 6 Apr 2026 16:33:31 -0400 Subject: [PATCH] lag fixes + dll updater --- MelonLoader/AssetStore/DllStore.cs | 111 ++++++++++++++++++ MelonLoader/Core.cs | 7 +- MelonLoader/FileLoader.cs | 45 ++++++- .../BaseTextObjects/InGameText_Patch.cs | 2 +- .../BaseTextObjects/TextMeshProUGUI_Patch.cs | 2 +- .../ButtonObjects/InGameBtn_Patch.cs | 33 +++++- .../GameObjects/MinorObjects/Money_Patch.cs | 1 + .../Patches/GameObjects/UIDifficulty_Patch.cs | 5 +- .../Patches/Managers/InGameUI_Patch.cs | 12 +- .../Patches/Managers/TowerManager_Patch.cs | 5 +- ...PvZ Fusion Translator [MelonLoader].csproj | 7 ++ MelonLoader/Resources/ModUpdateUtil.exe | Bin 0 -> 128952 bytes MelonLoader/Utils.cs | 26 +++- 13 files changed, 231 insertions(+), 25 deletions(-) create mode 100644 MelonLoader/AssetStore/DllStore.cs create mode 100644 MelonLoader/Resources/ModUpdateUtil.exe diff --git a/MelonLoader/AssetStore/DllStore.cs b/MelonLoader/AssetStore/DllStore.cs new file mode 100644 index 0000000..54eea26 --- /dev/null +++ b/MelonLoader/AssetStore/DllStore.cs @@ -0,0 +1,111 @@ +using MelonLoader; +using MelonLoader.Utils; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PvZ_Fusion_Translator.AssetStore +{ + public static class DllStore + { + public static Dictionary dllData = new Dictionary() + { + { "Blooms_QOL.dll", null }, + { "HideMetalObjects.dll", null }, + { "PvZ_Fusion_Translator.dll", null } + }; + public static bool updateOnClose = false; + + public static void Init(string gameVersion) => TryGetNewDll(gameVersion); + + public static void TryGetNewDll(string gameVersion) + { + bool ableToUpdate = true; + string unableReason = ""; + string getGameVersionRequest = Utils.GetDataFromWeb("https://raw.githubusercontent.com/SillyStar-Github/PvZF-Translation-DLLs/refs/heads/main/CURRENT_GAME_VER").Result; + if(getGameVersionRequest != null) + { + Log.LogDebug($"Requst game version: {getGameVersionRequest} -> {Utils.CalculateGameVersion(getGameVersionRequest)}"); + Log.LogDebug($"This game version: {gameVersion} -> {Utils.CalculateGameVersion(gameVersion)}"); + if (Utils.CalculateGameVersion(getGameVersionRequest) != Utils.CalculateGameVersion(gameVersion)) + { + ableToUpdate = false; + unableReason = "Incorrect game version..."; + } + } + else + { + ableToUpdate = false; + unableReason = "Couldn't get latest game version info..."; + } + + if (ableToUpdate) + { + foreach(var key in dllData.Keys) + { + byte[] newDllRequest = Utils.GetByteDataFromWeb($"https://raw.githubusercontent.com/SillyStar-Github/PvZF-Translation-DLLs/refs/heads/main/{key}").Result; + if(newDllRequest != null) + { + dllData[key] = newDllRequest; + SaveNewDll(key); + } + else + { + Log.LogError($"Couldn't get latest {key} data!"); + } + } + } + else + { + Log.LogError($"Unable to update! {unableReason}"); + } + } + + public static void SaveNewDll(string name) + { + byte[] newDllData = dllData[name]; + if(newDllData != null) + { + string basePath = MelonEnvironment.ModsDirectory; + string toSavePath = Path.Combine(basePath, name + ".update"); + File.WriteAllBytes(toSavePath, newDllData); + } + } + + public static void UpdateNewDll() + { + foreach(var pair in dllData) + { + if(pair.Value != null) + { + updateOnClose = true; + } + } + + if(updateOnClose) + { + int processId = (Process.GetCurrentProcess().Id); + + var assembly = Core.Instance.MelonAssembly.Assembly; + string programName = "PvZ_Fusion_Translator.Resources.ModUpdateUtil.exe"; + + using var exeResourceStream = assembly.GetManifestResourceStream(programName); + string tempPath = Path.Combine(Path.GetTempPath(), "ModUpdateUtil.exe"); + using (var fileStream = File.Create(tempPath)) + { + exeResourceStream.CopyTo(fileStream); + } + + Process.Start(new ProcessStartInfo + { + FileName = tempPath, + Arguments = $"{processId.ToString()} {string.Join(",", dllData.Keys)} {MelonEnvironment.ModsDirectory}", + UseShellExecute = true + }); + } + } + } +} diff --git a/MelonLoader/Core.cs b/MelonLoader/Core.cs index 91c491d..984ea2c 100644 --- a/MelonLoader/Core.cs +++ b/MelonLoader/Core.cs @@ -31,6 +31,9 @@ namespace PvZ_Fusion_Translator { base.OnInitializeMelon(); Instance = this; + + DllStore.Init(MelonLoader.InternalUtils.UnityInformationHandler.GameVersion); + Config(); #if MULTI_LANGUAGE FileLoader.LoadLanguage(); @@ -40,6 +43,7 @@ namespace PvZ_Fusion_Translator AudioStore.Init(); FontStore.Init(); Utils.RegisterPlantIndices(); + //Utils.RegisterRecipeLinks(); } @@ -56,6 +60,7 @@ namespace PvZ_Fusion_Translator #if MULTI_LANGUAGE FileLoader.SaveLanguage(); #endif + DllStore.UpdateNewDll(); #if OBFUSCATE && !RELEASE CheckSumStore.ConvertMD5Json(); #endif @@ -80,7 +85,7 @@ namespace PvZ_Fusion_Translator if (Input.GetKeyDown(KeyCode.Delete)) { - Utils.OpenTrello(); + Utils.OpenOnlineAlmanac(); } TowerManager_Patch.UpdateText(); diff --git a/MelonLoader/FileLoader.cs b/MelonLoader/FileLoader.cs index 0660f12..bb3c471 100644 --- a/MelonLoader/FileLoader.cs +++ b/MelonLoader/FileLoader.cs @@ -41,6 +41,10 @@ namespace PvZ_Fusion_Translator internal static void LoadStrings(Utils.LanguageEnum language) { string stringDir = GetAssetDir(AssetType.Strings, Utils.Language); + if (!Directory.Exists(stringDir)) + { + Directory.CreateDirectory(stringDir); + } if(!Utils.useLocal) { @@ -128,6 +132,14 @@ namespace PvZ_Fusion_Translator } // load almanacs + + string almanacDir = GetAssetDir(AssetType.Almanac, Utils.Language); + + if(!Directory.Exists(almanacDir)) + { + Directory.CreateDirectory(almanacDir); + } + string plantAlmanacContent = Utils.GetDataFromWeb($"https://raw.githubusercontent.com/Teyliu/PVZF-Translation/refs/heads/main/PvZ_Fusion_Translator/Localization/{Utils.Language.ToString()}/Almanac/LawnStringsTranslate.json").Result; if(plantAlmanacContent != null) @@ -136,7 +148,6 @@ namespace PvZ_Fusion_Translator } else { - string almanacDir = GetAssetDir(AssetType.Almanac, Utils.Language); string path = Path.Combine(almanacDir, "LawnStringsTranslate.json"); if(File.Exists(path)) { @@ -152,7 +163,6 @@ namespace PvZ_Fusion_Translator } else { - string almanacDir = GetAssetDir(AssetType.Almanac, Utils.Language); string path = Path.Combine(almanacDir, "ZombieStringsTranslate.json"); if(File.Exists(path)) { @@ -219,7 +229,14 @@ namespace PvZ_Fusion_Translator } string almanacDir = GetAssetDir(AssetType.Almanac, Utils.Language); + + if(!Directory.Exists(almanacDir)) + { + Directory.CreateDirectory(almanacDir); + } + string plantAlmanacPath = Path.Combine(almanacDir, "LawnStringsTranslate.json"); + if(File.Exists(plantAlmanacPath)) { AlmanacPlantMenu_Patch.almanacJson = File.ReadAllText(plantAlmanacPath); @@ -422,12 +439,16 @@ namespace PvZ_Fusion_Translator string baseUrl = $"https://raw.githubusercontent.com/Teyliu/PVZF-Translation/refs/heads/main/PvZ_Fusion_Translator/"; string url = baseUrl + path; - byte[] imageData = Utils.GetImageDataFromWeb(url).Result; + byte[] imageData = Utils.GetByteDataFromWeb(url).Result; if(imageData != null) { string fileName = Path.GetFileName(downloadPath); Texture2D texture2D = Utils.LoadImage(imageData); TextureStore.textureDict[fileName] = imageData; + if(!Directory.Exists(Path.GetDirectoryName(downloadPath))) + { + Directory.CreateDirectory(Path.GetDirectoryName(downloadPath)); + } File.WriteAllBytes(downloadPath, imageData); } } @@ -531,12 +552,16 @@ namespace PvZ_Fusion_Translator string baseUrl = $"https://raw.githubusercontent.com/Teyliu/PVZF-Translation/refs/heads/main/PvZ_Fusion_Translator/"; string url = baseUrl + path; - byte[] imageData = Utils.GetImageDataFromWeb(url).Result; + byte[] imageData = Utils.GetByteDataFromWeb(url).Result; if(imageData != null) { string fileName = Path.GetFileName(downloadPath); Texture2D texture2D = Utils.LoadImage(imageData); TextureStore.spriteDict[fileName] = imageData; + if(!Directory.Exists(Path.GetDirectoryName(downloadPath))) + { + Directory.CreateDirectory(Path.GetDirectoryName(downloadPath)); + } File.WriteAllBytes(downloadPath, imageData); } } @@ -641,12 +666,16 @@ namespace PvZ_Fusion_Translator string baseUrl = $"https://raw.githubusercontent.com/Teyliu/PVZF-Translation/refs/heads/main/PvZ_Fusion_Translator/"; string url = baseUrl + path; - byte[] imageData = Utils.GetImageDataFromWeb(url).Result; + byte[] imageData = Utils.GetByteDataFromWeb(url).Result; if (imageData != null) { string fileName = Path.GetFileName(downloadPath); Texture2D texture2D = Utils.LoadImage(imageData); TextureStore.textureDict[fileName] = imageData; + if(!Directory.Exists(Path.GetDirectoryName(downloadPath))) + { + Directory.CreateDirectory(Path.GetDirectoryName(downloadPath)); + } File.WriteAllBytes(downloadPath, imageData); } } @@ -743,12 +772,16 @@ namespace PvZ_Fusion_Translator string baseUrl = $"https://raw.githubusercontent.com/Teyliu/PVZF-Translation/refs/heads/main/PvZ_Fusion_Translator/"; string url = baseUrl + path; - byte[] imageData = Utils.GetImageDataFromWeb(url).Result; + byte[] imageData = Utils.GetByteDataFromWeb(url).Result; if (imageData != null) { string fileName = Path.GetFileName(downloadPath); Texture2D texture2D = Utils.LoadImage(imageData); TextureStore.textureDict[fileName] = imageData; + if(!Directory.Exists(Path.GetDirectoryName(downloadPath))) + { + Directory.CreateDirectory(Path.GetDirectoryName(downloadPath)); + } File.WriteAllBytes(downloadPath, imageData); } } diff --git a/MelonLoader/Patches/BaseTextObjects/InGameText_Patch.cs b/MelonLoader/Patches/BaseTextObjects/InGameText_Patch.cs index 171ec7d..936ac63 100644 --- a/MelonLoader/Patches/BaseTextObjects/InGameText_Patch.cs +++ b/MelonLoader/Patches/BaseTextObjects/InGameText_Patch.cs @@ -107,7 +107,7 @@ namespace PvZ_Fusion_Translator.Patches.BaseTextObjects { txt.text = superEditorPlantMatch; } - else if((Regex.Match(txt.text, @"(]*>.*?)", RegexOptions.Singleline).Success) && !StringStore.translationString.ContainsKey(txt.text)) + else if((Regex.Match(txt.text, @"(]*>.*?)", RegexOptions.Singleline).Success) && (!StringStore.translationString.ContainsKey(txt.text) && !StringStore.fsTipCollectionString.ContainsKey(txt.text) && !StringStore.izTipCollectionString.ContainsKey(txt.text))) { txt.text = StringStore.TranslateColorText(txt.text, true); if (txt.gameObject.name.Contains("main")) diff --git a/MelonLoader/Patches/BaseTextObjects/TextMeshProUGUI_Patch.cs b/MelonLoader/Patches/BaseTextObjects/TextMeshProUGUI_Patch.cs index d9e6730..d5d9d1c 100644 --- a/MelonLoader/Patches/BaseTextObjects/TextMeshProUGUI_Patch.cs +++ b/MelonLoader/Patches/BaseTextObjects/TextMeshProUGUI_Patch.cs @@ -32,7 +32,7 @@ namespace PvZ_Fusion_Translator.Patches.BaseTextObjects { __instance.text = __instance.text.Replace("\n", " "); - if (__instance.name == "LevelName2" || __instance.name == "LevelName3") + if ((__instance.name == "LevelName2" || __instance.name == "LevelName3") && !(__instance.gameObject.transform.parent.name.Contains("Difficulty") || __instance.gameObject.name.Contains("Difficulty"))) { TowerManager_Patch.updatedText.Add(__instance.transform); } diff --git a/MelonLoader/Patches/GameObjects/ButtonObjects/InGameBtn_Patch.cs b/MelonLoader/Patches/GameObjects/ButtonObjects/InGameBtn_Patch.cs index dda9ac9..f223c6d 100644 --- a/MelonLoader/Patches/GameObjects/ButtonObjects/InGameBtn_Patch.cs +++ b/MelonLoader/Patches/GameObjects/ButtonObjects/InGameBtn_Patch.cs @@ -9,9 +9,38 @@ namespace PvZ_Fusion_Translator.Patches.GameObjects.ButtonObjects [HarmonyPatch(typeof(InGameBtn))] public static class InGameBtn_Patch { - [HarmonyPatch(nameof(InGameBtn.Update))] + [HarmonyPatch(nameof(InGameBtn.Start))] [HarmonyPostfix] - private static void Update(InGameBtn __instance) + private static void Start(InGameBtn __instance) + { + Transform sceneText = __instance.transform.FindChild("SceneText"); + if(sceneText != null) + { + TextMeshProUGUI sceneTextTMP = sceneText.transform.GetComponent(); + if(sceneTextTMP != null) + { + sceneTextTMP = AssetStore.StringStore.TranslateText(sceneTextTMP); + } + Transform sceneTextShadow = sceneText.transform.FindChild("SceneText"); + if(sceneTextShadow != null) + { + TextMeshProUGUI sceneTextShadowTMP = sceneTextShadow.transform.GetComponent(); + if (sceneTextShadowTMP != null) + { + sceneTextShadowTMP = AssetStore.StringStore.TranslateText(sceneTextShadowTMP); + } + } + } + + foreach(TextMeshProUGUI text in __instance.transform.GetComponentsInChildren()) + { + text.text = StringStore.TranslateText(text.text); + } + } + + [HarmonyPatch(nameof(InGameBtn.ChangeStrings))] + [HarmonyPostfix] + private static void ChangeStrings(InGameBtn __instance) { Transform sceneText = __instance.transform.FindChild("SceneText"); if(sceneText != null) diff --git a/MelonLoader/Patches/GameObjects/MinorObjects/Money_Patch.cs b/MelonLoader/Patches/GameObjects/MinorObjects/Money_Patch.cs index 12ede0d..3caa1d1 100644 --- a/MelonLoader/Patches/GameObjects/MinorObjects/Money_Patch.cs +++ b/MelonLoader/Patches/GameObjects/MinorObjects/Money_Patch.cs @@ -11,6 +11,7 @@ namespace PvZ_Fusion_Translator.Patches.GameObjects.MinorObjects [HarmonyPatch(nameof(Money.Update))] private static void Update(Money __instance) { + if (!Utils.CheckForUntranslatedText(__instance.beanCount.text)) return; __instance.beanCount.text = StringStore.TranslateText(__instance.beanCount.text); __instance.beanCount2.text = StringStore.TranslateText(__instance.beanCount2.text); } diff --git a/MelonLoader/Patches/GameObjects/UIDifficulty_Patch.cs b/MelonLoader/Patches/GameObjects/UIDifficulty_Patch.cs index b914913..c7b6c5b 100644 --- a/MelonLoader/Patches/GameObjects/UIDifficulty_Patch.cs +++ b/MelonLoader/Patches/GameObjects/UIDifficulty_Patch.cs @@ -14,11 +14,8 @@ namespace PvZ_Fusion_Translator.Patches.GameObjects [HarmonyPostfix] private static void Update(UIDifficulty __instance) { + if (!Utils.CheckForUntranslatedText(__instance.t.text)) return; __instance.t.text = StringStore.TranslateText(__instance.t.text); - foreach(TextMeshProUGUI text in __instance.GetComponentsInChildren()) - { - text.text = StringStore.TranslateText(text.text); - } } } } \ No newline at end of file diff --git a/MelonLoader/Patches/Managers/InGameUI_Patch.cs b/MelonLoader/Patches/Managers/InGameUI_Patch.cs index 670187b..fac7ed0 100644 --- a/MelonLoader/Patches/Managers/InGameUI_Patch.cs +++ b/MelonLoader/Patches/Managers/InGameUI_Patch.cs @@ -15,10 +15,10 @@ namespace PvZ_Fusion_Translator.Patches.Managers [HarmonyPostfix] private static void Start(InGameUI __instance) { - foreach(TextMeshProUGUI text in __instance.T) + foreach (TextMeshProUGUI text in __instance.T) { if (text.text == null) continue; - + string originalText = text.text; text.text = text.text.Replace("\n", " "); Regex checkFusionChallenge = new Regex("^超级([^\\s:]+)(:?挑战1?)"); @@ -47,10 +47,10 @@ namespace PvZ_Fusion_Translator.Patches.Managers [HarmonyPostfix] private static void SetUniqueText(InGameUI __instance) { - foreach(TextMeshProUGUI text in __instance.T) + foreach (TextMeshProUGUI text in __instance.T) { if (text.text == null) continue; - + string originalText = text.text; text.text = text.text.Replace("\n", " "); Regex checkFusionChallenge = new Regex("^超级([^\\s:]+)(:?挑战1?)"); @@ -79,10 +79,10 @@ namespace PvZ_Fusion_Translator.Patches.Managers [HarmonyPostfix] private static void SetLevelName(InGameUI __instance) { - foreach(TextMeshProUGUI text in __instance.T) + foreach (TextMeshProUGUI text in __instance.T) { if (text.text == null) continue; - + string originalText = text.text; text.text = text.text.Replace("\n", " "); Regex checkFusionChallenge = new Regex("^超级([^\\s:]+)(:?挑战1?)"); diff --git a/MelonLoader/Patches/Managers/TowerManager_Patch.cs b/MelonLoader/Patches/Managers/TowerManager_Patch.cs index 221b6e5..3088e45 100644 --- a/MelonLoader/Patches/Managers/TowerManager_Patch.cs +++ b/MelonLoader/Patches/Managers/TowerManager_Patch.cs @@ -17,7 +17,10 @@ namespace PvZ_Fusion_Translator.Patches.Managers { if (transform != null) { - transform.GetComponent().text = StringStore.TranslateText(transform.GetComponent().text); + if(transform.gameObject.active) + { + transform.GetComponent().text = StringStore.TranslateText(transform.GetComponent().text); + } } } } diff --git a/MelonLoader/PvZ Fusion Translator [MelonLoader].csproj b/MelonLoader/PvZ Fusion Translator [MelonLoader].csproj index e6ea827..18fcea9 100644 --- a/MelonLoader/PvZ Fusion Translator [MelonLoader].csproj +++ b/MelonLoader/PvZ Fusion Translator [MelonLoader].csproj @@ -31,6 +31,7 @@ + @@ -390,6 +391,7 @@ + @@ -550,6 +552,10 @@ + + + + @@ -558,5 +564,6 @@ + \ No newline at end of file diff --git a/MelonLoader/Resources/ModUpdateUtil.exe b/MelonLoader/Resources/ModUpdateUtil.exe new file mode 100644 index 0000000000000000000000000000000000000000..15147521809cd36d3da6907960669f636332f76c GIT binary patch literal 128952 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

eIUrHxlqKwKqKafw z#xwLeQ!1b&xhaglY_XuQT~XLp-hvc*sL~;rAnsyWY~ol!cgxT% zr@yDI>?$i6A2$}e*(xD&?#7Gn(mN&A~7a)bt>G{|M(xgm7kr@M4wgYsVAP zq|eERo?df$V@*IdMaUR_3({yG`v8^gSfYQ%)k~sBwI!9@%3|r`Y&{BKzUGE1r&K!F zQ%67%!VX3q7qXxG<5>H-ao(dPcG?>vE$*W4dwWBy5Y<{*#xpm9sH08y4yjRSXpMSU z30@A-KI?h2&;bjWt6P>WZ3=rX^%M4rhmhw``z3lG7t14z4hXW+L`~8eq?7Rvb~~D$ z#e;euSH}d|YcRYXE&5`~Zbwt4C!D|APgu#{IQJf<3ZhwK7aQpyWX2Lnu6N-44NB3s zHECv+Y<`M!LZX^G+O{TDZ+1IBHOl*GB%{9V@f?u7mp$8X7!3V!XklrqP4ku>r>${> z+v;tU)NERmg-^VU;pvs@e+7xg7_(3c7RPVvO?Rksz)M&td&vJ5%#c@S@T#m3>ldL_ z-Fi)iOAG0@6SWxc@mtwVC!u09(&G8FC~M}jEbZ!OoBEY#uNva3Gep_UEglJmM7&i% z3S>sx)Z3!Hs<$`YRY~rZw>1?Q<(&zoOjCRmq_p7i#(B?EJhHs8mP+(~^j>B+yenaq zq|YJ|7d;bCGaq+5zafE(q*_L3Q86u-O4yTP6?$M}eWlJE+H`Zi6y&S2Skrk4d-?Z=!iTWZ-Z>D|jq@a-&btc+{Goa35%qrzCJjN=p`NdkTP87^;L zz)woupC8PJ#X*K zRoQa1Nmxtvb3U`mBiH{rg%EZMCXS0etot+g#V`lWN0_|mQMvwX3L)0VwCnI8EjRIz zafy$Nus@=WK=JjhDDb(@P<*!fRrXyJou6$er`VI9VaGpJVpL_bOkpruAJg(_{zr_R~P0 zH)cfI4dqCpV}1^GkLZ|Z9sjUnfZt8E+?j=L`J3b53#H|lN;`(5I0%>^=0?o%(gTP9 z2n_uWfFPD0l=Tk?ArHNtfzYnRjBKw=MUZc$&v|0W$>(P(+vTU8CxrNv9hMJ(x6KIj z%na<3>z~B-P>@aY-PEJUT!zv~l^2ZCV}{aAd(6o0=bwN6c^c^iIQP11_^NDE+0AbY zvR{C86>{RM7V0goXm8D5Xh3LWN{{*Vm9PC~+KcS9k0AjsB!!a2Ldu7EsHfoQMhq?)@V#IA~Sj?X|Aw?37S zGBz_EpYjCRM=nBG*qx9-&j5u}=W`NLE7xD*08k@)rH^wjpSea-=a+HIF0F^{>ciBR zRBxS6NP+U|d_pR8wbiP`AV64G!q#?S5VFBuK;0&U%H2k!XXYBW{7vxwV)V2OQ|abf zcF$9QteElKH8g7i`_Q0H{GK>K$p3^y}l-O zs#zdynm8*)2aN|%%_Y#quqB_03^J#P3=@o7)LYh?qXibm6re4BQPGdG^d3$N8^jl2l*C64X zS(T$*RX0mW?JljGbqyi4>Nx7Sy2;nFa%8VR$00|5K?v!c>#9(%nfaJYuKzDW$V@F; zj&1`otUZ%vz<2h5yQ>bFkGZugP=vK!QfEGvt&Q=utPE4Xy=0bJAJk^)-|#qBPM`UW zjOv@{+-zC}3#Q5PZ@hEaaZH*dU)mb=$o zMI*<2^DdESB%@}+LyZ}9p2wAsR{|Z>)o3W4@ezI_aKv}Fdu21ifRqT=1bEgRHOh}) z391jl4!~&GFbxcLaI|SSVL~GkEk90`cA+-u=h{Iw^+Qop#yrqtC~hyJ*_nuNH%#uC?Gr$=H$%Z(mYbNK2kHlmAjSpJRIBm1CHmwyur zma)I#J4@h!@k@AM-2Dg6*#{@>ZT52XEBhG?mfkvvnn+Mp7)9Cas*gBlcfsaO{Ii%0 zN^E}VR-s9ldT~ucrr5=0_QXkq$nqOSIkXW@VPc_Hf-kgn86eR01D zHrmHWLA^M`LPvFo7|(@DZwY8rt#r)AkUvFX6z~ zGPGM^e2n6LZWVXlXluvW`cKitLLadDQ_gu&RulUSHe-UF&MFB}&0Pl49=kfd-Fr03 z*F6SK@EtG{`GS1FiWJ8_gI2T02%IvMzG!TnkIr{F_k*4&mH5hReshqmIE%FcE%QVu zgaW6E^hTF>+6bJYN_WkXcnSh&_5-PAKL{)R6Nk2I+0so-P{cl9*G#w-SgIK}R5RF+ z0uovaZH)&>LQj^RU_LGRg5K>aDIU-_Qbj5i1$pQr{p<%WfqC4%Y$^RiISqJ9X}smtm7q%${%&QoiKgHtUl@8#<@J69hqIyHlBJ)^T6uK0BW`ho(_-+=qPHMF z+NL*!jrEbEK{)q#=Kl3WuPzWgaHBH*D3r9WMe z>pJasAuyM4!d1N#!nq>J+sgL714F8C7O!&iDi5#9U^fa@$Xza;xhL0Sq%=U1m2B?8 z(ok6m{m2{h9`(NM?e%j0*1hnP80ZiB5j{a0D;=yU1qxH|QE!{~Z7=74wV!~4PpGVt zEDHbbIzK7qLXRvsBT zL3G6{8G0+<;M7}OzKC1f?2QRphc?5BSxpb|%==JwbDUX=AXH|~jxIo*()B~!*R1A6 zW7@Tro|fIgvFS!*DhSV@Wf~uiscE!zgB*8lxDAC{8o2P5DnAKt#08!Rm4y93XxsDy zo@g&v)&a*W{_fK9rlsY4^23&YM=1OZ-V*P_aiP+|zH0NeJzQ8vyOSoI@id-!zvTx3 z`XIbRd=MA7I8>%EumfO;FZ^nF(5t)fmUth|5S2~_un7BAI9x<~hktnaptpD9ZBYa~ zCn{a+myn9t&CSHNamd>G6ZB8qow%>JiV3l6{>C}2at(DfVSw(p&M6NKNOfym*ja1R zK51Q#Wh=8kBDoIxYmp7L2=zGuBRY^o4i^4-Xg9W#dVFiJ}j=w z#dW&4-Y2e$#q}O>4T|dmajg~Cd~tn2T<3{vk+_D%wMtxb#kEg-eY^O*R$SYQ{R4{D zVbXrcnn?9A@Y?9S}&0KuR^A_;%Qz-F^MNftJ{ z>;8eHVw+ZKsX$9DA|mfKt*B^u8Y^JXP-8_*TkK1fYP8g*Ew$N}`qGwKo{y5>=iEE9 zJG%*B-|O%5`F_98n@?tT?mg$+bI(2Z+`MD(R*%s68Y&pGc=TL1$0=0u8z}Zeu-!#Hb7zt>;Q=+KYx)0 zm<>Zi8;N)O`}+$nSw9gOegd7{|6M2c{4a;I{UFljdj_IEHdIFY@z79b49lSYd}!zh z>RAhBvY;y+`{i&sZs&UjtQq7oL>@%sLPW;>SY3W-kE#5Q-~Vb;`t^&4hF;r7v-@QK}mb8rl6+sV0&GP>6?%gPt!LqIFas|Hay?se9yp5 z2;76fV>0<-dnp-#PZZWCJwrpCg}YQpztd-w(v<%RzGvWF1Yr^61q!lxGajpu{_U}0 zs`y|JRpnhhhAQts%55Ed&%i?&IvbEq719anbP#|02zZ@X{tR9f;;l!#8N>4LOD`J% z|0v%xa0S6f`4uC62jZW2CszU+%duBC>}&5C)a!9SA8x2_JH+=4{P3{RA-r;UXsGiT z5_~L|U_QN#3wqL>@1GfZ4Ga3*`@;p)!}ko_L+GNuHzM6}PpXifL+P6I5sP#yrpuUq z9Ze_w==k*F5h!E(x(wmBBK%)|MhcF0wCsJXucK+p`)GG|-v8?O^yCrn(X_t%x}gGZ zzCJY6*^QK*rj%&dSiZ+3zddJ=ZqIuo$Zt2_Gw{_6wJ#vG(@5=ZGqoe6eQbCS`Rhx! zy*FH3d-$G#*@O(%tB7REo>Cz_NhgElt04GYX|H}4^*j6CnW2qeMyGXzWzr=)fsbc4 zFW8ixh+J=8uq%B50Y92%hG+jEdg2C@QeH#2bb}XHJ zBgg}-dMhILAo5~@JYs)!0{g4U<4AvX0{g44j@4Dzq#J0?ZboV+k=j^;8p^XLz5Ob* z58dhhU(tH!Uqlxc8*z7F^dX}^IF|NbHk>XF=iYt|g}fX4zqfUWY}mY@H@)nF;fUCN zcf4jamn}%56G?>gNNirPJ6%Ee>Pv5VcX)m8;(G=bW$08Oo#RMnx=v^Ff{ye!9lz>b zEMG_Z6pm#Ubf>$=4d-hU-!o8Z!Tc;O0 z3%&3Cz$oW#q*sgd)@SJTrc0&{=Yx#@5V{?qm*~(~U%S%Z+&46|s$^q%N7aD#16n^D z%lBq=R@-}K^JeU+(;t0s28S^n>A#X8(w_9+6Ij)I(hpA_mgR%kaq&F^g@ju)HlMsY zG}KxA4EBFN)xn89Zn|<9GU*R~gz#a6f6@fsm+t!+m3QyYhSwkVV-LM*$Y%pmIEEC0 zIt6U6+X?>B^cHg8mEM5&&FEJ)eINOW-UQR};nW|*Gfw!P0ghyVMJgpl`Yw)tXa-1M z)akP1el%S+oDwm1zsGqAA=BTD^@wD;dJW0YfO<7>6wBL}?kD%1>AvfR%WEs@KcRnI?MbgWI!v+;k|V5p25gy3ZpKWG zVkTp=na~qW)3y-^;OA_7&%nu7jN1AAE7dJp1}joAMYl30@~kYpW_l*}YIFBq3@LOPpqYLR}E zqeH00g!KCKFGTuWPC(EFWco)KMSs3Re&X>$>8*c38f21lIl=8qPaya1^aTXB1aZ&2 zHLTnZ{e`1I&6X>}k*|z%x9uIW}rSYA&^ijd1Z=ra0rN2S$ zUFomlo$CDONz|tF8WM$mF4L<=U4qN8A>0?WauBT^r(=&?O8*s4;24Uh4ilt?KyIw5T8Hp z)7$Nl17F1F&%Ky|Z^P%JXQ}Vl&%zZiGEnp)1ApGn!2A0d_|bj_Zh8^7IsxYGV_?ZX z23GB3plu%m+x9W=>^=s1_AzjD9|OPN$G|817_jbRVA_5Lg#8Ru?q{HWKLg4A479z> zz?zpCXnL7}{v5$c<`xqG9%fQ6_3>@3bzzr`mFy&00vvvsfq#9Ofr?HBzVe141CnZz&l+G%zKf6 z?{zWorGpH#cQLT(AOnS+3~cLSVDKOV6$cr(p^JeHT?|xpF%a%zKQ{H7}LeTv`z*t?qpz4Pg~i^ zK(dp8Hl1(W62;KYsIaBj3%$i&7%cWecd-{bioF2EUMMd10$c2bs$wt1FisEspu!eL z1@C`l<3C5D$RchN{_;%hMuFLieO7q{1HQsgg_m}`4B`dwGl4cdk1h5m-~7y zf?LP!c=6&p4^`-ekHr_8Ef*umB@EUtUP>5XiqUbm1wVYX+{6I%dJ$MfDtH;hOVw-! zpaU=6cvfxXlVmWQ*y>-|BCKOBw*{K-%>0uX*!h1j1dT&L;x zxNX_^Wv1V|w`FOa+@?bB<*4H-`IjG2q3)y?wp{6j_A9-_-7(e-2K)>G18$O|+az?V zFaZE?za3vdK*dCbZN{1efG7am007URgaH8G=fwLW9se(*fH=K4so(#q-w_7sqlO{9 z-~|*9EB!_QK;H~gu)+X4-C_CgEKY776jV%)6u?!f0RVlrDO96rapq2t?0N^PFXu$d?1!zQ5 zPzr#bEtHqywm!guQh?Rix0M2fQNE?LuC6YnJl{5Uv0L(1~NCCi{Qh+r8aBC^RS~L-*ROa(b0X`1^_EG@cT2@K{ z(8sr{6aY_5mr4Qf)SAjt0Q4Emmja-dek>dM_{1`Mm#d`ARm)YvQ`2%fWLmdeCH1&< zxk}`|XSqsb(77DnZvZ&5TqW}DTaK>?032Vg5?P&Et`gal+^rJX%(z=6b?d!bCHh=* zw@UOfdACY*aMRr?(TDcCRni7J?^XfL?4i3=qVq@ZR*9|++^rJ5fLfKbhe@?6X;Wpj zDyeU8txD=SSgTT8TZ$!M8+p; zRVYH;S)oEJ>dy+5=(1&n3M~L2tWW{p5w2XJ68&GcLM3e_yg~)s4{lqblJ>E6g-Z0T zV+Hki)xAO``g?4JO4|8}6)LH_(<@ZC5A}PcO6qj#N|m&`87o!NCcGsG3y&bO{qN!{*Qslu00ek)a?fHK9#h= zxjq%9p^fmV@C5*9@u`3>MsM+{fM3Y9`&6Ps9X=H<1As1{O4`&hp9C? zvBcuhMl3Fv)8kr0DuJan;l#CshRqxT@n|Ap32JLX0nHK)MbNecwL~%$Asv&&kY8N8 zCl!iQnd#8cIFgB`;sMQ4pGvesFcjAU$!MI4S!<3ZTS05l0;wbl(b5o&H~W(oEgp}? zfs|cq2_=#V`kRQ)A8*uvJV*S^nn|S4kctF|1oCRIDVj)HQjxgk4>ajj1)-o8NroCi z8Zy`%U4vYQ!eOn^AGXxDCN)b!yC0`dGBn~6nug+oP*g7@{!Uo@mW*Hk^!l|VLZ8FzA)+PM zM&qk3!RT7-dNR*O1sUn)B1WQ?`cy-M7Pll~{(y$hfu>M6h}9n;wGS9aY7_6#!0H@b zjzkSL%ZWC{li#s;G#L#LQP43;BuX>1L?gP!5V%A#uKAlYx{x4nsX&vVRnfSiMU*d7 z8pTIgq7TuySyUN1MzKhnG(phkL^QCP>azY!*delvCUe>=K5LO^sjV->13aC$pcy_OEeO0rP55aCXyNoBGXDS3!)7)|7akPLc5ts zPen2&&ytL{TKtW~ZpF1kDx5T|S==9K)F6?>_JRz=wLo-@7S|h}t_;agvldMy(X&HK zlCncg1YklCN#Uo!(Ws@_AEE3fu*F4C!Wq6tNYBQhb|*|U60Obk(Qqh05-eeDjTT0I zTjLL>bVEXn%i4G}(wJ54WNS==RAhA|x;A2n7p88{j;)PxJm9P$^NZuJQt0?S+o3ywH2K7uv4&LgAw-^ge3B z|GF32zwU+ZZ+M~qn_lSM>V@uyz0khR3vG{hVcDZ9wC&Eq!((0;+~I}x9bTx~;RV>? zg_$^y_ zz%Y)6vF7j((Nk}{cIxGqO_@CD(uor%OqftyTzttTmt1l&4HuDsM~-phn{FYUB6(NGKWdheMy!=EOtEP{1Fq)<|bp-a^tAMgm$n=|?sE33K9_ zKdF_k(IUz6mZhLSS8L7wSW`5v;Z!I;&IDJ}gmxkpjfQJN%^J4IBRQM-wBE((}!tAsyr=Cl5U`j|PdI7fvObs%Ss9G#*N7vq?{fO&L&# zm7)5$Ki;~uNsAcFEYgyxcq9REtCpOTipRA`QYR3N-;rvrCuO8EtJaM~Whknt1Ekl3y$F?&%HE_C(Ks0=Rj2Bk zLnhTT;`8+a!RJJqWB#~Sos5SfjpZ#^PnFStpVmxy3slZo;E!ce0rotqLOZB{URcpP ztL0)9PClAlOTqOQttFu8LmTJ`(YfH!5S@b_)1L=IbnbaFMCW9%ir&YsqI0CFt7v-J zDmv$4^=DbXSFED+s&u^CRdmkNq^IM-Cm52e=p1sL4!?dConviSMdxmt^!pY)eyjex zUBBG$!gDPP6|7c=`iIVn(3OrxMmt((oE^e%~XHpHdFqqn(5j{ zT{F#RT{F#pXR`|U8O@<)I)^@?KTnFNa5Ju{L@0c1g!0uEp>yk95xSPq8=-3#rz3Q& zqa;f8xGYN7K;$UZPeU&&^!VB+g>Q*cd2NbPe)dG^8i)aJ=$oNWMtvK4VCa(}|DGsa z8}a$-{Ru6IOMBq+1%g^23_f4Xp9uJInG1ZrL^2rghw;JZOE!ftA&kEp{E4LTdkvX? z>R?DGY&`gUn!i3o=&TJjBz+vENq*znpU)Rd#_a<5d~q$2jE4eAj7vrQ;ZS2l3*s1< z#3F;1h=xmHUKo=RRHc@VayStWO-ty8{p=f0cOqwQdhXH zI@5g<+yX%A6j#}01pwFB-3q`AT&KH{uCuKKAZt4}+yJm{9l%Wrz|9K4Oakzb zb1NXr3f!OotWyA1DgbqB8p!M$*Fx*o)SG^zluDrvN5IhrOolpKjt*OJXden#8dLsw zkj7)tBaQU;8muQ=wMfQOIN2{nxvs_NM$Z)XmA6bjte3RO;4*;>nahYzc-Ev9Ld&k%gURe+H^UiS!K!;B`c`9R1l|IINBlAQCD68b&G0h=4b0JQ`>r7>d!fa z&JaXBMjh4l7=J=tv^f&8pl&2WSmSkBVNh+)q7P5Idxa?#psv{;@i%J0^9e5>ZbShh zJ##(eNy%K{COAXZXN9f{wnqHTp@1cn8HC4irOJY3H`4q`ttFH+^QA*%b!%9)nHVzk z_q@!ED6_M&Zq%{fUXx^8Z!}xF))0+brcJ}Gi0pG9>hrIqgK`5#R@`8zX^m-?xtYaC zZ0wfV*wp8Q{fUGr#o|v|%5u`wc--Gw3ZR2lgtWLn9%yPcAraeQ!9g5aOv}RhRaziv z!4aI%hW(Lfq_sJkN?35|k1T8<(ut@FWib_kF%|p}gAmMwW=OzHSPLPDz)T206yl)4 zOlW`*)Pn|bk{$*QX6pZNUfcw zykzg2?0-AGutoAhoyQBTLjo+Y z7X0Mi08vOm1cERFEKmXf%KyLJ$Ux>`__30yDt^ z^C3cb@)KTA^N_+UxC6?e1}qRGI*59B52PRj2|`^X+%!W78lj2ghTMlC1{MOFfGC7v z4JlC)ng|}H6@_}jLo>`G0Bebq zBCr~60Z-<42!f!110)cE2Nv)}0Nk%M{!o$ti;Xog(;SKHSz}wrj>8hxB8^Ghj>9!S z?DaDnAWjRefoIoY5swTlG}5*)jg0o3&U$~aK9scRdlA|A27f4=O~}S;(S~d^*(1x= zz#>xPNeDqR*;S-rE~x{QQ3zrrH3|`Mf(3AVoW(}l5+gDSfIkCg$mWjo$H*@RL539jXYBT}2KoFvkBo-%`W8n-g{iLjDt?;!A z42GWmv+3SNT9O5tAw~2bTaCFTm}N+1y&94bB^sVvBNh^mdXFs=pA3CBN)^hHJxaR> zaAyz8iEUMb03;zrS`L*q>Hw_`3m8_zLfRAd0ijG?+hG>4FbjCF6RH4nVIkD$t=9*0 zVLnuY3bUaS%E1S>!eW>YJ}8Gpum~2yA|Q(>=;Zsn^1$B60x5_=kmv$htE`@(Z2nOh zV3(Ym1S_=xtRJaOk4V76{Q z(GH?)HDWojZ_SslMYlLHz1`Fk>xuP+b{Xpq>uvS0wuJ8+(3&@D&X-qnIIl9-9EPQY z^DqR#0j;tlYSF11-{R1uZ7F|9#BFVOR9OsyOD3oI(>2nlF5`J)Fv6@Jg zj*+mZ!kWW=4(ktlKj|sLDpVL8g^(#-(~D<>f3H4EW`CoViC%r0v19w)PN6aU=gS=2g(Ud4QYn~ z6OR$1V{}Ym0k1yRz;G^F^I$%)M;QF)f%U->Vy$Kqp5{Xh;M;Zpi%oeO@-bv<`Bb?p z`q;|Q6GNV~28^K3k27O{tc;_nuxYnEk@K9pr%1JxBctvX5Xs0S*G?~j#c&7Izm4a8y4WGt0kWf2v4{a5jnXhVJ`yokA;y@kW1|?H%Y?KA$t3T{e?mCQRBs z9Zk?Y8uea#o<8d!TU}&KVjiK?5J{q~nG5AG4^&;MK9~=85G$lYB~*eBsz8Mrs32oe ztd-&P&6;T*X=12`g)k3lU@54i_G za?+B0uo$X|<*Ft5*FrUDWRw?!+Pqm8*2NNH$BnUFf?(y&&9J7;V|XAim_O!>x!~_g zSU`TCy*#%PRUWOJwb=(O#-yF5EtBlwjy&F5h&9 z*hp*x_UmY^aFo+Z+7{Kg6oes}*Rp6Z^MNxD9NQRNp!7aR+Aq!-v+)LZ*v`!o9Ep=P zr2VFJDmZ??5nn0kg*9jACpK&EtR0DcYoS$t{u$hQqUhWRGD{GK_omS{z@+ z0etrrZ4SQ8Z2T5;e&c=ug`r_2yM=k<`U8%}BCv*xW^gu&qo4?>AuKV@RB=Q~N8W}_ zJD)u*H;wPi)`<2gXu(id(E8AEdQ+Z#oTZPAZX)fa7CfYNVB4vMS*G6@kA3hQQyc~y zpPAQIaP7vBwz0-xj6IRRY#*#-%7|eOkqBxijw?|Xbftx^1?A5@vbe}Uj_z<)kK^Mc z(a+p*FKRW84RIulZ4PB>vcZ131M(eh_! zoiiZ(n8HM_mjq~9bj2Y% zN6WWws5j>P8VN+bu0dGKSO;|FFFT{dQAEC-G+OIFlJozp9#CUZ-)T>fKmQzwN3`sb z%*ch-1+F$48jadV=SjxA90S$A>{`P=v;Jp+h4lJp`{;TBY71IZY@JwtQGMNFxb4C= z{NJ;t|G4Cg+QmE*WF5BwW)evly|lTlqm{rN37mbOT~my3{&l7Q*%}gECBxY~wvltM zs~Hfu%6aZ}H42&KEWezX-yOr&oN$flZ0j%iZS`!e&-qVZNkOjW4qG`g`iE>8b2&sl zPzvW?%R;DZ`)MYvkgf`&w$CM_cigKmR_2UZ7jl5}L)7yY(sSYpRCa`Lb_nD!eXJ%&eSbx-x;w~g= zF{Wqjz{snvM%y>bi>|lik46y!HIvQ)jg?wj_ZV<)yauAMI@5a2HZnJAA#3qzpYJ1W z2({9eQwE5khDd5bL+FLs7rYkF0 zpQypOgN~sAI0!-zY~TP6>|ld>Xn-I{z<~%35^o2NybmIQ9|FLGA4I4J4jj+`cCeGZ zb+jdjfq}}+JgUaEYy6|{7tnS}c|&`RZ6?>+V=KTE>_4!a&1CHuwXliIb?Ck`Lg0Eg z_I+3;3n*YAUy9;;hID-qzxQ+qnoY6>tPOr%EzCF=rXN;8&~Y%}`$%&iR-x+QEG>kg(x<)x5DsaX@i5fAu0mTL ztt}6$u+u~fVMd~5#={`LuEG%$E&Rs**uyHE$fJjF#yeEza++~5w7ssv)NNUrAiWve zRFJpj@`rFE(KF*>Xn$RWa2~yN+f>+;M-SmfqG!g%Pg_*W1@|?T_ez)@do7;^ET5R&~Y&!Z>R8iJB2lH@_8}iVAy$B1y;ww zfIN7&t5AjiCY?pNk?PREHDt4Hy9!(IKTkGQZ;ULPuqkg0u{Tuc*5i;S`iAJ;uEM}s z=psDI1%p{O1`Q)@c|(PgN2zQKUdtX;L4I^NuLwI*JsS8%7OcS3yXDEvO|UGJF;yFVURusGcCk> zay$cbE@Ftw7xeQ|&NA={%RoQNz(pJbUXFogj)CuU45X|K?6Wd3iD$seGf>Afu$^b1 zn`fX>9Vv=X3sB|zs&fP*UmCe#5;tOM9x2k>uo0KcsRNY?>Os|UEQ z9^jdM0PYt7rgj6|_)CD9zXTZbA;9<#0Y3a4z=_`h>>dDkegL5RBY;;wqRwQtV8u)T z82teN%Q8??Ox^ADGXRUK=T^^Hw%`NpYj4iq-GArx^H%-j39QSx&RT!14?mr+nJuDymj1C?Z6F%g@Fmk)e=J7siKIUg^oOGn&4`*63)WK& zp?+1!M<@F4Tj$hN62~D7z%2Zrd3q3C!VsR>YZyJQnY=)P{I?eya4p1b&`kx#b1U&V z0aXl~LRz7qKk1*2u6N+noeXK;vsgCJ&#u2#MMGVZvx@c?&1rq@6H4Iq10JGv) z4*=a;X`7(W)5*&aeOno58g0N#C+{+QcQAlQaOiM}7K#q?V+`!d#;=Knlg(J+INrq* zD|GnJeeQF?dK?fBd`qv-crq}3J`pRN$cbA{_#QOJ)lj&TIdK&3lo6LCpT5Is(=$1~ zyQ>ImH>*&OqM;fLWvv)5$lj{m(Nnh~=RAN#+5)-_!Mn#_^~t$G?}O#{$No zKRot=3@&}SxSIhPWoXFhbp|$}{uA|&L(gFbmSvyG1jW+BK-)NgS@r16bdgmF4u1PxcOIOWj?==@e&l|ZjuF1b(!TCdmiEoNSo&?>b2{x| zOqc@p_sBEy)qkG+fup=4?D%hwTt1|S)C=$9l$WMF8iuS`K_&Gi3KR|lreQF23T2M}$P1>e zdt4>+LL>Zbk(ZPU(>wC=F@ljFJ|kW89c6;JC(eW0q4R3U*N_p?F57h;83|easo6!# z8qC8PiAN(~8veKJ$}PL&E?Ra>+mlDn2nJo&MtQ)p_MHbdW~1e4vFW;`;}ZRU;@oBJ z)^U4u9L&GsJUC#_$|rdqSg)PtU!mh5{oUumX*0ndJr8WR2^O9_cUi%a<$K0?V5=OI zR>*`?_av2XEDzVHGps{HUyXoi_`m+iTwO>cv%1ikN6!cb-EN%+)P>{cfgRNOKIPEc zs7T9j<)qODO;8k=g0^1sM2AvEG4_oUG6OsP2Z#ApdZD$-Bf;+dAKM?w3YaeJmK^1 z-IULMoz8$naR(*ZZ=KTbW1YkKKwi-{;rIgYW>2%<+MLyqV|jcS!O#(}GppO))`9jC`h%hs#k`%E<2&O@WvMe{9jQ5qKgUgn~_qf8GyP18=~ z(K2|ia}6(>Awz5*hP_94tb4q}Gr4m8{xejrD0AVN;q=V1+M?&TUFY>F7p>FRTy$*m zV?7EtGxRd1&?Pv<7qno{~|waP){@RT(8sJnnxG+7V>dB@^HI#+}=D~+(*dAE&em*$;kJ#Ue@u?)3Tuc ztoPD-#&$67IZ7ixU>XKI1QhRm`W>HtHROepLo^>F{fH_3y#f{fSU~9->1O=4i&gmA z#kuLdCVb5AJEb)Ju2K~OrD}%Gt~|KC*Xwkqt1#~RTsyzy2CAb-56g{rBVhUPf8aTj z9eIxG^0*F4(+CJ>l*7ztWU31Bsk!Aam-EW2RJi6Unr_s`rVgrm+fBNM>&_Sq9#OX} z)6Y(K{w*rh-a>s8<33zIZt)~qH{QH7vTuq$1N6P6e7rgx&)~I3ZyUzGp_xC>+mZp> zsl(#FNIu+XLVU(N)nqars!t`g1mWo2QI%1DQ1=t50vtp* zbO@>HuD9U|W-f8ul`oo-F-B%J(F_Oh)TsH1rO~x^L3b(%@SZsblIQK^i|#0|ZqmYG-I?c7sIDllG|+xjut-C{n5)Hyr@%&pH~fn(1=xnq3u9X3c8xHp;WH8N?OH3SbC;-9^9{aS z;L|_Y^~L;gf3ud<;=V`}y}I}!QR;FEEt1dY55$wcP_*8M4!Plr&=5-{*9Oq{Klzow zQw18(*(t1rh6Z%z2{4v=Zwp0zfoOAcG~!#+ur?MCMUoA;g+@HPnbH!Ow0iKZZ9uQU zupJUwa!q}z0k%Ujnu^6V{L*G^fP761*8#eli9`XO#JEVHIR=*j`mjR(s}G`ol0YIB zflG$xMcMErU?NZtC4p#U4Zt6;3@!NfyRWesT^8E~Ujl9g-`Zp}1h--?4Hyl;f{&(y zKNgzVoS2DwkAZk{W;_+agqdM(CO4BMijfDANCrdEbEG$E{+Ky=I6k^vITr*LMvEuS zAbC8{LYo2dA)5WkrgNp|7ZL`ry-~}AKBblde0y~D+E6mkR1>8>Kml$<7~Q_mxcNbV z)TpeN(!91=-U1R+9tlK)T2++zV~0zbxtjU;@TgoLp#H);Q(C;WN{bWMt&xC6oVsdp z_=Iqn@yu#+$@<3V#gQiB-8EQlIKG(|3KJhjUm0DkCC{4t%A^MwOC z9UpoGqY1I=q!4~<1cTiXP7w1kE`W?wXdj^BL5Ya;q(^cjZNNHLBjfNQ{qmXUgjgUi4dKumm3 z*_Y6od<{g2d|Hc!-wdOJEPpKKBi_enp;gk7sf32dBQ$C8IKUO)3q&Igp~h5P^Q{d9 zHJ?A;xCT$tF>^-}v}|vRUL}2vTGD_S4j@u|EILTp-#!hN0p<64@R1)il*@+ZXi&pd zQJ*j7^C1@jYR~a$En#X3_yQEiW0DW`Mn@|Ui>*tB2pT;|1Ccr@BL&qpVG7MRqOJ9j ztQnd!={S&+tB7RqgocKgF9GmXV%=k{`1`Z)zc1k26=zMj_JqHmzx$ef&;7k7BPPBHwz}c+itz|uLnN-k7xOkk6bf< zGW~^B&-TXXdR34Y0|C+Mn5pqX!%RW2@iV1hgD{iR9Fkp=8n_@!KO{&0VA0^>SkRx; z7AHf-x96XQ&%$Tne|NyO`jNsvGk$6VUDKQ8QI{CgKjT~@Zz37=dLaiU9Bm8*sAo?j zIX9hngvfWM)8e(kr8Z zP;<;nhfEoe9GC_qkq2R-vDh~!o+PYLug)1FW*9mkM}Oa$WOMow&vXLe^({SHdL-5C zi=~oY-_j+X>AFYI`c#9@aE|QtEnV!H9%%B%eaW~#luTr3QHtlF8^Z&^GT=FUk$D8J zU7!Mg7XIH3#Q>eS=fhsgmax-Uo)y{IY&E-#t!EQ#3;QMZ8|-83^X#kaPuZWde_{)` zB5pEw1$VhMYTa-BrS%eC;BV(s{J-#z^RMu~PO5EV8E?+drvLbg`hSMAT+ z?GDZHxZ{Z9xZ`FqAg&QNi!X>j6#pcu(rr?;bW9rKoaB7Ox!?JkbHE9%5*O>LaMihf z;QF=e6IW6`B!9*IzB}w$>$%^v$+O?{x(8ph$9IM6*ckf`+t2=%Wwckoa0-{m{` zf9HR}r+HPFCoB~-At8KTxY@SG_JHjNw)bs+wB2Zz?c3}x+4~)DiN6)!mfn~CApMs# z);ZC6m9xw#IFCEK=bqe%d-;eW-Hm(*nW04SIK>e+s5tY2DrPd2do$J zA$}Xbi+`IRBTN!x;Yp!i_*fWaOWOC_d+cKzD;*CwwmN?17$cU5w~PD5!(xFXO5czU zNQ2UiPTAS!-0kdfj&V(NUF+K5>Twmx^W??yCiyA(Ir&BTi2SbnNBLvVDq+j(fl@dAy!V&!e7Qo;{vU&tcC`J;yx1#xm5=b5)DjN$gy9 z4f|F0+w5VskNtrC3;PLMz+J#KbMJ79b&mCm){m@X_{n?+|2sY@gzT;M`^2Zk1L7&M zNBX5S%emCq;5_X7nX}Hd)Ahbr^I)~ zbq|8?Wo+mx~kVYGR?+fsV^+oK+w9PJwK z5?u|hFSz!*dR$ZFSu!tI$~E$G*(W#4AIZha6^d1)WbvOTe{(a#`wrA`QI39NV+EFM9;sWs@@mta{X^HDS*A22w?vg)} z$0%N9g|bn3Tk_MG{kgS)f0EzFUnpEAlnJwi z+l4A2A#@187s_l6wv=s;?M2%kZ6|F-_Dk$H*!}jW?Opc2*}aa1j<93Ud9Ukh^3(E# zN=Ru{eysE=*SH__9QORo1Ksp&k*nDo+1>2-*nYN+dyspK+sidsBi1ii4_o`JxAS-M zD|wCoJpT&+6aE+c-}v7N^K3EO=WJVTAKFgY6noIV&VGrb*3sfP>^S0h&+&odw~pUC zibSWlO8gh;V`;QA;C$NI`PVOLgnEQ}B!TpK* zgqv!eW-Ya{)_1G}))Ia({}=wa?G5`$`Qhwwf)PT4`NxeZ=~X^|#gnehNQ}7x)N&fIq@-7b3QC_KWOO>`D7K?cZ@c z<=E?Z)p6J{;P|8C6UP{FvUr8aiqD8Ih_8z8ihmI=kS0qF(pu?$X`A$zbU=Df`h)a0 zslYkbd6jdH^V`lBoo_qSPQi7*@&ko&U*ewRzTADaTX4^FSG(_VuXAs9zu-RLe$D;w z?)Tis-5bV^G9|Y)S04`*2U_01Owuk*Qdm(ozcOB>EmU1h&Htt(oH}^{p ztQM=sy3%^Db&vIk^@MdiKZC!OU(SD(|2Dsu{~`Y#e~N!Z*eyIKyePaWq=hrWg|?iCK9VLzm#}daON3Y{u$4N(t_%G76 z&Y8~H&MN0h=PKt~=O*V?=MLv?XNU8r&R;oy=lsa|S10G1?W%AsbS-h+?ee=CU13+; z)#AF(b-(MYuCKYax^}p}<$A*PT~~)|zpKmjs_PBco36K9eXb8&zj38q|KU36`osnD zX!$~Uf;>f@Do>M3<(V=si?UmuE6GX zyX0r&=j46z%W}7TSUw{ERDM_fh5T!IK>kSni~OJRkX)z~DaFcU#bI6*t&*)ntzw?=l{U}nIA1&DqJpHBU~@s zEO3G-c!YVv0-;8@Tc{US331_b!UMwBg{{I4VVCf%@O|MY!Uw|dgww(p+a~xcQe#_M)x60SKzw3r# zhMalb#I~{DXFp;E?p99Y65O@?GTz4r`6fQh$N0nig+j3~NhlGf3a{Jy>{X7(#OtJ` zl25uv`n=RGUFnpaw>hhvtDWC;KIMGP`4i_c=dYcAaTdBRc1?9TTotYw*W<45xgL^V z!9$cR3^@mW6xYh7c~+0;y}`4V}Oe2Xl}ri*yV;(wf7kv8 zyX@HN*y}j%m?f?gUlYrvFG;;pnRB)C1?MPNwd;#6M&{&%d{n+tS*`Rc6Wq7E|J7aL z`MC$Y4C$-yWuIVwz`n))f-U5xa2D<+&dSMLlxyYg=N{x9;&yWX&b`O|hWkDDXYMq2 zi&e7DvEF7~WUaM+-TJ8YaqBbI=dG_=e`@`e^-orO9|ymqJH>&u&^pdK-db#(WG%5y zwOXvxtz}lhDq3Z0yRb{xE$k6GguOzKa75@8jtYIkF`-{LE({1KghAn?a7s8WfUVFr z&NkjwY@1{&u}!sEY)Rla5O#q?6KVsn9vzImtQI z33Ut>A8OcTY%N>I1-T|J%*D7Q*TSvi+PL-H25u9#h1<$)=XP@K+%9f6w}*J1b{oHYGfIGnrawYbuc8h(wz05wt&e{cgg}utY%wA`2vd8Q# z_BQ(l`xg6ld%JzNy~EyV@3!~Yd+mMpe*1uZ(01juVT;644@-iL5A! zUa>-~5|@c}Vv`sXTf{bTgSbW9F1Cxi#SXDk>=t{(Ua?Q?7YD>a@stSCIH_1Fkt|Y~ z#7d&%l`5nvX_-_fHAyk4MQW2aNL!@sQoFQU>X166ZmHjM+%tgoGsfW17`oVQ_7K~{ z9$|agqii30jO}NSvjgl2c91>Eo?=h4z!h@ixba*uH;F6Zrg9c;I#S2UZFzRE_4Xp!XcuOsE4S5g|?}-88+7Dwav9v z*s5$zwiequ+a}u<+g967+g{rtTaT^JcFfjqJ8nB+E3{9tmt^Wmw%6E$_9lCaeVx6{ zzTUpczRSMX-f8c#A0ag~Xa`53V-l$w(NW>3bksWP96?8uBkV{zHaWI9b~`#9U5;*| z@y8t}No|yfW#SA`7QNzJQWH&Li?~i~6W5b^*e!O7UE&e3S3D~AiN{DSfK)6^lBP># z(hP|u8eSs>r6#FGS|_zh>xuk#OPx}ebVTZv`lLY#oQ2Lw&JyQT=X9s+#BWT?3IK{( zmKE8#Y>*AJNp>B(p54T5We>5(*+I6Lo65;t1=qy2a67qO+#YT(*To&;j&Mi0W887> z1b2!nv0AJ%td-UpYpu1(y4~7t-EHl%9>X!zj)6#fniBoiXofXb1=Q3xVv&orsu5)g6?s4vQ z_Bi{T$DM_)@vah==<>QMTve`RuApnZYm;lMtKHS@>T&hDj=4^|3gu#%m1VhBZjv|1 zTjcHXZuy9OR6Zsjmruwi<cQ|go^C8o3}ZORs9uhOL)QjRD` zm1D|r<%DulIjt1B$Ga!FOWYQBnVWSBZqe;^*SKrlF?Wl*&Aq|B$-TwB-Mz=X*WKkl z;`rVyOrI^c90g_$DUwMvg5d7ZaO!E6F8Zx;+AoBTobpBThDFh+KJ|% zHO$&VbPB-$evG_{m2GvlHe0)`+tzO@v`@Et?REAx`%Y57;~g^`RgRcri(|ksjyh=i zEc{;^sBe@4;-L)eJJ9q_hW@(09V5jExW2-`654=DQ298PIEfnhU$0@M=^R5Dx)4Dlz4{@kgb z>pS!lhA=E3r@t&VopiLAc!@*b8FLA)k=MwlaGj3^3*&&v(8%@tkAc%qb;6UK&|}tI zm04YP#_*nL>rPb1JP!uKhZpE4L8lw?2m*R zw1nY;pXTSjsK{c;5St&=BFRv)HHW8JEb@hKj49I=w5qXKI27>X(dx7OvDma*D1~G^ zl}O^5?w^t$E6v$rkrP@V6%Qp_2^|b_T)QWwC6ZdODjr%B3Tus8;!{%P4XU|x=-a`e zXrxkGqlGPDyeiZDiTRN=(bZafnk5xd0|70OP^OU+U-Uu|BDajdjn1lkOAhbyEg2!W zFDjC6F>1(-Mz8<|3IL8%V+T#63gGul_W85$S@0;P>!JF51GL>&$ThkOuSYq*LW8B|t3HT$CXwp)zS>maPB^0sDU07|w zmr`e4bWsuUr-WOIOFWVqcl}Wh6(Z0PrWc^aG)~QgI{Hm(m4oiJed=Jzuuj4_ z3;K1=2I2>eeCMZ^3(KnWZ3GKI-K=;b9zdTd$Qza&ohwW=AZYLccxS~m^0fwjBS{u= zkk+(eaIwP7nDr^D7tASy%$`z`Dy^>`YEG! z-p2qG-sIHdN98|aUETz6DO*5J31R>yOoXzD07dtW11Ovb1@~P*?vw8uOYZAvG%hOL zJdr+?O~R}Rja#TVGc?BNxT7g9eZ++p#Kk8QF3u@Nnes0tI0g4jAoo%CP1I>!LTSeqgMeGeID7n>@Je>!DZtMt~o=*Q$XY~uIy@nq7N?3 zjV-%|NEpEI^4rh=mt79P*eTYiG7AN`k}ZTU6%YlQP;f8SSkahr{Ad-YRty6$$N&`F zi&Z*hN7=OiMFsTfvK{vo0Tk*_B|GlB5Cu97plIT#Gn1zRFc(Cx!?L0X$4@LMn+{Mk z(^D|z`XZtj1>^1;kN8wQ3JS^!0dD@qCnPsa7+Uz>sS*DNL3Wvi+RTx zfY_Ai4JhVJ1#9OxEI-*P*^tBs8th7mz|TP#!tx- z&FivdgaP_MnfO}B6B!yBDwsq#jE@G0m6ZY%iD<)V-OjrCn&Qh6WdKE&j-EK0#G(G( zJaKfq55aFjv5qdg85QQnYcA12$4ne!0v!|oBm+8zfRbFw#tbX5Tu^eZ5`WNAaQ+$~ z8BbA^p`oDn|{qkzA)(@4-jSm zu3KCUl^4^#__|vc&&Rcz+KT}W6~O=3-nGZZQJnGL?91nCa`9crlh|2bh{Gej#CZY1 zHN9Ny#Bz=#wu4DAx~}gg_Tu&KvAa%Up)^6Eh*H`TRgH>36)C8wPk|~V9#Yc?p++hd zvid-Us=Qj!{DCSVP)j9B_089>hUPyg;rMz}EJ47@$pr3rbzpqL?k%9M>F5SQv zRq~U{Vto<%>EVoVEyr5$X{%b ze@29NiCSJ%AJ7f_QtQ%_DC^Ja1|Al%4kON4jW|0r$~CT0nRhCSbpuPauc-#^5u7in zi?k#j*Phi=xIyH-5sS18Uezh((?W*Fg$&QDPr|?k_M~`YoDsgbW~>b_uvvX;jp|Uk z1Vz2vhMY>20u6VuHneDjCZa-z%G!i(jjW0!1vM&=ymc%P6ye7nL<>@aBFp#(u?TJG z!T~+Ox^S<$fGx!f+9GD)IW5Bs{FG66R$DSJ9O^3=Lm%21gDd>&U^0fUg7~LFxf=7H zRoj_?0&8dc1oZSh%MG3MIk(iPs~JPJMr~jW$7>YDJs_ylxKi877=9B`Z|OZuL0czv z-D$j|=9z+91$Aoq0)02rP?1#P2iU_j+$|_syN>$>brMT4#B_XHP;ap9hJhCB7IU&U z*m2g07Tgk16qkUumg;oysg0MoTNdVdsO0lL-1q2 z1-BuA+t4b0hR%=%_16j*dJdl733e-1xl>oJEdMmOegUhTz$cv&068JLEFyF{9EF!bB;0Sw*4IlPJ)oWmBw z0An5OPMpIY&A=RP)Q)2gR~rlrrg79av4H5$$M27OSD1pmEmdUQ?St8$QCINI)MhvHJ*biVwDC z-j<7`J1-vE26VJQM*=!pp<^Ac$2#oBIt*bDPh%LbP|-cT2Y4E z@Jh`p1yxzK9q#YqF88glF{+m6KwwSO4Ou{*45wDsQsAZ;N3^@n$wx}{5j$*5__3DN zbBtL21P}Yk!ULI3uSdj3(RbUG3U}-LxC-j)2n_e*k)%kct7Lnw<$PkQLUf>6q^lPq zdq*&bxMLj^p`acgOR&%PDl_G<9ufCP!E?zbdp#n~K_y%6Y&{|x4T2xqm~q(L$8VvPl}dzD+PyJz8o4P zT9Jp7US-FO?Nqprp5Cxj8jpyb{E#){gac$ers_E~U}Y)N291yCJ{DF)e(D| z`yhJ|KBx|HpL3rc1#vKXV9*utT<(%_8}8)jwkk+d72HRz9D3x7zbL~_+nR8_AhgRt z%!;pr96#J2=Kf*3%!6ns+wKGv9@K^jUDTjS_Pjq4z#^|0uR!GrUWMmf%b5-AT1~Yf zkfT-wki9Wnb?k6&m3qFOlGG?0iYkUVmJs9wJ4m3y1gJ+atrE_cI5FH-47V$JUIf!BAt+_u zIHiQmCZM$=HQ>9l0OF%1$_TEwQ$nsvaIcDxh}w2Y0CoxJ=he+A2z0e6eo?NW2RP80 z6A-^sz~-WW(2IfGs6Xm`C83IAP&Zn7rxro&1U9|?*FU`Wt+j=Fpa1YD5B_=Z95j=$ zgldB6CS&O|ktq?pp8QOo@Nd&vSlT3An%%OIG1k@rElC^`nIgrlB61aluAtBr6xy$u zNbgUysF~#%E5oVeg}SM*Rm(-0$7mKULcFadk!Vk)_owejrDxJJ8LojPQU+M(oA z$uhxlvK5?zRqQB$f33w3#rK_Eai;;*l8BkNHR4Vbrjiux1-zK-KM!T*Ux?&_0Ls5;its3nq#Ym|}dcQ8_NF={b z^0w3GPNvwN(tu3SfRZVuQZ)6~!B~6BpeAMxBqVMD&_SPpBg)cI->Tl^xwXgL$fWNb z30Q(fD(KHKEYIE4H&XC?p08HdM-S`I9p08Be38^;wO3#?+oBm$f^wMKavL)Y3!Bd6 z0}B{hA~X?6bkjO>j#L*6x*&jM44LTReNDsk3~LxVYW(?6067`MN`@u1G)+@6Xw+rN zsA&x7Vz`?o))-M1<{ig7B5YMv9gY#Db-?N?` zK2pKc*YIQ40*^IVMId<=L+YP8uLC+s_ut^=1E>*(%i!NW*p_|jp}qI#yB@x<=H?$# z8HMd*2LkQ~W4>j(<70uaa5d)hsuzq&qXGQxv!9z_r@F|>=z!)>{ZG2+Wu(`6Hw zF2lR?o3?I4RR2p0qWWLSEZe*K(5=6i>VI;@sY2I|YQqk&`{K2li@12bLAp|b=Db|I zkf#HJnc>m|7_COF72qP5+`rK^@BeDt=Ovxg{59?ii}~beJ+Rry^o{$%q!SM@994k_ zK2LkV>bWlM2fMT%jL_i!*Y|_nTY%UT6uV3N!;)eHR?{9U!MVtetpD=;VgFHXqg=;% zxZ(YM$^HMhJL$g5Mpj><&++VbQ?N}l8y=d@Za1@XmY7{HZ_@0cSOHc~X_{HuGfIi; z+JNW_BA2gL|qT zT0l;H{oFt>JX0l$u)LDpZi=m*QBCxBY+>?PQ{$xqq28ied*Wuy{}9>`!6e2_%Lev@ zD~wc9(?qLeo3dr0!4#UghAxgGL!nb_XyqqXNV3&>=~JbuT}0E&Hcjg{h|jIY`1%NF z=FZPab8{ht>_>97U=)yjD=uZ$vB!POZ@Pk?CP|iT&rtVOeUCIZao?I|HjoM`QtHN+ zGa4}zIcaU}-c;-NNG`g@@e%_q4lmg2?aEho4@~Bd4vl>Ho}7jLN&W#5{o(wZpN@%> si?^&rj-{J=ReZO6LJ^wToHV-K GetImageDataFromWeb(string url, bool isLog = true) + public static async Task GetByteDataFromWeb(string url, bool isLog = true) { if (isLog) { @@ -501,6 +501,26 @@ namespace PvZ_Fusion_Translator } } + public static int CalculateGameVersion(string gameVersion) + { + int res = 0; + string[] gameVersionParts = gameVersion.Split('.'); + + int startingPower = (int)Math.Max(gameVersionParts.Length, 3); + for (int i = 0; i < startingPower; i++) + { + int factor = 0; + if (i < gameVersionParts.Length) + { + factor = int.Parse(gameVersionParts[i]); + } + int power = startingPower - i; + res += factor * (int)Math.Pow(10, power - 1); + } + + return res; + } + #if MULTI_LANGUAGE internal static void ChangeLanguage(string language) {