diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs index f2146e3..f38c66b 100644 --- a/AllBase/BaseClass.cs +++ b/AllBase/BaseClass.cs @@ -27,7 +27,7 @@ namespace AllBase /// /// 版本ID /// - public static int VersionCount = 1203; + public static int VersionCount = 1207; public static string MainPath = "29wx"; //public static string MainPath = "29wx"; //public static string MainPath = "29pdd"; diff --git a/KJDService/KJD_WebService/BLL/WXXD/WXShopManage.cs b/KJDService/KJD_WebService/BLL/WXXD/WXShopManage.cs index ffcd085..d0db0cd 100644 --- a/KJDService/KJD_WebService/BLL/WXXD/WXShopManage.cs +++ b/KJDService/KJD_WebService/BLL/WXXD/WXShopManage.cs @@ -1,4 +1,5 @@ using KJD_Web.Model; +using KJD_Web.Model.ErpModel; using KJD_Web.Model.ShopModel; using KJD_Web.Model.WxModel; using KJD_Web.Utils; @@ -187,7 +188,7 @@ namespace KJD_Web.BLL.WXXD { conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; mySql = new MysqlUtils(conn); - sql = " SELECT app_key,id " + + sql = " SELECT app_key,id,corporate_account_user_id,manage_user_id " + " FROM erp.o_shop" + " WHERE app_key in ('" + string.Join ("','", shopList.Select(s=>s.shop_id)) + "');"; dt = mySql.ExecuteDataTable(sql); @@ -202,10 +203,16 @@ namespace KJD_Web.BLL.WXXD foreach (DataRow row in dt.Rows) { var erpDbId = row["id"].ParseToNullableLong(); + var erpCorporateUserId = row["corporate_account_user_id"].ParseToNullableLong(); + var erpManageUserId = row["manage_user_id"].ParseToNullableLong(); var appKey = row["app_key"].ParseToString(); var shop = shopList.FirstOrDefault(s => s.shop_id == appKey && !s.shop_id.IsNullOrEmpty()); if (shop != null) + { + shop.erp_corporate_account_user_id = erpCorporateUserId; + shop.erp_manage_user_id = erpManageUserId; shop.erp_shop_id = erpDbId; + } } } } @@ -219,6 +226,108 @@ namespace KJD_Web.BLL.WXXD return "{\"code\":19999,\"msg\":\"未知错误\"}"; } + /// + /// 获取erp店铺对应账户的余额 + /// + /// + /// + /// + public string GetShopErpMerchant(string inputData, bool isAdmin = false) + { + if (!string.IsNullOrEmpty(inputData)) + { + var timeCalc = DateTime.Now; + if (!WXUserManage.GetSign(inputData)) + return "{\"code\":999,\"msg\":\"校验失败\"}"; + + var corporate_account_user_id = RegexUtils.GetStringQuery(ref inputData, "corporate_account_user_id")?.Replace("'", "\\'"); + var manage_user_id = RegexUtils.GetStringQuery(ref inputData, "manage_user_id")?.Replace("'", "\\'"); + var shop_id = RegexUtils.GetStringQuery(ref inputData, "shop_id")?.Replace("'", "\\'"); + if (corporate_account_user_id.IsNullOrEmpty() && manage_user_id.IsNullOrEmpty()) + return "{\"code\":500,\"msg\":\"未指定商户\"}"; + + var page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt(); + var page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(); + + if (page_size == 0) + page_size = 200; + + var manage_user_ids = new List(); + if (!manage_user_id.IsNullOrEmpty()) + manage_user_ids.Add(manage_user_id); + + string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; + MysqlUtils mySql = new MysqlUtils(conn); + string sql; + + if (!string.IsNullOrEmpty(corporate_account_user_id)) + { + sql = "SELECT manage_user_id FROM erp.o_shop_group WHERE corporate_account_user_id = '" + corporate_account_user_id + "';"; + var manage_user_id_tb = mySql.ExecuteDataTable(sql); + if (!string.IsNullOrEmpty(mySql.Message)) + { + mySql.Close(); + return "{\"code\":501,\"msg\":\"" + mySql.Message + "\",\"data\":null}"; + } + if (manage_user_id_tb == null) + { + mySql.Close(); + var seconds = (DateTime.Now - timeCalc).TotalSeconds.ToString("0.000"); + return "{\"code\":200,\"msg\":\"success\",\"data\":[],\"count\":-2,\"seconds\":" + seconds + "}"; + } + manage_user_ids.AddRange(manage_user_id_tb.Rows.Cast().Select(t => t["manage_user_id"].ToString())); + if (manage_user_ids.Count == 0) + { + mySql.Close(); + var seconds = (DateTime.Now - timeCalc).TotalSeconds.ToString("0.000"); + return "{\"code\":200,\"msg\":\"success\",\"data\":[],\"count\":-2,\"seconds\":" + seconds + "}"; + } + } + + sql = "select * FROM erp.o_user_account u where u.user_id in ('" + string.Join("','", manage_user_ids) + "')"; + sql += " LIMIT " + Math.Max(page - 1, 0) * page_size + "," + page_size; + var dt = mySql.ExecuteDataTable(sql); + + mySql.Close(); + if (!string.IsNullOrEmpty(mySql.Message)) + { + return "{\"code\":501,\"msg\":\"" + mySql.Message + "\",\"data\":null}"; + } + if (dt != null) + { + List erpAccountInfo = new List(); + foreach (DataRow row in dt.Rows) + { + ErpMerchantInfo shop = new ErpMerchantInfo + { + id = Convert.ToInt32(row["id"]), + account_name = row["account_name"].ToString(), + account_status = row["account_status"].ParseToInt(), + account_type = row["account_type"].ParseToInt(), + balance = row["balance"].ParseToDecimal(), + create_by = row["create_by"].ParseToNullableLong(), + create_time = row["create_time"].ParseToString().ParseToDateTime(), + frozen_amount = row["frozen_amount"].ParseToDecimal(), + recharge_amount_total = row["recharge_amount_total"].ParseToDecimal(), + update_by = row["update_by"].ParseToNullableLong(), + update_time = row["update_time"].ParseToString().ParseToDateTime(), + user_id = row["user_id"].ParseToLong(), + withdrawn_amount = row["withdrawn_amount"].ParseToDecimal(), + withdraw_account_image_url = row["withdraw_account_image_url"].ParseToString(), + }; + erpAccountInfo.Add(shop); + } + erpAccountInfo = erpAccountInfo.OrderByDescending(s => s.balance).ToList(); + var count = -1; + var data = JsonUtils.SerializeObjectToString(erpAccountInfo); + var seconds = (DateTime.Now - timeCalc).TotalSeconds.ToString("0.000"); + + return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + count + ",\"seconds\":" + seconds + "}"; + } + } + return "{\"code\":19999,\"msg\":\"未知错误\"}"; + } + public string SubSaGetSelectProdShop(string inputData) { if (!string.IsNullOrEmpty(inputData)) diff --git a/KJDService/KJD_WebService/KJD_WebService.csproj b/KJDService/KJD_WebService/KJD_WebService.csproj index 28573b9..e38d8db 100644 --- a/KJDService/KJD_WebService/KJD_WebService.csproj +++ b/KJDService/KJD_WebService/KJD_WebService.csproj @@ -120,6 +120,7 @@ + diff --git a/KJDService/KJD_WebService/KJD_WebService.csproj.user b/KJDService/KJD_WebService/KJD_WebService.csproj.user index c789fae..4bcdc04 100644 --- a/KJDService/KJD_WebService/KJD_WebService.csproj.user +++ b/KJDService/KJD_WebService/KJD_WebService.csproj.user @@ -1,4 +1,4 @@ - + true diff --git a/KJDService/KJD_WebService/Model/ErpModel/ErpMerchantInfo.cs b/KJDService/KJD_WebService/Model/ErpModel/ErpMerchantInfo.cs new file mode 100644 index 0000000..facfb96 --- /dev/null +++ b/KJDService/KJD_WebService/Model/ErpModel/ErpMerchantInfo.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace KJD_Web.Model.ErpModel +{ + public class ErpMerchantInfo + { + public long id { get; set; } + /// + /// 唯一用户标识 + /// + public long user_id { get; set; } + /// + /// 账户类型,1:分销商账户,2:供应商账户 + /// + public int? account_type { get; set; } + /// + /// 账户名称 + /// + public string account_name { get; set; } + /// + /// 账户状态(1-正常 2-冻结 3-注销) + /// + public int account_status { get; set; } + /// + /// 账户累计充值金额 + /// + public decimal recharge_amount_total { get; set; } + /// + /// 可用余额 + /// + public decimal balance { get; set; } + /// + /// 冻结金额 + /// + public decimal frozen_amount { get; set; } + /// + /// 提现账户收款图片 + /// + public string withdraw_account_image_url { get; set; } + /// + /// 已提现金额 + /// + public decimal? withdrawn_amount { get; set; } + /// + /// 创建时间 + /// + public DateTime create_time { get; set; } + /// + /// 更新时间 + /// + public DateTime update_time { get; set; } + /// + /// 创建人 + /// + public long? create_by { get; set; } + /// + /// 修改人 + /// + public long? update_by { get; set; } + } +} \ No newline at end of file diff --git a/KJDService/KJD_WebService/Model/ShopModel/ShopParam.cs b/KJDService/KJD_WebService/Model/ShopModel/ShopParam.cs index af0404c..12ea3c1 100644 --- a/KJDService/KJD_WebService/Model/ShopModel/ShopParam.cs +++ b/KJDService/KJD_WebService/Model/ShopModel/ShopParam.cs @@ -72,6 +72,8 @@ namespace KJD_Web.Model.ShopModel //public DateTime mdy_time { get; set; } public bool? is_point_shop_expire { get; set; } = false; public long? erp_shop_id { get; internal set; } + public long? erp_corporate_account_user_id { get; internal set; } + public long? erp_manage_user_id { get; internal set; } } public class AuthInfo diff --git a/KJDService/KJD_WebService/WXShopService.asmx.cs b/KJDService/KJD_WebService/WXShopService.asmx.cs index d9db445..8d707d7 100644 --- a/KJDService/KJD_WebService/WXShopService.asmx.cs +++ b/KJDService/KJD_WebService/WXShopService.asmx.cs @@ -61,6 +61,21 @@ namespace KJD_Web Context.Response.End(); } + /// + /// 获取店铺erp端账户 + /// + [WebMethod] + public void get_shop_erp_merchant() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new WXShopManage().GetShopErpMerchant(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } + [WebMethod] public void get_one_login_name_shop() { diff --git a/TEMUKJD/29common_icon.ico b/TEMUKJD/29_common_blue_icon.ico similarity index 100% rename from TEMUKJD/29common_icon.ico rename to TEMUKJD/29_common_blue_icon.ico diff --git a/TEMUKJD/29_common_icon.ico b/TEMUKJD/29_common_icon.ico new file mode 100644 index 0000000..1fb71f3 Binary files /dev/null and b/TEMUKJD/29_common_icon.ico differ diff --git a/TEMUKJD/29_common_icon_orange.ico b/TEMUKJD/29_common_icon_orange.ico new file mode 100644 index 0000000..385db6e Binary files /dev/null and b/TEMUKJD/29_common_icon_orange.ico differ diff --git a/TEMUKJD/BLL/PDDProdFormConverter.cs b/TEMUKJD/BLL/PDDProdFormConverter.cs index 50c20d2..23656c2 100644 --- a/TEMUKJD/BLL/PDDProdFormConverter.cs +++ b/TEMUKJD/BLL/PDDProdFormConverter.cs @@ -471,6 +471,44 @@ namespace TemuKJD.BLL prodInfo.detail.extend_warranty_dto = new extend_warranty_dto_item() { extend_warranty = 0 }; //prodInfo.detail.fabric = null; //prodInfo.detail.fabric_content = null; + if (!frontProdInfo.goods.gallery.Any(g => g.type == 1)) + { + var jsonStr = BaseRegex.GetJsonObjStrJson(ref outProdJson, "carousel_section").OrderByDescending(s => s.Length).FirstOrDefault(); + if (jsonStr != null) + { + var jArrStr = BaseRegex.GetJsonArrStrJson(ref jsonStr, "picture_list").OrderByDescending(s => s.Length).FirstOrDefault(); + if (jArrStr != null) + { + foreach (var jObj in JArray.Parse(jArrStr)) + { + var jStr = JsonHelper.SerializeObject(jObj); + var type = BaseRegex.GetIntJson(ref jStr, "type"); + var img_url = BaseRegex.GetStringJson(ref jStr, "url"); + var id = BaseRegex.GetLongJson(ref jStr, "id"); + var goods_id = BaseRegex.GetLongJson(ref jStr, "goods_id"); + var width = BaseRegex.GetIntJson(ref jStr, "width"); + var height = BaseRegex.GetIntJson(ref jStr, "height"); + var enable_share = BaseRegex.GetIntJson(ref jStr, "enable_share"); + var gallery_pic = BaseRegex.GetIntJson(ref jStr, "gallery_pic"); + if (!img_url.IsNullOrEmpty() && !type.IsNullOrZero()) + { + frontProdInfo.goods.gallery.Add(new PDDFrontProductInfo2_gallery() + { + enable_share = enable_share, + goods_id = goods_id, + width = width, + height = height, + id = id, + type = type, + url = img_url, + priority = frontProdInfo.goods.gallery.Count, + }); + } + } + } + } + } + if (!frontProdInfo.goods.gallery.Any(g => g.type == 1) && frontProdInfo.goods.gallery.Any(g => g.type == 13)) { foreach (var g in frontProdInfo.goods.gallery) diff --git a/TEMUKJD/Helper/LifeSpanHandlerLocal.cs b/TEMUKJD/Helper/LifeSpanHandlerLocal.cs index 3d9b5a1..70546a7 100644 --- a/TEMUKJD/Helper/LifeSpanHandlerLocal.cs +++ b/TEMUKJD/Helper/LifeSpanHandlerLocal.cs @@ -62,8 +62,11 @@ namespace TemuKJD.Helper { if (popWindowType == PopWindowType.NewWindow) { + PopData p = new PopData() { Url = targetUrl }; + if (OnPop != null) + OnPop(this, p); newBrowser = null; - return false; + return true; } else if (popWindowType == PopWindowType.NewTitleWindow && popupFeatures.IsPopup) { diff --git a/TEMUKJD/InitForm.Designer.cs b/TEMUKJD/InitForm.Designer.cs index ec1535c..cd9b546 100644 --- a/TEMUKJD/InitForm.Designer.cs +++ b/TEMUKJD/InitForm.Designer.cs @@ -57,8 +57,8 @@ this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; this.panel2.Location = new System.Drawing.Point(1, 33); this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(278, 190); - this.panel2.TabIndex = 39; + this.panel2.Size = new System.Drawing.Size(278, 196); + this.panel2.TabIndex = 40; // // panel4 // @@ -125,6 +125,7 @@ this.rbTemu.TabStop = true; this.rbTemu.Text = "Temu"; this.rbTemu.UseVisualStyleBackColor = true; + this.rbTemu.CheckedChanged += new System.EventHandler(this.rbTemu_CheckedChanged); // // rbPdd // @@ -138,6 +139,7 @@ this.rbPdd.Text = "拼多多"; this.rbPdd.UseVisualStyleBackColor = true; this.rbPdd.Visible = false; + this.rbPdd.CheckedChanged += new System.EventHandler(this.rbTemu_CheckedChanged); // // rbWX // @@ -151,6 +153,7 @@ this.rbWX.Text = "视频号"; this.rbWX.UseVisualStyleBackColor = true; this.rbWX.Visible = false; + this.rbWX.CheckedChanged += new System.EventHandler(this.rbTemu_CheckedChanged); // // chkRemember // @@ -218,15 +221,13 @@ // InitForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; - this.ClientSize = new System.Drawing.Size(280, 224); + this.ClientSize = new System.Drawing.Size(280, 230); this.Controls.Add(this.panel2); this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Name = "InitForm"; - this.ShowIcon = false; this.Text = "软件初始化"; this.TitleText = "软件初始化"; - this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.InitForm_FormClosed); this.Controls.SetChildIndex(this.panel2, 0); this.panel2.ResumeLayout(false); this.panel4.ResumeLayout(false); @@ -242,16 +243,16 @@ #endregion private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.PictureBox pbShopLoading; + private System.Windows.Forms.Panel panel4; + private DevComponents.DotNetBar.PanelEx btnOK; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; + private System.Windows.Forms.RadioButton rbTemu; + private System.Windows.Forms.RadioButton rbPdd; + private System.Windows.Forms.RadioButton rbWX; + private UserComponent.UcCheckBox chkRemember; + private System.Windows.Forms.Panel panel3; private System.Windows.Forms.Label label1; private DevComponents.DotNetBar.Controls.ProgressBarX progressBarX1; - private System.Windows.Forms.Panel panel3; - private UserComponent.UcCheckBox chkRemember; - private System.Windows.Forms.RadioButton rbPdd; - private System.Windows.Forms.RadioButton rbTemu; - private DevComponents.DotNetBar.PanelEx btnOK; - private System.Windows.Forms.Panel panel4; - private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; - private System.Windows.Forms.RadioButton rbWX; + private System.Windows.Forms.PictureBox pbShopLoading; } } \ No newline at end of file diff --git a/TEMUKJD/InitForm.cs b/TEMUKJD/InitForm.cs index d4c0675..8b9c927 100644 --- a/TEMUKJD/InitForm.cs +++ b/TEMUKJD/InitForm.cs @@ -1,4 +1,5 @@ -using TemuKJD.BaseForms; +using AllBase; +using NaiBa.Util.Helper; using System; using System.Collections.Generic; using System.ComponentModel; @@ -10,25 +11,26 @@ using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; -using AllBase.Helper; -using NaiBa.Util.Helper; -using System.IO; -using AllBase; +using TemuKJD.BaseForms; namespace TemuKJD { - public partial class InitForm : BaseGeneralForm + public partial class InitForm : BaseForms.BaseGeneralForm { InitFormSettings initFormSettings = new InitFormSettings(); public InitForm() { InitializeComponent(); - Load += InitForm_Load; + this.Load += NewInitForm_Load; } - private void InitForm_Load(object sender, EventArgs e) + private void NewInitForm_Load(object sender, EventArgs e) { + this.Icon = BaseClass.Ico; + //if (!BaseClass.AgentCode.IsNullOrEmpty()) + // this.Hide(); + Task.Run(() => { while (!Work.Initialization.IsCheckFilesFinish || !Program.IsInit || this.progressBarX1.Value < 50) @@ -51,84 +53,84 @@ namespace TemuKJD }); return; -// if (File.Exists(System.Environment.CurrentDirectory + "\\YkdChoice.dll")) -// { -// this.panel3.Location = new Point(4, 4); -// this.panel4.Visible = true; -// this.rbPdd.Visible = true; -// } -// if (File.Exists(System.Environment.CurrentDirectory + "\\WxChoice.dll")) -// { -// this.panel3.Location = new Point(4, 4); -// this.panel4.Visible = true; -// this.rbWX.Visible = true; -// } -//#if DEBUG -// this.panel3.Location = new Point(4, 4); -// this.panel4.Visible = true; -// this.rbPdd.Visible = true; -// this.rbWX.Visible = true; -//#endif -// initFormSettings = ConfigHelper.LoadConfig("initFormSettings"); -// if (initFormSettings == null) -// initFormSettings = new InitFormSettings(); -// this.chkRemember.Checked = initFormSettings.Remember; -// this.rbTemu.Checked = initFormSettings.LoginType.ToLower() == "temu"; -// this.rbPdd.Checked = initFormSettings.LoginType.ToLower() == "pdd"; -// this.rbWX.Checked = initFormSettings.LoginType.ToLower() == "wx"; + // if (File.Exists(System.Environment.CurrentDirectory + "\\YkdChoice.dll")) + // { + // this.panel3.Location = new Point(4, 4); + // this.panel4.Visible = true; + // this.rbPdd.Visible = true; + // } + // if (File.Exists(System.Environment.CurrentDirectory + "\\WxChoice.dll")) + // { + // this.panel3.Location = new Point(4, 4); + // this.panel4.Visible = true; + // this.rbWX.Visible = true; + // } + //#if DEBUG + // this.panel3.Location = new Point(4, 4); + // this.panel4.Visible = true; + // this.rbPdd.Visible = true; + // this.rbWX.Visible = true; + //#endif + // initFormSettings = ConfigHelper.LoadConfig("initFormSettings"); + // if (initFormSettings == null) + // initFormSettings = new InitFormSettings(); + // this.chkRemember.Checked = initFormSettings.Remember; + // this.rbTemu.Checked = initFormSettings.LoginType.ToLower() == "temu"; + // this.rbPdd.Checked = initFormSettings.LoginType.ToLower() == "pdd"; + // this.rbWX.Checked = initFormSettings.LoginType.ToLower() == "wx"; -// if (initFormSettings.LoginType.ToLower() == "temu") -// BaseClass.MainPath = "kuajingda"; -// else if (initFormSettings.LoginType.ToLower() == "pdd") -// BaseClass.MainPath = "29pdd"; -// else if (initFormSettings.LoginType.ToLower() == "wx") -// BaseClass.MainPath = "29wx"; -// else if (initFormSettings.LoginType.ToLower() == "dy") -// BaseClass.MainPath = "29dy"; + // if (initFormSettings.LoginType.ToLower() == "temu") + // BaseClass.MainPath = "kuajingda"; + // else if (initFormSettings.LoginType.ToLower() == "pdd") + // BaseClass.MainPath = "29pdd"; + // else if (initFormSettings.LoginType.ToLower() == "wx") + // BaseClass.MainPath = "29wx"; + // else if (initFormSettings.LoginType.ToLower() == "dy") + // BaseClass.MainPath = "29dy"; -// this.rbTemu.CheckedChanged += rbTemu_CheckedChanged; -// this.rbPdd.CheckedChanged += rbTemu_CheckedChanged; -// this.rbWX.CheckedChanged += rbTemu_CheckedChanged; -// if (rbWX.Visible == false || rbPdd.Visible == false) -// flowLayoutPanel1.Location = new Point(38, flowLayoutPanel1.Location.Y); + // this.rbTemu.CheckedChanged += rbTemu_CheckedChanged; + // this.rbPdd.CheckedChanged += rbTemu_CheckedChanged; + // this.rbWX.CheckedChanged += rbTemu_CheckedChanged; + // if (rbWX.Visible == false || rbPdd.Visible == false) + // flowLayoutPanel1.Location = new Point(38, flowLayoutPanel1.Location.Y); -// Task.Run(() => -// { -// while (!Work.Initialization.IsCheckFilesFinish || !Program.IsInit || this.progressBarX1.Value < 50) -// { -// Thread.Sleep(new Random().Next(10, 50)); + // Task.Run(() => + // { + // while (!Work.Initialization.IsCheckFilesFinish || !Program.IsInit || this.progressBarX1.Value < 50) + // { + // Thread.Sleep(new Random().Next(10, 50)); -// Invoke(new Action(() => -// { -// this.progressBarX1.Value = Work.Initialization.InitPercent++; -// this.progressBarX1.Maximum = 50; -// })); -// if (this.progressBarX1.Value >= 50) -// Thread.Sleep(300); -// } -// Invoke(new Action(() => -// { -// btnOK.Visible = true; -// })); + // Invoke(new Action(() => + // { + // this.progressBarX1.Value = Work.Initialization.InitPercent++; + // this.progressBarX1.Maximum = 50; + // })); + // if (this.progressBarX1.Value >= 50) + // Thread.Sleep(300); + // } + // Invoke(new Action(() => + // { + // btnOK.Visible = true; + // })); -//#if DEBUG -// Thread.Sleep(2500); -//#else -// if (File.Exists(System.Environment.CurrentDirectory + "\\YkdChoice.dll")) -// { -// Thread.Sleep(2500); -// } -//#endif -// if (initFormSettings.Remember) -// Thread.Sleep(500); -// Invoke(new Action(() => -// { -// if(initFormSettings.Remember && isChangeType == false) -// { -// OpenNewMainForm(); -// } -// })); -// }); + //#if DEBUG + // Thread.Sleep(2500); + //#else + // if (File.Exists(System.Environment.CurrentDirectory + "\\YkdChoice.dll")) + // { + // Thread.Sleep(2500); + // } + //#endif + // if (initFormSettings.Remember) + // Thread.Sleep(500); + // Invoke(new Action(() => + // { + // if(initFormSettings.Remember && isChangeType == false) + // { + // OpenNewMainForm(); + // } + // })); + // }); } bool isOpen = false; diff --git a/TEMUKJD/InitForm.resx b/TEMUKJD/InitForm.resx index e330b8a..a01b148 100644 --- a/TEMUKJD/InitForm.resx +++ b/TEMUKJD/InitForm.resx @@ -120,179 +120,289 @@ - AAABAAEAgIAQcgAAAABoKAAAFgAAACgAAACAAAAAAAEAAAEABAAAAAAAACgAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AAAAAAAAAAAAAAAAABEZmbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMZmZkQAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAZszMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM - zMxmAAAAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM - zMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM - zMzMzMzMzMzMzMzMxkAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM - zMzMzMzMzMzMzMzMzMzMzMzGQAAAAAAAAAAAAAAAAAAAbMzMzMzMzMzMzMzMzMzMzMzMzMd3d3d3d3d3 - d3d3fMzMzMzMzMzMzMzMzMzMzMzMzMYAAAAAAAAAAAAAAAAARszMzMzMzMzMzMzMzMzMzMd3d3iIiIiI - iIiIiIiIiIh3d3d8zMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAABszMzMzMzMzMzMzMzMzMx3eIiIiI - iIiIiIiIiIiIiIiIiIiIiHd8zMzMzMzMzMzMzMzMzMxgAAAAAAAAAAAAAGzMzMzMzMzMzMzMzMzMd4iI - iIiIiIiIiIiIiIiIiIiIiIiIiIiIiHfMzMzMzMzMzMzMzMzMxgAAAAAAAAAAAAbMzMzMzMzMzMzMzMzH - eIiIiIiIiIiHZmZmZmZmZmZmZ3eIiIiIiIiIiHzMzMzMzMzMzMzMzMxgAAAAAAAAAABszMzMzMzMzMzM - zMzHiIiIiIiHZmZmZmZmZmZmZmZmZmZmZmZmeIiIiIiIfMzMzMzMzMzMzMzMxgAAAAAAAAAGzMzMzMzM - zMzMzMzHiIiIiIdmZmZmZgAAAAAAAAAAAAZmZmZmZmZmeIiIiIh8zMzMzMzMzMzMzMxgAAAAAAAATMzM - zMzMzMzMzMzHiIiIiHZmZgAAAAAAAAAAAAEAAAAAAAAAAGZmZmZniIiIiHzMzMzMzMzMzMzMxAAAAAAA - AGzMzMzMzMzMzMzMeIiIiGZmAAAAAAERERmZmZmZmZmZkRERERAAAGZmZmZ4iIiIfMzMzMzMzMzMzMYA - AAAAAAbMzMzMzMzMzMzMeIiIiGZgAAAAERmZmZmZmZmZmZmZmZmZmZmZkREAAGZmZniIiIfMzMzMzMzM - zMzMYAAAAABMzMzMzMzMzMzMzIiIiHYAAAARGZmZiIiIj///////+IiIiIeZmZmZkREAZmZmiIiIfMzM - zMzMzMzMzMQAAAAAbMzMzMzMzMzMzO6IiIYAAAARmYiI/////////////////////4iHmZmZEQBmZmeI - iIh8zMzMzMzMzMzGAAAABMzMzMzMzMzMzMeIiIdgAAAZmI////////////////////////////iJmZmR - EGZmZ4iIh8zMzMzMzMzMzEAAAAbMzMzMzMzMzMzoiIhwAAAZeP////////////////////////////// - /4iZmZEAZmZ4iIh8zMzMzMzMzMxgAABMzMzMzMzMzMzOiIiGAAABiP////////////////////////// - ////////+JmZkQZmZ4iIh8zMzMzMzMzMxAAAbMzMzMzMzMzM7oiIYAABeP////////////////////// - ///////////////4mZkQZmZ4iIjMzMzMzMzMzMYAAMzMzMzMzMzMzu6IhwAAGP////////////////// - /////////////////////4iZmRZmZ4iIfMzMzMzMzMzMAAbMzMzMzMzMzM7oiHAAB4////////////// - ////////////////////////////iZmRBmZ4iIfMzMzMzMzMzGAGzMzMzMzMzMzuiIcAAHj///////// - //////////////////////////////////iZmRZmZ4iIzMzMzMzMzMxgDMzMzMzMzMzM7ohwAAf///// - ////////////////////////////////////////95mRZmaIiHzMzMzMzMzMwEzMzMzMzMzMzuiIEABo - //////////////////////////////////////////////95mRZmaIiMzMzMzMzMzMRszMzMzMzMzM7o - hwAGj///////////////////////////////////////////////95kQZmeIh8zMzMzMzMzGbMzMzMzM - zMzu6HEAB/////////////////////////////////////////////////+ZkQZmiIjMzMzMzMzMxmzM - zMzMzMzM7ohwAGj/////////////////////////////////////////////////iZkWZniIfMzMzMzM - zMZszMzMzMzMxu6HEAbv/4iI/////////////////////////////////////////4iP//iZEGZoiHzM - zMzMzMzGbMzMzMzMzM7uhxAGj/iIiIj//////////////////////////////////////4iIiI//mZFm - aIiMzMzMzMzMxszMzMzMzMzO6IEAbv+IiIiIj/////////////////////////////////////iIiIiP - /4mRBmeIh8zMzMzMzMbMzMzMzMzMbuhxAG7/iIiIiI////////////////iIj///j//////////////4 - iIiIiP/5mQZmiIfMzMzMzMzMzMzMzMzMzO7ocQDo+IiIiIiP///////////////u7u7u7u7o//////// - ////iIiIiIj/+JkWZoiHzMzMzMzMzMzMzMzMzMzu6BEG7/iIiIiIj/////////////+Hd3ju5maO7v// - /////////4iIiIiI//iZEGaIh8zMzMzMzMzMzMzMzMzM7ugRBu//iIiIiI//////////////kZmZdmAZ - mP/////////////4iIiIiP//mRBmeIjMzMzMzMzMzMzMzMzMzO7nEAbv/4iIiIiP////////////+HiI - mZEBd5n/////////////+IiIiIj//4mQZniIzMzMzMzMzMzMzMzMzMzu5xAO7//4iIiI//ju7o////// - //j//4mZeP/4//////////////iIiIiP//+JkGZ4iHzMzMzMzMzMzMzMzMzG7ocQDu///4iI//ju7u7u - j//////////4mP//////////////7u7uiIiI////iZBmaIh8zMzMzMzMzMzMzMzMzu6HEG7v//////+G - ZmZ47u7//////////4//////////////7u7u7u6P/////4mQBmiIfMzMzMzMzMzMzMzMzM7uhRBu7/// - ///3AAAAF37u7///////////////////////h2AABm7u7v/////5kAZ4iHzMzMzMzMzMzMzMzMzO7oUQ - bu//////gQAAZgEG7u//////////////////////+BAAAAAFfu6P////+ZAGeIjMzMzMzMzMzMzMzMzM - zu6FEG7v////+JEAAXhwAG7o/////////////////////4gAABEGARbu7/////kQBoiIzMzMzMzMzMzM - zMzMzM7uhRBu7/////iZABmZkQBm6P////////////////////+JABGZF2AAbo////+JEGaIiMzMzMzM - zMzMzMzMzMzO7ucRbu/////4mRZ4iZkQBu//////////////////////mQB5mZdgAG7/////iRBmiIfM - zMzMzMzMzMzMzMzMxu7nEQ7v////+Bl+j/iZEAaP/////////////////////5l2/4mRAABu/////4kQ - ZoiHzMzMzMzMzMzMzMzMzMzu5xEO6P//+Phgbu/4kQAI//////////////////////+Zfo/4kQAAeIiP - //+JEGaIh8zMzMzMzMzMzMzMzMzM7ucRBu7///iOYHiI+HAAf///////////////////////mYjv+BAA - BuiIj///iQBniIfMzMzMzMzMzMzMzMzMzO7nEQbu///3EAAG6IcRF4iP/////////////////////4GP - /4cQAAZnbv///5EAaIiMzMzMzMzMzMzMzMzMzMzu5xEW7v//iRF3dmZgAXjmj/////////////////// - ///3ePiBEQAHdm7///iRAGiIfMzMzMzMzMzMzMzMzMzM7u5xFu6P/5EZmXZmZmbmaP////////////// - ///////4/4d2cRAAFwbuj//4kQZoiHzMzMzMzMzMzMzMzMzMzG7ucRDu7/iXiZkQAAZmAH////////// - ////////////+IiIdmYABmAX//j/+BAGeIh8zMzMzMzMzMzMzMzMzMzO7nEQbu/4iP+BERkREZf///// - //////////////////+JmXdxEBEAB3////kQBoiIzMzMzMzMzMzMzMzMzMzMzu5xEW7o+P//gZmZmZmP - ////////////////////////+JmZmZmZl453//+JAGaIh8zMzMzMzMzMzMzMzMzMzM7u5xEO7vj/+IeP - iIj////////////////////////////4iZmZmZiPiP//cQBoiIfMzMzMzMzMzMzMzMzMzMzM7ucRFu6P - //iP//////////////////////////////////////+Jn/j/+JAAaIiMzMzMzMzMzMzMzMzMzMzMzO7n - ERbu7//4/////////////////////////////////////////4j///gQBoiIfMzMzMzMzMzMzMzMzMzM - zMzu7nERbuj////////////////////////////////////////////4//+BAAaIiMzMzMzMzMzMzMzM - zMzMzMzMzu5xEW7u////////////////////////////////////////////////cQBoiIfMzMzMzMzM - zMzMzMzMzMzMzM7u5xEW7u//////////////////////////////////////////////+BAAaIiMzMzM - zMzMzMzMzMzMzMzMzMzO7uYREO7o//7v//////////////////////////////////////////cABoiI - fMzMzMzMzMzMzMzMzMzMzMzMzO7ucRFu7oj/7o////////////////////////////////////////9x - AAeIiMzMzMzMzMzMzMzMzMzMzMzMzMzO7ucRFu7nePju7u7v//////////////////////////////// - 6P/4EAB4iIfMzMzMzMzMzMzMzMzMzMzMzMzMzu7nERBu7nmIiO7oj/////////////////////////// - ju7u7o//hwAGiIh8zMzMzMzMzMzMzMzMzMzMzMzMzMzu7nERbu7nmZl5eP////////////////////// - ///4iPiO5nj/+HAAaIiIzMzMzMzMzMzMzMzMzMzMzMzMzMzM7u7nERbu7oiZeI////////////////// - ////////+ImXd5mP/4cAAHiIh8zMzMzMzMzMzMzMzMzMzMzMzMzMzM7u53ERbu7v//////////////// - ///////////////4iZl4//hgAAeIiHzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM7u53ERBu7v////////// - //////////////////////////+GAAB4iI7MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzO7uiHEADujv//// - ///////////////////////////////3AAAGiIh8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzO7ohwABmP - ////////////////////////////////////iREAZniIjMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzuiI - EAB4f///////////////////////////////////+JmZkWZoiIfMzMzMzMzMzMzMzMzMzMzMzMzMzMzM - zO6IhwBo//////////////////////////////////////iImZl2ZoiIzMzMzMzMzMzMzMzMzMzMzMzM - zMzMzMzuiHAA7////////////////////////////////////////4iZFmZ4iHzMzMzMzMzMzMzMzMzM - zMzMzMzMzMzO6IgQBo/////4j///////////////////////////////////mZFmaIiMzMzMzMzMzMzM - zMzMzMzMzMzMzMzMzuiHAA7/////iIiP//////7o//////////////////iI/////4mRZmeIh8zMzMzM - zMzMzMzMzMzMzMzMzMzMzO6IcQBo////+IiIiI/////+7u7u7uiIiI7u7v////iIiI/////5mRZmiIjM - zMzMzMzMzMzMzMzMzMzMzMzMzMzuiHAA7////4iIiIiIj//3d2bu7u7u7u7u7u7//4iIiIiP////+JkW - ZniIfMzMzMzMzMzMzMzMzMzMzMzMzMzO6IcQBo////+IiIiIiI//+ZkAAGZmZmZmZmbv//iIiIiIiP// - //+ZkWZoiIzMzMzMzMzMzMzMzMzMzMzMzMzMzuiFAG7////4iIiIiIj///iZABEREREREBAG7//4iIiI - iIj/////iZFmaIiMzMzMzMzMzMzMzMzMzMzMzMzMzO6IcQBo////+IiIiIiI///4kQARERERERERDo// - +IiIiIiIj/////mZBmeIh8zMzMzMzMzMzMzMzMzMzMzMzMzuiHAG7////4iIiIiIiP//+JFmeHd3d3dx - EW6P//iIiIiIiI/////4mRZmiIfMzMzMzMzMzMzMzMzMzMzMzMzO7ocQBo////+IiIiIiIj///iQZoiO - 7u7u5xFu7//4iIiIiIiI////+JkWZniIzMzMzMzMzMzMzMzMzMzMzMzMzuiHEA7////4iIiIiIiP///5 - kGaIju7u7ucRbu///4iIiIiIiP////95kGZ4iHzMzMzMzMzMzMzMzMzMzMzMzM7ogQBu////+IiIiIiI - j///+RBmiI7u7u7nEW7v//+IiIiIiIiP////iZFmaIh8zMzMzMzMzMzMzMzMzMzMzMzu6HEAaP////iI - iIiIiI////kQZoiHzMzu5xEO6P//iIiIiIiIj////4mRZmiIjMzMzMzMzMzMzMzMzMzMzMzM7ugRBu// - ///4iIiIiIj///+JEGaIh8zM7ucRBu7//4iIiIiIiI/////5kQZniIzMzMzMzMzMzMzMzMzMzMzMzO6I - EAbv////iIiIiIiI////iQBniIzMzO7oERbu///4iIiIiIiP////+JkGZ4iHzMzMzMzMzMzMzMzMzMzM - zMbuhxAGj////4iIiIiIj////3kAaIiMzMzu7nEW7v//+IiIiIiIiP////iZFmaIh8zMzMzMzMzMzMzM - zMzMzMzO7oUQbv////+IiIiIiI////+RBmiIfMzMzu5xFu6P//+IiIiIiIj////4mRZmiIfMzMzMzMzM - zMzMzMzMzMzMzu6BAG7////4iIiIiIj////4kQZoiHzMzM7ucRDu7///iIiIiIiIj////5kQZoiHzMzM - zMzMzMzMzMzMzMzMzM7ocQBu////+IiIiIiI////+JAGeIh8zMzO7nERbu///4iIiIiIiI////95EGaI - h8zMzMzMzMzMzMzMzMzMzMxu6HEA7v////iIiIiIiP////cQBoiIzMzMzu7lEW7v///4iIiIiIiP//// - iRBmeIjMzMzMzMzMzMzMzMzMzMzM7uhxBuj////4iIiIiI/////5EAaIiMzMzMbu5xEO7v//+IiIiIiI - j////4kQZniIzMzMzMzMzMzMzMzMzMzMzO7oEQbv////+IiIiIj/////iQBmiIfMzMzM7ucRBu7///iI - iIiIiIj///+JkGZ4iMzMzMzMzMzMzMzMzMzMzMzu6BEG7/////iIiIiI/////4EAaIiHzMzMzO7nERbu - j///iIiIiIiI////iZBmaIh8zMzMzMzMzMzMzMzMzMzM7ucRBu/////4iIiIj/////+RAGiIjMzMzMzu - 7nEQ7u////iIiIiIiP///4mQBmiIfMzMzMzMzMzMzMzMzMzMzO7nEAbv////+IiIiP/////4EAZ4iHzM - zMzMzu5xEG7v///4iIiIiIj///+JkAZoiHzMzMzMzMzMxmzMzMzMzMzu5xAO7/////+IiI//////+RAG - iIjMzMzMzM7ucRFu7v///4iIiIiI////+ZAGaIh8zMzMzMzMzMZszMzMzMzG7ocQDu//////+I////// - /4EAZoiIzMzMzMzO7ucRBu7////4iIiIiP////mQBmiIfMzMzMzMzMzGbMzMzMzMzu6HEA7v//////// - //////9xAGiIh8zMzMzMzO7nERbu7///+IiIiI/////5kAZoiHzMzMzMzMzMxmzMzMzMzM7uhxAO7/// - ///////////4EABoiIzMzMzMzMzu7nEQbu////+IiIiP////+ZAGaIh8zMzMzMzMzMZszMzMzMzO7oUQ - Du//////////////9xAGiIh8zMzMzMzM7u5xEW7u/////4iI//////mQBmiIfMzMzMzMzMzGTMzMzMzM - zu6HEA7v/////////////4EABoiIzMzMzMzMzM7u5xEG7v/////////////5kAZoiHzMzMzMzMzMxAzM - zMzMzM7uhxEO7/////////////9wAGiIh8zMzMzMzMzO7ucRFu7v////////////+RAGeIh8zMzMzMzM - zMAGzMzMzMzO7ucRDuj////////////4EAB4iIzMzMzMzMzMzO7ucRBu6P///////////4kQBoiIzMzM - zMzMzMxgBszMzMzMxu7nEQbo////////////gQAGiIh8zMzMzMzMzMzu7nERDu7///////////+JEAaI - iMzMzMzMzMzMYADMzMzMzMzu5xEG7v///////////3EAZ4iIzMzMzMzMzMzMzu7nERbu7/////////// - gQBmiIfMzMzMzMzMzAAAbMzMzMzM7ucRBu7///////////gQAGiIh8zMzMzMzMzMzM7u5xEQbu7///// - /////5EAZ4iHzMzMzMzMzMYAAEzMzMzMzO7nERDu7/////////+HAAaIiIzMzMzMzMzMzMzM7u5xEQ7u - 7/////////gQAGiIjMzMzMzMzMzEAAAGzMzMzMzu7nEQbuj////////4cAAHiIh8zMzMzMzMzMzMzO7u - dxEW7uj////////3AAZoiHzMzMzMzMzMYAAABMzMzMzM7u5xEG7u////////hgAAeIiHzMzMzMzMzMzM - zMzO7ucREW7u7///////gQAGiIh8zMzMzMzMzEAAAABszMzMzM7ucREG7uj/////hmAAB4iI7MzMzMzM - zMzMzMzMzu7ucREG7u6P////+AAAB4iIzMzMzMzMzMYAAAAATMzMzMzO7ucREG7u7oiO7mAAAHiIiMzM - zMzMzMzMzMzMzMzu7ucREG7u7o//+HYAAHiIh8zMzMzMzMzEAAAAAAbMzMzMzu7nEREG7u7u5mAAAAeI - iIfMzMzMzMzMzMzMzMzMzu7ucREQbu7u7uYAAAeIiHzMzMzMzMzMYAAAAAAAbMzMzMzu7nEREAZmZgAA - AAF4iI58zMzMzMzMzMzMzMzMzMzu7ncREQZm7mZgAAB4iI7MzMzMzMzMxgAAAAAAAEzMzMzM7u7nEREQ - AAAAABF4iI7uzMzMzMzMzMzMzMzMzMzM7u7ucRERAAAAAAAHiIiMzMzMzMzMzMQAAAAAAAAGzMzMzM7u - 7nERERERERF3iIju7MzMzMzMzMzMzMzMzMzMzM7u7udREREQAAAReIiIfMzMzMzMzMxgAAAAAAAAAGzM - zMzM7u7udRERERV4iI7u7MzMzMzMzMzMzMzMzMzMzMzM7u7u5xEREREReIiO7MzMzMzMzMzGAAAAAAAA - AAAGzMzMzM7u7u53d3eIiO7u7szMzMzMzMzMzMzMzMzMzMzMzM7u7u7nd1F3eIiO7uzMzMzMzMzMYAAA - AAAAAAAAAGzMzMzM7u7u7u7u7u7u7szMzMzMzMzMzMzMzMzMzMzMzMzMzu7u7u6IiI7u7uzMzMzMzMzM - xgAAAAAAAAAAAAAGzMzMzMzu7u7u7u7u5szMzMzMzMzMzMzMzMzMzMzMzMzMzMzO7u7u7u7u7u7MzMzM - zMzMzGAAAAAAAAAAAAAAAEbMzMzMzG7u7u7ubMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM7u7u7u7uzM - zMzMzMzMzGQAAAAAAAAAAAAAAAAAbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzG7u - 7szMzMzMzMzMzMYAAAAAAAAAAAAAAAAAAARszMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM - zMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAABGzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM - zMzMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM - zMzMzMzMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAAAABmzMzMzMzMzMzMzMzMzMzMzMzM - zMzMzMzMzMzMzMzMzMzMzMzMzMzMzGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARGZmzMzMzMzMzMzMzM - zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMZmZEAAAAAAAAAAAAAAAAD////+AAAAAAAAAAD/////////AAAA - AAAAAAAAAP//////+AAAAAAAAAAAAAAf/////+AAAAAAAAAAAAAAB/////+AAAAAAAAAAAAAAAH////+ - AAAAAAAAAAAAAAAAf////AAAAAAAAAAAAAAAAD////AAAAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAA - B///wAAAAAAAAAAAAAAAAAP//4AAAAAAAAAAAAAAAAAB//8AAAAAAAAAAAAAAAAAAP/+AAAAAAAAAAAA - AAAAAAB//gAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAAAAAAAAAAf+AAAAAAA - AAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP4AAAAAAAAAAAAAAAAAAAB+AA - AAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAA - AAOAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA - AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABAAAAAAAA - AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEIAAMQOAADEDgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+WNVf/ljWe/5Y10f+WNfD/ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y18P+WNdH/ljWe/5Y1VwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5Y1XP+WNd7/ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljXe/5Y1XAAAAAAAAAAAAAAAAAAAAAAAAAAA/5Y1f/+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljV/AAAAAAAAAAAAAAAA/5Y1XP+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + NVwAAAAAAAAAAP+WNd7/ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljXeAAAAAP+WNVf/ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNVf/ljWe/5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljWe/5Y10f+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y10f+WNfD/ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNfD/ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//nkX//7p8//+8fv//qlv//5g4//+WNf//ok3//8mY//+2dP//p1X//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//55E//7Zt//+9e7//ujV//+gSf//ljX//6VS//738v/+8OP//tWw//+d + Qv//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//r2b//u7g//7+///+6NT//5k7//+X + N///vH///v7///7+///+0af//5g5//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+u + Zf/+8uf//v7///7fw///ljX//5g4///Bif/+/v///v7////Ilv//mDn//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//55F//+hSv//oEn//6BJ//+gSf//oEn//6BI//+gSP//oEj//6BI//+f + R///n0f//59H//+fR///n0f//59H//+fRv//n0b//59H//+fR///oEj//6BI//+fR///n0f//6BI//+f + R///lzf//5Y1//+WNf//ljX//7d0//738v/+/v///tWw//+WNf//mjz//s+k//7+///+/v///7x///+X + N///ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//7hxv/+9Ov//vDk//7y6P/+8uj//vLn//7y + 5//+8eb//vHl//7w4//+8OP//vDj//7w4//+8OP//u/i//7v4v/+7+H//u/h//7v4v/+7+L//vDk//7x + 5f/+8OP//u/i//7x5f/+69r//6lZ//+WNf//ljX//5Y1//+WNf//v4X//vz7//78/P//yZj//5Y1//+d + Qv/+2Lb//v7///7+////sWr//5Y2//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf/+7d///v7///7+ + ///+/v///v7///7+///+/v///v7///7+///+/v///v7///7+///+/v///v7///7+///+/v///v7///7+ + ///+/v///v7///7+///+/v///v7///7+///+/v///vfx//+ya///ljX//5Y1//+WNf//ljX//5Y1//7L + nP/+/v///vj0//+8fv//ljX//55F//7hxv/+/v///vz6//+pWv//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//ubQ//7+///+6NT//8KL//++g///voP//76C//+/hP//voP//7+E//+/hf//v4X//8CG///A + h///wIf//8CH///Ah///wIf//8CG///Ahv//wIb//8CH///Ah///wIf//8GI//++g///nUL//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//tq4//7+///+9Ov//7Nt//+WNf//oUv//uzd//7+///+8+r//6JN//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//7m0P/+/v///s+j//+ZO///ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+YOv/+38T//v7///7v4v//rGD//5Y1//+m + VP/+9Ov//v7///7s2///mj3//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf/+7+L//v7///7bu///nkT//5Y1//+a + Pf/+3sH//tay//7Nof/+zqL//tGn//7Sqf/+0qr//tKp//7Sqf/+0qn//tKp//7Qpf/+0KX//s6i//7N + of/+zaD//sye//7Mnv/+zqL//sye//+dQv//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//55F//7m + 0P/+/v///ujU//+lUv//ljX//6xh//77+f/+/v7//uHG//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//tm3//7+ + ///+/v///sqa//+aPP//ljb//tOs//7+///+/v///v7///7+///+/v///v7///7+///+/v///v7///7+ + ///+/v///v7///7+///+/v///v7///7+///+/v///v7///727///rWL//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//pFH//uvb//7+///+38L//59H//+WNf//t3b//v7///79/f/+17T//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+dQv/+1K3//v7///7+///+0aj//5g5//+XN///uXr//vn1//7+///+/v///uvb//7W + sf/+3L3//t3A//7ewP/+3sD//t7B//7ewf/+38P//t/D//7fxP/+4MT//uDE//7hxv/+2rn//6NP//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+tYf/+7+L//v7///7Urv//mz///5Y1///E + j//+/v///vz8//7NoP//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5c3//7Kmv/++vf//v7///7Wsv//ljX//5Y1//+u + Zf/+8+r//v7///7r2v//q13//5Y1//+aPP//mj7//5o+//+aPv//mj7//5o+//+aPv//mj7//5o+//+b + P///mz///5o+//+WNv//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//7Z0//71 + 7v/+/v///sqa//+YOP//mDj//s+k//7+///+/Pr//8KL//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//8CH//75 + 9f/+/v///t/E//+ZO///ljX//6td//7u4P/+/v///vLn//+sX///ljb//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//vH///vfy//7+////voP//5Y1//+cQf/+27r//v7///769///uHj//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//t3b//vXu//7+/v/+5tH//6NP//+WNf//qVn//ubQ//7+///+/Pr//72B//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+2c//+9Ov//v7///+ya///ljX//6FK//7j + zP/+/v///vXt//+tYf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+wZ//+8uj//v7///7y6P//rmT//5Y1//+g + SP/+27z//vz8//7+////yJb//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5k7//+lU///nED//uHH//7+ + /v/++/n//6VT//+WNf//qlv//u3f//7+///+7Nz//6NO//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//6hY//7s + 3f/+/v///vPq//+1cP//ljX//5Y1//7Urf/+/f3//v39//7Sqf//lzf//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+XN///p1X//8OM//7d + v//+8uj//vz7//7+///+/v///v7///717f//qFj//5Y1//+zbP/+8+r//v7///7p1v//mTv//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//oUr//uXP//7+///+9vD//7x///+XN///ljX//8eU//7+///+/Pv//tm3//+e + RP//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+g + SP/+0KX//vPq//7+///+/v///v7///759f/+7+L//uzb//7t3v/++vj//vLn//+tYf//ljX//7x+//73 + 8v/+/v///uLJ//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+eRf/+27v//v7///77+f//xI///5k7//+W + Nf//vYH//v7///7+///+4sn//6VT//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+vZv/+7Nz//v7///7+///+8+r//s+k//+3df//qVn//6FL//+fR///oUr//6pc///H + k///xpL//5k7//+WNf//xpL//vr3//7+///+1K3//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5o8//7Q + pf/+/v///v7///7Urf//mDn//5c3//+1cf/++PT//v7///7t3///qVr//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+zbv/+9e7//v7///769//+zqL//6FK//+WNv//ljX//5Y1//+Z + O///oEj//55E//+WNf//ljX//5c3//+XN///ljX//5Y1//7Sqv/+/f3//vz7///Ci///ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljb//8eU//759f/+/v///t/D//+ZO///ljX//69m//7v4v/+/v///vLo//+u + ZP//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+oV//+8uf//v7///78+v//tnP//5Y1//+W + Nf//plT//s2h//7m0f/+8uj//vXt//707P/+8OT//t/D///Civ//n0b//5Y1//+WNf//ljX//ubQ//7+ + ///+9u///61h//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//vH7//vfy//7+///+6NP//6FK//+W + Nf//qFn//ujV//7+///++PP//7Fp//+WNv//ljX//5Y1//+WNf//ljX//5Y1//+WNf/+48z//v7///7+ + ////smz//5Y1//+bP///yZj//vfy//7+///+/v///v7///79/f/+/v7//v7///7+///+/v///uzd//+x + av//ljX//5Y1//+dQ//++vf//v7///7m0P//ljb//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+x + aP/+8+r//v7///7v4f//p1b//5Y1//+jT//+5M3//v7///78+v//qFf//5Y1//+WNf//ljX//5Y1//+W + Nf//xI///vv5//7+////wor//5Y1//+cQP/+2Lb//v7///7+///+7t///sub//+waP//plX//6dW//+2 + dP/+1a///vjz//7+///++/n//7l4//+XN///ljX//7h4//7+///++/n//8SO//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//6hY//7x5v/+/v///vHl//+qXf//ljX//6JM//7r2//+/v///vLn//+X + N///ljX//5Y1//+WNf//mz///uLI//7+///+69r//5k7//+YOP/+y5z//v7///7+/v/+2LX//59G//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+rXf/+6tn//v7///7+////qlv//5Y1//+ZO//+7t///v7///7g + xf//mDr//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//oUv//u7f//7+///+7d7//6pc//+W + Nf//rWH//vXu//7+///+1K3//5Y1//+WNf//ljX//7Vx//717v/+/v///7Vw//+WNv//o07//v7///7+ + ///+2bj//5c3//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//6hZ//7s3P/+/v///uva//+Z + O///lzf//7t8//7+///+8+n//7Fp//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+f + R//+7Nz//v7///7gxf//n0f//5Y1//7Vr//+/f3//vr3//+ZO///ljX//5Y1///Ej//+/v///v7///+j + Tv//ljX//tOr//7+///+7d7//6JM//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//xI7//vv5//7+////rmX//5Y1//+jT//+/v///v7////Ah///ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//6pd//78+v/+/v///8KL//+WNf//mDj//vr3//78/P//xpL//5Y1//+W + Nf/+0af//v7///7m0f//n0b//5Y1//7z6v/+/v///tu6//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5k7//7p1v/+/v///tKp//+WNf//oEn//vHl//7+///+ypr//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//x5X//v7///7kzf//okz//5Y1//7m + 0P/+/v///uHI//+WNf//ljb//tSt//7+///+3Lz//5xB//+WNf/+/v///vr4///Ej///ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf/+4sj//v7///7fw///ljX//59G//7o + 1P/+/v///s+j//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//7Vx//7+ + ///+/Pr//6td//+WNf/+zZ///v7///7u3///ljX//5Y1//7Rp//+/v///t7B//+dQv//ljX//vv5//77 + +f//yZf//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//uLI//7+ + ///+4sj//5Y1//+fRv/+69r//v7///7Mnv//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//7t8//7buv//t3b//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+xaP/++PT//v7///+sYf//ljX//8aS//7+///+8uf//5g4//+WNf//xZH//v7///7s + 3P//oEj//5Y1//7q2f/+/v///uDE//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//7n0v/+/v///ti1//+WNf//okz//vn1//7+////w43//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5g4//+bP///lzf//5Y1//7z6v/+/v///urX//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//t3T//v7///79/f//q17//5Y1//7Po//+/v///u/h//+W + Nf//ljX//7p7//76+P/+/v///6RQ//+WNf/+y5v//v7///7z6f//r2X//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+3dP/+9e7//v7///+5ef//ljX//6pb//7+///++fX//7l4//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//51C///Gkv/+8+r//7Rv//+WNf//tXH//v7///77 + +f/+y5v//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//nEH//ti1//7+///+6tf//6RQ//+W + Nf/+4sj//v7///7kzf//ljX//5Y1//+jTv/+6NP//v7////Fkf//lzf//6BJ//7+/v/+/v///uHH//+b + P///ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+fRv/+5M3//v7///728P//mjz//5g4//7Q + pf/+/v///urY//+mVP//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+cQP/+27v//v7///7n + 0v//n0b//5Y1//7Sqv/+/v///vfy///Ej///mTv//5Y1//+WNf//ljX//5Y1//+WNf//mj7//8mY//7+ + ///+/v///8WR//+WNf//ljX//vn1//79/f/+zaH//5Y1//+WNf//ljX//tSt//7+///++/n//59G//+X + N///uXr//v7///7+///+4sj//6lZ//+XN///ljX//5Y1//+WNf//ljX//5Y2//+oWP/+48v//v7///7+ + ////tnT//5c3//+aPv/+/v///v7///7Ytv//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//7Bn//7x5v/+/v///8SP//+XN///mDr//tq4//7+///+/v///uXP///Ahv//rmP//6pc//+r + Xf//uXn//t3A//7+///+/v///t2+//+fRv//ljX//sye//78/P/++/n//6VS//+WNf//ljX//5Y1//+j + Tv/+7d7//v7///7fxP//ljX//5k7///Gkv/+/f3//v7///7y6P/+z6P//7Fq//+oWf//qVr//7Fp//7M + nv/+8OP//v7///7+////yZj//5o8//+WNf/+1K3//v7///7y5///rmT//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//x5X//vz7//7+////tnP//5Y1//+aPv/+y5v//vfy//7+ + ///+/v///v7///79/f/+/v///v7///7+///++vj//tWv//+hSv//ljX//6hY//707P/+/v///uPL//+W + Nf//ljX//5Y1//+WNf//ljX//8KL//769v/+/v///tCm//+WNf//mDr//7x///7z6f/+/v///v7///7+ + ///++PT//vr3//7+///+/v///v7///717v//wov//5o9//+WNf//uXn//v7///79/f/+1K7//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//7Vr//+/f3//v7///+7 + ff//ljX//5c3//+qXf/+zqL//ufT//7z6f/+9/L//vTr//7p1v/+0qr//7Jr//+YOP//ljX//6lZ//7v + 4v/+/v///vr4//+cQf//ljX//5Y1//+WNf//ljX//5Y1//+WNf/+06v//v39//79/f/+0KX//5c3//+W + Nf//o07//8iW//7iyP/+8+r//v7+//7+///+9vD//uPM//7Kmv//pVL//5Y1//+WNf//uXj//vz6//7+ + /v/+6NP//5Y2//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//lzf//tq5//79/f/+/f3//tez//+kUP//ljX//5Y1//+cQf//pFH//6hZ//+lU///n0b//5Y1//+W + Nf//mj3//8GJ//707P/+/v///v7///+vZv//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//7W + sv/+/v///vz7//7fxP//ql3//5Y1//+WNf//mj7//6ZV//+waP//sWj//6hZ//+bP///ljX//5Y1//+g + SP/+0aj//vr4//7+///+6tn//6FK//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+ZO//+0af//v7///79/f/+8eX//tGo//+ya///mz///5Y1//+W + Nf//ljX//5Y2//+oWP//w43//uPL//77+f/+/v///vPq//+ybP//lzf//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//mDj//8qa//7+///+/v///vn1//7auf//tnT//5o9//+WNf//ljX//5Y1//+W + Nf//mTv//69l//7NoP/+7d7//v39//7+///+38T//6FK//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5c3//+7fP/+69v//v7///7+ + ///++vj//vPq//7s3P/+5c7//ubP//7x5f/+9vD//v7+//7+///+/Pr//tu7//+oWf//ljb//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+XN///r2X//ubR//7+///+/v///vr4//7z + 6v/+5c7//uHH//7hx//+5Mz//vLo//759f/+/v///v7///717f//x5T//51C//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//59G//+9gf/+3sH//vfy//7+///+/v///v7///7+///+/v///v39//7w4//+1K3//61i//+X + N///ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+d + Q///uXr//t2///738v/+/v///v7///7+///+/v///v7///7+///++/n//ujT///Ilv//pFH//5Y2//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljb//5o8//+kUP//tG///76D///DjP//w4z//7x///+u + ZP//n0f//5g5//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y2//+ZO///pVP//7l5///FkP/+0KX//tCm///Hk///vH///6pc//+c + Qf//lzf//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y18P+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y18P+W + NdH/ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNdH/ljWe/5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljWe/5Y1V/+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1VwAAAAD/ljXe/5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y13gAA + AAAAAAAA/5Y1XP+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNVwAAAAAAAAAAAAAAAD/ljV//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNX8AAAAAAAAAAAAAAAAAAAAAAAAAAP+WNVz/ljXe/5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y13v+WNVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+WNVf/ljWe/5Y10f+WNfD/ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y1//+W + Nf//ljX//5Y1//+WNf//ljX//5Y1//+WNf//ljX//5Y18P+WNdH/ljWe/5Y1VwAAAAAAAAAAAAAAAAAA + AAAAAAAA+AAAAAAAAB/gAAAAAAAAB8AAAAAAAAADgAAAAAAAAAGAAAAAAAAAAQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA - AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA - AAAAAAABgAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAA - AAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH8AAAAAAAAAAAAAAAAAAAD/AA - AAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/wAAAAAAAAAAAAAAAAA - AD/+AAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAAf/8AAAAAAAAAAAAAAAAAAP//gAAAAAAAAAAA - AAAAAAH//8AAAAAAAAAAAAAAAAAD///gAAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAA////wAAAAA - AAAAAAAAAAA////+AAAAAAAAAAAAAAAAf////4AAAAAAAAAAAAAAAf/////gAAAAAAAAAAAAAAf///// - +AAAAAAAAAAAAAAf//////8AAAAAAAAAAAAA/////////gAAAAAAAAAAf////w== + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAA + AAAAAAABgAAAAAAAAAHAAAAAAAAAA+AAAAAAAAAH+AAAAAAAAB8= \ No newline at end of file diff --git a/TEMUKJD/KJD.csproj b/TEMUKJD/KJD.csproj index feb8b7a..f1fa6c5 100644 --- a/TEMUKJD/KJD.csproj +++ b/TEMUKJD/KJD.csproj @@ -55,7 +55,7 @@ 4 - 29common_icon.ico + 29_common_blue_icon.ico true @@ -169,6 +169,12 @@ + + Form + + + InitForm.cs + Form @@ -551,12 +557,6 @@ - - Form - - - InitForm.cs - Form @@ -1355,6 +1355,9 @@ ChangeForm.cs + + InitForm.cs + RandomComProductForm.cs @@ -1541,9 +1544,6 @@ UcSubAccount.cs - - InitForm.cs - AdminAccountForm.cs @@ -1928,6 +1928,8 @@ + + diff --git a/TEMUKJD/KJD.csproj.user b/TEMUKJD/KJD.csproj.user index 10da63c..b64c7a6 100644 --- a/TEMUKJD/KJD.csproj.user +++ b/TEMUKJD/KJD.csproj.user @@ -1,4 +1,4 @@ - + ShowAllFiles diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditForm.cs b/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditForm.cs index 6f7bf88..b105c69 100644 --- a/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditForm.cs +++ b/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditForm.cs @@ -57,8 +57,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms BaseMsgForm.ShowError("请输入正确的成本价,必须大于0,整数或者两位以内小数。"); return; } - - //var url = BaseClass.BuildObjString("product/mdy_product_notes"); + var url = BaseClass.BuildObjString("product/mdy_db_product"); var data = UserLogin.GetSignaturex() + "&db_id=" + dbProd.id + "¬es=" + this.txtNotes.Text.Trim(); diff --git a/TEMUKJD/MainForm.cs b/TEMUKJD/MainForm.cs index 99c2c31..cb0e59e 100644 --- a/TEMUKJD/MainForm.cs +++ b/TEMUKJD/MainForm.cs @@ -238,13 +238,16 @@ namespace TemuKJD } if (BaseClass.MainPath == "29wx") { - BaseClass.Ico = Icon.FromHandle(Properties.Resources.weixin_icon.GetHicon()); - BaseClass.LogoImage = Properties.Resources.weixin_logo; navPanel.Style.BackgroundImage = Properties.Resources.weixin_bg; plTopRight.BackgroundImage = null; this.BackColor = GlobalConfig.BorderColor; - BaseClass.ToolName = "29供应链 - 微信小店管理工具"; + if (BaseClass.AgentCode.IsNullOrEmpty()) + { + BaseClass.Ico = Icon.FromHandle(Properties.Resources.weixin_icon.GetHicon()); + BaseClass.LogoImage = Properties.Resources.weixin_logo; + BaseClass.ToolName = "29供应链 - 微信小店管理工具"; + } } Rectangle rect = Screen.GetWorkingArea(this); diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditForm.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditForm.cs index 4825d6a..13b65c8 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditForm.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditForm.cs @@ -58,7 +58,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms private void btnOk_Click(object sender, EventArgs e) { - //var url = BaseClass.BuildPDDObjString("product/mdy_product_notes"); var url = BaseClass.BuildPDDObjString("product/mdy_db_product"); var data = UserLogin.GetSignaturex() + "&db_id=" + dbProd.id + "¬es=" + this.txtNotes.Text.Trim(); @@ -70,6 +69,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms data += "&fission_words=" + "fission_goods_names:" + this.txtFissionWords.Text.Trim(); data += "&head_words=" + this.txtHeadWords.Text.Trim(); data += "&end_words=" + this.txtEndWords.Text.Trim(); + data += "&add_user_name" + dbProd.add_user_name; var html = GetHtml.PostUtf8(url, data); if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) html = GetHtml.PostUtf8(url, data); diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUploadForm.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUploadForm.cs index 8307ac8..93be350 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUploadForm.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUploadForm.cs @@ -310,8 +310,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms addUserName = BaseClass.ParentAuthority.Contains("机会商品采集") ? ("admin," + BaseClass.ParentUserName) : "admin"; PDDDBProdListForm.GetPDDProductGroup(cmbGroupFilter, "", "", addUserName); - // 刷新类目信息 - GetPddProductCate(); + // 刷新类目信息 (已通过接口抓取所有拼多多类目,不再实时从库中获取) + //GetPddProductCate(); Invoke(new Action(() => { cmbSourceType_SelectedIndexChanged(null, null); })); }); } @@ -321,30 +321,30 @@ namespace TemuKJD.PDDForms.ProductSelectForms /// void GetPddProductCate() { - var url = BaseClass.BuildObjString("product/get_product_cates"); - var data = UserLogin.GetSignaturex(); - var html = GetHtml.PostUtf8(url, data); - if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) - html = GetHtml.PostUtf8(url, data); - if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) - html = GetHtml.PostUtf8(url, data); - if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) - { - //BaseMsgForm.ShowError("商品分组获取失败,请重试!" + BaseRegex.GetStringJson(ref html, "msg")); - } - else - { - //Invoke(new Action(() => - //{ - // cmbCateFilter1.Items.Clear(); - // var groups = BaseRegex.GetStringJson(ref html, "data"); - // foreach (var item in groups.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)) - // { - // cmbCateFilter1.Items.Add(item); - // } - // cmbCateFilter1.Items.Add(""); - //})); - } + //var url = BaseClass.BuildObjString("product/get_product_cates"); + //var data = UserLogin.GetSignaturex(); + //var html = GetHtml.PostUtf8(url, data); + //if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + // html = GetHtml.PostUtf8(url, data); + //if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + // html = GetHtml.PostUtf8(url, data); + //if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + //{ + // //BaseMsgForm.ShowError("商品分组获取失败,请重试!" + BaseRegex.GetStringJson(ref html, "msg")); + //} + //else + //{ + // //Invoke(new Action(() => + // //{ + // // cmbCateFilter1.Items.Clear(); + // // var groups = BaseRegex.GetStringJson(ref html, "data"); + // // foreach (var item in groups.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)) + // // { + // // cmbCateFilter1.Items.Add(item); + // // } + // // cmbCateFilter1.Items.Add(""); + // //})); + //} } private void RefreshShop() diff --git a/TEMUKJD/Program.cs b/TEMUKJD/Program.cs index d09d4e9..2e05940 100644 --- a/TEMUKJD/Program.cs +++ b/TEMUKJD/Program.cs @@ -1,5 +1,7 @@ -using System; +using AllBase; +using System; using System.Collections.Generic; +using System.Drawing; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; @@ -22,7 +24,8 @@ namespace TemuKJD Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); - System.Threading.Tasks.Task.Run(() => + StartUp.InitOemNew(); + Task.Run(() => { new Initialization().Get(); StartUp.Init(); diff --git a/TEMUKJD/Resources/buy.ico b/TEMUKJD/Resources/buy.ico new file mode 100644 index 0000000..c1690a4 Binary files /dev/null and b/TEMUKJD/Resources/buy.ico differ diff --git a/TEMUKJD/Resources/common_icon.ico b/TEMUKJD/Resources/common_icon.ico index b436bae..e3ef173 100644 Binary files a/TEMUKJD/Resources/common_icon.ico and b/TEMUKJD/Resources/common_icon.ico differ diff --git a/TEMUKJD/Resources/main.ico b/TEMUKJD/Resources/main.ico new file mode 100644 index 0000000..800fd86 Binary files /dev/null and b/TEMUKJD/Resources/main.ico differ diff --git a/TEMUKJD/StartUp.cs b/TEMUKJD/StartUp.cs index 953c010..42399da 100644 --- a/TEMUKJD/StartUp.cs +++ b/TEMUKJD/StartUp.cs @@ -34,7 +34,8 @@ namespace TemuKJD public static bool IsShopInit = false; public static void Init() { - InitOem(); + //InitOem(); + //InitOemNew(); InitProxy(); @@ -263,6 +264,222 @@ namespace TemuKJD } } + /// + /// 贴牌管理 + /// + public static void InitOemNew() + { + #region 代理版本获取代理码 + if (File.Exists("locales/io.pak")) + { + //var s = Randomx.GetWordWithNumber(585179); + var ioTxt = FileBase.ReadAllText("locales/io.pak"); + if (ioTxt.StartsWith("MThd") || !ioTxt.Contains("MThd")) + return; + + string agentNameFile = "locales/na.pak"; + if (File.Exists(agentNameFile)) + { + var config = FileBase.ReadAllText(agentNameFile, Encoding.UTF8); + var configArr = config.Split(new string[] { "\r\n", "MThd" }, StringSplitOptions.RemoveEmptyEntries); + if (configArr.Length >= 2) + { + //BaseClass.ProgramName = configArr[1]; + BaseClass.ToolName = configArr[1]; + BaseClass.AgentName = configArr[0]; + } + } + + string LogoPakFile = "locales/lo.pak"; // ico + if (File.Exists(LogoPakFile)) + { + // 直接指定路径,从bitmap转换的可能会丢失颜色 + BaseClass.Ico = new Icon(LogoPakFile); + } + string ImgPakFile = "locales/im.pak"; + if (File.Exists(ImgPakFile)) + { + //BaseClass.LogoImage = Properties.Resources.weixin_logo; + BaseClass.LogoImage = Image.FromFile(ImgPakFile); + } + + // 代理码 + BaseClass.AgentCode = ioTxt.Split(new string[] { "\r", "\n", "MThd" }, StringSplitOptions.RemoveEmptyEntries).FirstOrDefault().ParseToString(); + // 登录窗口图标 + //BaseClass.LoginImage = ImageBuild.BytesToImage(imgBytes); + // 主窗体图标 + //BaseClass.LogoImage = GetHtml.LoadImage(oem_logo_link); + + return; + + string agTxt = ""; + string agVersion = ""; + if (FileBase.Exists("locales/io-T.pak")) + { + var agTxtArr = FileBase.ReadAllText("locales/igx.pak").Split(new string[] { "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries); + agTxt = BaseEncrypt.EncryptDecode(agTxtArr[0], "asdf1357", "vbnm2468"); + if (agTxtArr.Length >= 2) + agVersion = BaseEncrypt.EncryptDecode(agTxtArr[1], "asdf1357", "vbnm2468"); + } + + if (!agTxt.Contains("oem_title") || + !agTxt.Contains("oem_register") || + !agTxt.Contains("oem_reset") || + !agTxt.Contains("oem_notice") || + !agTxt.Contains("oem_video") || + !agTxt.Contains("oem_logo_link") || + !agTxt.Contains("oem_icon_link")) + { + agTxt = ""; + agVersion = ""; + } + + // 获取贴牌版本号 + string url = BaseClass.BuildWXObjString("user/get_oem_version"); + string data = UserLogin.GetSignaturex("", "") + "&agent_code=" + BaseClass.AgentCode; + string html = GetHtml.PostUtf8(url, data); + if (!string.IsNullOrEmpty(html) && html != agVersion) + { + agTxt = ""; + agVersion = html; + } + if (!html.Contains("\"code\":200")) + { + var msg = BaseRegex.GetStringJson(ref html, "msg"); + //BaseMsgForm.ShowError("获取版本信息失败,请检查电脑时间!"); + BaseMsgForm.ShowError(msg); + Process.GetCurrentProcess().Kill(); + return; + } + + if (string.IsNullOrEmpty(agTxt)) + { + // 根据代理码给贴牌信息赋值 + url = BaseClass.BuildWXObjString("user/get_oem_config_info"); + data = UserLogin.GetSignaturex("", "") + "&agent_code=" + BaseClass.AgentCode; + agTxt = GetHtml.PostUtf8(url, data); + if (!agTxt.Contains("\"code\":200")) + { + var msg = BaseRegex.GetStringJson(ref html, "msg"); + BaseMsgForm.ShowError(msg); + Process.GetCurrentProcess().Kill(); + return; + } + + File.WriteAllText("locales/io-T.pak", BaseEncrypt.EncryptEncode(agTxt, "asdf1357", "vbnm2468") + "\r\n" + BaseEncrypt.EncryptEncode(agVersion, "asdf1357", "vbnm2468")); + } + + if (!string.IsNullOrEmpty(agTxt) && agTxt.Contains("获取配置信息成功")) + { + var oem_title = BaseRegex.GetStringJson(ref agTxt, "oem_title"); + var oem_register = BaseRegex.GetStringJson(ref agTxt, "oem_register"); + var oem_reset = BaseRegex.GetStringJson(ref agTxt, "oem_reset"); + var oem_notice = BaseRegex.GetStringJson(ref agTxt, "oem_notice"); + var oem_video = BaseRegex.GetStringJson(ref agTxt, "oem_video"); + var oem_pay = BaseRegex.GetStringJson(ref agTxt, "oem_pay"); + var oem_pay_ip = BaseRegex.GetStringJson(ref agTxt, "oem_pay_ip"); + var oem_logo_link = BaseRegex.GetStringJson(ref agTxt, "oem_logo_link"); + var oem_icon_link = BaseRegex.GetStringJson(ref agTxt, "oem_icon_link"); + var oem_mobile = BaseRegex.GetStringJson(ref agTxt, "oem_mobile"); + var oem_open = BaseRegex.GetStringJson(ref agTxt, "oem_open"); + var oem_header_name = BaseRegex.GetStringJson(ref agTxt, "oem_header_name"); + var oem_qq = BaseRegex.GetStringJson(ref agTxt, "oem_qq"); + + // 软件标题 + if (!string.IsNullOrEmpty(oem_title)) + { + BaseClass.ToolName = oem_title; + } + // 开放注册 + if (!string.IsNullOrEmpty(oem_register)) + { + BaseClass.IsShowRegister = oem_register == "1"; + } + // 开户续费 + if (!string.IsNullOrEmpty(oem_open)) + { + BaseClass.IsShowOpenAccount = oem_open == "1"; + } + //// 找回密码 + //if (!string.IsNullOrEmpty(oem_reset)) + //{ + // BaseClass.IsShowForgetPwd = oem_reset == "1"; + //} + //// 公告显示 + //if (!string.IsNullOrEmpty(oem_notice)) + //{ + // BaseClass.IsHideAnnounce = oem_notice == "0"; + //} + //// 视频显示 + //if (!string.IsNullOrEmpty(oem_video)) + //{ + // BaseClass.IsShowGuidance = oem_video == "1"; + //} + //// 充值元宝 + //if (!string.IsNullOrEmpty(oem_pay)) + //{ + // BaseClass.IsShowRecharge = oem_pay == "1"; + //} + //// 代理ip + //if (!string.IsNullOrEmpty(oem_pay_ip)) + //{ + // BaseClass.IsShowBuyProxyIp = oem_pay_ip == "1"; + //} + // logo图片地址 + if (!string.IsNullOrEmpty(oem_logo_link)) + { + try + { + var bitmapBG = (Bitmap)Properties.Resources.ResourceManager.GetObject("login_bg_agent"); + var img = GetHtml.LoadImage(oem_logo_link); + Graphics g = Graphics.FromImage(bitmapBG); + g.DrawImage(img, new Rectangle(bitmapBG.Width / 2 - img.Width / 2, bitmapBG.Height / 2 - img.Height / 2, img.Width, img.Height)); + var imgBytes = ImageBuild.BitmapToBytes(bitmapBG); + img.Dispose(); + g.Dispose(); + GetHtml.LoadImage(oem_logo_link); + + // 登录窗口图标 + BaseClass.LoginImage = ImageBuild.BytesToImage(imgBytes); + + // 主窗体图标 + BaseClass.LogoImage = GetHtml.LoadImage(oem_logo_link); + } + catch + { + } + if (BaseClass.LoginImage == null || BaseClass.LogoImage == null) + { + BaseMsgForm.ShowError("获取版本信息失败,请检查电脑联网状态或电脑时间!"); + Process.GetCurrentProcess().Kill(); + return; + } + } + // icon图片地址 + if (!string.IsNullOrEmpty(oem_icon_link)) + { + BaseClass.Ico = GetHtml.LoadIcon(oem_icon_link); + if (BaseClass.Ico == null) + { + BaseMsgForm.ShowError("获取版本信息失败,请检查电脑联网状态或电脑时间!"); + Process.GetCurrentProcess().Kill(); + return; + } + } + // 客服QQ(或电话) + if (!string.IsNullOrEmpty(oem_qq)) + { + BaseClass.ServiceQQ = oem_qq; + } + //if (!string.IsNullOrEmpty(oem_header_name)) + //{ + // BaseClass.oem_header = oem_header_name; + //} + } + } + #endregion + } + /// /// 贴牌管理 /// @@ -407,7 +624,7 @@ namespace TemuKJD // 主窗体图标 BaseClass.LogoImage = GetHtml.LoadImage(oem_logo_link); } - catch + catch { } if (BaseClass.LoginImage == null || BaseClass.LogoImage == null) diff --git a/TEMUKJD/ToolForms/Old/CefForm.Designer.cs b/TEMUKJD/ToolForms/Old/CefForm.Designer.cs index a5b9855..a6f4b2d 100644 --- a/TEMUKJD/ToolForms/Old/CefForm.Designer.cs +++ b/TEMUKJD/ToolForms/Old/CefForm.Designer.cs @@ -31,6 +31,7 @@ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CefForm)); this.btnChangeBuyer = new DevComponents.DotNetBar.PanelEx(); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.txtUrl = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.SuspendLayout(); @@ -72,14 +73,24 @@ // // splitContainer1.Panel1 // + this.splitContainer1.Panel1.Controls.Add(this.txtUrl); this.splitContainer1.Panel1.Controls.Add(this.btnChangeBuyer); this.splitContainer1.Size = new System.Drawing.Size(1278, 686); this.splitContainer1.SplitterDistance = 26; this.splitContainer1.TabIndex = 432; // + // txtUrl + // + this.txtUrl.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtUrl.Location = new System.Drawing.Point(5, 3); + this.txtUrl.Name = "txtUrl"; + this.txtUrl.Size = new System.Drawing.Size(1270, 21); + this.txtUrl.TabIndex = 435; + this.txtUrl.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtUrl_KeyDown); + // // CefForm // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.ClientSize = new System.Drawing.Size(1280, 720); this.Controls.Add(this.splitContainer1); @@ -91,6 +102,7 @@ this.Load += new System.EventHandler(this.CefForm_Load); this.Controls.SetChildIndex(this.splitContainer1, 0); this.splitContainer1.Panel1.ResumeLayout(false); + this.splitContainer1.Panel1.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); this.splitContainer1.ResumeLayout(false); this.ResumeLayout(false); @@ -101,5 +113,6 @@ private DevComponents.DotNetBar.PanelEx btnChangeBuyer; private System.Windows.Forms.SplitContainer splitContainer1; + private System.Windows.Forms.TextBox txtUrl; } } \ No newline at end of file diff --git a/TEMUKJD/ToolForms/Old/CefForm.cs b/TEMUKJD/ToolForms/Old/CefForm.cs index 4f58551..1a0e6ed 100644 --- a/TEMUKJD/ToolForms/Old/CefForm.cs +++ b/TEMUKJD/ToolForms/Old/CefForm.cs @@ -45,7 +45,8 @@ namespace TemuKJD.ToolForms private void CefForm_Load(object sender, EventArgs e) { this.StartPosition = FormStartPosition.CenterScreen; - this.splitContainer1.Panel1Collapsed = true; + btnChangeBuyer.Visible = false; + //this.splitContainer1.Panel1Collapsed = true; if (string.IsNullOrEmpty(Url)) { @@ -163,6 +164,9 @@ namespace TemuKJD.ToolForms } }); } + + Invoke(new Action(() => { this.txtUrl.Text = e.Url; })); + } private void LifeHandler_OnPop(object sender, PopData e) @@ -192,5 +196,16 @@ namespace TemuKJD.ToolForms this.cefWebBrowser.Reload(); } } + + private void txtUrl_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + if (cefWebBrowser != null) + { + cefWebBrowser.Load(txtUrl.Text); + } + } + } } } diff --git a/TEMUKJD/UserComponent/DataGridViewEx.cs b/TEMUKJD/UserComponent/DataGridViewEx.cs index 0f9ff17..bed32cc 100644 --- a/TEMUKJD/UserComponent/DataGridViewEx.cs +++ b/TEMUKJD/UserComponent/DataGridViewEx.cs @@ -222,7 +222,7 @@ namespace TemuKJD.UserComponent { e.PaintBackground(e.CellBounds, true); - bool isChecked = cellTmp.Value.ParseToBool(); + bool isChecked = cellTmp?.Value == null ? false : cellTmp.Value.ParseToBool(); var locationX = e.CellBounds.Location.X + e.CellBounds.Width / 2 - checkBoxSize / 2 - 1; var locationY = e.CellBounds.Location.Y + e.CellBounds.Height / 2 - checkBoxSize / 2; Rectangle checkBoxBounds = new Rectangle(locationX, locationY, checkBoxSize, checkBoxSize); // 自定义大小和位置 diff --git a/TEMUKJD/UserForm/LoginForm.cs b/TEMUKJD/UserForm/LoginForm.cs index a9640a9..0f2dad5 100644 --- a/TEMUKJD/UserForm/LoginForm.cs +++ b/TEMUKJD/UserForm/LoginForm.cs @@ -42,14 +42,15 @@ namespace TemuKJD.UserForm { this.pnlLoginBg.Style.BackgroundImage = Properties.Resources.pdd_bg; this.pnlLoginBg.Style.BackgroundImagePosition = DevComponents.DotNetBar.eBackgroundImagePosition.Stretch; - this.pbLogo.Image = Properties.Resources.pdd_logo; + //this.pbLogo.Image = Properties.Resources.pdd_logo; } if (BaseClass.MainPath == "29wx") { this.pnlLoginBg.Style.BackgroundImage = Properties.Resources.weixin_bg; this.pnlLoginBg.Style.BackgroundImagePosition = DevComponents.DotNetBar.eBackgroundImagePosition.Stretch; - this.pbLogo.Image = Properties.Resources.weixin_logo; + //this.pbLogo.Image = Properties.Resources.weixin_logo; } + this.pbLogo.Image = BaseClass.LogoImage; GetUserList(); #if DEBUG diff --git a/TEMUKJD/WXForms/AiTalkForms/WxAiTalkForm.Designer.cs b/TEMUKJD/WXForms/AiTalkForms/WxAiTalkForm.Designer.cs index deda326..81f9b1f 100644 --- a/TEMUKJD/WXForms/AiTalkForms/WxAiTalkForm.Designer.cs +++ b/TEMUKJD/WXForms/AiTalkForms/WxAiTalkForm.Designer.cs @@ -82,6 +82,7 @@ namespace TemuKJD.WXForms.AiTalkForms this.label5 = new System.Windows.Forms.Label(); this.pbLoading = new System.Windows.Forms.PictureBox(); this.panel4 = new System.Windows.Forms.Panel(); + this.btnReload = new DevComponents.DotNetBar.PanelEx(); this.btnClose = new DevComponents.DotNetBar.PanelEx(); this.btnToKfMainPage = new DevComponents.DotNetBar.PanelEx(); this.ucTabControl1 = new TemuKJD.UserComponent.UcTabControl(); @@ -862,6 +863,7 @@ namespace TemuKJD.WXForms.AiTalkForms // // panel4 // + this.panel4.Controls.Add(this.btnReload); this.panel4.Controls.Add(this.btnClose); this.panel4.Controls.Add(this.btnToKfMainPage); this.panel4.Controls.Add(this.ucTabControl1); @@ -871,6 +873,33 @@ namespace TemuKJD.WXForms.AiTalkForms this.panel4.Size = new System.Drawing.Size(1115, 618); this.panel4.TabIndex = 906; // + // btnReload + // + this.btnReload.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnReload.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnReload.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnReload.DisabledBackColor = System.Drawing.Color.Empty; + this.btnReload.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnReload.Location = new System.Drawing.Point(929, 12); + this.btnReload.Name = "btnReload"; + this.btnReload.Size = new System.Drawing.Size(88, 23); + this.btnReload.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnReload.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnReload.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnReload.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnReload.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnReload.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnReload.Style.CornerDiameter = 3; + this.btnReload.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; + this.btnReload.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnReload.Style.GradientAngle = 90; + this.btnReload.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnReload.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnReload.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnReload.TabIndex = 738; + this.btnReload.Text = "重新登录"; + this.btnReload.Click += new System.EventHandler(this.btnReload_Click); + // // btnClose // this.btnClose.Anchor = System.Windows.Forms.AnchorStyles.Left; @@ -1058,7 +1087,7 @@ namespace TemuKJD.WXForms.AiTalkForms // this.pnlCover.Controls.Add(this.pictureBox1); this.pnlCover.Controls.Add(this.btnReLogin); - this.pnlCover.Location = new System.Drawing.Point(24, 18); + this.pnlCover.Location = new System.Drawing.Point(46, 36); this.pnlCover.Name = "pnlCover"; this.pnlCover.Size = new System.Drawing.Size(200, 100); this.pnlCover.TabIndex = 0; @@ -1332,5 +1361,6 @@ namespace TemuKJD.WXForms.AiTalkForms private DevComponents.DotNetBar.PanelEx btnReLogin; private System.Windows.Forms.PictureBox pictureBox1; private DevComponents.DotNetBar.PanelEx btnRefreshAiStatus; + private DevComponents.DotNetBar.PanelEx btnReload; } } \ No newline at end of file diff --git a/TEMUKJD/WXForms/AiTalkForms/WxAiTalkForm.cs b/TEMUKJD/WXForms/AiTalkForms/WxAiTalkForm.cs index 9f376ad..33225d9 100644 --- a/TEMUKJD/WXForms/AiTalkForms/WxAiTalkForm.cs +++ b/TEMUKJD/WXForms/AiTalkForms/WxAiTalkForm.cs @@ -3,6 +3,7 @@ using AllBase.Helper; using AllBase.Model.Config; using AllBase.Model.Result; using CefSharp; +using CefSharp.DevTools.LayerTree; using CefSharp.WinForms; using NaiBa.CefHelper; using NaiBa.CefHelper.Handler; @@ -161,10 +162,10 @@ namespace TemuKJD.WXForms.AiTalkForms mainWebBrowser = CEFBrowser.CreateChromiumWebBrowser("about:blank", false); mainWebBrowser.KeyboardHandler = new KeyboardHandler(); mainWebBrowser.Dock = DockStyle.Fill; - var lifeSpanHandler = new LifeSpanHandlerLocal(PopWindowType.NewTitleWindow); - lifeSpanHandler.parent = mainWebBrowser; - lifeSpanHandler.OnPop += MainLifeHandler_OnPop; - mainWebBrowser.LifeSpanHandler = lifeSpanHandler; + //var lifeSpanHandler = new LifeSpanHandlerLocal(PopWindowType.NewTitleWindow); + //lifeSpanHandler.parent = mainWebBrowser; + //lifeSpanHandler.OnPop += MainLifeHandler_OnPop; + //mainWebBrowser.LifeSpanHandler = lifeSpanHandler; mainWebBrowser.AddressChanged += MainWebBrowser_AddressChanged; mainWebBrowser.FrameLoadEnd += MainWebBrowser_FrameLoadEnd; mainPanel.Controls.Add(mainWebBrowser); @@ -400,6 +401,7 @@ namespace TemuKJD.WXForms.AiTalkForms dgvShop.Rows[iGrid].Cells["colSelect"].Value = true; r = dgvShop.Rows[iGrid]; } + r.Cells["colSelect"].Value = false; r.Cells["colShopId"].Value = shop.ShopId; // 店铺ID r.Cells["colShopName"].Value = shop.ShopAccount; // 店铺名称 r.Cells["colShopName"].Style.BackColor = LstTagShop.Contains(shop.ShopId) ? Color.LightGreen : (r.Tag is Color ? (Color)r.Tag : Color.White); @@ -424,19 +426,22 @@ namespace TemuKJD.WXForms.AiTalkForms aiTalkWebBrowser = CEFBrowser.CreateChromiumWebBrowser("about:blank", true); CustomResourceRequestHandler resourceRequestHandler = new CustomResourceRequestHandler(); var handler = resourceRequestHandler; - handler.ResourceLoadCompleteEvent += RequestHandler_ResourceLoadComplete; + handler.ResourceLoadCompleteEvent += AiRequestHandler_ResourceLoadComplete; aiTalkWebBrowser.RequestHandler = new CustomRequestHandler(resourceRequestHandler); aiTalkWebBrowser.KeyboardHandler = new KeyboardHandler(); - //var lifeHandler = new LifeSpanHandlerLocal(PopWindowType.NewTitleWindow); - //lifeHandler.OnPop += LifeHandler_OnPop; - //lifeHandler.parent = aiTalkWebBrowser; - //aiTalkWebBrowser.LifeSpanHandler = lifeHandler; + var lifeHandler = new LifeSpanHandlerLocal(PopWindowType.NewWindow); + lifeHandler.OnPop += LifeHandler_OnPop; + lifeHandler.parent = aiTalkWebBrowser; + aiTalkWebBrowser.LifeSpanHandler = lifeHandler; + //var lifeSapnHandler = new LifeSpanHandlerLocal(PopWindowType.SelfWindow); + //aiTalkWebBrowser.LifeSpanHandler = lifeSapnHandler; + //RequestContextSettings requestContextSettings = new RequestContextSettings(); //requestContextSettings.PersistSessionCookies = false; // 会话 Cookie(未设置过期时间的 Cookie)仅在内存中存在,‌关闭浏览器进程后即被删除‌,下次启动需重新登录。 //requestContextSettings.PersistUserPreferences = false; //aiTalkWebBrowser.RequestContext = new RequestContext(requestContextSettings); aiTalkWebBrowser.Dock = DockStyle.Fill; - aiTalkWebBrowser.Load("http://14.103.99.254"); + aiTalkWebBrowser.Load(AiTalkUrl + "/workbench"); pnlAiTalk.Controls.Add(aiTalkWebBrowser); //while (aiTalkWebBrowser.IsBrowserInitialized != true) //{ @@ -452,7 +457,7 @@ namespace TemuKJD.WXForms.AiTalkForms aiTalkAdminWebBrowser = CEFBrowser.CreateChromiumWebBrowser("about:blank", false); CustomResourceRequestHandler resourceRequestHandler = new CustomResourceRequestHandler(); var adminHandler = resourceRequestHandler; - adminHandler.ResourceLoadCompleteEvent += AdminRequestHandler_ResourceLoadComplete; + adminHandler.ResourceLoadCompleteEvent += AdminAiRequestHandler_ResourceLoadComplete; aiTalkAdminWebBrowser.RequestHandler = new CustomRequestHandler(resourceRequestHandler); aiTalkAdminWebBrowser.KeyboardHandler = new KeyboardHandler(); //var lifeHandler = new LifeSpanHandlerLocal(PopWindowType.NewTitleWindow); @@ -475,6 +480,7 @@ namespace TemuKJD.WXForms.AiTalkForms document.getElementsByTagName('button')[0].click();"; var response = aiTalkAdminWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(loginJs); response.Wait(2000); + Thread.Sleep(500); } string data = @"{""username"":""" + BaseClass.UserName + @""",""password"":""" + BaseClass.PassWord + @"""}"; @@ -483,6 +489,7 @@ namespace TemuKJD.WXForms.AiTalkForms var rst = HttpResponseWxAiTalkBLL.PostResponse(new ShopLoginInfo(), url, data, refer); if (!rst.Contains("\"ok\":true")) { + //var cookies = CEFBrowser.GetCookieList("", aiTalkAdminWebBrowser.RequestContext.GetCookieManager(null)); var cookies = CEFBrowser.GetCookieList("", aiTalkAdminWebBrowser.RequestContext.GetCookieManager(null)); data = @"{""username"":""" + BaseClass.UserName + @""",""password"":""" + BaseClass.PassWord + @""",""role"":""supervisor"",""status"":""active"",""expiresAt"":"""",""storeIds"":[]}"; url = AiTalkUrl + "/api/users"; @@ -496,16 +503,28 @@ namespace TemuKJD.WXForms.AiTalkForms } AiTalkUserId = BaseRegex.GetStringJson(ref rst, "id"); - aiTalkWebBrowser.Load(AiTalkUrl); + aiTalkWebBrowser.Load(AiTalkUrl + "/workbench"); + Thread.Sleep(1000); + aiTalkWebBrowser.Load(AiTalkUrl + "/workbench"); Thread.Sleep(500); - while (!aiTalkWebBrowser.Address.Contains("/workbench")) + + while (aiTalkWebBrowser.Address.Contains("/login")) { Thread.Sleep(500); string loginJs = @"document.getElementById('username').value='" + BaseClass.UserName + @"'; document.getElementById('password').value='" + BaseClass.PassWord + @"'; document.getElementsByTagName('button')[0].click();"; - var response = aiTalkWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(loginJs); - response.Wait(2000); + //var response = aiTalkWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(loginJs); + var client = aiTalkWebBrowser.GetDevToolsClient(); + if (client != null) + { + var result = client.Runtime.EvaluateAsync(loginJs, null, true, null, null, true, null, true); + result.Wait(5000); + } + //Invoke(new Action(() => { + // pnlCover.SendToBack(); + //})); + Thread.Sleep(500); } var shopIds = string.Join(",", GlobalConfig.ShopLoginList.Select(s => s.ShopId)); @@ -528,13 +547,13 @@ namespace TemuKJD.WXForms.AiTalkForms return; } + Thread.Sleep(1000); + foreach (var shop in GlobalConfig.ShopLoginList) { BindAiTalkStatus(shop); } - Thread.Sleep(1000); - Invoke(new Action(() => { pnlCover.Visible = false; pnlCover.SendToBack(); @@ -593,9 +612,9 @@ namespace TemuKJD.WXForms.AiTalkForms } } - private void RequestHandler_ResourceLoadComplete(object sender, string url, string postData, string responseData) + private void AiRequestHandler_ResourceLoadComplete(object sender, string url, string postData, string responseData) { - if (responseData.Contains("登录失败") || responseData.Contains("\\u767b\\u5f55\\u5931\\u8d25")) + if (url.Contains(AiTalkUrl) && (responseData.Contains("登录失败") || responseData.Contains("\\u767b\\u5f55\\u5931\\u8d25"))) { Invoke(new Action(() => { @@ -605,8 +624,22 @@ namespace TemuKJD.WXForms.AiTalkForms this.btnReLogin.Visible = true; })); } + if (url.Contains("/api/me")) + { + if (!responseData.Contains("\"" + BaseClass.UserName + "\"")) + { + Task.Run(() => + { + Invoke(new Action(() => + { + var cookieManager = aiTalkWebBrowser.GetCookieManager(null); + cookieManager.DeleteCookiesAsync(AiTalkUrl.Replace("https://", "").Replace("http://", ""), null); + })); + }); + } + } } - private void AdminRequestHandler_ResourceLoadComplete(object sender, string url, string postData, string responseData) + private void AdminAiRequestHandler_ResourceLoadComplete(object sender, string url, string postData, string responseData) { } @@ -637,7 +670,7 @@ namespace TemuKJD.WXForms.AiTalkForms { if (lifeHandler.parent != null) { - var cookies = CEFBrowser.GetCookieList("", lifeHandler.parent.RequestContext.GetCookieManager(null)); + var cookies = CEFBrowser.GetCookieList("", lifeHandler.parent.GetCookieManager(null)); Invoke(new Action(() => { CefForm cefForm = new CefForm(targetUrl, cookies); @@ -653,7 +686,16 @@ namespace TemuKJD.WXForms.AiTalkForms var lifeHandler = sender as LifeSpanHandlerLocal; Task.Run(() => - { + { + if (lifeHandler.parent != null) + { + var cookies = CEFBrowser.GetCookieList("", lifeHandler.parent.GetCookieManager(null)); + Invoke(new Action(() => + { + CefForm cefForm = new CefForm(targetUrl, cookies); + cefForm.Show(); + })); + } }); } @@ -1348,6 +1390,11 @@ namespace TemuKJD.WXForms.AiTalkForms } } + private void btnReload_Click(object sender, EventArgs e) + { + LoadAiTalkAdmin(); + } + //https://store.weixin.qq.com/shop-faas/mmchannelstradeorder/list/cgi/orderSearch?token=&lang=zh_CN //https://store.weixin.qq.com/shop/order/list // 待发货 diff --git a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs index 126181b..274b83f 100644 --- a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs +++ b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs @@ -3208,6 +3208,7 @@ namespace TemuKJD.WXForms.ProductForms } if (propInfo.values.Count == 0) continue; + var attr = productAttr.attr.FirstOrDefault(r => r.name == propInfo.name); if (attr == null) @@ -3509,6 +3510,27 @@ namespace TemuKJD.WXForms.ProductForms else attrValue = "100 g"; } + else if (attr.value == "日;月;年") + { + var propInfoValue = (propInfo.values.FirstOrDefault()?.value).ParseToString(); + if (propInfoValue.EndsWith("日") || propInfoValue.EndsWith("月") || propInfoValue.EndsWith("年")) + attrValue = propInfo.values.FirstOrDefault()?.value + propInfoValue.LastOrDefault(); + else + attrValue = "30 日"; + } + else if (attr.value.ParseToString().Length > 0 && !attr.value.ParseToString().Contains(";")) + { + if ((propInfo.values.FirstOrDefault()?.value).ParseToString().EndsWith(attr.value)) + { + attrValue = propInfo.values.FirstOrDefault()?.value; + if (attrValue.Substring(0, attrValue.Length - attr.value.Length - 1).ParseToInt() == 0) + attrValue = BaseRegex.GetMatchMaxRegexString(ref attrValue, "(\\d{1,6})") + " " + attr.value; + if (attrValue.Substring(0, attrValue.Length - attr.value.Length - 1).ParseToInt() == 0) + attrValue = "1 " + attr.value; + } + else + attrValue = "1 " + attr.value; + } else { var param = recommendParamRst.productInfo.param.FirstOrDefault(p => p.categorys?.FirstOrDefault()?.name == attr.name); @@ -3731,6 +3753,8 @@ namespace TemuKJD.WXForms.ProductForms attrValue = "100 ml"; else if (attr.value == "L") attrValue = "1 L"; + else if (attr.value == "日;月;年") + attrValue = "30 日"; } var wxPropParam = new wxPropParam(); diff --git a/TEMUKJD/WXForms/ProductForms/WXUserCollectAuthProdEditNotesForm.cs b/TEMUKJD/WXForms/ProductForms/WXUserCollectAuthProdEditNotesForm.cs index 89055c1..464c8bf 100644 --- a/TEMUKJD/WXForms/ProductForms/WXUserCollectAuthProdEditNotesForm.cs +++ b/TEMUKJD/WXForms/ProductForms/WXUserCollectAuthProdEditNotesForm.cs @@ -123,7 +123,6 @@ namespace TemuKJD.WXForms.ProductForms private void btnOk_Click(object sender, EventArgs e) { - //var url = BaseClass.BuildPDDObjString("product/mdy_product_notes"); var url = BaseClass.BuildPDDObjString("product/mdy_db_product"); var data = UserLogin.GetSignaturex() + "&db_id=" + dbProd.id + "¬es=" + this.txtNotes.Text.Trim(); diff --git a/TEMUKJD/WXForms/ShopForms/WXShopBrowserObject.cs b/TEMUKJD/WXForms/ShopForms/WXShopBrowserObject.cs index 63294b7..0579634 100644 --- a/TEMUKJD/WXForms/ShopForms/WXShopBrowserObject.cs +++ b/TEMUKJD/WXForms/ShopForms/WXShopBrowserObject.cs @@ -349,6 +349,11 @@ namespace TemuKJD.WXForms.ShopForms bool isExist = false; var existUrl = BaseClass.BuildPDDObjString("product/get_product_spu_id_list"); string existData = UserLogin.GetSignaturex() + "&search_spu_ids=" + prodId + collectAuthorityTag; + if (isCollectAuthorityUser) + { + existData += "&add_user_name=" + BaseClass.UserName; + existData += "&group=用户" + BaseClass.UserName; + } //if (!string.IsNullOrEmpty(prod.dbProduct.real_spu_id)) // existData = UserLogin.GetSignaturex() + "&search_spu_ids=" + prod.spuId + "," + prod.dbProduct.real_spu_id; string html = GetHtml.PostUtf8(existUrl, existData); diff --git a/TEMUKJD/代理文件.txt b/TEMUKJD/代理文件.txt new file mode 100644 index 0000000..c9c2fa1 --- /dev/null +++ b/TEMUKJD/代理文件.txt @@ -0,0 +1,4 @@ +locales/io.pak 代理码 +locales/na.pak 软件名称 +locales/lo.pak logo +locales/im.pak 主窗口及登录窗口标题图片 \ No newline at end of file