From 99e0792772d91cf61ca9f48dac4bcfa6078a2df4 Mon Sep 17 00:00:00 2001 From: callmeyan Date: Wed, 4 Sep 2024 23:05:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0/=E5=8D=87=E7=BA=A7=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vs/AIProofread/v17/.suo | Bin 1632768 -> 2155520 bytes AIProofread/AIProofread.csproj | 1 + AIProofread/AIProofread.csproj.user | 2 +- AIProofread/Bridge.cs | 176 +++++++++++++++--- AIProofread/Logger.cs | 2 +- AIProofread/ProofreadItem.cs | 27 ++- AIProofread/Ribbon1.cs | 15 +- AIProofread/ThisAddIn.cs | 2 + AIProofread/Util/HttpUtil.cs | 36 ++++ AIProofread/core/DocumentUtil.cs | 130 ++++++++++++- ...AIProofread.csproj.AssemblyReference.cache | Bin 154164 -> 154164 bytes ...AIProofread.csproj.CoreCompileInputs.cache | 2 +- .../AIProofread.csproj.FileListAbsolute.txt | 56 +++--- .../AIProofread.csproj.GenerateResource.cache | Bin 1274 -> 1274 bytes AIProofread/obj/Debug/AIProofread.dll | Bin 446976 -> 450560 bytes AIProofread/obj/Debug/AIProofread.pdb | Bin 187904 -> 194048 bytes .../DesignTimeResolveAssemblyReferences.cache | Bin 1380 -> 57495 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 24123 -> 24083 bytes updater/AppConfig.cs | 12 ++ updater/Form1.Designer.cs | 21 ++- updater/Form1.cs | 126 +++++++++---- updater/Properties/app.manifest | 3 +- updater/UpdateModel.cs | 10 - updater/UpgradeModel.cs | 49 +++++ updater/updater.csproj | 4 +- util-lib/UpgradeData.cs | 22 ++- 26 files changed, 564 insertions(+), 132 deletions(-) create mode 100644 AIProofread/Util/HttpUtil.cs create mode 100644 updater/AppConfig.cs delete mode 100644 updater/UpdateModel.cs create mode 100644 updater/UpgradeModel.cs diff --git a/.vs/AIProofread/v17/.suo b/.vs/AIProofread/v17/.suo index 4d3c30c062c79b116ad70666b9d11dcc7b29b225..e4d56aa0965cbfc444f21d57fd878983c538f4ea 100644 GIT binary patch delta 34577 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 X)vh4^#=D&}?sm?w_ptk?J7@eqzc!p7 delta 19725 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 diff --git a/AIProofread/AIProofread.csproj b/AIProofread/AIProofread.csproj index 2b55a17..dc01c19 100644 --- a/AIProofread/AIProofread.csproj +++ b/AIProofread/AIProofread.csproj @@ -336,6 +336,7 @@ Code + FormContact.cs diff --git a/AIProofread/AIProofread.csproj.user b/AIProofread/AIProofread.csproj.user index 5edd783..7760902 100644 --- a/AIProofread/AIProofread.csproj.user +++ b/AIProofread/AIProofread.csproj.user @@ -7,7 +7,7 @@ - Project + Program C:\Soft\Kingsoft\WPS Office\12.1.0.17827\office6\wps.exe \ No newline at end of file diff --git a/AIProofread/Bridge.cs b/AIProofread/Bridge.cs index f195d39..b337f5e 100644 --- a/AIProofread/Bridge.cs +++ b/AIProofread/Bridge.cs @@ -13,7 +13,6 @@ using System.Drawing; using System.IO; using System.Runtime.InteropServices; using System.Text.RegularExpressions; -using System.Threading.Tasks; using System.Windows.Forms; using UtilLib; using Document = Microsoft.Office.Interop.Word.Document; @@ -45,11 +44,68 @@ namespace AIProofread private static object missing = System.Reflection.Missing.Value; + private static UpgradeData CurrentUpgrade = null; + + public void ShowUpgradeView() + { + var needUpgrade = CurrentUpgrade.NeedUpgrade(Config.APP_VERSION); + if (CurrentUpgrade.Ext == 1) + { + if (!needUpgrade) + { + showDialog("当前版本为最新版本,无需升级"); + } + else + { + var ret = MessageBox.Show(CurrentUpgrade.Message, "是否确认更新", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Question); + if (ret == DialogResult.Yes) + { + OpenUrlWithOsBrowser(CurrentUpgrade.DownloadUrl); + } + } + } + else + { + StartUpgradeProcess(); + } + } + + public bool ShouldUpgradeForced() + { + return CurrentUpgrade != null && CurrentUpgrade.NeedUpgrade(Config.APP_VERSION) && CurrentUpgrade.UpgradeType == 1; + } + + public void InitPluginUpgrade() + { + try + { + string source = HttpUtil.GetHttpSource(Config.WEB_PATH + "api/v1/common/download/version"); + if (source == null) return; + + UpgradeSource data = JsonConvert.DeserializeObject(source); + if (data == null || data.Code != 0) return; + CurrentUpgrade = data.Data; + + // 是否需要强制升级 + //if (ShouldUpgradeForced()) + //{ + // // 显示升级框 + // ShowUpgradeView(); + //} + } + catch (Exception ex) + { + Logger.Log(ex); + } + } + public string GetAppVersion() { return Config.APP_VERSION; } + + public void showDialog(string message) { System.Windows.Forms.MessageBox.Show(message); @@ -133,6 +189,25 @@ namespace AIProofread } } + public static void StartUpgradeProcess() + { + try + { + string applicationBase = AppDomain.CurrentDomain.SetupInformation.ApplicationBase; + string path = "updater.exe"; + ProcessStartInfo processStartInfo = new ProcessStartInfo(Path.Combine(applicationBase, Path.GetFileName(path))) + { + WorkingDirectory = applicationBase, + }; + Process.Start(processStartInfo); + } + catch (Exception e) + { + Logger.Log(e); + MessageBox.Show("启动升级程序失败,请重试"); + } + } + public void StartProofread() { Globals.ThisAddIn.SendMessageToWeb("start", "login"); @@ -183,15 +258,36 @@ namespace AIProofread } public string getDocumentData() { + Dictionary data = new Dictionary(); var doc = Globals.ThisAddIn.Application.ActiveDocument; - data.Add("name", doc.Name); - data.Add("fullName", doc.FullName); - //data.Add("documentId", GeIdBytDocument(doc)); - data.Add("wordsCount", doc.Words.Count); - data.Add("charactersCount", doc.Characters.Count); - data.Add("content", Tools.GetAllText(doc)); + if (!doc.Saved) + { + data.Add("code", 1); + data.Add("message", "请保存文档后再进行校对"); + } + else if (ShouldUpgradeForced()) + { + data.Add("code", 2); + data.Add("message", "请升级插件后再进行校对"); + } + else if (doc.ProtectionType != WdProtectionType.wdNoProtection) + { + data.Add("code", 3); + data.Add("message", "文档受保护,无法编辑"); + } + else + { + data.Add("code", 0); + data.Add("message", "success"); + data.Add("name", doc.Name); + data.Add("fullName", doc.FullName); + //data.Add("documentId", GeIdBytDocument(doc)); + data.Add("wordsCount", doc.Words.Count); + data.Add("charactersCount", doc.Characters.Count); + data.Add("content", Tools.GetAllText(doc)); + } return Tools.GetJSONString(data); } @@ -271,12 +367,27 @@ namespace AIProofread public void ShowUpgrade(string data) { - var upgradeData = JsonConvert.DeserializeObject(data); - var ret = System.Windows.Forms.MessageBox.Show(upgradeData.Message, "更新提示", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Question); - if (ret == System.Windows.Forms.DialogResult.Yes) - { - OpenUrlWithOsBrowser(upgradeData.DownloadUrl); - } + //var upgradeData = JsonConvert.DeserializeObject(data); + //var needUpgrade = upgradeData.NeedUpgrade(Config.APP_VERSION); + //if (upgradeData.Ext == 1) + //{ + // if (!needUpgrade) + // { + // showDialog("当前版本为最新版本,无需升级"); + // } + // else + // { + // var ret = MessageBox.Show(upgradeData.Message, "是否确认更新", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Question); + // if (ret == DialogResult.Yes) + // { + // OpenUrlWithOsBrowser(upgradeData.DownloadUrl); + // } + // } + //} + //else + //{ + // StartUpgradeProcess(); + //} } public void noticeOtherWeb(string json, string targetWebName) @@ -335,6 +446,10 @@ namespace AIProofread } + public void clearAllProofreadMarkById(int documentId) + { + clearAllProofreadMark(GetDocumentById(documentId)); + } // 清除所有标记 public void clearAllProofreadMark(Document document) { @@ -496,7 +611,7 @@ namespace AIProofread rng.Select(); } - public void SelectMarkById(int proofreadId,int documentId) + public void SelectMarkById(int proofreadId, int documentId) { var doc = documentId < 1 ? Globals.ThisAddIn.Application.ActiveDocument : GetDocumentById(documentId); // @@ -566,13 +681,13 @@ namespace AIProofread } } - public string InitContent(string content,int documentId) + public string InitContent(string content, int documentId) { try { // 根据文档编号 获取当前文档避免数据混乱 CurrentDocument = GetDocumentById(documentId); - if(CurrentDocument == null) + if (CurrentDocument == null) { throw new Exception("没有找到校对文档对象"); } @@ -594,23 +709,19 @@ namespace AIProofread int index = 0; foreach (var item in correct.Diffs) { - if (item.id == 187095) - { - Console.WriteLine("xx"); - } int _prev = prevOffset; // 查找对应区域并再该区域添加书签 - var mark = FindRangeAndCreateBookmark(item, correct,ref prevOffset); + var mark = DocumentUtil.FindRangeAndCreateBookmark(item, correct, CurrentDocument, ref prevOffset); // 防止调用方法中没有更新 if (_prev >= prevOffset) { - prevOffset = correct.SentenceOffset + item.end; + prevOffset = correct.SentenceOffset + item.start; } - + if (item.tag != "i") index++; if (mark != null) { - marks.Add(item.id, new ProofreadItem(item, mark,documentId)); + marks.Add(item.id, new ProofreadItem(item, mark, documentId)); } else { @@ -637,8 +748,16 @@ namespace AIProofread } if (item.Value.content.color != null) { - // 给选区添加背景颜色 - item.Value.mark.Shading.BackgroundPatternColor = (WdColor)ColorTranslator.ToOle(Colors.FromHex(item.Value.content.color)); + try + { + var color = (WdColor)ColorTranslator.ToOle(Colors.FromHex(item.Value.content.color)); + // 给选区添加背景颜色 + item.Value.mark.Shading.BackgroundPatternColor = color; + } + catch (Exception) + { + //item.Value.mark.Shading.BackgroundPatternColor = WdColor.wdColorLightOrange; + } } } } @@ -693,7 +812,7 @@ namespace AIProofread /// 校对 /// /// - public Microsoft.Office.Tools.Word.Bookmark FindRangeAndCreateBookmark(CorrectedContent correct, DocumentCorrectItem sentense,ref int prevOffset) + public Microsoft.Office.Tools.Word.Bookmark FindRangeAndCreateBookmark1(CorrectedContent correct, DocumentCorrectItem sentense, ref int prevOffset) { Microsoft.Office.Tools.Word.Bookmark bookmark = null; try @@ -793,7 +912,7 @@ namespace AIProofread if (correct.tag != "i" && findRange.Text != correct.origin) { // 查找 - findRange = DocumentUtil.FindRange(correct,sentense,ref prevOffset,CurrentDocument, paragraphRange); + findRange = DocumentUtil.FindRange(correct, sentense, ref prevOffset, CurrentDocument, paragraphRange); } // 能够找到对应的区域 则再对应区域添加书签 @@ -853,6 +972,7 @@ namespace AIProofread return bookmark; } + /// /// /// diff --git a/AIProofread/Logger.cs b/AIProofread/Logger.cs index 7a6069f..ae9a6d1 100644 --- a/AIProofread/Logger.cs +++ b/AIProofread/Logger.cs @@ -32,7 +32,7 @@ namespace AIProofread } public static void Log( Exception e) { - Log(e.StackTrace); + Log(e.Message + "\n" + e.StackTrace); } public static void Log(string tag, Exception e) { diff --git a/AIProofread/ProofreadItem.cs b/AIProofread/ProofreadItem.cs index b2a617c..f36b5c8 100644 --- a/AIProofread/ProofreadItem.cs +++ b/AIProofread/ProofreadItem.cs @@ -84,16 +84,30 @@ namespace UtilLib } public void UnSelect() { - if (mark == null) return; - mark.Range.Font.Size = originSize; // 还原 - mark.Shading.ForegroundPatternColor = originColor; + try + { + if (mark == null) return; + mark.Range.Font.Size = originSize; // 还原 + mark.Shading.ForegroundPatternColor = originColor; + } + catch (Exception e) + { + Logger.Log(e); + } } private void SetMarkStyle() { - if (mark == null) return; + try + { + if (mark == null) return; //mark.Range.Underline = Microsoft.Office.Interop.Word.WdUnderline.wdUnderlineThick; mark.Shading.BackgroundPatternColor = (WdColor)ColorTranslator.ToOle(Colors.FromHex(content.color)); + } + catch (Exception e) + { + Logger.Log(e); + } } public void ResetMarkStyle() @@ -108,7 +122,10 @@ namespace UtilLib mark.Shading.ForegroundPatternColor = originColor; mark.Range.Shading.BackgroundPatternColor = originColor;// Microsoft.Office.Interop.Word.WdColor.wdColorAutomatic; } - catch (Exception) { } + catch (Exception e) + { + Logger.Log(e); + } } public void Process(int status) diff --git a/AIProofread/Ribbon1.cs b/AIProofread/Ribbon1.cs index 61d546f..fa7b9ff 100644 --- a/AIProofread/Ribbon1.cs +++ b/AIProofread/Ribbon1.cs @@ -124,7 +124,8 @@ namespace AIProofread private void BtnUpdate_Click(object sender, RibbonControlEventArgs e) { //System.Windows.Forms.MessageBox.Show("当前插件是最新版本"); - Globals.ThisAddIn.SendMessageToWeb("upgrade", Config.APP_VERSION); + //Globals.ThisAddIn.SendMessageToWeb("upgrade", Config.APP_VERSION); + Bridge.bridge.ShowUpgradeView(); } private void BtnProofreadAll_Click(object sender, RibbonControlEventArgs e) @@ -396,12 +397,6 @@ namespace AIProofread { return string.IsNullOrEmpty(range.Text) ? "" : range.Text; } - - //private async Task ProcessCorrectCut() - //{ - - - //} private void BtnOpenLog_Click(object sender, RibbonControlEventArgs e) { // 打开日志目录 @@ -410,11 +405,7 @@ namespace AIProofread private void button1_Click(object sender, RibbonControlEventArgs e) { - string applicationBase = AppDomain.CurrentDomain.SetupInformation.ApplicationBase; - string path = "updater.exe"; - ProcessStartInfo processStartInfo = new ProcessStartInfo(Path.Combine(applicationBase, Path.GetFileName(path))); - processStartInfo.WorkingDirectory = applicationBase; - Process.Start(processStartInfo); + Bridge.StartUpgradeProcess(); } } } diff --git a/AIProofread/ThisAddIn.cs b/AIProofread/ThisAddIn.cs index f65f80c..da91451 100644 --- a/AIProofread/ThisAddIn.cs +++ b/AIProofread/ThisAddIn.cs @@ -303,6 +303,8 @@ namespace AIProofread //Application.DocumentChange += // 选区发生变化事件 this.Application.WindowSelectionChange += Application_WindowSelectionChange; + // 检测升级信息 + Bridge.bridge.InitPluginUpgrade(); try { diff --git a/AIProofread/Util/HttpUtil.cs b/AIProofread/Util/HttpUtil.cs new file mode 100644 index 0000000..d37ded7 --- /dev/null +++ b/AIProofread/Util/HttpUtil.cs @@ -0,0 +1,36 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading.Tasks; +using updater; + +namespace AIProofread.Util +{ + public class HttpUtil + { + + public static string GetHttpSource(string url) + { + HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url); + using (HttpWebResponse resp = (HttpWebResponse)httpWebRequest.GetResponse()) + { + // 获取响应内容 + if (resp.StatusCode == HttpStatusCode.OK) + { + using (Stream receiveStream = resp.GetResponseStream()) + { + using (StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8)) + { + return readStream.ReadToEnd(); + } + } + } + } + return null; + } + } +} diff --git a/AIProofread/core/DocumentUtil.cs b/AIProofread/core/DocumentUtil.cs index d1a280e..5898766 100644 --- a/AIProofread/core/DocumentUtil.cs +++ b/AIProofread/core/DocumentUtil.cs @@ -1,15 +1,14 @@ //using Microsoft.Office.Interop.Word; -using Section = Microsoft.Office.Interop.Word.Section; -using WdColor = Microsoft.Office.Interop.Word.WdColor; using System.Drawing; using UtilLib; -using Microsoft.Office.Interop.Word; -using Bookmark = Microsoft.Office.Tools.Word.Bookmark; using System.Collections.Generic; -using Microsoft.Office.Tools.Word; using System; -using System.Xml.Linq; using Newtonsoft.Json; +using Microsoft.Office.Interop.Word; +using Microsoft.Office.Tools.Word; +using Bookmark = Microsoft.Office.Tools.Word.Bookmark; +using Section = Microsoft.Office.Interop.Word.Section; +using WdColor = Microsoft.Office.Interop.Word.WdColor; namespace AIProofread { @@ -291,5 +290,124 @@ namespace AIProofread return null; } + + + + public static Bookmark FindRangeAndCreateBookmark(CorrectedContent correct, DocumentCorrectItem sentense, Microsoft.Office.Interop.Word.Document document, ref int prevOffset) + { + Bookmark bookmark = null; + try + { + ControlCollection controls = Globals.Factory.GetVstoObject(document).Controls; + var markName = Config.BuildBookmarkName(correct.id); + + // 判断是否已经存在 + if (controls.Contains(markName)) + { + try + { + controls.Remove(markName); + } + catch (Exception) { } + } + // 判断段落是否存在 + if (sentense.ParagraphNumber > document.Paragraphs.Count) return null; + + var paragraph = document.Paragraphs[sentense.ParagraphNumber]; + + var findRange = FindRangeByCorrect(sentense, correct, paragraph, document, prevOffset); + if (findRange != null) + { + // 更新查找的结束位置 + //prevOffset = findRange.End - paragraphStart; + bookmark = controls.AddBookmark(findRange, markName); + bookmark.Tag = "ai_proofread"; + } + } + catch (Exception ex) + { + Logger.Log("create mark error:" + ex.Message + "\n" + ex.StackTrace + "\n\n"); + } + return bookmark; + } + + private static Range FindRangeByCorrect(DocumentCorrectItem c, CorrectedContent item, Paragraph paragraph, Microsoft.Office.Interop.Word.Document document, int prevOffset) + { + var paraRange = paragraph.Range; + var paraText = paraRange.Text; + var paraStart = paraRange.Start; + + // 定位句子的其实位置 + var offset = paraStart + c.SentenceOffset; + //var cutLength = Math.Min(c.InsertLen, paraText.Length - offset); + var sentence = paraText.Substring(c.SentenceOffset, c.InsertLength); + if (sentence == c.Insert) + { // 比对原始内容与校对原文是否一致 + var range = document.Range(offset + item.start, offset + item.end); + // + if (range.Text == item.origin) return range; + } + + var originText = c.Insert; + // 如果是新增 则查找定位 + if (item.tag == "i") + { + // 找前缀 + var prefix1 = item.start > 2 ? ( + item.start > INSERT_FIND_OFFSET + ? originText.Substring(item.start - INSERT_FIND_OFFSET, INSERT_FIND_OFFSET) + : originText.Substring(0, item.start) + ) : null; + // 找后缀 + var suffix1 = prefix1 == null ? ( + item.end + INSERT_FIND_OFFSET < originText.Length + ? originText.Substring(item.start, INSERT_FIND_OFFSET) + : originText.Substring(item.start, originText.Length - item.start) + ) : null; + // 偏移量 + var start1 = prefix1 != null || suffix1 != null + ? paraText.IndexOf(prefix1 ?? suffix1, prevOffset) + : -1; + if (start1 != -1) + { + var findOffset = paraStart + start1 + (prefix1 != null ? prefix1.Length : 0); + return document.Range(findOffset, findOffset); + } + } + + // 执行查找 + int wordStart = item.start; + int wordEnd = item.end; + + // 找前缀 + var prefix = wordStart > 2 ? ( + wordStart > INSERT_FIND_OFFSET + ? originText.Substring(wordStart - INSERT_FIND_OFFSET, INSERT_FIND_OFFSET) + : originText.Substring(0, wordStart) + ) : null; + + // 找后缀 + var suffix = prefix == null ? ( + wordEnd + INSERT_FIND_OFFSET < originText.Length + ? originText.Substring(wordStart, INSERT_FIND_OFFSET) + : originText.Substring(wordStart, originText.Length - wordStart) + ) : null; + var start = prefix != null || suffix != null + ? paraText.IndexOf(prefix ?? suffix, prevOffset) // item.start + + : -1; + if (start != -1) + { + var findOffset = paraRange.Start + start + (prefix != null ? prefix.Length : 0); + var range = document.Range(findOffset, findOffset + wordEnd - wordStart); + if (range.Text == item.origin) { return range; } + } + // 直接定位查找 + start = paraText.IndexOf(item.origin, prevOffset); + if (start == -1) return null; + // 定位整体开始位置 + start = paraStart + start; + return document.Range(start, start + item.origin.Length); + } + } } diff --git a/AIProofread/obj/Debug/AIProofread.csproj.AssemblyReference.cache b/AIProofread/obj/Debug/AIProofread.csproj.AssemblyReference.cache index d11fd72f3d823e96f4425e1e1b173578fe7b2519..9e931dac1439919558c20dc7480e7506177fe2f1 100644 GIT binary patch delta 39 ucmdn8g>%am&Iu80;uD^izCE)sZXq+%am&Iu80m7BU!-yGf;w~(1_YGE{x+04q)&dS2Lot1@2KMVk2a1Sg1 diff --git a/AIProofread/obj/Debug/AIProofread.csproj.CoreCompileInputs.cache b/AIProofread/obj/Debug/AIProofread.csproj.CoreCompileInputs.cache index 5c4b855..4141863 100644 --- a/AIProofread/obj/Debug/AIProofread.csproj.CoreCompileInputs.cache +++ b/AIProofread/obj/Debug/AIProofread.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -fe1ae839bfb706b80f0b4718d7a4129a4057bf53be655076474daf866eae1d58 +4c1c6aa096bd384197619062b3689b9a218de9da2c1b7adc250936855349c9f3 diff --git a/AIProofread/obj/Debug/AIProofread.csproj.FileListAbsolute.txt b/AIProofread/obj/Debug/AIProofread.csproj.FileListAbsolute.txt index 65d5258..f2c0d2a 100644 --- a/AIProofread/obj/Debug/AIProofread.csproj.FileListAbsolute.txt +++ b/AIProofread/obj/Debug/AIProofread.csproj.FileListAbsolute.txt @@ -29,34 +29,6 @@ C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\AIProofread. C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\AIProofread.pdb C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\AIProofread.dll.manifest C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\AIProofread.vsto -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\Microsoft.Office.Tools.Common.v4.0.Utilities.dll -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\Microsoft.Web.WebView2.Core.dll -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\Microsoft.Web.WebView2.WinForms.dll -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\Microsoft.Web.WebView2.Wpf.dll -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\Newtonsoft.Json.dll -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\util-lib.dll -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\util-lib.pdb -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\Microsoft.Web.WebView2.Core.xml -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\Microsoft.Web.WebView2.WinForms.xml -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\Microsoft.Web.WebView2.Wpf.xml -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.csproj.AssemblyReference.cache -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.Controls.FormContact.resources -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.Controls.FormLoading.resources -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.Controls.FormLogin.resources -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.Controls.FormMain.resources -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.Controls.FormSetting.resources -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.Controls.ProofreadMainControl.resources -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.Properties.Resources.resources -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.Ribbon1.resources -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.csproj.GenerateResource.cache -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.csproj.CoreCompileInputs.cache -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofr.8811D769.Up2Date -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.dll -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.pdb -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\updater.exe -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\System.IO.Compression.dll -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\updater.pdb -C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\updater.exe.config C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\System.Runtime.InteropServices.RuntimeInformation.dll C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\Microsoft.Win32.Primitives.dll C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\netstandard.dll @@ -85,6 +57,7 @@ C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\System.Dynam C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\System.Globalization.Calendars.dll C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\System.Globalization.dll C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\System.Globalization.Extensions.dll +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\System.IO.Compression.dll C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\System.IO.Compression.ZipFile.dll C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\System.IO.dll C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\System.IO.FileSystem.dll @@ -158,6 +131,11 @@ C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\ExtendedNume C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\ICSharpCode.SharpZipLib.dll C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\MathNet.Numerics.dll C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\Microsoft.IO.RecyclableMemoryStream.dll +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\Microsoft.Office.Tools.Common.v4.0.Utilities.dll +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\Microsoft.Web.WebView2.Core.dll +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\Microsoft.Web.WebView2.WinForms.dll +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\Microsoft.Web.WebView2.Wpf.dll +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\Newtonsoft.Json.dll C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\NPOI.Core.dll C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\NPOI.OOXML.dll C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\NPOI.OpenXml4Net.dll @@ -176,6 +154,11 @@ C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\System.Secur C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\System.Security.Principal.Windows.dll C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\System.Text.Encoding.CodePages.dll C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\System.Threading.Tasks.Extensions.dll +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\updater.exe +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\util-lib.dll +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\updater.pdb +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\updater.exe.config +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\util-lib.pdb C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\BouncyCastle.Cryptography.xml C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\Enums.NET.pdb C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\Enums.NET.xml @@ -184,6 +167,9 @@ C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\ICSharpCode. C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\ICSharpCode.SharpZipLib.xml C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\MathNet.Numerics.xml C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\Microsoft.IO.RecyclableMemoryStream.xml +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\Microsoft.Web.WebView2.Core.xml +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\Microsoft.Web.WebView2.WinForms.xml +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\Microsoft.Web.WebView2.Wpf.xml C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\NPOI.Core.pdb C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\NPOI.Core.xml C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\NPOI.OOXML.pdb @@ -206,3 +192,17 @@ C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\System.Secur C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\System.Security.Principal.Windows.xml C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\System.Text.Encoding.CodePages.xml C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\bin\Debug\System.Threading.Tasks.Extensions.xml +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.csproj.AssemblyReference.cache +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.Controls.FormContact.resources +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.Controls.FormLoading.resources +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.Controls.FormLogin.resources +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.Controls.FormMain.resources +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.Controls.FormSetting.resources +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.Controls.ProofreadMainControl.resources +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.Properties.Resources.resources +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.Ribbon1.resources +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.csproj.GenerateResource.cache +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.csproj.CoreCompileInputs.cache +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofr.8811D769.Up2Date +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.dll +C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.pdb diff --git a/AIProofread/obj/Debug/AIProofread.csproj.GenerateResource.cache b/AIProofread/obj/Debug/AIProofread.csproj.GenerateResource.cache index 739a2f9bbc7fc02b9667521f4cf6d5401deecb4e..4263b0e9b61733db58a019b261d3cf58622a0a1e 100644 GIT binary patch delta 23 ccmeyx`HOSIYZiXxzy?jZvv)Wc85uwT0Bes1qW}N^ delta 23 ccmeyx`HOSIYZm^6TauSvJamVHk&yue0E6`iivR!s diff --git a/AIProofread/obj/Debug/AIProofread.dll b/AIProofread/obj/Debug/AIProofread.dll index fad082e073c9606bf4e1baf8c16167ab0880fe51..b1d6128f9a5667d4f0fc6c82a152e1e941bd93f6 100644 GIT binary patch delta 58447 zcmb4s2Y^)7_4j#i`pnMmzNxzl><+Nyv4!3i5Lh~PA}E5QfDPNjSv1PB`*uZ96blYP zWADAUSYqsGVndCwV~oATXpB)4g5U3)``*m#Lh||F#QW|k_uO;OJ@?%5?i;$V?brQS zzw^%=^yzVL96`?CpJ`Agq75f{!%u|&^Iz3JH{QH|>9gPYX&-?Dw867+U_6`&Pzey{ z|HFS_PnSM4cc9h~&io05GQhr(J4WiOkQ5 zG{Hj7TI5dfU3kKw+K}A7`ciGr+}-*DbF)T%>jNa69wM*qwHk=R)^8Z$D?;3t8|GP} zEzX_msrRcQxraPeknx(QL7STUk7w9{jMh6?${6k1}37WOym+on0J^{hZanDt?9s4q3`eilaCN+J|6PZ8T~qeiWq8>i8%*;JB7 zhQ-hRFXG4Ke(N1*Kd>t?^#vJk1c!8dfy|O?WHa-p~DR7 zf?>T~l`L!`Y77f(O+q#;>h4GW)DEpA*j!F}wv1?{Ss~_Z8mEd{yMZ;^0zy?y#+(cw z8tT78i+c@kbDVS~ZVJ%mK*xoff;O4xbM#Lm5o?CtX1{ZkY0mV~skux^nW~g((o*3j z@}n&G-y)QSB($QdKN^umBUYMiT;Eq9g#9o&l-IY7_nWAq2^|m#*w%C~q;`0kv~)BC zV*h|O1DI~M1#K&hd&%$?+tcmv-S?nUcAWTdjUuQxAWF0GM5B80m@^@#9=f4n8gVZK zna6wq%2+qCMo>MsHjuPui3;q?aq5afgx(Hc3|knGVKhcC)?5G{Yj;K|nL5=$rZSdd zVL1?z=v`zFVC$*z2+}=LcgF#!!P)}PF$b{08tq>wr8*Eryk3vBr_|wEG?Z6b=wT?o z7Z|L)kwlsX#55Dd!X@MnTKgj7*`dLXzF^$DEkhvA1Fq$*ZDlcSM+#on&-w)r^iCq~ zZGvUd60JP9IhfiVcxDy2;6JWa3*K=8c%0$I+AM*ql`>!Z!K_E0u8IV#*WpqsKs1s+`yJFtZ@2*M zx0cv!Ie+#iHb9w%_Ag-sjrTyLZYEI=e8w$Q;S?$=(@<3AC8!&)-bP)?9U7{W@Zy%O z+_~%&l(pRob13ZSmfD$hLB1M)_Hg6_)^n&vmGx&W!Ms+4=@HD!jCmYMFM$^d?Nz3A zXm%eWCdrinlkMv$<~L6S5cgqB_%J58^AgasjLq%wnyWwzE1pOb1sdbSedLAh5L9;R zwy@uNlWRQ>NhFZwiQI3O^gHJ?^h8}M`wXhSx-Ol4L7o*^Xb-qDi+15zl||W=S4RV( zlywL?AnpyO&)Fm;Yr>aVhce37zLXz+zqJ)r!~;ga+Q6A$Iv#1NA;Yg50V86a3!K@^ zOn(%X?ex)TgzEmNSvxJ`!1?Cyvizd*>4&0xsXo>6jD$; zY=o7~qOe&M7SSmNi%A&PJ=R%VdkdS5=Lh&7$6#I*34=$hBP1?p0*^>ww10$BVZWzy zs)jM*?QFw?{5$*~1KoZY)HDxAQjf|sszI4TJTJslF^U*O4W0OKFU>&xtldt1WwAGf z{gvr-`w@_gF?1vze>~^cuy{!zmMcUH98UJ10M-Ajqy-{1q-5(*TR?xTQEd8 z+_W6>PRccvj?jLYJGgZCq?3Vd*#ymLM+%Y6opVfhG_0^Kj!8W`ke$hEu2v}2r=*^e z`+ey|`%p(2cj6YOF%kCs<^&{;|F4qNFY<*K(s?gl#F9Q<;Qp2JN{OP%c7AhOHy&)__G0lfd{7HOD~i`C}Tk!KD!qh zEzDL2REqnv`vDOTWDn;@(C}m62F*2?4KN^$kf5#3Tv>U#3X4SG2uKbXvZ{)Qf=0+} z%S|nB-Urj%PR<=R5vma-;QZl8(QNT7lq(5Zx8WhRf9N*{=jl{V7N`$0k0y^lz#ts-b~)wU%SRQlsphMLXd z{R}lV#rqpov3{}sy(<{7Yne{{MzpUPqRI@Vs^iLxs8MQ^DKnHC<=OGvpH?SZWq>gN z(ZDEA8Rb?h5a|Og>B@58in_8K#w&;Mj)>LUFQC^v)_q8MfNMMn5f=KG_c4wUt*may zkrjrAhJ#kQi@x`WH6t-iWlCbYG#G`ihYXhMqZ2TJVeNq+mL3_>y%GkR%FHy^-*;H} ztt)eb;-=k$sjt91PMGjWjj{*jd64VHM26*f*g7TmWxV1rk=L{| zxdDqp9aE$t#)Cz}028s_`Yn=Jz{Wi8l?3j34^Z_^_1rEC%T(wqC9^BgvC5>@ow=hD z8P_0c)z5KJsphrN5R_^>TJONb^b7ype|6?;0FsG_cqCLkvF;|@VoR^4Gv zXDPZl4G-*|5PnK1dp2}v$7&+H+GAq-h=rxDI8+QzMcPjX5gP()9i9kL$D&7KUh@ow zd|2REXCl{ZI2mg_pwteX%?vBH?gnm3MN;vA%W9p)C4=LAEGK9p#&IYLVEBh@!>8)T zPGdQgL=*@Ic6goTMRSZrpx?l0HQ})^f(T||x({a|Yo&P(i;5c2W<)+LPOxmjd>St` zN}DsvJHTBl#f^x!9g*H|oeL0cUPA~yRxQUi>pVs|>zAK+iF*|fKUw0|W$!^AoDTFj zL-_^GdkQ+Ag*Xh~DAY!vik6e{G7N8?MNCX>=vFqv1pp`5f7|iXPnhU}J5uOLccK$> zW2qaSaHb-AcckEAd9s@7u&fKm%g1kJapmT(7&0hkn46Ik*JfM9j9BY!;K&oOlkgTS zn5#+qQ*k5SJS@)u!+KdtZeqH|cBDxmxLKG*CX7ULTOWZ;Gly|997#M`tcIK`8AtJ<0;Coexn{){TeCjA{4#4t|B{8 zFqOby(FIIZb_!$6ivcNXXJ-NtPj3rl=Sc?Z%{26F!>ogL5zIvuX!Py)4}(tr7{53E z+sg(L(IHP@>Kafd;CVluK0JAg$OS$F-v@X;55N@!kazg>A#fk%dMe@v_E!T`hNR5% zh^f5%j(7sHKJXK^*4tXus1OE^tO79O@|sx9Y2IxW7>U`%Xb-%RO@Y||*NVY54g?HJ zgq9L8|*01X@zl|FLYH$eU@j9{D@SDpxHhXQH_;3Ws7@6i;@}V$yo)I{3e$eoStg9g-?9Z-%S6bH~ z51qD6j}I)2-nF1$?`jO(Y4i^KucH^S0;@ob*;pgxF6}?xu4WfcZGaPLVfBcpM@d?c z(e#EHJZXD9`&w5+J#1EDS`7Q6n78X%XchOxd@AFQ`Bf$m3#d#m7F3x~ETl5wSXgBu zv4~{scuA~8p`x*t?5s%@|^dIuX>Hqg@c`)vX)Bj81WPqc{p;Cd_3xV;uwzoF?4_7Fp7} zOgh2YxC3y8ZSDb$Fri|J;Y~)GDs(9&i%IKdE_e$P=Tt&R0arExl~*s4s!lboLP(as z>`my*?g}tv@8cX+k=|4{)`MPkAa^UIW}gH_M08_a;?2Isj4U_ZjX(u<^rg3^%ESZ} z&PKg1Zw;_roMeaOaTym^n;n-&4rHD^0Cuw>vPUA|Z{h4Y5K`D;nZIy~NYTd6|IbBqpHmymH+Hz6 zUWM_{w4FCwjw=>Br`ls|%9Ukm?3bX2+KQC~)dDgO_w}kUfI`+?P(B)zC?CphL?gNy z(D=Ia!ft*FpLsX8l1C}8tc%8}&Vw4!xVe%->Xk%cE?3hwkNkKLqcF&Ca{TlZnt?7s zGgz@cD^r-$*06y;XOB)PduSVFr zYz1bRqE=wuk=H4Gbw``9849tK zDuPoRf_u6BH2(k?QSIt^vk-1yilPxr$0q?QY3dhLZ5f8PL@5xmusr2+GaiCLRr|Z! zl0j8FzfM8C#Bt0|0|(lNiZ7~4F=hy!>{gnu6H5fHRZZv03)FOu`Ii-lHXY~~lNFFx z9-@H^ec6?dXZyCZQf#6O>iJ1^>_jG<2pnQHcGQ%;39f^HkHspZ!01@-ik+>Oduvdm zjUe^EyufeW4=Y%|L=A{R*!TIyUjdYE+#d&L?Arg`D%JhU zqph3rZSw}AO$%XTc69M_C_C6yR{Y$D#fDEDUFKcKMO=0M=&BRZc=ZG?@xx2HYU@LF ztPhqj=jCpz?PqU*e9UjwmHhMpeF0Q3ybFU1RXp$)P$35uAYVMV3v>aMFKh&3*wd=j z4}yXy8c?R?omH4}v+H6uHeuf35yO`XsufV&@CCaVd7z|fIfHc?FMfuH1h)`P=QE6v z%O7+<>K0c8u?@sJD8lQYa=#IlWl+S6We~R*2hYje8+B!qrP(D5!Rtvi1+XS$ z=?fvm;q%&AaUAT*a<}R!cG7u)oLfe=XY_; z|G_>x0gr40yuG#o;-86l;N5djiy|pD*{#@7j~?>+b~g`09O2o9XBaI0n=3E?yutsn zR1EFBR1EF3R1E#^rD6b+RDfR?Xjo_vUZIstBp+5x8o$%O_6C~Hc|OMtd5ADI;`mCo zD~PddTTD~jB_%;!?O37#mC6E2<~p#$7f&M;LXoUs~niA5tlZp1KP<1%0aM$DEG z%bPA4U^p^xUiR?-YsJ}1Vj&91sEs+JHsv$aE4?@@GR)*YGBHB5vOxrkUJ_I9GB2;)GN=aLTPFpK{?zu7=XjB-1g{V;lmAso&8kIY_ z32!EGtX3H>Z`zLnYS-4gb{tgqYxX5&wp-!U2thj-|JH6s4RxmL}PI=?l zlq|LSb+bP-W(x~m>o+La2~YB3Jq_!78ztdK%vIt$vg_9yKGe)_3jNj-AmA9!V?K#Y%WF7=^z2As0qh>Z`E%C{8EB(}(O>eSQ#MH0 z;J=P41RND=Gz zoGD4;%@2S-0I;58OzHSX5JHSn>v@LC$S6B;M((P{B)>2TXCwaNeV-9+U&uCk5hT2x z#@TX|#vjMU%TAol69|GQPiZ){YK8ye&xl#r3WY5k$A;qxS;oc^=F1Ghra1n5g{iMH zoNAgGOPPP^#BO)yMoS4XUg9Vu+kT^<^b^FB1lK5=($5n>Cs2=SwJoiwP*dJAQ( zw^^6|M*k|;1C{5cotp=a2jT{T+&plu9bo-EAYP4=B*fWjqvqmxhC)VW*G9H`S=p$8 zv2g%pRG+(IBs>HC#f_gZj!(kzo(%0Tb=wa(3^?q-*)sIuuDr=vnT-KCf0921Ku}gv zeu{eo<~z9unm5@ksL=6t+}C&)6-P{Lg2E-)xp~>xcNckT_8buW%4=~EKsjVIRCEy_ z?hP4U>@)Ir0jet7-(#aaG$+j^ffA@vBT6N%rW0`)Qw`_|UW;DnTY8MyYp zfYN%Ix35o$I2Dah#4w_rE=G`JZ;9Y zN>(TwG^z~FMO7vhOQ}pcmUbjn#3~f3GFGWFRk13S=@;v#GX3$s6esEac*vja7jTYw z`1Owg&x-Z0DcLZWb?+CmodS6g5ZbpMRIQ}umC37@S2*7UX%#mr-_Cr?VGJb)_EDK= z>`2FC17ZWL_n|P!QC%Ddj2I$1HXfl^Nem}}*1Jr^MoB?`U?^z5gNhJ{@QSSgjSMQE z$R5cJmJnBPoZKD5lJ-#XHC1)-QDh;`g(c2K+CPHe5*2ErDQxdU*4b>$;CLK%K?}7R zp2!;F4Zj!T2P@Q?#KG=cv;ma80ZOFL!I2}b5E<$;$iCYAm=)$XYG<)He#yoe39%AL zKLK5q3e7b}L~b6buy0_<{hB#B%FC-i1Y5j?^WY2`ySBc=+*=e&SzQ^=v&M2vN*T_f z2=6QlBfDt82HcGi4_It{az6|=ZEXB8G4dp^(=n5JBZ0Ri{8A;VhcMgAfeU87@jOH6 zY4cN*D<@CLyn-{DjydTfP_Qb+>p_&_^C4vt9!-UY4j%^aQZQt!9&Y&X4B$(Uv(6CE z0C**X>vNBeNVXJg$-C&hEqVRHTZR}`DR}?k*e0iq9A*c^Bhuz)+%Udx@=E^2mrV1R z_TNQE@@p@(45)OL0nW9rZiFv>8_Y`|OzQl0ABV&lAjJXk7C-v|d*kPjpZ$?@UvN!| z<4eBf1((4oOw=j#S5WJ5y!REJkwDfH#Hk`C5HGg0yCIJ)?QA@e6Qwjps?tgpF#9P)f4GAwLf8TytVjjIup(M4)urppFUR5wq? zBrR8C#SosID17g+8kXRho4WYW8OPx6h0EtyO^&gCyl5X=Q#D-JOkl(t zMF@;uuZe)3=a|F@Og(wTZj3;n&m+b$0z){D7|jR-A=|+~Up~q_8|seW_IsTB_D!~) z?!*v6yRbmUiFn5t03Hh)%dqvm(s-<3e#m2-Gr2v1wtfUQ(v-m~`+p(FtIdDosaz)n zsQ&{1Q7IU5lgZ)NV z1h@p>QaX$iQyU4NBJ`@Ai+<_YF8^p(J%WYdZ7Mq*kP5mx!G3OsTr*spvD=H@c!TE6&eQ1)Q(X4fJ~n?Ip~uwPxnuc1aq zaTwWAJi8ujh0DJ(f`5l~^61>su_^6~+{t4H+3>k=)N5*Z@Y11m9IpiOt1@?AfNLod zAk=+OXH^#WcS-5-Sj^!>S7h+)z;UPy=ZYaqhtzt1dLgd)`U>|iDkyse6!Ywkz3C{@ z%)8Nyb`MxrtHY^y07cZkHK=zW+<0RFT!G;odx;)2H|F*n*RuOhkWe^243fNJiQ;`F zvb>gzQmHRw`hYO}AroVk6vKpuvm@w^f@MBY%N|=%} zQGM8qu}m&6LOS9slfi-(U3)6&!&BMCy``re>AfW;SR$8^f*nbg$Y70LX1Tit(5r^BRB&mH0R5B9^`zR(s;F=Qt>X) zi9m?R^AdYjC8{v1kgzE?^H7vmuuX6znJzrd5xs-?u`O!S>=b4W>|zC@HXQuoupgJ_ z!v+uS8Dt;CAFfmN2ih8dq!Z!8>msTdf!L5o)G&f)3ztI>JX`ca@N8lC!tiv_3&GPx zF9c5)y$}*(9nGW~iLVYK!;0`M;1&@CPXaE&7Ug-Cb1@=hN?*j(zKFKIh-r-IV7piY zQ7uf$CUNszgOfK0DYCHIxDOO|SZj;$3N59I(DHWLsw?nikAs6+^#z2}@CIPAXEV)2 z&KjZ^M4?9H^$zYGt4Sj}uc*RvCo#Scn!9QjXzs6Fpt;v}f#$yJi?*Q)cVS;V(A<%` zKy!EQ0?nOTjLu$CWEpO4+GMF>*rTWxM&u2~0BSk2Z!PS0`KB15T~rGrvey;WB8a<+nxe`(l`vqZdaX-$_)qU!C6Bl4(=6kAOg|Vcf_SY+C?oP> zcpPT`TEs4hAB)%-k!QCh#HrZBLDwC^MQ9GayFhaQ-UXV&a4|X?DuL=F)Cgs%**GH{ zH=WG>pR)d;TE+@w>zM4s0YMBa;%5Zuc)LKzHVso8UiN($nVqLMNv?eORNl+4}&9&;qy#MZM9GcZaFWRAwe znZ(8j2K9Dv>9K%JEX~;gc;ZS~;|qY*s`5O)GXc>>7xxmas;PX}IIw3v@v7lUfn z+zn#7xs(*GuqKPxpg?JBO3s*(w3Sf)bg5R=pjJd8#hS_m5+WiY)lehuV(kHmau-W7 zCsFnbnA0OK7P2i-SoRC}mb0OU^1PyY8cz&xG-4hKd#pAH#q5(~GKc|Cdy@2d7@V#=B+5_Fe&7QoJZLDJ1jz=wM) z=ueM%E%I33b=XqMnhmbzQb&e02avkOg3q^{N?8tUhLk%-9UmYts;rlXtrZAf3e9NrrjaD8(Ru* z;FF;v3jt%<+@K2E*hy(8Jz?&nmb#ZI8v4O)1M38(aCIi$M_>P5t-)D}*VX6)HGHbKHekp0zg; zzH8~{qs)a4r?n50_C*qDYUD4XHEQKk4}2-D&OF@i4i+mV#~;5yp_Uia@dr*f@a83V z;OzPdh5AvGTe?@1oKgHGbjF&1bygjldvNvuJKx7RyDVypyl2CA`VNX46dk__5%8;;~8UogS zz!Kg(ihuh>v^8IFD!+j9eniF_QAhj!fUEQB1N%DWEK@;Bd8SnIfNdzh-fpJx@IEpX-im(Sb%b?Pr-;lZQ#qIexRC*K??g@ zk|nNihRo%^B$+vxjpdh9JVV z;Da@0%O016d;{(~g-_HkEi6k|m+>HT%R7YY~LhvX;JCholJc{E-R2Z`OXsM6Mw+-MAXxl-?#Y06$ z?03IS!Ve%&ZrPrL?9&h#FpbjFc*3>iI~P27?xMdS`2hb7aPa(5^H$`ivI}{vJCu$X z2X_Gp#9iDDz6|4J`Fb1wCQ0l0ip~Y(k|@4Vaq{?g>yo_ewBms-Cn%NIhWi=xi6ya!Ai>HcaMV*pX@l2N>8^(_Tz$7?o>IeQaz~9Ce z^ZMGCb3d(y0%4C#coCZd9oRg1t(8EkpFW9F<{vP+c^G?3G1;%a=ca9wqJ=ATXQP90 zsJGJ%Ixjww@=3oJe)~p*9C_mY1Kk`xM%Ryv5x9E$H%8ULe2GV1Zb%bFh-h&N>3Mg_|ny8TpaO zMflCbQOGzo;nRI{1;Cc~FcagG^5JSGK5m~H8E?^9ym^Z7@dYWggx`_#;~DjM zlpp-70_FpPuvRm3;}RgAQXG$|2X+QvRO;Nf3taQs)5_gLLvmo>pUyqN6avbx>D>m}<{0Xi0N zeys=vivkf(*%gHCbje%mgyZi}j8CK!iR@2oTuyX;ryTBN<~*^c97IlZ>r5tcCD;%u z1)*@>0%*{BFt{43>Ls{2)vLUDmQ+70C9A&nvjKI_W0`nuh-DC3jcpzeGW?_vXxWLV zI-$ZBev~In*#$tjp9y9|p5 z<;6QW9ey_<@1;M-LVNrl`416(^gj=ST~wfk)gCge4$coN-8>)6)VO~;_EUayBY;&2 z4ApLCK}+KJ=4>5&1QQottm7vU)Q5gy-Q7VUz8{XQro2$bLh~00SN!f)-ZjgQrQpI3 z*2`@e{aD*IVF#>5g;{s6599Zd(sF;;#Nrh9gF)>|)eWx}E`~y@vIx@n_~R1Jw{yV8t)oi;$bDw{WNiX4 zmjM$cJ7ivtO#2l`)Ms{Aa?ZD{$^E8Jb`YUvd;;ifCbpsL1Ma7W3HKMmG!xE^wSUQ8 z{L^imA4Ls|2(HQbO4{crmB&uwD%2o54P=If`6Tsf7b6)Uu5l5Pk+}!M0~UE#7n-|WG<%*z*e@bsBK@DsD1m#-43uaC3m zVHoP>_n^oX5Z(NdvzuT;-TXIavCG!XYoVN)_|>e+nqif}Ivv(aC!4{>z4i9%P@NKAxglb8070c3S7Y;UqVvg(G2oE zrS@v9;QZakFwDOaqsYfH_)=chaSVQf+YX9)JcGO{Q=rA*cX?*4J_`5Ptp1ShaV{#k zm)ivC-i0~|KjrxXdaaA=6pAkPamp-nsH}pbIs^_?6JP=OJNi^N8&Of`3E$&Uo z4hC?phk+3H*YU@X;S78Eq5O#?c3RGoE1vt$L4mscSc-WQ2-eM<+=8UP90OoYpTh6T zU~6aQh8$eOA9G{tX5I>hNFeOboDLm^%E2JlhgiQiRYY|YTd8nG%u{7HK(G3kZ$}aZ z^_VZ+IUoBoe&Re=o;a+PCr&lJhA$5Nxh#J8rk+bulitL~@3)~ou9i0lnbT0`sB({a zI{@~DHhXXFJ-`9EI?)*%4;)oT$$;O=6ViExGfTRM}ia9V@}me9wguDu{8j?{#(c(B7Dr z)7_rN)%jo&8 z+lsn7F&AR*|1xJ;pp)gg^bV%+uR%jYw?hS`%)soHGJ~yH6`spFctPj;l*{(%Q$}Tv zE9z55WY%$?-UB^*^{Eth`;;qBTd#<29i8ktHKjERd-)5qWIKvvGa_>=WY?s730ATk zXJMcwW4)>*b6aXkYDV-D%*gE7MS|CG{h8x;mdu=aH%t9PcZ4@`TpxmNz`2j1cXXjK zVf-Gc$NUqxR-u4aqOW0WF!#-}wB48MjlNs~vlP)O><^53ukkEB`yOhSo`cVKLyB&? z(Q2~z{Pq8X#iI(EigOW0N7p!r;Eyqzf>;;4$?f2K#d=2%@Y%niF1)iv)@(yuRiO_j zNGr{j-0zlG*j#_F@xzE+j-M0J%Lnkhvo*tkwFDKlzl9|1ghH-PRoW*MG9e!d8OVpi z9`3(hv5?96VZ%V5VZ*3wBvA;3jL4jYp)G-{mv>8Xci1qni%@9yjfKUo*IR6F*JF9k zSode+tkB!s>mT!~?;Y*~Jv#*0J`pnSfV*)CL`V+32$7TehDZ@#6e7{5tKluDqSiu$ zoWb6rn^VPUcqVNjqJ=z@ehrj6lP>33Qtv!W&6&$&&SV_s%re-&sc{*cXe|V1r$eds zccHwsjaz^_;q9#uWWpt6Oz6~v3N-csxgW~f^zt1>?9zAOt?JM56|PPywY`0ug(-Pw zVIc1;4D|99M&x~kfj+*%sO$-BXlL4FMCM`k70i4p#MDdk;fVPLRQ_ zUQ^U{jL00vU5DAK_v|Re-JWA$=bp27TJjWkU2n0yyN=~KUANQ3@_3;u^W*wW)*0hk z4eMD>kJ|WPqF|Ter4Po{Tj z&i{SX1}{C32c)89{|YwwR}iwHB>dnhjNEXHZ1XP=&D)0$@H9W7!F2IK^loU?F(?X_4)VJlqpk0mJ0 z-Op%5xP$tb1v>euoX;J4Xv$_=_3~v#6nyy;W>oLqu*_3`PSjZsMrWCK7H8Ef#@_38 z=E=J?12tvVrv*I{mhCL#nbs>DF`|zfGpg5Y#R#>+&UpH`u@raRn1Q}-+`&4hE&DU2 z4MUkb(7w#x7#6*jX-vu*=zllxF`{NjO-Zlmk&*c&niQ$wBFcHCvXu3?)HR5T#t)9c zc+XHYfSk<%i*SaDgW*=Vaj${hQN`gt1~Apm1+yTwbxr{MqG0jfqeVCO`jTm~LTg0p z7bzcud!RoNL7m^5m)(4J9x7G8Jn!t+@$wUgsX7d{80GYiX}K?st+!`NVa%ppWia`b zalM1l7WSlJ_m|20sox*hJDAm>f5qBR6Mm_;1g-5w`kRpSY!9?ZBvJ{UmBXEg3Eo84 zKw;**`Hjt0{2d9t4>Z5Uvt_!Tste0cj_birSjDSHb@kih{8Q)UsE^*wz`5~a6hy2= z`LQF3g6V1B@3=xt5cq7NgCCuz}N{_ekPiZ2Es-C1&br zSCrxH+=ENHT6m!a1~|011YLmZjUeL8U=2TaBwG?4Yro-$p{K*`aJBCc!T{{F|k0OX$7u=Jwo2 z$4^-VPx5yopz?_yU)0zg3eRAl!KDg0rKD}U@f+`pSTX)0%U|>z<$qZ4f1#b6>#_y~ z4iYz7kh{SeZ1W+7gfSfU_}<0F5^KQTeZLqSZr^j>{00^5s_Pekh^{}BA29m}PMA!2}y53fOFGbzHU%~?P4t{hV#Q8+0pgLGry@OHzz3W91x_&A1x>|78 z$3+XDXu(A8`lakfMSahO^L?*(ECSfR0-e}-FiVsA<#I>%5jcb1!B|VYp_takQ4~q< z;A5bosf*nQ*0i~GP9s^|wpQgvhagYc-%B-|FLbruA@Hx!^=eMUu}?2A6AOs-dwW>{ zZ*FH7fp4{q&TTnif_<>~123{Mk>NK3{pq3Jra;ru@gKtPcJhbA!RPt|=L`P8b9GTD zV1c-SxPl+(b6LLQcRkI7^u#IB6HK%t`Wk)~#R4e`Y2QK7&ZAg>-ocN~BRHQ>sE)$` z$R+?szsMGxB8vW&a4=oMfk+E=9?fN4MLbX>DT;i9g&syMQ{gZCDDns{3SlZ5;QSk) z@(3(B;SqTalw0i7^?m5yN`ErabsNsx(uQKkV&RHo+c5YkLWDFS(aH8k^BpUQ4q{jQ zR*Z@#Lw*Lc+x>0*xqFFn+uO%a_8x*CTgU0ZN<2-(o5B07%C0#6NW5Pmy67e(Dc~0D zM;ARR{|E{Vp1oi$LK58wxVtfzT~*)qSAaNGAefLaGtf2ok5^O(Nc0Gv*W(FiB|Hc& zhXZAKFTua@EFm>!`!5;`&mO?(ja5I6DI?E##(Vp{+32UgOZuv$ zpY&(UI!W)B^k~61R#! z({}C2U@846uqg=RO`$xm~~96AXVe;3mlQnW_{>zhkx4TI>{ z)2v!Q{Tr7$ z)Y{rcnjd`6Y^3Q!IsIodrw7$?dSNT4_Dy*B>373Zvxd?Q(B04fXi>vZy0wz?YmoQT z+327uT2)mws-A{JG>XmT^zVu76GoEN|I$P~1=8CmpskJL(6TG~bGml+1=Wr8P2=_n zjg)C(YWbiGs!QpBYVM%Y`sEX==zF_jZEY33UbVJ1Oy|sHGcF#^RX(V3dc=rppu~)p zHXJkjv1MGQie{$E8>?ve%txnI(S_+pr}}9by3bF;hM((C(Vi2RPfXEo%Gs7*B-yUM zI>s!kWsGl>)=)(Uk5~(9)%Rx~TGHR<$JlG1YJQq3m?Oh9_0g9ho1;45EMe@%#RR zC^3WGXL+0}^F&$b)LOR3@-du0cK9=MCeUX!Tblj!r@72?MGL2oz|qE1Px-h^BmJ$8 zeaObp9ZH|aHV^gF=(yG}nMRE$88MWaMl2dTnGSC)88Mkwv~ao?@{M%STzG~}KTPMs zPe89mdUXuD)mKfNUNw@_^GC2J@0h-}HbwKMuzAmid56-P7FO}J7H;=xh!drBV>t(w zlfoBNPovqxw@;Wxze4J#6%tWCo%1IAW?%81(c(Rqz&G zD8!5ul{GWxylLYyerk_gP(7B04q->$f$kei1MSI7ScGAgqQ8${KCzm<7_vHrK%_kY z-H(D9IXEBV<5ZLXmD58AJ#7j??Czd1C%hEf=yK8k-8W)R_;9=$2ZaCLD4!E<1C$Wj zS<{#^L3;@8=xV0f6%M%fYzAxb=9vr5s$-}DJ0ON8KxiAzx{nlSh|pT-Sb?Gwnbtxl z2y~Kg4#m8~|edLFGVr<=!~G`4-0rWmBWVRw4#BDM^Jx(t|({d1j-0Bwjn-I z(@vl|fxem&pSTLG9V*a6)l6GWBL#ZIWLg)E6Q~D}rkzSt1o}q}(@vwAwt#Qd#V1~+ zt)sabK-$u@IkgnOO0us&?+jpQBcQ9WsXKqj4R}qk$${2-T!_p4XT%Mqhl93I$~`<% zL5rl^kuwzMK|=e)p&hMp{WRPGj}_t)2RdG$XC0v{MU1CbiOC9d`ve7@Bv53sf>sOk z%5(*-5$I2PF*MIn1~eOOdc-NHSmUjVwOb0FP^zF)1-im1xK5yq!>OQ~rYO!ch4xNH zL1zi{sl$1;Krb1Jb{-%b^LnEKZxG@ElN5BLVs&UY3v@%ZqTMUdGvgJ6sR}k6H2Q|p zr7-@(0=?bB(8~_=Y&}D-InaaX!liIu;k4=S6oZDQ3Jwvd(t*~aO-rf9f!d+kQkn#a zJ>iSlT>VrB8Z%Zwj|uHO@sg?969T<4P0^kc=yI{)RP8UC2P4hC9Yd@QVm=aZ90E-n zP18Qn)`B=hXnSg(Yo3ASbUTjf+Grm@VbGq$Qt^Flp7vKM_Zu(M7C6v}utys$)4tX) z=hr?G!&+y?<1vlC8t^pI6{DX;+9+wa9epFH(U|C^`1SS`flF!s?gJ;k5Zk{yR`EhC zMemir92-IROnnXMW4pZv%-s{diW#&#bSaj)TWTKk8nmYDdx*2AZwF5p5?nc#&DP@k zcQ?)CbVI2YA4`|{-oO;T!2bp&?C1PGU^e<}2L1{{ik|ZM@B_h<1I+rKu>MohmnEGa zcq2H1md**rHQFpneD&rVpD`J;Umd4c59M^q5Kbw> z>A$9Mx~PKFt1~QNZj$paCODlZJopz=(7Z!KBayZa9fx$~>`8H~e1c0g z=cik1N8*>x14G)NV=(GNe!rPBk-k1*AEerp#YmqTb2#Ud`>= zej0D1;wi1C0mI$oLEu^+H)un{xk#^^djZm!O&7)un=Wp+1i+`ME0H#oU55fS(FGxm z=0T7~M~ac>G;@Aw=q6Ar<6KQ@@~yaE_RwzkA%81)#?t)oBj~vE$~gUO5~o!ePWK+d z>Am%wULonzGdX{wr1s3ok3hu85?_2?_bj;2yzY8QZ$kgg>mDKb0g^5SMs*gfGWBtk z;*Qg(Uf+WBj_T)-?%TrYH6>e--rvYQt$5B47Wi+QUC2l53V{<4MBy(AxP;QWg5MGb+BMg6U;u6zd-T_ zOMa@PR|@7BF!Vii!NvicCTrizcf@}Ne+bMYjhyaZ&gr``q;~g7Nd|tb) z)2DGhUCQZwK~9%X<#ePJKB1cPrto;ia6T>R7o$JSSN74+&w&4Q7^fadE2ndQR5_5>vAJQ3qGJ)Bcb(ved*f2Z(VDCs>D8S{*Y`?`$t4TCuyAn9Hy z&VO6Y>01d-E0df)JBriJ5uAQ!3u=O}juIWetYpF~l1Az{zp<3lrBcoPb2wku$mvZ| z<=1VTud4qn-}2;GiEg8$H zUHxrd=&b2K0Q0?<)0ZkZ{ZR5_W^;bV1WpId;dS}N~q@u=OdDzCQ4inIj$Ry9seJcjY*n8 zinEiM9N?Ffa#~W!>086~1mgdxi2r_4QRx^hkkII2y#(n952wd^45SxmNu;;vHHj2e zYPCqu*2W;cR-c;~ON)JrkbjB}N%-jjnMa!Ji=G3EJ+o^s>>k3p* zTz!Afalo7?O04(xR-(8Ce%jG`!v82+P<`JF)-$v&_{TVJYZeM*uM55#=grbm0oMhu z58+hKVK)5u`sm&}+tq zM2J3cpnXa&C>bs!t}C2*e+ ze;!%~)mn5c2L;-q-4dfxED;^(`dBW3mjVuSY3y=z)`mKU*O7hSYv}u0WPlIT_1GOd@TIN7Q1X}4pPtU~uV-VfxfJaO&$LZ*o4n(t` zNYqjS=k_eLI=C3S<8Hp(0_YKAH%~2H=|F#JU5sBsytA2UJ@mU-&n4<y<Bc0^0@{Fb*9NJ5>7W2>TjZk713RE{rLDL$_K^yHr^*A*dOZz&|&@s5V zNgEt!VECNqI4Xf4ZvDA~&xy9$G(&;G1EznSm`H~>&@t0L19Yszy4#F@CMM;F(|ffz ztft|3g~(#w%slR$Ot(6aN8g^9LK}8tS`Sqk!Q?a?-3ceg2+k5|xIh~#P93v7GK1`6 z1>8)_1}_TEpz|H5f8q+7N%uO?qQn;OEc()css~=F&F&?14wX#dDwNPU^q@fNf?sDA z2v9B3qLIG0|r9dP2Ta)56;(ClFc;3eb-4zzff2Ixx#Nh|iCf99cB zat|t>>b9^Vxfe~(Lp8~Ls9T`Tbn)PZ-p7SPmbwgTT9JS@3CJvB{1 zj}P7+*`KyL(BTspx^}utJ1?+5ZQ^$k5EGd_EO`LUn5m#jV?3ZQXDjIX!FwbRqTpPH zHqu2?7bOqvWwpa;z@9jNam{u(^HDc#&fHUeY_b6TkXn^oK}~xymE+vWfaWNODk}VR zG#%hTZPg5|5@;i>9&0C$rVkzHsF|lHkD*n2v6PMUOF+lcKLDZr&2;|Q^OMK*((QQK zv^TSErtfB5oIIZT|3X3a1Fuh7v)+Uh_bV3rDkSXb%T^WYBBLHMGcqyn|m$cF`&adLFcHI@5tp2Xrc3>OfxuI*o32pc4VD zqX!gZ(+vR6q%R%f`+&}JVs{TM2eiS7-90o9(7E|2aAq5JNi-UFG#rs0P$bQ*C8zK{+QsE0N~%0+av1KF(rFQ#?@*}eR9DP1biQ&e4%1oTIT z^~33Yx{R8SVxen;E&BJ#%V>szQ11QEWwftAo9WlJ+as6Ly$jH8)z9i2Dfv&40Dkw884 zB%PxH$O|&`nfwtb!h{wLeSTOj8|Dt1C<0f`7(A z5w*I?)NOQ-1MMH7(%WgPK7dk|^n=5>6vOZ?+J3x}a`aFty^9uN zU~mHm#fGHrp&40*)&+yRWB$9B_H@AX?i!$l3Zf;!6_NYs%seza^&4t#mxB0_cDyyA zH4gMJ=7Wdmc?Wt$pypMIlP9N#XrVwo^cS3|KTJ0`5T?*l`(e7v0oUNY#Uu2VQ}8m3 zgGZ?3L=l7jZB0Ew-2y#D^=RRv^rizHg;x-d(&rBJ%T|WGCvmwRx;wy-yAJ$kFUW^g z_oFsVbyz>HE(hy82YL(8V|17U9UZxy9;dYq)QJk8pz9oHe}SHHpfPwe^hCbGXC^b` z{iRao=DOPf4HoDrYH0D}m8LyYKovglhSOpFfTpLObf%mh85K{_l|st}I~sORJw*>V z(E5gb0Db5{hs|A(dYZO7(8{@s0r5|k;jMS@`H9O?TO65dMdlVdj6bVk;@lBOf_SR~ zZA~2q=t&29C)EzlcFm%A+rKG$pJc%C+NIrHDXWmjs?_aeSPlf*LXf>#Dk)Lx(& z4s=tX2GCv(bYa;6^dc>AImN$~ZK$5eCj`Ism_o zbEd<3VUq@ElLM{tot=7_Zgrs5zViS*;6Pe@we|{ab)YEz8JSmlt&(1)w-gP|wkh>0 zZ5L<@T~)J~{zQ|y*)rJwy|~*YsXx(t0kIq0?K(i}Z%g#+@;g(n=OHrgD}n|acc$LR z(?)|2JEA=s5n1}rI858ig#WxU&7NBdP=;w56x6tS+8-4KweJJ3%;KoLV zzI32V8_NNGryx{OPG3^6hw!I7|F3k5K$~gr()Uw;rN{Enr>VcuYYud8y%qVIzICAW z^e0RyNG(Ntnt2+F=^~acdzZFPH32OfkNJ+6n zTINg<6Fj4YA|Y*|16>LztevAEaj1xPXC5l2i1wC1J#@fiDlO5zaiHg+cB$5XJncjfdc zMVxoKkWC&`k*=IoL~QH@Ew0?Fh_RP;tH|D z$+KYrx?slrXp&n3v>fPmX^w?LeTF+vp2iFm?*|Z~c9`0F|}A zls+^s<`xXfrFqV4s#mxW#H7$M%ks4Aro5JRAkhARa<~iZ)Ud4d?X&}d*6GFkcUYcy z(~$Sm4g_KgdJQ*URY4ygQ|BS^?mQ$NbEL~Dj(AiaV&fMeHvS4lLk$x&zb)5SRnNTI z`f2*;JdwX|IwmjX<_XJv4upc&!fMCnY3wBq1lr!P#c?jpH>KsPv;%?0qbcjsq9=~t zp0*3%`J?rU0(1+A?RnNMpg9o4us^TL(|Eu-5NI4b3$*7NLlp(u9C!lXjZn><*Swfc zwDaJ>&E<5Gf}ARTnWu3T4g?xcBn29WodWdWF_h|j8c~0(ZKwLkM z$`NDhD%R#%4}spN*&!u%~w&;uZUI(Cq3IO=X=Tc#OpvP7eKjl^RyTB zaTN{(+6ACp!8Dowq7Mx?xI#d&#ghY;0xCYWzEa!1kvnQFZm;?2%09Hw7clL8Es86Q zS86A3QqZNz7C@^7QtRcbdX>9MI}=LrPAl-CHfGhsCwU8>+=Ziv|B9JMdxJQ-oFPDB*Znz(u z(RE3MFSr{#Ln$i>nb_li{B`!Q?D(f zeEUwLdEu0T5^QjM3oOIwg*whN#^Yer7%6TBHvka=HqdCM`1#K1rlCr{U8u(O_VRL_ z79<(}tJ$32DkEDtj*0|3kCB}*cSBt`CR*&Fm&HGJ<^hKP(Yk>M4my1qE-%N;KWVp% zVI{r{Gqp}e@G%m(RJyY`HBhe}!*X_rMR(?Rf*3-XvMBstp*Bm;O%Z2lp33CGNIf(b zsh847eN-;g6*T5(enLNk+y)-^?*GUV3r7k@3+d(~Jzh z*Qqcv0gBHwGC}$aFd=#nm@wTo#mGePHG`2UAtP>NqV&@!1K+BwXfiTobWp~?JLr8I z49IVv#qtkMv;6lRs5`t8mQu$kx_1L%9(~UHoqWTE@H_-{OJhqvN6 z3I9#Of79^ap7?Jby@_8>dlR1vzDXfE4wo|U`>Xt}vl3|-_q_RVb%dm?lD0`YSJHWs z9w_Njq)A#K`4c2PMbcj*_0vsAtLPh~89G5bZcIHkAB?|CmZo=Uyd-^JFfZFW6W&BR zntnv8k>NRR%mkW;w2eMPI-0&gS}%D&{fPV=(!9(WLb?}zrk<7Vk%~9c_L2i=J@H;> zJ@I~UJ@F2CBkfbYmJW`RgUKE>(NxYxFkt~a@Y7jPyx*Za<_D{zFl zr0jO2zF7w#<+mX7ynmm44zf4q z2;ao=t=)1Xi`w!_bgo70p>p=eHn|WzW}Bp&c(!uk)^`_?D!iR5j1S3EjkmMnprCGY zP}m}=E8Q_^lDTfRph%eM9^kdY5eRza+NkblrlJ!K9&UxS6eqrm zNK|{bWe3_RQU7KPhKi)$vx)kiNtaNdIT>!tC28jL0a7zIR1rlS|k zK%%a0K7~SjpLd7ZpccA5HXFDedo8uOe>3-5UYKy%bV{0V67}s9BWydmyU(6U9veCl zI%bG3q?X7j(SBRAB_TJ})(gXR8t_k<^K7Rr<*^GOKQ+A2=3}{!5a7U2+^PDK zEe&|smce|N<-xp$4j|otQ=*C>=~6Sy^T3J2{|>x3^a}8{0pHs$Sb zYbigscW`AAwafN(_DkyYkN_|ufc8kVQj0E;q;;WO(z@^<_l5_#9~8084*ju2?0+t)#}cJDjfHiX z>d@02!f{Eh$0U<#o#A@ih|^}cJdRo1J!e_Erqs!FZ6a2%bnX7h3q_n}=G@>IWxXk} z*+_>ECOWdLyGG?YW`QqpEUt_j8XQ06P7aR(#KX*8tQhPcJ7u*cG^tmY82=;;KP}BJFCHC&|3fD zyw6GV<4A36xkBlAf8OY1@h8YWvRm>_FC7arbQgI#-`ma4r>49za3KqU9Uc<9m_gzX|_I?H8X;6 z9weu-?ud}+$?%8zZS)fGG&m(^&}Jq7b?7t*rBuU7zI*(dh*A21xQYlVGt&YQ9eS^% zUqp1lPn*GS52V)MK!fU1x2PrlX-FnaL+Rw&u{$EZgZy_9(zq~TH}GWSK4cl0Kygwg z{2{_^T(&ns(kGSXwQED(p|sedNeo5dXtPq2b?7t*k8l&Tb)$J>jA+x!QUdQGapg2h zyat$O4aIasq#8M%3lVwNeeoR;r!~5Xz5~ey3Tn#;msGA)k1O4v*(C?8CIq1PE}jFJ39>XQb%#z< zM~6bD z+rUlgUEmYyIB=^v34BWZ1-M;(3anFSfjdojQQ9hCFKrz#R=XeQ(*i)hwjL*>61COv+yJc_ zk`(PRNK#ocRI7nxr1lgrO?wtNUi&RDLwgRGsqF?%)2NxIYXNGfnHsgzd~Giji&&Ab zk-UiI%Qb4hQjOYgmG)|s2jhSemus&h{(V{#@Imb`FsS_rxL$i7xKTR++@zfbKB4^; zxK--}KBb)p*0KE^+Fq*7PR{0e&Sp1f^9r&-LvRMKaRzU222Gs7Tbw~FXK<7=IL;ZI z;0#W224}Pju+Xmkf8bf|8{m2ED)389!e`06t1j1@_X117r0uK%YJy=+`F#2k4W5Df(34P<=XZq&^Fnrr!n}uP+2<==s1* zy%;!6XXoqiaX`$}$@z12a`JqgoV-Y<+UM)!-sL(qN+~B;MF~VX$G?x`2U)(JaU*Lt zF+Ra@wsM@O*yeV&S;sba>eOV6 zmOHAGV~^|P*b_QA_LNSJJ)@Ij+jVm6S=|9VuajTD)XA?`xQO3!Wv=Q!cl&YU`Qk{d z=>ai2Za6+1wGikP_XCqe6>tdS7_k-n1o1R5nHuY$d(i-TT-M3`7!t-jGgjzl(bW} zh)4P+sdteqTahGNk)#k<<11uIp`tofbz_S->8sZ`V~uPk>BJ}L#Ah>~O?F=IbG^jBjSXndL3ax9DGp6Y(v2p-4+;(JxbRS>CDtAnr`) zguEC?a?L_{X_ij$ctR5Mfg}X%{jxcbZE?tl!FP&t{R&x92!4vciuo$=2mSTT*MlFC z*us1Z_~#NkneW6i*#r7_S_;K*AZKaiEUnRUet*qcDDDE1Jc;E=0aheIv8jI&D^jhR zgp*mF4f(76v#nIWY}V#M`*7bv))qqB-oMaFwJc<93AFF^4dV0Ew*sF*HdP$6%Ic8z zq$+EtxI3wub!rCLO?PP5y6Tt zJzmY=x*COI>Hy84LTd)q)n-t!l31H$P>xB6vwA?1aXA2WD%ADfY*uGO@yvj1PL>CG zz+1@jLdXvfC`96a0Lf?x8?9n(6|~^{lOjd_ZzN;tU5;+6LCPK#Tt0 z0>%8~7B=0&>LXC^_I7gOPG~EWJK1z6YrCM$^J*s76|X@UkgS=7VmFZMYHIR;H;J`L zkbjh%#PU?g|LDzTc{b!?U^ddu5A@Gwbsp63cneuw2=(BBg=QxnKrDg$xVMVsRgmu- zSOxie1FIoF?X72dJ>-dl>LLHxpa#hQ=51kl3*^5Z)B<_ypd*lf;q7F3C*%n!osdsU z33Nem#jDx4Hnu|XOp0df6o*r6HgbLv%ab5aNKJx#T52lfm?v1C4f(UF*^s}Jn#b`A zSYBYG!Cc6Ep)Fd*4=zN^!9Z>}#I*XVSX&iZsOJu@Vs$mtk-mCX*F&C`P>(nR z`q#6z0oqt!3u{|g-hw!<_HSYB5oq(goviJIeCmKsmUlsZz^mD*k~TY4z|VY=JwT#V zi1NIdEXroggCyY1XTG2txlYWNu!$h^)f}^q`Fh3%NM?JRm~XbzEZM^R5y*FYJ6O^M zKF@1&XaSTf)j^r%0rR{iz}env;22*6FvHjEpdvOqDElLj+eHFKP1j?)~;HX{)qwTz}fkg+L-_;$w3KCgq%?DMgB zxNko5`F*H1`78;tB*>B=OX^rs$C5ghG_jN}CUSuWub= zJ8+BFKawQ*zP+BnZ$4uXnCGoy zYyuwewln(2(2SN3e8(FE9``l@PkXWF#uStZ{K6XqUhy^ouX)>n0k0TK8T)}~+_C8Y zC<_7sZynI;YX?U9{Nrep=K~Xcb-+At6JtB@fLGi=mrl( zUp}zJR|g#IYX`3J`7<>6fG;1o-WO!_Puxd6fHCtX;wLJ*XA&qIlna^~0OWyw2D$}w zD`*aA9_V(^0?-%GpGf081xS42+|$H@qOhAc-oNQL(oYG{tP+|`WW;HB7F+#0Cj@8 zAo~LGE`a_4x`gm$&{v>uK;I$G51?zHe?l)cyGH|AKnBPLa%fIZB#v(Fbx$-XMhm>| z=>tI=0$xx&s2?a1lmto!4FaWthJc2FMu0|v#(>6xZUCi&CV(b_6i!;KbuSU?aJB3S zoIhyB(;^q~X0(Upqw*!Zrs^&EvHVO9QW{Jo1h}ejfh};_^ zmPVY6FkEr2p{~iU>8=wl5$VTe*TF*J3Vgluf)wJ`l%3%Jr%xU5{p{Vq>2a?Bx5n)U z4)?rP6WyAKCpZ%E?t=limO4oE#Sa*-7=h1zj|7eajsd3O0_|8l2R}~SfWLGx9&gZ3 z7ZZRPz=`;~2~UPk!UN!$c+fiwA2pmTX5zhkv+y~`IpP+aotc3b_}|KJZ7u1w6!%|T zvi%%bmc23-caU83ljyFgg!hgh#VAz{Y`0bby*HC&^Pq=-Pvuntk5AYLTsmqq@M7;8 z;0>wUfRmF5=S?Jhc{t%R=8xwRzlr%nF~r9)zsyd2KyhHOp8}c8FOMaDDD%_D5Pv`O zhqHbIKGoa_JRV8KYK)>nPZ~=6!eicQ*pZGwx*!SMu8&il6Hud_KT| zmj{!f=@Z@nmh}36!1vv6lRD?<|B3gzj$fBA>wV(i;{Sc%Um&?_D%ts#E#$h$&Tn!$ zfbWd|9OzHK0E|u#T*l$Kgztb2ll}=@?Xtw7eyI-Nj|&ktcRt+%`Aav(Ue|6-O91~T z#&B`pA3Ok(f}xasSQ4(%p_>LnZqFVGJU4Y55HSNdgwK4d}UNTgZHdSJdcgfPKcL8H29Z+IFoox;505CJ&b|keY})} zo*(Q3z70cCi4QR#l{kSRDe(%vc<>+L>&i;}8N*hIQ#kLSa92b!@Gls^xcw8iLnv_u z16kp@ykWq&sFrJikIHpGT;%~i zCM$rC%Lick382C|gdPH415{!wZal~RbwJ#jBSYY8feM$otANkQ4Z!X45#X<7HLwn6 zX%y~5-VEF+9|t}sw*VVt4VidBJ_!>q0&z>NtOdR-w*mLcXMhLfv(UZ@RH9M-2K;M4 zCH^3H0N;@Hz(2}ekiQ93qFFu%Y>^GXx8#e!x8)w-JMv{_M+XTZ-B ze+7S=_#61!a3XVvxF@+Zc}p^`R?B2LPu?w0$iC_!^(*y!K%G}tm0P>0eWTg+cs*Gk zrjOHCTd!IZjWlDLG0P}6RvPyjL1VqS*|gZk+k& zKWpFY*yd<)9CiHK`GYg$+UgSWeX$SsBnjCjzU@uNpQ%MD)ERG44;vbFN@Z*F5i?6w z*SO!02~5N7iaJ)uo_|9kcj5FZX009pj%ksHamOGMu`G;2Z0C3s`mK2bYbHiMI)Rv< z+AI7&WD@rnvc15M65rpOgo-C8;)IwInQW!wPYaVb{y$~U`6nOI0Z+%h9mJGj1yuN7~Wc;;bkoFIA4Cr%F8ZqHz z?fZz&ML$=U_B`k?s0;KBs8?i{)<2T1FS)J!uF|Omt41#wHB$5h#@CdzZL1mkL8LZj z%#xb_X&YA)|F=Fh1s`1LJEdf0(d>ei%ZjsB7GEQA6}?=`osa5UNiILJC2@cH!K-n6Z27K%(CM0CG+M^8Gk)V+LH02 zwqu&?rN*T1%m3&PdY{75;(|39wid(dU${TT@sprWTh^ zD=%Nw9hy;G++$AUtt=^@S-Ngn$;$2&B75DMHN`8-!@(M(eRv#|e@=Np`MR~)Wktn; zEpc$)$aaU-&eh}6)r|dYR6GSyjq>8c@{+QZb1POAi`$EO1pAhJRwQG|!tKR(%`RTM zs%+(2E*|sy-u(Qy)p>6b98q@ftt(3_X7Ahh_upG}iob8{SG}bj73oe@ll}FtWXZm^ zuOHFPdy8h2Q4afN{jgh)!3PeC3s#UXir0v_#rGjaLD9bN|JiEk^&``8c-TeGJ2 zpOG@wHm723dGU(jGm0ByqU3VjalO*3*VR_w))gx`D)+v|tQh%%bfA&%?QVg_&w9&c z*lqC3TC_Dd7SULYpR?qa+0)hxU3TLPvFw#%;++3%FBY{^=REhYj2N+W;M|q>?fm7H zrLPpri3MU6Zk`+=?!jJS1h(^KVg>%n#7cyUaJ&~>DUJmQQLJLIMyy2&iXkHA+$EOS zW(C$gHEKcfW?B15e;FGWH)8Jdvneab{g2;C@}c6JUmn|X@|U&CHZ5PxCY!nP9jDJS7x3QcM4fjGIl_U^ti*eJbnjaBB=e(#qf z8}}#5RB4SbN9?<5-+#~Ar_qxn$C|Flb#Tx!RGJ)6+?YE=j?tnLhYnkR{^rkbK9KnC zC#7=e+1ic6<<;Ax9rNtcTP?$CztVV91O)dqzpcmV%3KQ6BN@ie_5mBlYS z!7GFz-GYxixm*@QDbHeDoOf5oxo|LXv>F--YokWUUO%%L7NwLsxLLujaz)^0NpQ2v z<*pp&t{i1IEG|#*Ns0|~E|dhX5Kj;;iyfIi$+=Y{UownTwZliqiGfzLuVIP7sR>W8 z)r@fmpJfICIy(F!#uMD8qOo1GF-NgTN)f}-o+P>-8(`E->8JyqLzkY)beGN0T`1BH zDva@xlE1`fYNFpuU(2uxyv*pmB!_ZG^}BU$^zeXhwO$zK{iN_-__rM z=~kC3p8r@1!9_FP6;5a>7yM3IcjYZ;4R9K)Ah8SOz;~4`h75Q@nbc~&SSn9&i>GoP zmDv+)h_|>R{JKQi1@6kl?#cqx&2IQLGu~pFSi4;Dmfi-wO#@f#!Ks&E2+Uq)OwJyX zu%q@|cT_lDSh_bX4O~w}{*&yV6)2Y{lmm~sgI&f*+)fddAjmtRoG7%FJ9t=`9{f=| z8tKICIZL==BqR+hnxpwiy<2>^!)QQso)by7QwroW=D#xQSg6hLyUMC-^0rc5#}~-;>KeIf)j( z0x8fWCtRsLI9m3LIf-$HF#Ko2fqvAPR2N3egup`>ur3qcH);H#TW#pY&OzcMWQ)9m zDx=3D6y=NZ@euaK8Q}=6p5Rqa@Hu_nT0%CzRYB(~VS~P^#kD$aK;0 z4O!5LnCrT`o1d47P@A2m)o?cdV&jk_iizx~=Thd>bGr+{(Wu9U5+Mr)x;Y*zp~Qb_ zlSxZTFkvN0*zENhxp|V=g`Ox~LydlL3D0%_loyTh6dD%I`yc;Y_+{m?`!)340MCh- z3?)s5JaZm!SMEW-h8GVEH==sH>oWgA;^ims&)Wq&W)?PY^8WY5M%y_#0$w0ABjUB{WavId^4Octa40HeP@(8d|J* zLIpn4iTBu(BpNH_In5f46IRModBI(I$>kH4a7wtB+LSjGVYc#ur^imQ4m;5KeE(+J zXAfM@#)ru%nimFmJ@l_6Xy0g!){AImzaAO$8MY|v!o7DL2Y4k9Wig-2nD?))oJD=^ z8d`z%RT2q3RTi`eKJWqNdc?}M?ueCbWZNCw%2`y|uEz*X>@hVltct+I;2Ceht4$K{ z#X7JwUxq3?p&j9ESMUidEy~z0P@h9jq61b8R0hESrovDKOtMPx#-mkXv7+v{iL0^0 z6Yem)43A)?GuebRSYWV<(-1ae zu_22L4nNr) zMitPUiwSbrYkPPDoMA(YctQv9pAAkVm$*Dt6FJTyG@H*8YKG7UpB|#rGieU0%EEs; zt%YBan=uh!S&4Vq4UKD}DOc^AH_Cni8k|vx7Q%kz81iZJgii9TQI$&@Lr+y6&|P&4 z@u4=_xK_PQxaC3Lx=m3o2qNHnD(B zFODz*hKZHV9h!;%=pfkLxkI1Oz91G5Yhpf=u{<2Ain+dXxn1Ul`~M1BR`8pEhD-OM zYBl-WG{b3ll)9@b$V>z&oX)V~q3~gYB|ufIrjVy{by&DLeAwck;$H~=cVOD7N)G?W zJg32DG^cg%L@!uj+UF_Z5?(@PzVL)wwT&h7xy@F8NK{&UD>u&S+ zGOWA}`~-7a2e!HH;5iSj&Ra0EySkTwsy+AwV2r0~FGZmx>jL^`I27LLeZuRdJIFTd zBbB0Eb5w$iu+#YHv5b8xc0yZVgW5QF&a`8`KS#T5^2g$TE67|f$WJWH?MX2=+OW_X z(rtPEe@30(6Lr4Xc>ki?;?mly%~vKZY3w&qZq=l-c7LWE9;nvQUt4i2Xsog-;=fXO zsR}x$)U5F?V$umF5@ZqN6667bn~19**sNJG6NY!dSmYewc!qN&uXw+4nlUG;CidScJ5?3VR0*ZBwB%n5N(%D+JN!a1bYkYJ|M>73e7^O zr3EQ{@>zwZ z2VUbw`7YUy257Clm@ECYlkw5QfDdYT80pbw?cuoX6bOYyXIXKI@jT-hMDn4}a^ND) z2*8*0>x_S)VG0R_r`M2^B7_7-JHh-=s>}6=p3q2(-;P}0f)YKy_RCzE5opy@&@5UC z&YGCyO90#l%wYB);~~ao63^6A=qyW$&}=E_qhar*koN$g)0&BsJ%|>(0?q^}gfP~u zX1La*YG-REM_Y8352sk9Gk>1(3{r5dDaAz=H33mu;!#bKpI~fd$xz0TEO`rv8a7^= zB8N$t-Z*5M{Hu&k;gjvA5x^wBxvM~_b*HfB`rlwo7Wj~+E_ z{0+Ie!=|LAr>A9)${sgm>{ub@*AAO52g%{J?s?L0?>Sjqwz6^bZE~q>{Pl;HHS!U2 z0g(b}ART0BG#6O6mJL0>;?zw&ySE|8dr<`#)TI z*V@688e3aYf7ivY`1%Z&+x~U!UyoS(s;gf$et*Q;OKllxHoA^lFKf1o^jtJ-j%yrs IKz=R%7mt)glmGw# delta 54310 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�Vs2)` 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 diff --git a/AIProofread/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/AIProofread/obj/Debug/DesignTimeResolveAssemblyReferences.cache index 82225bcb742829a70868afc742c78f15bb42d034..ed38d85da5887363e4f9318a5af8b6d444af6eac 100644 GIT binary patch literal 57495 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 bnannv?UqHO?l!&82rO~3WV@tUZfN-*OZbLU delta 125 zcmbP!kogH02OA>`0|NtN@8pZwmXqJ=*i3#e&pwHTZ}I^d*2zz#lP7;EcbYs;MSt=d z4qk-RHYUb`$qzYYCtr}}pFDxnbMn5efs^;`@R;mynq%^OE}zK(9Ric#7?dh(gOf&KQDy< diff --git a/AIProofread/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/AIProofread/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache index 741e8f9d932dac9007a966a7ae0a5231f99b2c21..86a0cb8e0c65f2633794c88dad8579a60df4961f 100644 GIT binary patch delta 111 zcmdnJhjH>A#trKk89gT(^6O3Bz$L<=mz-YLjS0!fEOtyu@yye6NiEJy&r2=RtH{m4(7l + /// dev | test | product + /// + public string Environment { get; set; } + } +} diff --git a/updater/Form1.Designer.cs b/updater/Form1.Designer.cs index 220bc48..5ef2e1d 100644 --- a/updater/Form1.Designer.cs +++ b/updater/Form1.Designer.cs @@ -33,6 +33,7 @@ this.ButtonUpdate = new System.Windows.Forms.Button(); this.LabelLocalVersion = new System.Windows.Forms.Label(); this.progressBar1 = new System.Windows.Forms.ProgressBar(); + this.BtnCancel = new System.Windows.Forms.Button(); this.SuspendLayout(); // // LabelLog @@ -55,7 +56,7 @@ this.ButtonUpdate.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(100)))), ((int)(((byte)(215))))); this.ButtonUpdate.FlatStyle = System.Windows.Forms.FlatStyle.System; this.ButtonUpdate.ForeColor = System.Drawing.Color.White; - this.ButtonUpdate.Location = new System.Drawing.Point(183, 198); + this.ButtonUpdate.Location = new System.Drawing.Point(228, 198); this.ButtonUpdate.Name = "ButtonUpdate"; this.ButtonUpdate.Size = new System.Drawing.Size(78, 31); this.ButtonUpdate.TabIndex = 1; @@ -79,12 +80,29 @@ this.progressBar1.TabIndex = 3; this.progressBar1.Visible = false; // + // BtnCancel + // + this.BtnCancel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(100)))), ((int)(((byte)(215))))); + this.BtnCancel.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(100)))), ((int)(((byte)(215))))); + this.BtnCancel.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Blue; + this.BtnCancel.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(100)))), ((int)(((byte)(215))))); + this.BtnCancel.FlatStyle = System.Windows.Forms.FlatStyle.System; + this.BtnCancel.ForeColor = System.Drawing.Color.White; + this.BtnCancel.Location = new System.Drawing.Point(144, 198); + this.BtnCancel.Name = "BtnCancel"; + this.BtnCancel.Size = new System.Drawing.Size(78, 31); + this.BtnCancel.TabIndex = 4; + this.BtnCancel.Text = "取消更新"; + this.BtnCancel.UseVisualStyleBackColor = false; + this.BtnCancel.Click += new System.EventHandler(this.BtnCancel_Click); + // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.Color.White; this.ClientSize = new System.Drawing.Size(438, 286); + this.Controls.Add(this.BtnCancel); this.Controls.Add(this.progressBar1); this.Controls.Add(this.LabelLocalVersion); this.Controls.Add(this.ButtonUpdate); @@ -106,6 +124,7 @@ private System.Windows.Forms.Button ButtonUpdate; private System.Windows.Forms.Label LabelLocalVersion; private System.Windows.Forms.ProgressBar progressBar1; + private System.Windows.Forms.Button BtnCancel; } } diff --git a/updater/Form1.cs b/updater/Form1.cs index 93286d9..82d8125 100644 --- a/updater/Form1.cs +++ b/updater/Form1.cs @@ -15,23 +15,53 @@ namespace updater { public partial class Form1 : Form { - private int localVersionCode = 0; - private UpdateModel model; - private static string applicationBase = AppDomain.CurrentDomain.SetupInformation.ApplicationBase; - private string versionFilePath = applicationBase + Path.GetFileName("version.json"); - private string updateDir = applicationBase + "update\\"; - private string updateInfoUri = "https://file.wx.wm-app.xyz/jdw/latest.json"; + private UpgradeInfo localVersion; + private UpgradeInfo upgradeInfo; + private static readonly string ApplicationBase = AppDomain.CurrentDomain.SetupInformation.ApplicationBase; + private static readonly string LocalVersionFilePath = ApplicationBase + Path.GetFileName("version.json"); + public static readonly string CONFIG_FILE = AppDomain.CurrentDomain.BaseDirectory + "app.json"; + + private static readonly string UpgradeDir = ApplicationBase + "update\\"; +#if DEBUG + private static string UpgradeInfoURI = "http://gm-plugin.zverse.group/"; +#else + private static string UpgradeInfoURI = "https://gm-plugin.gachafun.com/"; +#endif + private string updateSource; + private void InitAppByConfig() + { + try + { + if (File.Exists(CONFIG_FILE)) + { + string content = File.ReadAllText(CONFIG_FILE); + if (content == null || content.Length == 0) return; + AppConfig config = JsonConvert.DeserializeObject(content); + + // 插件网址 + if (!string.IsNullOrEmpty(config.AppUrl)) + { + UpgradeInfoURI = config.AppUrl; + } + } + } + catch (Exception) { } + } + public Form1() { + InitAppByConfig(); InitializeComponent(); - string source = File.Exists(versionFilePath) ? File.ReadAllText(versionFilePath) : null; + + // 读取本地版本信息 + string source = File.Exists(LocalVersionFilePath) ? File.ReadAllText(LocalVersionFilePath) : null; if (source != null && source.Length > 0) { - UpdateModel update = JsonConvert.DeserializeObject(source); - this.localVersionCode = update.VersionCode; - LabelLocalVersion.Text = update.Version; + UpgradeModel local = JsonConvert.DeserializeObject(source); + this.localVersion = local.Info; + LabelLocalVersion.Text = localVersion.Version; } } @@ -43,18 +73,18 @@ namespace updater return; } progressBar1.Visible = true; - if (!Directory.Exists(updateDir)) + if (!Directory.Exists(UpgradeDir)) { - Directory.CreateDirectory(updateDir); + Directory.CreateDirectory(UpgradeDir); } - string updateFileName = updateDir + Path.GetFileName(model.UpdateFile); + string updateFileName = UpgradeDir + Path.GetFileName(upgradeInfo.DownloadUrl); // 判断是否已经存在升级包 if (File.Exists(updateFileName)) { ExtractUpdatePackage(); return; } - DownLoadFile(model.UpdateFile, updateFileName); + DownLoadFile(upgradeInfo.DownloadUrl, updateFileName); } public bool CheckHostAppRunning() @@ -70,6 +100,7 @@ namespace updater else if (item2.ProcessName.Equals("WINWORD")) { MessageBox.Show("检测到 Word 正在运行中,请关闭后再执行更新操作"); + return true; } } return false; @@ -82,36 +113,45 @@ namespace updater public void CheckUpdate() { - HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(updateInfoUri); - HttpWebResponse resp = (HttpWebResponse)httpWebRequest.GetResponse(); - // 获取响应内容 - if (resp.StatusCode == HttpStatusCode.OK) + try { - Stream receiveStream = resp.GetResponseStream(); - StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8); - updateSource = readStream.ReadToEnd(); - if (updateSource == null && updateSource.Length == 0) + HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(UpgradeInfoURI + "api/v1/common/download/version"); + HttpWebResponse resp = (HttpWebResponse)httpWebRequest.GetResponse(); + // 获取响应内容 + if (resp.StatusCode == HttpStatusCode.OK) { - LabelLog.Text = "获取更新信息失败"; - return; + Stream receiveStream = resp.GetResponseStream(); + StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8); + updateSource = readStream.ReadToEnd(); + if (updateSource == null && updateSource.Length == 0) + { + LabelLog.Text = "获取更新信息失败,请稍后重试"; + return; + } + resp.Close(); + UpgradeModel update = JsonConvert.DeserializeObject(updateSource); + ProcessUpdate(update); } - resp.Close(); - UpdateModel update = JsonConvert.DeserializeObject(updateSource); - ProcessUpdate(update); + } + catch (Exception) + { + LabelLog.Text = "获取更新信息失败,请稍后重试"; } } - private void ProcessUpdate(UpdateModel update) + private void ProcessUpdate(UpgradeModel update) { - LabelLog.Text = update.Log; - this.model = update; - if (update.VersionCode > this.localVersionCode) + this.upgradeInfo = update.Info; + LabelLog.Text = update.Info.Message; + + if (localVersion == null || update.Info.NeedUpgrade(localVersion.Version)) { ButtonUpdate.Enabled = true; } else { ButtonUpdate.Visible = false; + BtnCancel.Visible = false; LabelLocalVersion.Text = "当前是最新版本"; } } @@ -158,22 +198,32 @@ namespace updater private void ExtractUpdatePackage() { progressBar1.Value = 100; - string zipFilePath = updateDir + Path.GetFileName(model.UpdateFile); + // 获取升级包路径 + string zipFilePath = UpgradeDir + Path.GetFileName(upgradeInfo.DownloadUrl); + // 可以考虑备份旧文件 //string destinationFolder = Path.Combine(applicationBase, "update\\old"); //CopyDirectory(applicationBase, destinationFolder); //ZipFile.ExtractToDirectory(zipFilePath, applicationBase); + using (ZipArchive zip = ZipFile.OpenRead(zipFilePath)) { foreach (ZipArchiveEntry entry in zip.Entries) { // 采用覆盖模式进行解压 - entry.ExtractToFile(Path.Combine(applicationBase, entry.FullName), true); + try + { + entry.ExtractToFile(Path.Combine(ApplicationBase, entry.FullName), true); + } + catch (Exception) + { + + } } } MessageBox.Show("更新完成"); - // 保存日志 - File.WriteAllText(versionFilePath, updateSource); + // 保存最新版本日志 + File.WriteAllText(LocalVersionFilePath, updateSource); this.Close(); } public static void CopyDirectory(string sourceFolder, string destinationFolder) @@ -200,5 +250,11 @@ namespace updater } } } + + private void BtnCancel_Click(object sender, EventArgs e) + { + this.Close(); + Application.Exit(); + } } } diff --git a/updater/Properties/app.manifest b/updater/Properties/app.manifest index 5a95963..303298c 100644 --- a/updater/Properties/app.manifest +++ b/updater/Properties/app.manifest @@ -9,14 +9,13 @@ 以下节点之一替换 requestedExecutionLevel 节点。 - 指定 requestedExecutionLevel 元素将禁用文件和注册表虚拟化。 如果你的应用程序需要此虚拟化来实现向后兼容性,则移除此 元素。 --> - + diff --git a/updater/UpdateModel.cs b/updater/UpdateModel.cs deleted file mode 100644 index 163393d..0000000 --- a/updater/UpdateModel.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace updater -{ - public class UpdateModel - { - public int VersionCode { get; set; } - public string Version { get; set; } - public string Log { get; set; } - public string UpdateFile { get; set; } - } -} diff --git a/updater/UpgradeModel.cs b/updater/UpgradeModel.cs new file mode 100644 index 0000000..9f5b021 --- /dev/null +++ b/updater/UpgradeModel.cs @@ -0,0 +1,49 @@ +using Newtonsoft.Json; +using System; +using System.Security.Permissions; + +namespace updater +{ + public class UpgradeInfo + { + public int Id { get; set; } + public int PublishType { get; set; } + public string Version { get; set; } + [JsonProperty("download_url")] + public string DownloadUrl { get; set; } + public string Message { get; set; } + + /// + /// 1强制升级 + /// 2强制提示 + /// 3弱提示 + /// + [JsonProperty("upgrade_type")] + public int UpgradeType { get; set; } + + /// + /// 是否显示弹框 1:显示2:不显示 + /// + [JsonProperty("is_show_pop")] + public int ShowPop { get; set; } + + //public int VersionCode { get; set; } + //public string Log { get; set; } + //public string UpdateFile { get; set; } + + public bool NeedUpgrade(string currentVersion) + { + var remoteVer = new Version(Version); + var currentVer = new Version(currentVersion); + return remoteVer > currentVer; + } + } + public class UpgradeModel + { + [JsonProperty("msg")] + public string Message { get; set; } + public int Code { get; set; } + [JsonProperty("data")] + public UpgradeInfo Info { get; set; } + } +} diff --git a/updater/updater.csproj b/updater/updater.csproj index 3cd409a..c38dda3 100644 --- a/updater/updater.csproj +++ b/updater/updater.csproj @@ -22,6 +22,7 @@ DEBUG;TRACE prompt 4 + true AnyCPU @@ -71,6 +72,7 @@ + Form @@ -83,7 +85,7 @@ - + Form1.cs diff --git a/util-lib/UpgradeData.cs b/util-lib/UpgradeData.cs index 92c8ffd..28254f8 100644 --- a/util-lib/UpgradeData.cs +++ b/util-lib/UpgradeData.cs @@ -1,21 +1,34 @@ -using System; +using Newtonsoft.Json; +using System; +using System.Security.Principal; namespace UtilLib { + public class UpgradeSource + { + public int Code { get; set; } + [JsonProperty("msg")] + public string Message { get; set; } + public UpgradeData Data { get; set; } + } + public class UpgradeData { public int Id { get; set; } /// /// APP名称 /// + [JsonProperty("app_name")] public string AppName { get; set; } /// /// 客户端类型 1ios 2安卓 3window插件 4 5 /// + [JsonProperty("client_type")] public int ClientType { get; set; } /// /// 发布类型 /// + [JsonProperty("publish_type")] public int PublishType { get; set; } /// /// 发布的版本号 @@ -24,19 +37,26 @@ namespace UtilLib /// /// 升级类型(1强制升级 2强制提示 3弱提示) /// + [JsonProperty("upgrade_type")] public int UpgradeType { get; set; } + [JsonProperty("download_url")] public string DownloadUrl { get; set; } /// /// 发布时间 /// + [JsonProperty("publish_time")] public int PublishTime { get; set; } /// /// 发布的信息 /// public string Message { get; set; } + [JsonProperty("compatible_version_id")] public int CompatibleVersionId { get; set; } + [JsonProperty("is_show_pop")] public int IsShowPop { get; set; } + public int Ext { get; set; } + public bool NeedUpgrade(string currentVersion) { var remoteVer = new Version(Version);