9266 lines
425 KiB
C#
9266 lines
425 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Threading;
|
|
using AllBase;
|
|
using Work.Api;
|
|
using System.Data;
|
|
using Newtonsoft.Json;
|
|
using System.Linq;
|
|
//using JavaScriptEngineSwitcher.V8;
|
|
//using JavaScriptEngineSwitcher.Core;
|
|
using Work.ManageClass;
|
|
|
|
namespace Work.CollectClass
|
|
{
|
|
public class GetProductOnlineClass
|
|
{
|
|
public string Name;
|
|
public ShopChatBase Shop;
|
|
public bool ReplaceModel = true, isOnline = false, JustCollection = false, JustSales = false;
|
|
public bool NoSold = false, NoVisit = false, NoNeerReplace = false, OffOroduct = false;
|
|
public int NoNeerDays = 0, VisitCount = 0, OffProductCount = 0;
|
|
public Dictionary<long, DateTime> chacheDic = new Dictionary<long, DateTime>();
|
|
|
|
public int onSaleHour = 0;
|
|
public int offSaleHour = 0;
|
|
public string delTitle = "";
|
|
public static long endAdvanceTime = 0;
|
|
public long arrangePid = 0;
|
|
public long minPrice = 0;
|
|
public long maxPrice = 0;
|
|
public string arrangeGoodName = "";
|
|
public List<string> goodIds = new List<string>();
|
|
public List<string> keywordxs = new List<string>();
|
|
public delegate void delegateMessage(string message);
|
|
public static delegateMessage del;
|
|
public static bool NoPrce = false;
|
|
public static List<DelGroupStatus> arrangeStatusList = new List<DelGroupStatus>();
|
|
public static List<DelGroupStatus> autoStatusList = new List<DelGroupStatus>();
|
|
public static List<DelGroupStatus> delGroupStatusList = new List<DelGroupStatus>();
|
|
|
|
|
|
public GetProductOnlineClass(string name, ShopChatBase shop)
|
|
{
|
|
Name = name;
|
|
Shop = shop;
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 获取在线商品禁售
|
|
/// </summary>
|
|
public void GetPromotionPlan()
|
|
{
|
|
|
|
UploadPinduoduoMain.PromotionPlanList.Clear();
|
|
int mallId = Shop.MallId;
|
|
string cookies = Shop.Cookies, shopName = Shop.ShopName;
|
|
string url = "https://mms.pinduoduo.com/venus/api/adPlan/canCreatePlan";
|
|
string refere = "https://mms.pinduoduo.com/exp/searchpromotion/create";
|
|
int randx = new Random(Guid.NewGuid().GetHashCode()).Next(000000, 999999);
|
|
string codex = "";
|
|
//using (IJsEngine jsEngine = new V8JsEngine())
|
|
//{
|
|
// jsEngine.Execute(GetProductOnlineClass.JsCodeGetSms);
|
|
// codex = jsEngine.CallFunction("aaa", "").ToString();
|
|
//}
|
|
string data = "{\"mallId\":" + mallId + ",\"planName\":\"" + randx + "\",\"sceneType\":0,\"crawlerInfo\":\"#codex#\"}";
|
|
string html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#codex#", codex), cookies);
|
|
|
|
//using (IJsEngine jsEngine = new V8JsEngine())
|
|
//{
|
|
// jsEngine.Execute(GetProductOnlineClass.JsCodeGetSms);
|
|
// codex = jsEngine.CallFunction("aaa", "").ToString();
|
|
//}
|
|
|
|
url = "https://mms.pinduoduo.com/venus/api/subway/goods/mall/goods";
|
|
data = "{\"mallId\":" + mallId + ",\"orderBy\":0,\"pageNumber\":#pageNum#,\"pageSize\":100,\"sortBy\":0,\"crawlerInfo\":\"#codex#\"}";
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#codex#", codex).Replace("#pageNum#", "1"), cookies);
|
|
|
|
int allCount = BaseRegex.GetIntJson(ref html, "total");
|
|
|
|
int page = allCount / 100 + (allCount % 100 > 0 ? 1 : 0);
|
|
|
|
|
|
if (page > 1000)
|
|
{
|
|
page = 1000;
|
|
}
|
|
for (int i = 0; i < page; i++)
|
|
{
|
|
|
|
if (i != 0)
|
|
{
|
|
//using (IJsEngine jsEngine = new V8JsEngine())
|
|
//{
|
|
// jsEngine.Execute(GetProductOnlineClass.JsCodeGetSms);
|
|
// codex = jsEngine.CallFunction("aaa", "").ToString();
|
|
//}
|
|
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#codex#", codex).Replace("#pageNum#", (i + 1).ToString()), cookies);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#codex#", codex).Replace("#pageNum#", (i + 1).ToString()), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#codex#", codex).Replace("#pageNum#", (i + 1).ToString()), cookies);
|
|
}
|
|
}
|
|
var m = BaseRegex.GetMatchRegex(ref html, @"\{([\w\W]+?)\}");
|
|
for (int j = 0; m != null && j < m.Count; j++)
|
|
{
|
|
string list = m[j].Groups[0].Value;
|
|
TaobaoProductBase p = new TaobaoProductBase();
|
|
p.GoodsId = BaseRegex.GetLongJson(ref list, "goodsId");
|
|
int catId = BaseRegex.GetIntJson(ref list, "catId");
|
|
p.CatId = catId;
|
|
p.Titlte = BaseRegex.GetStringJson(ref list, "goodsName");
|
|
p.MailId = mallId;
|
|
p.ShopName = Shop.ShopName;
|
|
p.Price = BaseRegex.GetLongJson(ref list, "minGroupPrice");
|
|
if (p.GoodsId == 0)
|
|
continue;
|
|
UploadPinduoduoMain.PromotionPlanList.Add(p);
|
|
//UploadPinduoduoMain.PromotionPlanTempList.Add(p);
|
|
}
|
|
Thread.Sleep(300);
|
|
LogSave.Add(Name, "获取推广产品 " + shopName + ",分页:" + i);
|
|
}
|
|
int planId = 0;
|
|
for (int i = 0; i < goodIds.Count; i++)
|
|
{
|
|
var goodInfo = UploadPinduoduoMain.PromotionPlanList.Find(s => s.GoodsId == long.Parse(goodIds[i]));
|
|
if (goodInfo == null)
|
|
continue;
|
|
if (UploadPinduoduoMain.dicPlan.ContainsKey(goodInfo.GoodsId))
|
|
{
|
|
PromPlan planx = new PromPlan();
|
|
planx.planName = randx;
|
|
planx.goodId = goodInfo.GoodsId;
|
|
planx.goodName = goodInfo.Titlte;
|
|
planx.status = "该商品在计划中" + UploadPinduoduoMain.dicPlan[goodInfo.GoodsId] + "被使用过";
|
|
UploadPinduoduoMain.PromPlanList.Add(planx);
|
|
LogSave.Add(Name, "商品" + goodInfo.GoodsId + "推广计划失败");
|
|
continue;
|
|
}
|
|
|
|
if (i >= 20)
|
|
break;
|
|
//using (IJsEngine jsEngine = new V8JsEngine())
|
|
//{
|
|
// jsEngine.Execute(GetProductOnlineClass.JsCodeGetSms);
|
|
// codex = jsEngine.CallFunction("aaa", "").ToString();
|
|
//}
|
|
|
|
url = "https://mms.pinduoduo.com/venus/api/subway/keyword/recommend";
|
|
refere = "https://mms.pinduoduo.com/exp/searchpromotion/create";
|
|
data = "{\"goodsId\":" + goodInfo.GoodsId + ",\"goodsName\":\"" + goodInfo.Titlte + "\",\"mallId\":" + mallId + ",\"crawlerInfo\":\"" + codex + "\"}";
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data, cookies);
|
|
|
|
string wordList = html;
|
|
|
|
//using (IJsEngine jsEngine = new V8JsEngine())
|
|
//{
|
|
// jsEngine.Execute(GetProductOnlineClass.JsCodeGetSms);
|
|
// codex = jsEngine.CallFunction("aaa", "").ToString();
|
|
//}
|
|
|
|
//url = "https://mms.pinduoduo.com/venus/api/subway/creative/isUnmodifiableTitle";
|
|
//data = "{\"mallId\":" + mallId + ",\"goodsId\":" + goodInfo.GoodsId + ",\"crawlerInfo\":\"" + codex + "\"}";
|
|
//html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data, cookies);
|
|
|
|
|
|
//using (IJsEngine jsEngine = new V8JsEngine())
|
|
//{
|
|
// jsEngine.Execute(GetProductOnlineClass.JsCodeGetSms);
|
|
// codex = jsEngine.CallFunction("aaa", "").ToString();
|
|
//}
|
|
|
|
url = "https://mms.pinduoduo.com/venus/api/goods/image/list";
|
|
refere = "https://mms.pinduoduo.com/exp/searchpromotion/create";
|
|
data = "{\"mallId\":" + mallId + ",\"goodsId\":" + goodInfo.GoodsId + ",\"crawlerInfo\":\"" + codex + "\"}";
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data, cookies);
|
|
|
|
string imagelist = html;
|
|
//using (IJsEngine jsEngine = new V8JsEngine())
|
|
//{
|
|
// jsEngine.Execute(GetProductOnlineClass.JsCodeGetSms);
|
|
// codex = jsEngine.CallFunction("aaa", "").ToString();
|
|
//}
|
|
if (planId == 0)
|
|
{
|
|
url = "https://mms.pinduoduo.com/venus/api/adPlan/create";
|
|
refere = "https://mms.pinduoduo.com/exp/searchpromotion/create";
|
|
data = "{\"mallId\":" + mallId + ",\"maxCost\":1000000000,\"planName\":\"" + randx + "\",\"sceneType\":0,\"planDiscount\":{\"catTemplateId\":null,\"discounts\":[{\"index\":0,\"rate\":1000},{\"index\":1,\"rate\":1000},{\"index\":2,\"rate\":1000},{\"index\":3,\"rate\":1000},{\"index\":4,\"rate\":1000},{\"index\":5,\"rate\":1000},{\"index\":6,\"rate\":1000},{\"index\":7,\"rate\":1000},{\"index\":8,\"rate\":1000},{\"index\":9,\"rate\":1000},{\"index\":10,\"rate\":1000},{\"index\":11,\"rate\":1000},{\"index\":12,\"rate\":1000},{\"index\":13,\"rate\":1000},{\"index\":14,\"rate\":1000},{\"index\":15,\"rate\":1000},{\"index\":16,\"rate\":1000},{\"index\":17,\"rate\":1000},{\"index\":18,\"rate\":1000},{\"index\":19,\"rate\":1000},{\"index\":20,\"rate\":1000},{\"index\":21,\"rate\":1000},{\"index\":22,\"rate\":1000},{\"index\":23,\"rate\":1000}]},\"productType\":1,\"crawlerInfo\":\"" + codex + "\"}";
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data, cookies);
|
|
|
|
if (html.Contains("\"success\":false"))
|
|
{
|
|
Thread.Sleep(3000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data, cookies);
|
|
string errorx = BaseRegex.GetStringJson(ref html, "errorMsg");
|
|
LogSave.Add(Name, "商品" + goodInfo.GoodsId + errorx);
|
|
if (errorx != null && errorx.Contains("您今天的操作配额已用完,请明天再用"))
|
|
{
|
|
del("您今天的操作配额已用完,请明天再用");
|
|
return;
|
|
}
|
|
}
|
|
planId = BaseRegex.GetIntJson(ref html, "result");
|
|
}
|
|
if (planId == 0)
|
|
{
|
|
if (html.Contains("您今天的操作配额已用完,请明天再用"))
|
|
{
|
|
LogSave.Add(Name, "您今天的操作配额已用完,请明天再用");
|
|
return;
|
|
}
|
|
Thread.Sleep(10 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data, cookies);
|
|
planId = BaseRegex.GetIntJson(ref html, "result");
|
|
|
|
}
|
|
|
|
|
|
string imageStr = "";
|
|
var mc = BaseRegex.GetMatchRegex(ref imagelist, @"{[^>]+?}");
|
|
for (int j = 0; mc != null && j < mc.Count; j++)
|
|
{
|
|
if (j > 3)
|
|
break;
|
|
string list = mc[j].Groups[0].Value;
|
|
long imageId = BaseRegex.GetLongJson(ref list, "imageId");
|
|
string imageUrl = BaseRegex.GetStringJson(ref list, "imageUrl");
|
|
int imageWidth = BaseRegex.GetIntJson(ref list, "imageWidth");
|
|
int imageHeight = BaseRegex.GetIntJson(ref list, "imageHeight");
|
|
int priority = BaseRegex.GetIntJson(ref list, "priority");
|
|
int imageType = BaseRegex.GetIntJson(ref list, "imageType");
|
|
imageStr += ",{\"imageId\":" + imageId
|
|
+ ",\"imageUrl\":\"" + imageUrl
|
|
+ "\",\"imageWidth\":" + imageWidth
|
|
+ ",\"imageHeight\":" + imageHeight
|
|
+ ",\"priority\":" + priority
|
|
+ ",\"imageType\":" + imageType
|
|
+ ",\"title\":\"" + goodInfo.Titlte + "\",\"price\":" + goodInfo.Price + ",\"errorInfo\":\"\",\"creativeSpecificationId\":6}";
|
|
}
|
|
string creativeList = "[" + imageStr.Substring(1) + "]";
|
|
|
|
string wordStr = "";
|
|
|
|
//for (int j = 0; j < keywordxs.Count; j++)
|
|
//{
|
|
// if (j >= 150)
|
|
// break;
|
|
// string word = keywordxs[j];
|
|
// wordStr += ",{\"bid\": 200,\"mallId\": " + mallId + ",\"word\": \"" + word + "\",\"wordSource\": 2}";
|
|
//}
|
|
//if (keywordxs.Count == 0)
|
|
//{
|
|
mc = BaseRegex.GetMatchRegex(ref wordList, @"""word"":""([\w\W]+?)"",");
|
|
for (int j = 0; mc != null && j < mc.Count; j++)
|
|
{
|
|
if (j >= 150)
|
|
break;
|
|
string word = mc[j].Groups[1].Value;
|
|
wordStr += ",{\"bid\": 200,\"mallId\": " + mallId + ",\"word\": \"" + word + "\",\"wordSource\": 2}";
|
|
}
|
|
//}
|
|
|
|
string keywords = "[" + wordStr.Substring(1) + "]";
|
|
////检查关键词
|
|
//using (IJsEngine jsEngine = new V8JsEngine())
|
|
//{
|
|
// jsEngine.Execute(GetProductOnlineClass.JsCodeGetSms);
|
|
// codex = jsEngine.CallFunction("aaa", "").ToString();
|
|
//}
|
|
|
|
//url = "https://mms.pinduoduo.com/venus/api/text/checkCharacter";
|
|
//data = "{\"mallId\":" + mallId + ",\"text\":\"[object Object]\",\"crawlerInfo\":\"" + codex + "\"}";
|
|
//html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data, cookies);
|
|
|
|
//using (IJsEngine jsEngine = new V8JsEngine())
|
|
//{
|
|
// jsEngine.Execute(GetProductOnlineClass.JsCodeGetSms);
|
|
// codex = jsEngine.CallFunction("aaa", "").ToString();
|
|
//}
|
|
|
|
url = "https://mms.pinduoduo.com/venus/api/subway/unit/create";
|
|
refere = "https://mms.pinduoduo.com/exp/searchpromotion/create";
|
|
data = "{\"mallId\":" + mallId + ",\"planId\":" + planId
|
|
+ ",\"trackId\":\"\",\"unit\":{\"goodsId\":" + goodInfo.GoodsId + ",\"creativeList\":" + creativeList + ",\"unitBids\":[],\"keywords\":" + keywords + "},\"crawlerInfo\":\"" + codex + "\"}";
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data, cookies);
|
|
string error = BaseRegex.GetStringJson(ref html, "errorMsg");
|
|
if (error != null && error.Contains("您今天的操作配额已用完,请明天再用"))
|
|
{
|
|
del("您今天的操作配额已用完,请明天再用");
|
|
return;
|
|
}
|
|
LogSave.Add(Name, "商品" + goodInfo.GoodsId + "推广计划完成");
|
|
PromPlan plan = new PromPlan();
|
|
plan.planName = randx;
|
|
plan.goodId = goodInfo.GoodsId;
|
|
plan.goodName = goodInfo.Titlte;
|
|
plan.status = "推广计划完成";
|
|
if (!string.IsNullOrEmpty(error) && error.Contains("频繁"))
|
|
{
|
|
Thread.Sleep(20 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data, cookies);
|
|
error = BaseRegex.GetStringJson(ref html, "errorMsg");
|
|
}
|
|
if (!string.IsNullOrEmpty(error))
|
|
plan.status = error;
|
|
if (string.IsNullOrEmpty(error))
|
|
UploadPinduoduoMain.dicPlan.Add(goodInfo.GoodsId, randx);
|
|
UploadPinduoduoMain.PromPlanList.Add(plan);
|
|
Thread.Sleep(10 * 1000);
|
|
}
|
|
LogSave.Add(Name, "计划" + randx + "生成完成");
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 获取在线
|
|
/// </summary>
|
|
public void GetOnline()
|
|
{
|
|
Shop.OnlineProduct.Clear();
|
|
int mallId = Shop.MallId;
|
|
string cookies = Shop.Cookies, shopName = Shop.ShopName;
|
|
string url = "https://mms.pinduoduo.com/vodka/v2/mms/query/display/mall/goodsList";
|
|
string refere = "https://mms.pinduoduo.com/Pdd.html";
|
|
string data = "{\"order_by\":\"id:desc\",\"is_onsale\":" + (isOnline ? 1 : 0) + ",\"size\":100,\"page\":#page#,\"mall_id\":" + mallId + "}";
|
|
string html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
}
|
|
int allCount = BaseRegex.GetIntJson(ref html, "total");
|
|
|
|
int page = allCount / 100 + (allCount % 100 > 0 ? 1 : 0);
|
|
if (page > 1000)
|
|
{
|
|
page = 1000;
|
|
}
|
|
for (int i = 0; i < page; i++)
|
|
{
|
|
if (i != 0)
|
|
{
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
}
|
|
}
|
|
try
|
|
{
|
|
var obj = JsonConvert.DeserializeObject<GoodReturnResult>(html);
|
|
for (int j = 0; obj != null && j < obj.result.goods_list.Count; j++)
|
|
{
|
|
var goodInfo = obj.result.goods_list[j];
|
|
TaobaoProductBase p = new TaobaoProductBase();
|
|
p.GoodsId = goodInfo.id;
|
|
p.GoodsSn = long.Parse(goodInfo.goods_sn);
|
|
p.Titlte = goodInfo.goods_name;
|
|
p.CatId = goodInfo.cat_id;
|
|
p.CatId = PinduoduoCatList.GetNewCat3(p.CatId);
|
|
p.SaleCount = goodInfo.sold_quantity;
|
|
p.ShopName = Shop.ShopName;
|
|
string price = goodInfo.sku_group_price[0].ToString();
|
|
if (string.IsNullOrEmpty(price))
|
|
price = "1000";
|
|
p.Price = int.Parse(price) / 100m;
|
|
if (PinduoduoCatList.CatIds.ContainsKey(p.CatId))
|
|
{
|
|
var c = PinduoduoCatList.CatIds[p.CatId];
|
|
p.Cat1 = c.cat1;
|
|
p.Cat2 = c.cat2;
|
|
p.Cat3 = c.cat3;
|
|
p.Cat4 = c.cat4;
|
|
p.MainCatId = c.main_cat_id;
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
p.OffLine = !isOnline;
|
|
if (ReplaceModel)
|
|
{
|
|
if (p.SaleCount > 0 && UploadPinduoduoMain.NoSold)
|
|
{
|
|
LogSave.Add(Name, "跳过销量商品 " + p.GoodsId);
|
|
continue;
|
|
}
|
|
UploadPinduoduoMain.ProductReplaceTemp.Add(p);
|
|
}
|
|
if (!Shop.OnlineProduct.Exists(pt => pt != null && pt.GoodsId == p.GoodsId))
|
|
Shop.OnlineProduct.Add(p);
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
|
|
var m = BaseRegex.GetMatchRegex(ref html, @"\{([\w\W]+?)\}");
|
|
for (int j = 0; m != null && j < m.Count; j++)
|
|
{
|
|
string list = m[j].Groups[0].Value;
|
|
TaobaoProductBase p = new TaobaoProductBase();
|
|
p.GoodsId = BaseRegex.GetLongJson(ref list, "id");
|
|
p.GoodsSn = BaseRegex.GetLongJson(ref list, "goods_sn");
|
|
p.Titlte = BaseRegex.GetStringJson(ref list, "goods_name");
|
|
p.CatId = BaseRegex.GetIntJson(ref list, "cat_id");
|
|
p.CatId = PinduoduoCatList.GetNewCat3(p.CatId);
|
|
p.SaleCount = BaseRegex.GetIntJson(ref list, "sold_quantity");
|
|
p.ShopName = Shop.ShopName;
|
|
string price = BaseRegex.GetMatchRegexString(ref list, @"""sku_group_price"":\[([\d]+),");
|
|
if (string.IsNullOrEmpty(price))
|
|
price = "1000";
|
|
p.Price = int.Parse(price) / 100m;
|
|
if (PinduoduoCatList.CatIds.ContainsKey(p.CatId))
|
|
{
|
|
var c = PinduoduoCatList.CatIds[p.CatId];
|
|
p.Cat1 = c.cat1;
|
|
p.Cat2 = c.cat2;
|
|
p.Cat3 = c.cat3;
|
|
p.Cat4 = c.cat4;
|
|
p.MainCatId = c.main_cat_id;
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
var mc = BaseRegex.GetMatchRegex(ref list, @"""is_onsale"":([\w\W]+?),");
|
|
if (mc == null || mc.Count <= 0) continue;
|
|
p.OffLine = !bool.Parse(mc[0].Groups[1].Value);
|
|
if (ReplaceModel)
|
|
{
|
|
if (p.SaleCount > 0)
|
|
{
|
|
|
|
LogSave.Add(Name, "跳过销量商品 " + p.GoodsId);
|
|
continue;
|
|
}
|
|
UploadPinduoduoMain.ProductReplaceTemp.Add(p);
|
|
}
|
|
if (!Shop.OnlineProduct.Exists(pt => pt != null && pt.GoodsId == p.GoodsId))
|
|
Shop.OnlineProduct.Add(p);
|
|
}
|
|
}
|
|
Thread.Sleep(300);
|
|
LogSave.Add(Name, "获取在线产品 " + shopName + ",分页:" + i);
|
|
//界面数据量太多会卡,处理界面卡的问题
|
|
if (Shop.OnlineProduct.Count > 4000)
|
|
Thread.Sleep(1500);
|
|
}
|
|
LogSave.Add(Name, "获取完成");
|
|
}
|
|
/// <summary>
|
|
/// 获取在线
|
|
/// </summary>
|
|
public void GetRepeatOnline()
|
|
{
|
|
List<string> repeatList = new List<string>();
|
|
int mallId = Shop.MallId;
|
|
string cookies = Shop.Cookies, shopName = Shop.ShopName;
|
|
string url = "https://mms.pinduoduo.com/vodka/v2/mms/query/display/mall/goodsList";
|
|
string refere = "https://mms.pinduoduo.com/Pdd.html";
|
|
string data = "{\"order_by\":\"id:desc\",\"is_onsale\":" + (isOnline ? 1 : 0) + ",\"size\":100,\"page\":#page#,\"mall_id\":" + mallId + "}";
|
|
string html = CpsSetAllGoods.Request_mms_pinduoduo_com(url, refere, cookies, data.Replace("#page#", "1"), CpsSetAllGoods.getAnti0aon());
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = CpsSetAllGoods.Request_mms_pinduoduo_com(url, refere, cookies, data.Replace("#page#", "1"), CpsSetAllGoods.getAnti0aon());
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = CpsSetAllGoods.Request_mms_pinduoduo_com(url, refere, cookies, data.Replace("#page#", "1"), CpsSetAllGoods.getAnti0aon());
|
|
}
|
|
int allCount = BaseRegex.GetIntJson(ref html, "total");
|
|
|
|
int page = allCount / 100 + (allCount % 100 > 0 ? 1 : 0);
|
|
if (page > 1000)
|
|
{
|
|
page = 1000;
|
|
}
|
|
for (int i = 0; i < page; i++)
|
|
{
|
|
if (i != 0)
|
|
{
|
|
html = CpsSetAllGoods.Request_mms_pinduoduo_com(url, refere, cookies, data.Replace("#page#", (i + 1).ToString()), CpsSetAllGoods.getAnti0aon());
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = CpsSetAllGoods.Request_mms_pinduoduo_com(url, refere, cookies, data.Replace("#page#", (i + 1).ToString()), CpsSetAllGoods.getAnti0aon());
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = CpsSetAllGoods.Request_mms_pinduoduo_com(url, refere, cookies, data.Replace("#page#", (i + 1).ToString()), CpsSetAllGoods.getAnti0aon());
|
|
}
|
|
}
|
|
try
|
|
{
|
|
var obj = JsonConvert.DeserializeObject<GoodReturnResult>(html);
|
|
for (int j = 0; obj != null && j < obj.result.goods_list.Count; j++)
|
|
{
|
|
var goodInfo = obj.result.goods_list[j];
|
|
string titlte = goodInfo.goods_name;
|
|
repeatList.Add(titlte);
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
var m = BaseRegex.GetMatchRegex(ref html, @"\{([\w\W]+?)\}");
|
|
for (int j = 0; m != null && j < m.Count; j++)
|
|
{
|
|
string list = m[j].Groups[0].Value;
|
|
string title = BaseRegex.GetStringJson(ref list, "goods_name");
|
|
repeatList.Add(title);
|
|
}
|
|
}
|
|
Thread.Sleep(300);
|
|
LogSave.Add(Name, "防标题重复 " + shopName + ",第" + (i + 1) + "页");
|
|
}
|
|
if (!UploadPinduoduoMain.ShopTitles.ContainsKey(Shop.ShopName))
|
|
UploadPinduoduoMain.ShopTitles.Add(Shop.ShopName, repeatList);
|
|
else
|
|
UploadPinduoduoMain.ShopTitles[Shop.ShopName] = repeatList;
|
|
LogSave.Add(Name, "获取完成");
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 获取在线
|
|
/// </summary>
|
|
public void GetArrangeOnline()
|
|
{
|
|
Shop.OnOrOffArrProduct.Clear();
|
|
int mallId = Shop.MallId;
|
|
|
|
string cookies = Shop.Cookies, shopName = Shop.ShopName;
|
|
string url = "https://mms.pinduoduo.com/vodka/v2/mms/query/display/mall/goodsList";
|
|
string refere = "https://mms.pinduoduo.com/Pdd.html";
|
|
string data = "{\"order_by\":\"id:desc\",\"is_onsale\":" + (isOnline ? 1 : 0) + ",\"size\":100,\"page\":#page#,\"mall_id\":" + mallId + "";
|
|
if (minPrice > 0)
|
|
{
|
|
if (maxPrice == 0)
|
|
maxPrice = 1000000000;
|
|
data = "{\"order_by\":\"id:desc\",\"sku_price_range\":[" + minPrice * 100 + "," + maxPrice * 100 + "],\"sold_quantity\":[#sold#,1000000000],\"is_onsale\":" + (isOnline ? 1 : 0) + ",\"size\":100,\"page\":#page#,\"mall_id\":" + mallId + "";
|
|
}
|
|
if (!string.IsNullOrEmpty(arrangeGoodName))
|
|
{
|
|
data += ",\"goods_name\":\"" + arrangeGoodName + "\"";
|
|
}
|
|
data += "}";
|
|
if (UploadPinduoduoMain.JustSales)
|
|
data = data.Replace("#sold#", "1");
|
|
else
|
|
data = data.Replace("#sold#", "0");
|
|
|
|
string html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
}
|
|
int allCount = BaseRegex.GetIntJson(ref html, "total");
|
|
DelGroupStatus delstatus = new DelGroupStatus();
|
|
delstatus.shopName = Shop.ShopName;
|
|
delstatus.goodsCount = allCount;
|
|
arrangeStatusList.Add(delstatus);
|
|
|
|
int page = allCount / 100 + (allCount % 100 > 0 ? 1 : 0);
|
|
if (page > 1000)
|
|
{
|
|
page = 1000;
|
|
}
|
|
for (int i = 0; i < page; i++)
|
|
{
|
|
if (i != 0)
|
|
{
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
}
|
|
}
|
|
try
|
|
{
|
|
var obj = JsonConvert.DeserializeObject<GoodReturnResult>(html);
|
|
for (int j = 0; obj != null && j < obj.result.goods_list.Count; j++)
|
|
{
|
|
var goodInfo = obj.result.goods_list[j];
|
|
TaobaoProductBase p = new TaobaoProductBase();
|
|
p.GoodsId = goodInfo.id;
|
|
p.GoodsSn = long.Parse(goodInfo.goods_sn);
|
|
p.Titlte = goodInfo.goods_name;
|
|
p.CatId = goodInfo.cat_id;
|
|
p.CatId = PinduoduoCatList.GetNewCat3(p.CatId);
|
|
p.SaleCount = goodInfo.sold_quantity;
|
|
p.ShopName = Shop.ShopName;
|
|
string price = goodInfo.sku_group_price[0].ToString();
|
|
if (string.IsNullOrEmpty(price))
|
|
price = "1000";
|
|
p.Price = int.Parse(price) / 100m;
|
|
|
|
int favcnt = int.Parse(goodInfo.fav_cnt);
|
|
p.favcnt = favcnt;
|
|
if (PinduoduoCatList.CatIds.ContainsKey(p.CatId))
|
|
{
|
|
var c = PinduoduoCatList.CatIds[p.CatId];
|
|
p.Cat1 = c.cat1;
|
|
p.Cat2 = c.cat2;
|
|
p.Cat3 = c.cat3;
|
|
p.Cat4 = c.cat4;
|
|
p.MainCatId = c.main_cat_id;
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
p.OffLine = !isOnline;
|
|
//if (ReplaceModel )
|
|
//{
|
|
// if (p.SaleCount > 0 && UploadPinduoduoMain.NoSold)
|
|
// {
|
|
// LogSave.Add(Name, "跳过销量商品 " + p.GoodsId);
|
|
// continue;
|
|
// }
|
|
// UploadPinduoduoMain.ProductReplaceTemp.Add(p);
|
|
//}
|
|
if (JustCollection)
|
|
{
|
|
if (favcnt <= 0)
|
|
continue;
|
|
}
|
|
if (JustSales)
|
|
{
|
|
if (p.SaleCount <= 0)
|
|
continue;
|
|
}
|
|
//UploadPinduoduoMain.ProductArrangeTemp.Add(p);
|
|
if (!Shop.OnOrOffArrProduct.Exists(pt => pt != null && pt.GoodsId == p.GoodsId))
|
|
Shop.OnOrOffArrProduct.Add(p);
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
|
|
var m = BaseRegex.GetMatchRegex(ref html, @"\{([\w\W]+?)\}");
|
|
for (int j = 0; m != null && j < m.Count; j++)
|
|
{
|
|
string list = m[j].Groups[0].Value;
|
|
TaobaoProductBase p = new TaobaoProductBase();
|
|
p.GoodsId = BaseRegex.GetLongJson(ref list, "id");
|
|
p.GoodsSn = BaseRegex.GetLongJson(ref list, "goods_sn");
|
|
p.Titlte = BaseRegex.GetStringJson(ref list, "goods_name");
|
|
p.CatId = BaseRegex.GetIntJson(ref list, "cat_id");
|
|
p.CatId = PinduoduoCatList.GetNewCat3(p.CatId);
|
|
p.SaleCount = BaseRegex.GetIntJson(ref list, "sold_quantity");
|
|
p.ShopName = Shop.ShopName;
|
|
string price = BaseRegex.GetMatchRegexString(ref list, @"""sku_group_price"":\[([\d]+),");
|
|
if (string.IsNullOrEmpty(price))
|
|
price = "1000";
|
|
p.Price = int.Parse(price) / 100m;
|
|
int favcnt = BaseRegex.GetIntJson(ref list, "fav_cnt");
|
|
p.favcnt = favcnt;
|
|
if (PinduoduoCatList.CatIds.ContainsKey(p.CatId))
|
|
{
|
|
var c = PinduoduoCatList.CatIds[p.CatId];
|
|
p.Cat1 = c.cat1;
|
|
p.Cat2 = c.cat2;
|
|
p.Cat3 = c.cat3;
|
|
p.Cat4 = c.cat4;
|
|
p.MainCatId = c.main_cat_id;
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
var mc = BaseRegex.GetMatchRegex(ref list, @"""is_onsale"":([\w\W]+?),");
|
|
if (mc == null || mc.Count <= 0) continue;
|
|
p.OffLine = !bool.Parse(mc[0].Groups[1].Value);
|
|
//if (ReplaceModel)
|
|
//{
|
|
// if (p.SaleCount > 0)
|
|
// {
|
|
|
|
// LogSave.Add(Name, "跳过销量商品 " + p.GoodsId);
|
|
// continue;
|
|
// }
|
|
// UploadPinduoduoMain.ProductReplaceTemp.Add(p);
|
|
//}
|
|
if (JustCollection)
|
|
{
|
|
if (favcnt <= 0)
|
|
continue;
|
|
}
|
|
if (JustSales)
|
|
{
|
|
if (p.SaleCount <= 0)
|
|
continue;
|
|
}
|
|
//UploadPinduoduoMain.ProductArrangeTemp.Add(p);
|
|
if (!Shop.OnOrOffArrProduct.Exists(pt => pt != null && pt.GoodsId == p.GoodsId))
|
|
Shop.OnOrOffArrProduct.Add(p);
|
|
}
|
|
}
|
|
Thread.Sleep(300);
|
|
LogSave.Add(Name, "获取在线产品 " + shopName + ",分页:" + i);
|
|
////界面数据量太多会卡,处理界面卡的问题
|
|
//if (Shop.OnOrOffArrProduct.Count > 4000)
|
|
// Thread.Sleep(1500);
|
|
}
|
|
LogSave.Add(Name, "获取完成");
|
|
}
|
|
|
|
public void GetAllArrangeOnline()
|
|
{
|
|
Shop.OnOrOffArrProduct.Clear();
|
|
int mallId = Shop.MallId;
|
|
|
|
string cookies = Shop.Cookies, shopName = Shop.ShopName;
|
|
string url = "https://mms.pinduoduo.com/vodka/v2/mms/query/display/mall/goodsList";
|
|
string refere = "https://mms.pinduoduo.com/Pdd.html";
|
|
string data = "{\"order_by\":\"id:desc\",\"size\":100,\"page\":#page#,\"mall_id\":" + mallId + "";
|
|
if (minPrice > 0)
|
|
{
|
|
if (maxPrice == 0)
|
|
maxPrice = 1000000000;
|
|
data = "{\"order_by\":\"id:desc\",\"sku_price_range\":[" + minPrice * 100 + "," + maxPrice * 100 + "],\"sold_quantity\":[#sold#,1000000000],\"size\":100,\"page\":#page#,\"mall_id\":" + mallId + "";
|
|
}
|
|
if (!string.IsNullOrEmpty(arrangeGoodName))
|
|
{
|
|
data += ",\"goods_name\":\"" + arrangeGoodName + "\"";
|
|
}
|
|
data += "}";
|
|
if (UploadPinduoduoMain.JustSales)
|
|
data = data.Replace("#sold#", "1");
|
|
else
|
|
data = data.Replace("#sold#", "0");
|
|
|
|
string html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
}
|
|
int allCount = BaseRegex.GetIntJson(ref html, "total");
|
|
DelGroupStatus delstatus = new DelGroupStatus();
|
|
delstatus.shopName = Shop.ShopName;
|
|
delstatus.goodsCount = allCount;
|
|
arrangeStatusList.Add(delstatus);
|
|
|
|
int page = allCount / 100 + (allCount % 100 > 0 ? 1 : 0);
|
|
if (page > 1000)
|
|
{
|
|
page = 1000;
|
|
}
|
|
for (int i = 0; i < page; i++)
|
|
{
|
|
if (i != 0)
|
|
{
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
}
|
|
}
|
|
try
|
|
{
|
|
var obj = JsonConvert.DeserializeObject<GoodReturnResult>(html);
|
|
for (int j = 0; obj != null && j < obj.result.goods_list.Count; j++)
|
|
{
|
|
var goodInfo = obj.result.goods_list[j];
|
|
TaobaoProductBase p = new TaobaoProductBase();
|
|
p.GoodsId = goodInfo.id;
|
|
p.GoodsSn = long.Parse(goodInfo.goods_sn);
|
|
p.Titlte = goodInfo.goods_name;
|
|
p.CatId = goodInfo.cat_id;
|
|
p.CatId = PinduoduoCatList.GetNewCat3(p.CatId);
|
|
p.SaleCount = goodInfo.sold_quantity;
|
|
p.ShopName = Shop.ShopName;
|
|
string price = goodInfo.sku_group_price[0].ToString();
|
|
if (string.IsNullOrEmpty(price))
|
|
price = "1000";
|
|
p.Price = int.Parse(price) / 100m;
|
|
|
|
int favcnt = int.Parse(goodInfo.fav_cnt);
|
|
p.favcnt = favcnt;
|
|
if (PinduoduoCatList.CatIds.ContainsKey(p.CatId))
|
|
{
|
|
var c = PinduoduoCatList.CatIds[p.CatId];
|
|
p.Cat1 = c.cat1;
|
|
p.Cat2 = c.cat2;
|
|
p.Cat3 = c.cat3;
|
|
p.Cat4 = c.cat4;
|
|
p.MainCatId = c.main_cat_id;
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
p.OffLine = !isOnline;
|
|
//if (ReplaceModel )
|
|
//{
|
|
// if (p.SaleCount > 0 && UploadPinduoduoMain.NoSold)
|
|
// {
|
|
// LogSave.Add(Name, "跳过销量商品 " + p.GoodsId);
|
|
// continue;
|
|
// }
|
|
// UploadPinduoduoMain.ProductReplaceTemp.Add(p);
|
|
//}
|
|
if (JustCollection)
|
|
{
|
|
if (favcnt <= 0)
|
|
continue;
|
|
}
|
|
if (JustSales)
|
|
{
|
|
if (p.SaleCount <= 0)
|
|
continue;
|
|
}
|
|
//UploadPinduoduoMain.ProductArrangeTemp.Add(p);
|
|
if (!Shop.OnOrOffArrProduct.Exists(pt => pt != null && pt.GoodsId == p.GoodsId))
|
|
Shop.OnOrOffArrProduct.Add(p);
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
|
|
var m = BaseRegex.GetMatchRegex(ref html, @"\{([\w\W]+?)\}");
|
|
for (int j = 0; m != null && j < m.Count; j++)
|
|
{
|
|
string list = m[j].Groups[0].Value;
|
|
TaobaoProductBase p = new TaobaoProductBase();
|
|
p.GoodsId = BaseRegex.GetLongJson(ref list, "id");
|
|
p.GoodsSn = BaseRegex.GetLongJson(ref list, "goods_sn");
|
|
p.Titlte = BaseRegex.GetStringJson(ref list, "goods_name");
|
|
p.CatId = BaseRegex.GetIntJson(ref list, "cat_id");
|
|
p.CatId = PinduoduoCatList.GetNewCat3(p.CatId);
|
|
p.SaleCount = BaseRegex.GetIntJson(ref list, "sold_quantity");
|
|
p.ShopName = Shop.ShopName;
|
|
string price = BaseRegex.GetMatchRegexString(ref list, @"""sku_group_price"":\[([\d]+),");
|
|
if (string.IsNullOrEmpty(price))
|
|
price = "1000";
|
|
p.Price = int.Parse(price) / 100m;
|
|
int favcnt = BaseRegex.GetIntJson(ref list, "fav_cnt");
|
|
p.favcnt = favcnt;
|
|
if (PinduoduoCatList.CatIds.ContainsKey(p.CatId))
|
|
{
|
|
var c = PinduoduoCatList.CatIds[p.CatId];
|
|
p.Cat1 = c.cat1;
|
|
p.Cat2 = c.cat2;
|
|
p.Cat3 = c.cat3;
|
|
p.Cat4 = c.cat4;
|
|
p.MainCatId = c.main_cat_id;
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
var mc = BaseRegex.GetMatchRegex(ref list, @"""is_onsale"":([\w\W]+?),");
|
|
if (mc == null || mc.Count <= 0) continue;
|
|
p.OffLine = !bool.Parse(mc[0].Groups[1].Value);
|
|
//if (ReplaceModel)
|
|
//{
|
|
// if (p.SaleCount > 0)
|
|
// {
|
|
|
|
// LogSave.Add(Name, "跳过销量商品 " + p.GoodsId);
|
|
// continue;
|
|
// }
|
|
// UploadPinduoduoMain.ProductReplaceTemp.Add(p);
|
|
//}
|
|
if (JustCollection)
|
|
{
|
|
if (favcnt <= 0)
|
|
continue;
|
|
}
|
|
if (JustSales)
|
|
{
|
|
if (p.SaleCount <= 0)
|
|
continue;
|
|
}
|
|
//UploadPinduoduoMain.ProductArrangeTemp.Add(p);
|
|
if (!Shop.OnOrOffArrProduct.Exists(pt => pt != null && pt.GoodsId == p.GoodsId))
|
|
Shop.OnOrOffArrProduct.Add(p);
|
|
}
|
|
}
|
|
Thread.Sleep(300);
|
|
LogSave.Add(Name, "获取在线产品 " + shopName + ",分页:" + i);
|
|
////界面数据量太多会卡,处理界面卡的问题
|
|
//if (Shop.OnOrOffArrProduct.Count > 4000)
|
|
// Thread.Sleep(1500);
|
|
}
|
|
LogSave.Add(Name, "获取完成");
|
|
}
|
|
|
|
public void GetResurSalesOnline()
|
|
{
|
|
Shop.ResurVioSalesProduct.Clear();
|
|
int mallId = Shop.MallId;
|
|
string cookies = Shop.Cookies, shopName = Shop.ShopName;
|
|
string url = "https://mms.pinduoduo.com/vodka/v2/mms/query/display/mall/goodsList";
|
|
string refere = "https://mms.pinduoduo.com/Pdd.html";
|
|
string data = "{\"order_by\":\"id:desc\",\"is_onsale\":1,\"size\":100,\"page\":#page#,\"mall_id\":" + mallId + "}";
|
|
string html = CpsSetAllGoods.Request_mms_pinduoduo_com(url, refere, cookies, data.Replace("#page#", "1"), CpsSetAllGoods.getAnti0aon());
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = CpsSetAllGoods.Request_mms_pinduoduo_com(url, refere, cookies, data.Replace("#page#", "1"), CpsSetAllGoods.getAnti0aon());
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = CpsSetAllGoods.Request_mms_pinduoduo_com(url, refere, cookies, data.Replace("#page#", "1"), CpsSetAllGoods.getAnti0aon());
|
|
}
|
|
int allCount = BaseRegex.GetIntJson(ref html, "total");
|
|
|
|
int page = allCount / 100 + (allCount % 100 > 0 ? 1 : 0);
|
|
|
|
for (int i = 0; i < page; i++)
|
|
{
|
|
if (i > 5)
|
|
break;
|
|
if (i != 0)
|
|
{
|
|
html = CpsSetAllGoods.Request_mms_pinduoduo_com(url, refere, cookies, data.Replace("#page#", (i + 1).ToString()), CpsSetAllGoods.getAnti0aon());
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = CpsSetAllGoods.Request_mms_pinduoduo_com(url, refere, cookies, data.Replace("#page#", (i + 1).ToString()), CpsSetAllGoods.getAnti0aon());
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = CpsSetAllGoods.Request_mms_pinduoduo_com(url, refere, cookies, data.Replace("#page#", (i + 1).ToString()), CpsSetAllGoods.getAnti0aon());
|
|
}
|
|
}
|
|
try
|
|
{
|
|
var obj = JsonConvert.DeserializeObject<GoodReturnResult>(html);
|
|
for (int j = 0; obj != null && j < obj.result.goods_list.Count; j++)
|
|
{
|
|
var goodInfo = obj.result.goods_list[j];
|
|
TaobaoProductBase p = new TaobaoProductBase();
|
|
p.GoodsId = goodInfo.id;
|
|
p.GoodsSn = long.Parse(goodInfo.goods_sn);
|
|
p.Titlte = goodInfo.goods_name;
|
|
p.CatId = goodInfo.cat_id;
|
|
p.CatId = PinduoduoCatList.GetNewCat3(p.CatId);
|
|
p.SaleCount = goodInfo.sold_quantity;
|
|
p.ShopName = Shop.ShopName;
|
|
string price = goodInfo.sku_group_price[0].ToString();
|
|
if (string.IsNullOrEmpty(price))
|
|
price = "1000";
|
|
p.Price = int.Parse(price) / 100m;
|
|
|
|
int favcnt = int.Parse(goodInfo.fav_cnt);
|
|
p.favcnt = favcnt;
|
|
if (PinduoduoCatList.CatIds.ContainsKey(p.CatId))
|
|
{
|
|
var c = PinduoduoCatList.CatIds[p.CatId];
|
|
p.Cat1 = c.cat1;
|
|
p.Cat2 = c.cat2;
|
|
p.Cat3 = c.cat3;
|
|
p.Cat4 = c.cat4;
|
|
p.MainCatId = c.main_cat_id;
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
p.OffLine = !isOnline;
|
|
if (p.SaleCount > 0)
|
|
continue;
|
|
if (!Shop.ResurVioSalesProduct.Exists(pt => pt != null && pt.GoodsId == p.GoodsId))
|
|
Shop.ResurVioSalesProduct.Add(p);
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
var m = BaseRegex.GetMatchRegex(ref html, @"\{([\w\W]+?)\}");
|
|
for (int j = 0; m != null && j < m.Count; j++)
|
|
{
|
|
string list = m[j].Groups[0].Value;
|
|
TaobaoProductBase p = new TaobaoProductBase();
|
|
p.GoodsId = BaseRegex.GetLongJson(ref list, "id");
|
|
p.GoodsSn = BaseRegex.GetLongJson(ref list, "goods_sn");
|
|
p.Titlte = BaseRegex.GetStringJson(ref list, "goods_name");
|
|
p.CatId = BaseRegex.GetIntJson(ref list, "cat_id");
|
|
p.CatId = PinduoduoCatList.GetNewCat3(p.CatId);
|
|
p.SaleCount = BaseRegex.GetIntJson(ref list, "sold_quantity");
|
|
p.ShopName = Shop.ShopName;
|
|
string price = BaseRegex.GetMatchRegexString(ref list, @"""sku_group_price"":\[([\d]+),");
|
|
if (string.IsNullOrEmpty(price))
|
|
price = "1000";
|
|
p.Price = int.Parse(price) / 100m;
|
|
int favcnt = BaseRegex.GetIntJson(ref list, "fav_cnt");
|
|
p.favcnt = favcnt;
|
|
if (PinduoduoCatList.CatIds.ContainsKey(p.CatId))
|
|
{
|
|
var c = PinduoduoCatList.CatIds[p.CatId];
|
|
p.Cat1 = c.cat1;
|
|
p.Cat2 = c.cat2;
|
|
p.Cat3 = c.cat3;
|
|
p.Cat4 = c.cat4;
|
|
p.MainCatId = c.main_cat_id;
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
var mc = BaseRegex.GetMatchRegex(ref list, @"""is_onsale"":([\w\W]+?),");
|
|
if (mc == null || mc.Count <= 0) continue;
|
|
p.OffLine = !bool.Parse(mc[0].Groups[1].Value);
|
|
if (p.SaleCount > 0)
|
|
continue;
|
|
if (!Shop.ResurVioSalesProduct.Exists(pt => pt != null && pt.GoodsId == p.GoodsId))
|
|
Shop.ResurVioSalesProduct.Add(p);
|
|
}
|
|
}
|
|
Thread.Sleep(300);
|
|
LogSave.Add(Name, "获取在线产品 " + shopName + ",分页:" + i);
|
|
}
|
|
LogSave.Add(Name, "获取完成");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取在线商品禁售
|
|
/// </summary>
|
|
public void GetResurOnline()
|
|
{
|
|
GetResurSalesOnline();
|
|
Shop.ResurVioProduct.Clear();
|
|
int mallId = Shop.MallId;
|
|
string cookies = Shop.Cookies, shopName = Shop.ShopName;
|
|
string url = "https://mms.pinduoduo.com/genji/bloodroot/goodsBlacklist/query/list";
|
|
string refere = "https://mms.pinduoduo.com/pg/violation_list";
|
|
int minStartTime = BaseClass.GetTime(DateTime.Now.AddDays(-90));
|
|
int maxStartTime = BaseClass.GetTime(DateTime.Now);
|
|
string data = "{\"pageNum\":#pageNum#,\"pageSize\":10,\"minStartTime\":" + minStartTime + ",\"maxStartTime\":" + maxStartTime + "}";
|
|
//string data = "{\"order_by\":\"id:desc\",\"is_onsale\":" + (isOnline ? 1 : 0) + ",\"size\":100,\"page\":#page#,\"mall_id\":" + mallId + "}";
|
|
string html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#pageNum#", "1"), cookies);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("recordsTotal"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#pageNum#", "1"), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("recordsTotal"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#pageNum#", "1"), cookies);
|
|
}
|
|
int allCount = BaseRegex.GetIntJson(ref html, "recordsTotal");
|
|
|
|
int page = allCount / 10 + (allCount % 10 > 0 ? 1 : 0);
|
|
if (page > 1000)
|
|
{
|
|
page = 1000;
|
|
}
|
|
for (int i = 0; i < page; i++)
|
|
{
|
|
if (i != 0)
|
|
{
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#pageNum#", (i + 1).ToString()), cookies);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("recordsTotal"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#pageNum#", (i + 1).ToString()), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("recordsTotal"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#pageNum#", (i + 1).ToString()), cookies);
|
|
}
|
|
}
|
|
var m = BaseRegex.GetMatchRegex(ref html, @"\{([\w\W]+?)\}");
|
|
for (int j = 0; m != null && j < m.Count; j++)
|
|
{
|
|
string list = m[j].Groups[0].Value;
|
|
TaobaoProductBase p = new TaobaoProductBase();
|
|
p.GoodsId = BaseRegex.GetLongJson(ref list, "goodsId");
|
|
long longid = BaseRegex.GetLongJson(ref list, "goodsIdLong");
|
|
if (longid > 0)
|
|
p.GoodsId = longid;
|
|
p.GoodsSn = BaseRegex.GetLongJson(ref list, "goodsSn");
|
|
p.Titlte = BaseRegex.GetStringJson(ref list, "goodsName");
|
|
p.MailId = BaseRegex.GetLongJson(ref list, "mallId");
|
|
p.ShopName = Shop.ShopName;
|
|
if (p.GoodsId == 0)
|
|
continue;
|
|
string reason = BaseRegex.GetStringJson(ref list, "reason");
|
|
if (reason != "重复铺货")
|
|
continue;
|
|
|
|
|
|
UploadPinduoduoMain.ProductResurVioTemp.Add(p);
|
|
if (!Shop.ResurVioProduct.Exists(pt => pt != null && pt.GoodsId == p.GoodsId))
|
|
Shop.ResurVioProduct.Add(p);
|
|
}
|
|
Thread.Sleep(300);
|
|
LogSave.Add(Name, "获取禁售产品 " + shopName + ",分页:" + i);
|
|
//界面数据量太多会卡,处理界面卡的问题
|
|
if (Shop.ResurVioProduct.Count > 4000)
|
|
Thread.Sleep(1500);
|
|
}
|
|
LogSave.Add(Name, "获取完成");
|
|
}
|
|
public void UploadMethod()
|
|
{
|
|
int count = 0;
|
|
if (string.IsNullOrEmpty(PinduoduoAuth.strContent))
|
|
{
|
|
PinduoduoAuth.strContent = GetVisitProductNew.strJs;//FileBase.ReadAllText(path);
|
|
}
|
|
string NoCode = "";
|
|
string strTime = BaseClass.GetTime(DateTime.Now).ToString() + "000";
|
|
if (string.IsNullOrEmpty(NoCode))
|
|
{
|
|
string htmlx = GetHtml.Gbk("http://nano.qixiaoke.com/nano.txt");
|
|
NoCode = BaseRegex.GetMatchRegexString(ref htmlx, @"([\w\W]+?)-----");
|
|
}
|
|
string fun2 = string.Format(@"getEncode('{0}','{1}','{2}')", strTime, NoCode, "");
|
|
string codex = UploadPinduoduoSet.ExecuteScript(fun2, PinduoduoAuth.strContent);
|
|
for (int j = 0; j < Shop.OnlineProduct.Count; j++)
|
|
{
|
|
if (Shop.OnlineProduct[j].OffLine == isOnline)
|
|
continue;
|
|
if (OffOroduct)
|
|
{
|
|
if (count >= OffProductCount)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
var api = new PinduoduoApiGetProduct(Shop);
|
|
//string html = "";
|
|
//if (isOnline)
|
|
//{
|
|
// html = api.SetOnline(Shop.OnlineProduct[j].GoodsId, false);
|
|
//}
|
|
//else
|
|
//{
|
|
// html = api.SetOnline(Shop.OnlineProduct[j].GoodsId, true);
|
|
//}
|
|
string urlx = "https://mms.pinduoduo.com/vodka/v2/mms/pc/onSale";
|
|
if (isOnline)
|
|
urlx = "https://mms.pinduoduo.com/vodka/v2/mms/pc/offSale";
|
|
string refere = "https://mms.pinduoduo.com/";
|
|
string data = "{\"goodsId\":" + Shop.OnlineProduct[j].GoodsId + ",\"crawlerInfo\":\"" + codex + "\"}";
|
|
string html = GetPostTaobaoHtml.UploadTaobaoPost(urlx, refere, true, data, Shop.Cookies);
|
|
if (html.Contains("\"success\":false"))
|
|
{
|
|
if (isOnline)
|
|
{
|
|
html = api.SetOnline(Shop.OnlineProduct[j].GoodsId, false);
|
|
}
|
|
else
|
|
{
|
|
html = api.SetOnline(Shop.OnlineProduct[j].GoodsId, true);
|
|
}
|
|
}
|
|
Shop.OnlineProduct[j].Message = !isOnline ? "上架成功" : "下架成功";
|
|
UploadPinduoduoMain.ProductReplaceTemp.Add(Shop.OnlineProduct[j]);
|
|
Thread.Sleep(5 * 1000);
|
|
count++;
|
|
}
|
|
}
|
|
|
|
public void UploadArrangeMethod()
|
|
{
|
|
if (string.IsNullOrEmpty(PinduoduoAuth.strContent))
|
|
{
|
|
PinduoduoAuth.strContent = GetVisitProductNew.strJs;//FileBase.ReadAllText(path);
|
|
}
|
|
string NoCode = "";
|
|
string strTime = BaseClass.GetTime(DateTime.Now).ToString() + "000";
|
|
if (string.IsNullOrEmpty(NoCode))
|
|
{
|
|
string htmlx = GetHtml.Gbk("http://nano.qixiaoke.com/nano.txt");
|
|
NoCode = BaseRegex.GetMatchRegexString(ref htmlx, @"([\w\W]+?)-----");
|
|
}
|
|
string fun2 = string.Format(@"getEncode('{0}','{1}','{2}')", strTime, NoCode, "");
|
|
string codex = UploadPinduoduoSet.ExecuteScript(fun2, PinduoduoAuth.strContent);
|
|
var api = new PinduoduoApiGetProduct(Shop);
|
|
string urlx = "https://mms.pinduoduo.com/vodka/v2/mms/pc/onSale";
|
|
if (isOnline)
|
|
urlx = "https://mms.pinduoduo.com/vodka/v2/mms/pc/offSale";
|
|
string refere = "https://mms.pinduoduo.com/";
|
|
string data = "{\"goodsId\":" + arrangePid + ",\"crawlerInfo\":\"" + codex + "\"}";
|
|
string html = GetPostTaobaoHtml.UploadTaobaoPost(urlx, refere, true, data, Shop.Cookies);
|
|
TaobaoProductBase p = new TaobaoProductBase();
|
|
p.GoodsId = arrangePid;
|
|
p.Message = !isOnline ? "上架成功" : "下架成功";
|
|
UploadPinduoduoMain.ProductArrangeTemp.Add(p);
|
|
Thread.Sleep(5 * 1000);
|
|
}
|
|
|
|
public void UploadAutoOnMethod()
|
|
{
|
|
UploadAutoOn();
|
|
var p = new GetProductOnlineClass(Name, Shop);
|
|
p.ReplaceModel = true;
|
|
p.isOnline = false;
|
|
p.GetAllOnlineIds();
|
|
UploadAutoOn();
|
|
OnOrOffStatus onOrOffStatus = new OnOrOffStatus();
|
|
onOrOffStatus.shopName = Shop.ShopName;
|
|
onOrOffStatus.onStatus = "上架执行完成";
|
|
UploadPinduoduoMain.onOrOffStatusList.Add(onOrOffStatus);
|
|
}
|
|
public void UploadAutoOn()
|
|
{
|
|
int count = 0;
|
|
string message = "";
|
|
if (string.IsNullOrEmpty(PinduoduoAuth.strContent))
|
|
{
|
|
PinduoduoAuth.strContent = GetVisitProductNew.strJs;//FileBase.ReadAllText(path);
|
|
}
|
|
string NoCode = "";
|
|
string strTime = BaseClass.GetTime(DateTime.Now).ToString() + "000";
|
|
if (string.IsNullOrEmpty(NoCode))
|
|
{
|
|
string htmlx = GetHtml.Gbk("http://nano.qixiaoke.com/nano.txt");
|
|
NoCode = BaseRegex.GetMatchRegexString(ref htmlx, @"([\w\W]+?)-----");
|
|
}
|
|
string fun2 = string.Format(@"getEncode('{0}','{1}','{2}')", strTime, NoCode, "");
|
|
string codex = UploadPinduoduoSet.ExecuteScript(fun2, PinduoduoAuth.strContent);
|
|
|
|
Shop.AutoShop.goodsOnCount = Shop.OffIds.Count;
|
|
AutoShopTemp.Add(Shop);
|
|
string error_msg = "";
|
|
|
|
for (int j = 0; j < Shop.OffIds.Count; j++)
|
|
{
|
|
var api = new PinduoduoApiGetProduct(Shop);
|
|
string html = api.SetOnline(Shop.OffIds[j], true);
|
|
|
|
if (!string.IsNullOrEmpty(html) && html.Contains("\"error_msg\""))
|
|
{
|
|
error_msg = BaseRegex.GetStringJson(ref html, "error_msg");
|
|
Shop.ClearNoVisitShop.goodOnStatus = error_msg;
|
|
ShopTemp.Add(Shop);
|
|
break;
|
|
}
|
|
Thread.Sleep(3 * 1000);
|
|
count++;
|
|
Shop.AutoShop.onCount = count;
|
|
Shop.AutoShop.goodOnStatus = "上架第" + count + "个";
|
|
AutoShopTemp.Add(Shop);
|
|
}
|
|
for (int j = 0; j < offlines.Count; j++)
|
|
{
|
|
var api = new PinduoduoApiGetProduct(Shop);
|
|
string html = api.SetOnline(offlines[j], true);
|
|
if (!string.IsNullOrEmpty(html) && html.Contains("\"error_msg\""))
|
|
{
|
|
error_msg = BaseRegex.GetStringJson(ref html, "error_msg");
|
|
Shop.ClearNoVisitShop.goodOnStatus = error_msg;
|
|
ShopTemp.Add(Shop);
|
|
break;
|
|
}
|
|
Thread.Sleep(3 * 1000);
|
|
count++;
|
|
Shop.AutoShop.onCount = count;
|
|
Shop.AutoShop.goodOnStatus = "上架第" + count + "个";
|
|
AutoShopTemp.Add(Shop);
|
|
|
|
}
|
|
if (!string.IsNullOrEmpty(error_msg))
|
|
return;
|
|
Shop.AutoShop.goodOnStatus = "上架第" + count + "个(完成)";
|
|
AutoShopTemp.Add(Shop);
|
|
}
|
|
public List<long> offlines = new List<long>();
|
|
public void UploadAutoOffMethod()
|
|
{
|
|
int count = 0;
|
|
string message = "";
|
|
offlines.Clear();
|
|
if (string.IsNullOrEmpty(PinduoduoAuth.strContent))
|
|
{
|
|
PinduoduoAuth.strContent = GetVisitProductNew.strJs;//FileBase.ReadAllText(path);
|
|
}
|
|
string NoCode = "";
|
|
string strTime = BaseClass.GetTime(DateTime.Now).ToString() + "000";
|
|
if (string.IsNullOrEmpty(NoCode))
|
|
{
|
|
string htmlx = GetHtml.Gbk("http://nano.qixiaoke.com/nano.txt");
|
|
NoCode = BaseRegex.GetMatchRegexString(ref htmlx, @"([\w\W]+?)-----");
|
|
}
|
|
string fun2 = string.Format(@"getEncode('{0}','{1}','{2}')", strTime, NoCode, "");
|
|
string codex = UploadPinduoduoSet.ExecuteScript(fun2, PinduoduoAuth.strContent);
|
|
Shop.AutoShop.goodsOffCount = Shop.OnIds.Count;
|
|
AutoShopTemp.Add(Shop);
|
|
for (int j = 0; j < Shop.OnIds.Count; j++)
|
|
{
|
|
if (UploadPinduoduoMain.onStartFlag)
|
|
{
|
|
offlines.Add(Shop.OnIds[j]);
|
|
}
|
|
var api = new PinduoduoApiGetProduct(Shop);
|
|
string html = api.SetOnline(Shop.OnIds[j], false);
|
|
Thread.Sleep(3 * 1000);
|
|
count++;
|
|
Shop.AutoShop.offCount = count;
|
|
Shop.AutoShop.goodOffStatus = "下架第" + count + "个";
|
|
AutoShopTemp.Add(Shop);
|
|
|
|
}
|
|
Shop.AutoShop.goodOffStatus = "下架第" + count + "个(完成)";
|
|
AutoShopTemp.Add(Shop);
|
|
}
|
|
|
|
|
|
public static Dictionary<long, string> loopOffLines = new Dictionary<long, string>();
|
|
public int loopoffCount = 0;
|
|
public void UploadLoopOffMethod()
|
|
{
|
|
string url = "https://mms.pinduoduo.com/earth/api/mallPunishment";
|
|
string refere = "https://mms.pinduoduo.com/Pdd.html";
|
|
string data = "{\"size\":\"5\" }";
|
|
//第一页匹配结果
|
|
string htmlxt = CpsSetAllGoods.Request_mms_pinduoduo_com(url, refere, Shop.Cookies, data, CpsSetAllGoods.getAnti0aon());
|
|
|
|
//惩罚店铺
|
|
int level = BaseRegex.GetIntJson(ref htmlxt, "punishmentLevel");
|
|
string punishment = string.Empty;
|
|
if (level == 1)
|
|
{
|
|
punishment = "一级惩罚";
|
|
}
|
|
else if (level == 2)
|
|
{
|
|
punishment = "二级惩罚";
|
|
}
|
|
else if (level == 3)
|
|
{
|
|
punishment = "三级惩罚";
|
|
}
|
|
else
|
|
{
|
|
punishment = "无";
|
|
}
|
|
if (level > 0)
|
|
{
|
|
Shop.AutoShop.goodOffStatus = "店铺处于" + punishment + "中,跳过上下架";
|
|
AutoShopTemp.Add(Shop);
|
|
return;
|
|
}
|
|
|
|
while (true)
|
|
{
|
|
var p = new GetProductOnlineClass(Name, Shop);
|
|
p.ReplaceModel = true;
|
|
p.isOnline = true;
|
|
p.GetAllLoopOnlineIds();
|
|
string message = "";
|
|
if (string.IsNullOrEmpty(PinduoduoAuth.strContent))
|
|
{
|
|
PinduoduoAuth.strContent = GetVisitProductNew.strJs;//FileBase.ReadAllText(path);
|
|
}
|
|
string NoCode = "";
|
|
string strTime = BaseClass.GetTime(DateTime.Now).ToString() + "000";
|
|
if (string.IsNullOrEmpty(NoCode))
|
|
{
|
|
string htmlx = GetHtml.Gbk("http://nano.qixiaoke.com/nano.txt");
|
|
NoCode = BaseRegex.GetMatchRegexString(ref htmlx, @"([\w\W]+?)-----");
|
|
}
|
|
string fun2 = string.Format(@"getEncode('{0}','{1}','{2}')", strTime, NoCode, "");
|
|
string codex = UploadPinduoduoSet.ExecuteScript(fun2, PinduoduoAuth.strContent);
|
|
Shop.AutoShop.goodsOffCount = Shop.OnIds.Count;
|
|
AutoShopTemp.Add(Shop);
|
|
for (int j = 0; j < Shop.OnIds.Count; j++)
|
|
{
|
|
var api = new PinduoduoApiGetProduct(Shop);
|
|
string html = api.SetOnline(Shop.OnIds[j], false);
|
|
Thread.Sleep(3 * 1000);
|
|
if (Shop.OnIds[j] == 0)
|
|
continue;
|
|
loopOffLines.Add(Shop.OnIds[j], Shop.ShopName);
|
|
Thread.Sleep(1000);
|
|
loopoffCount++;
|
|
Shop.AutoShop.offCount = loopoffCount;
|
|
Shop.AutoShop.goodsOnCount = loopOffLines.Count;
|
|
Shop.AutoShop.goodOffStatus = "循环下架第" + loopoffCount + "个";
|
|
AutoShopTemp.Add(Shop);
|
|
}
|
|
Shop.AutoShop.goodOffStatus = "循环下架执行完成,半小时候继续执行";
|
|
AutoShopTemp.Add(Shop);
|
|
//OnOrOffStatus onOrOffStatus = new OnOrOffStatus();
|
|
//onOrOffStatus.shopName = Shop.ShopName;
|
|
//onOrOffStatus.offStatus = "循环下架执行完成,半小时候继续执行";
|
|
//UploadPinduoduoMain.onOrOffStatusList.Add(onOrOffStatus);
|
|
Thread.Sleep(30 * 60 * 1000);
|
|
}
|
|
}
|
|
public static int looponCount = 0;
|
|
public static void UploadLoopOnMethod()
|
|
{
|
|
while (true)
|
|
{
|
|
if (loopOffLines.Keys.Count == 0)
|
|
{
|
|
Thread.Sleep(10);
|
|
continue;
|
|
}
|
|
string message = "";
|
|
if (string.IsNullOrEmpty(PinduoduoAuth.strContent))
|
|
{
|
|
PinduoduoAuth.strContent = GetVisitProductNew.strJs;//FileBase.ReadAllText(path);
|
|
}
|
|
|
|
try
|
|
{
|
|
KeyValuePair<long, string> kvp = loopOffLines.FirstOrDefault();
|
|
long goodsId = kvp.Key;
|
|
string shopName = kvp.Value;
|
|
loopOffLines.Remove(goodsId);
|
|
looponCount++;
|
|
//if (UploadPinduoduoMain.onOrLoopOffStatusList.Find(s => s.shopName == shopName) == null)
|
|
//{
|
|
// OnOrOffStatus onOrOffStatus = new OnOrOffStatus();
|
|
// onOrOffStatus.shopName = shopName;
|
|
// onOrOffStatus.onStatus = "循环上架开始执行";//上架参数
|
|
// UploadPinduoduoMain.onOrOffStatusList.Add(onOrOffStatus);
|
|
// UploadPinduoduoMain.onOrLoopOffStatusList.Add(onOrOffStatus);
|
|
//}
|
|
var shop = GetShopLoginInfo.Shops.Find(s => s.ShopName == shopName);
|
|
if (shop == null)
|
|
continue;
|
|
string error_msg = "";
|
|
var api = new PinduoduoApiGetProduct(shop);
|
|
string html = api.SetOnline(goodsId, true);
|
|
if (!string.IsNullOrEmpty(html) && html.Contains("\"error_msg\""))
|
|
{
|
|
error_msg = BaseRegex.GetStringJson(ref html, "error_msg");
|
|
shop.ClearNoVisitShop.goodOnStatus = error_msg;
|
|
ShopTemp.Add(shop);
|
|
break;
|
|
}
|
|
Thread.Sleep(3 * 1000);
|
|
|
|
if (html.Contains("\"error_msg\":\"调用过于频繁,请调整调用频率\""))
|
|
{
|
|
message = "上架失败";
|
|
}
|
|
UploadPinduoduoMain.ProductOnOrOffTempDic.Add(new OnOrOffProuduct { id = goodsId, shopName = shopName, message = message, name = shop.Name });
|
|
LogSave.Add("循环上下架", "在线产品 " + goodsId + message);
|
|
|
|
shop.AutoShop.onCount = looponCount;
|
|
shop.AutoShop.goodOnStatus = "循环上架第" + looponCount + "个";
|
|
AutoShopTemp.Add(shop);
|
|
}
|
|
catch
|
|
{
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
public void GetChacheData()
|
|
{
|
|
string[] fl = FileBase.ReadAllLines("temp/upsame/" + Shop.Name + "edit.tjm");
|
|
if (fl != null)
|
|
{
|
|
foreach (string s in fl)
|
|
{
|
|
if (string.IsNullOrEmpty(s) || !s.Contains(","))
|
|
continue;
|
|
string[] li = s.Split(',');
|
|
long id;
|
|
if (li.Length != 2 || !long.TryParse(li[0], out id))
|
|
continue;
|
|
DateTime dt = DateTime.Parse(li[1]);
|
|
if (chacheDic.ContainsKey(id))
|
|
chacheDic[id] = dt;
|
|
else
|
|
chacheDic.Add(id, dt);
|
|
}
|
|
}
|
|
}
|
|
|
|
public void GetOffSalesNoPV()
|
|
{
|
|
if (chacheDic.Count == 0)
|
|
{
|
|
GetChacheData();
|
|
}
|
|
if (string.IsNullOrEmpty(PinduoduoAuth.strContent))
|
|
{
|
|
PinduoduoAuth.strContent = GetVisitProductNew.strJs;//FileBase.ReadAllText(path);
|
|
}
|
|
string NoCode = "";
|
|
string strTime = BaseClass.GetTime(DateTime.Now).ToString() + "000";
|
|
if (string.IsNullOrEmpty(NoCode))
|
|
{
|
|
string htmlx = GetHtml.Gbk("http://nano.qixiaoke.com/nano.txt");
|
|
NoCode = BaseRegex.GetMatchRegexString(ref htmlx, @"([\w\W]+?)-----");
|
|
}
|
|
string fun2 = string.Format(@"getEncode('{0}','{1}','{2}')", strTime, NoCode, "");
|
|
string codex = UploadPinduoduoSet.ExecuteScript(fun2, PinduoduoAuth.strContent);
|
|
|
|
int pvCount = 0;
|
|
List<long> ids = new List<long>();
|
|
for (int j = 0; j < Shop.OnlineProduct.Count; j++)
|
|
{
|
|
if (Shop.OnlineProduct[j].OffLine == isOnline)
|
|
continue;
|
|
if (NoSold && Shop.OnlineProduct[j].SaleCount > 0)
|
|
continue;
|
|
if (NoVisit && Shop.OnlineProduct[j].Pv > VisitCount)
|
|
continue;
|
|
if (NoNeerReplace)
|
|
{
|
|
if (chacheDic.ContainsKey(Shop.OnlineProduct[j].GoodsId) && DateTime.Now.AddDays(-NoNeerDays) > chacheDic[Shop.OnlineProduct[j].GoodsId])
|
|
{
|
|
continue;
|
|
}
|
|
}
|
|
if (OffOroduct)
|
|
{
|
|
if (pvCount >= OffProductCount)
|
|
{
|
|
pvCount = 0;
|
|
break;
|
|
}
|
|
}
|
|
ids.Add(Shop.OnlineProduct[j].GoodsId);
|
|
Shop.OnlineProduct[j].Message = Shop.OnlineProduct[j].OffLine ? "上架成功" : "下架成功";
|
|
UploadPinduoduoMain.ProductReplaceTemp.Add(Shop.OnlineProduct[j]);
|
|
string urlx = "https://mms.pinduoduo.com/vodka/v2/mms/pc/offSale";
|
|
string refere = "https://mms.pinduoduo.com/";
|
|
string data = "{\"goodsId\":" + Shop.OnlineProduct[j].GoodsId + ",\"crawlerInfo\":\"" + codex + "\"}";
|
|
string html = GetPostTaobaoHtml.UploadTaobaoPost(urlx, refere, true, data, Shop.Cookies);
|
|
//var api = new PinduoduoApiGetProduct(Shop);
|
|
//string html = api.SetOnline(Shop.OnlineProduct[j].GoodsId, false);
|
|
Thread.Sleep(5 * 1000);
|
|
pvCount++;
|
|
}
|
|
|
|
pvCount = 0;
|
|
}
|
|
|
|
|
|
public void GetDelProduct()
|
|
{
|
|
List<long> ids = new List<long>();
|
|
for (int j = 0; j < Shop.OnlineProduct.Count; j++)
|
|
{
|
|
if (Shop.OnlineProduct[j].OffLine != isOnline)
|
|
continue;
|
|
ids.Add(Shop.OnlineProduct[j].GoodsId);
|
|
Shop.OnlineProduct[j].Message = "删除成功";
|
|
UploadPinduoduoMain.ProductReplaceTemp.Add(Shop.OnlineProduct[j]);
|
|
if (ids.Count >= 15)
|
|
{
|
|
string html = DelIds(ids);
|
|
|
|
if (html.Contains("删除量上限"))
|
|
{
|
|
LogSave.Add(Name, "今日删除商品已达上限:" + Shop.ShopName);
|
|
for (int i = 0; i < ids.Count; i++)
|
|
{
|
|
var p = Shop.OnlineProduct.Find(sp => sp.GoodsId == ids[i]);
|
|
p.Message = " ";
|
|
UploadPinduoduoMain.ProductReplaceTemp.Add(p);
|
|
}
|
|
return;
|
|
}
|
|
ids.Clear();
|
|
LogSave.Add(Name, "删除成功:" + Shop.OnlineProduct[j].GoodsId);
|
|
Thread.Sleep(2000);
|
|
}
|
|
|
|
}
|
|
if (ids.Count > 0)
|
|
{
|
|
string html = DelIds(ids);
|
|
if (html.Contains("删除量上限"))
|
|
{
|
|
LogSave.Add(Name, "今日删除商品已达上限:" + Shop.ShopName);
|
|
for (int i = 0; i < ids.Count; i++)
|
|
{
|
|
var p = Shop.OnlineProduct.Find(sp => sp.GoodsId == ids[i]);
|
|
p.Message = " ";
|
|
UploadPinduoduoMain.ProductReplaceTemp.Add(p);
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
LogSave.Add(Name, "删除完成");
|
|
}
|
|
public string DelIds(List<long> ids)
|
|
{
|
|
if (ids.Count == 0)
|
|
return "";
|
|
StringBuilder pids = new StringBuilder();
|
|
for (int i = 0; i < ids.Count; i++)
|
|
{
|
|
pids.Append("," + ids[i]);
|
|
}
|
|
var d = new DownUpProductExploder("", false, pids.ToString(1, pids.Length - 1));
|
|
d.Cookies = Shop.Cookies;
|
|
d.Name = Name;
|
|
d.Shop = Shop;
|
|
if (isOnline)
|
|
{
|
|
string html = d.Delete();
|
|
return html;
|
|
}
|
|
return "";
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 获取在线
|
|
/// </summary>
|
|
public void GetAllOnline()
|
|
{
|
|
Shop.OnOrOffProduct.Clear();
|
|
int mallId = Shop.MallId;
|
|
string cookies = Shop.Cookies, shopName = Shop.ShopName;
|
|
string url = "https://mms.pinduoduo.com/vodka/v2/mms/query/display/mall/goodsList";
|
|
string refere = "https://mms.pinduoduo.com/Pdd.html";
|
|
string data = "{\"order_by\":\"id:asc\",\"size\":100,\"page\":#page#,\"mall_id\":" + mallId + "}";
|
|
string html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
}
|
|
int allCount = BaseRegex.GetIntJson(ref html, "total");
|
|
|
|
int page = allCount / 100 + (allCount % 100 > 0 ? 1 : 0);
|
|
if (page > 1000)
|
|
{
|
|
page = 1000;
|
|
}
|
|
for (int i = 0; i < page; i++)
|
|
{
|
|
if (i != 0)
|
|
{
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
}
|
|
}
|
|
var m = BaseRegex.GetMatchRegex(ref html, @"\{([\w\W]+?)\}");
|
|
for (int j = 0; m != null && j < m.Count; j++)
|
|
{
|
|
string list = m[j].Groups[0].Value;
|
|
TaobaoProductBase p = new TaobaoProductBase();
|
|
p.GoodsId = BaseRegex.GetLongJson(ref list, "id");
|
|
p.GoodsSn = BaseRegex.GetLongJson(ref list, "goods_sn");
|
|
p.Titlte = BaseRegex.GetStringJson(ref list, "goods_name");
|
|
p.CatId = BaseRegex.GetIntJson(ref list, "cat_id");
|
|
p.CatId = PinduoduoCatList.GetNewCat3(p.CatId);
|
|
p.SaleCount = BaseRegex.GetIntJson(ref list, "sold_quantity");
|
|
p.ShopName = Shop.ShopName;
|
|
string price = BaseRegex.GetMatchRegexString(ref list, @"""sku_group_price"":\[([\d]+),");
|
|
if (string.IsNullOrEmpty(price))
|
|
price = "1000";
|
|
p.Price = int.Parse(price) / 100m;
|
|
if (PinduoduoCatList.CatIds.ContainsKey(p.CatId))
|
|
{
|
|
var c = PinduoduoCatList.CatIds[p.CatId];
|
|
p.Cat1 = c.cat1;
|
|
p.Cat2 = c.cat2;
|
|
p.Cat3 = c.cat3;
|
|
p.Cat4 = c.cat4;
|
|
p.MainCatId = c.main_cat_id;
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
var mc = BaseRegex.GetMatchRegex(ref list, @"""is_onsale"":([\w\W]+?),");
|
|
if (mc == null || mc.Count <= 0) continue;
|
|
p.OffLine = !bool.Parse(mc[0].Groups[1].Value);
|
|
if (ReplaceModel)
|
|
{
|
|
if (p.SaleCount > 0)
|
|
{
|
|
LogSave.Add(Name, "跳过销量商品 " + p.GoodsId);
|
|
continue;
|
|
}
|
|
}
|
|
if (!Shop.OnOrOffProduct.Exists(pt => pt != null && pt.GoodsId == p.GoodsId))
|
|
Shop.OnOrOffProduct.Add(p);
|
|
}
|
|
Thread.Sleep(300);
|
|
LogSave.Add(Name, "获取在线产品 " + shopName + ",分页:" + i);
|
|
}
|
|
LogSave.Add(Name, "获取完成");
|
|
if (UploadPinduoduoMain.NoVisit)
|
|
{
|
|
LogSave.Add(Name, "获取在线无流量产品 " + shopName);
|
|
UploadPinduoduoMain up = new UploadPinduoduoMain(Name);
|
|
up.Shop = Shop;
|
|
up.GetGroupVisit();
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 获取在线
|
|
/// </summary>
|
|
public void GetAllOnlineIds()
|
|
{
|
|
if (!isOnline)//true 商品处于上架状态,商品处于下架状态false
|
|
{
|
|
Shop.OffIds.Clear();
|
|
}
|
|
else
|
|
{
|
|
Shop.OnIds.Clear();
|
|
}
|
|
int mallId = Shop.MallId;
|
|
string cookies = Shop.Cookies, shopName = Shop.ShopName;
|
|
string url = "https://mms.pinduoduo.com/vodka/v2/mms/query/display/mall/goodsList";
|
|
string refere = "https://mms.pinduoduo.com/Pdd.html";
|
|
string data = "{\"order_by\":\"id:asc\",\"size\":100,\"page\":#page#,\"mall_id\":" + mallId + "}";
|
|
string html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
}
|
|
int allCount = BaseRegex.GetIntJson(ref html, "total");
|
|
int page = allCount / 100 + (allCount % 100 > 0 ? 1 : 0);
|
|
if (page > 1000)
|
|
{
|
|
page = 1000;
|
|
}
|
|
for (int i = 0; i < page; i++)
|
|
{
|
|
if (i != 0)
|
|
{
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
}
|
|
}
|
|
var m = BaseRegex.GetMatchRegex(ref html, @"\{([\w\W]+?)\}");
|
|
for (int j = 0; m != null && j < m.Count; j++)
|
|
{
|
|
string list = m[j].Groups[0].Value;
|
|
|
|
long GoodsId = BaseRegex.GetLongJson(ref list, "id");
|
|
|
|
int SaleCount = BaseRegex.GetIntJson(ref list, "sold_quantity");
|
|
|
|
var mc = BaseRegex.GetMatchRegex(ref list, @"""is_onsale"":([\w\W]+?),");
|
|
if (mc == null || mc.Count <= 0) continue;
|
|
bool OffLine = !bool.Parse(mc[0].Groups[1].Value);
|
|
|
|
if (ReplaceModel)
|
|
{
|
|
if (SaleCount > 0)
|
|
{
|
|
LogSave.Add(Name, "跳过销量商品 " + GoodsId);
|
|
continue;
|
|
}
|
|
}
|
|
if (!isOnline && OffLine && !Shop.OffIds.Contains(GoodsId))
|
|
Shop.OffIds.Add(GoodsId);
|
|
if (isOnline && !OffLine && !Shop.OnIds.Contains(GoodsId))
|
|
Shop.OnIds.Add(GoodsId);
|
|
}
|
|
Thread.Sleep(300);
|
|
LogSave.Add(Name, "获取在线产品 " + shopName + ",分页:" + i);
|
|
}
|
|
LogSave.Add(Name, "获取完成");
|
|
if (UploadPinduoduoMain.NoVisit)
|
|
{
|
|
LogSave.Add(Name, "获取在线无流量产品 " + shopName);
|
|
UploadPinduoduoMain up = new UploadPinduoduoMain(Name);
|
|
up.Shop = Shop;
|
|
up.isOnline = isOnline;
|
|
up.GetGroupVisitIds();
|
|
}
|
|
}
|
|
|
|
public void GetAllLoopOnlineIds()
|
|
{
|
|
if (!isOnline)//true 商品处于上架状态,商品处于下架状态false
|
|
{
|
|
Shop.OffIds.Clear();
|
|
}
|
|
else
|
|
{
|
|
Shop.OnIds.Clear();
|
|
}
|
|
int mallId = Shop.MallId;
|
|
string cookies = Shop.Cookies, shopName = Shop.ShopName;
|
|
string url = "https://mms.pinduoduo.com/vodka/v2/mms/query/display/mall/goodsList";
|
|
string refere = "https://mms.pinduoduo.com/Pdd.html";
|
|
string data = "{\"order_by\":\"id:asc\",\"size\":100,\"page\":#page#,\"mall_id\":" + mallId + "}";
|
|
string html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
}
|
|
int allCount = BaseRegex.GetIntJson(ref html, "total");
|
|
|
|
int page = allCount / 100 + (allCount % 100 > 0 ? 1 : 0);
|
|
if (page > 1000)
|
|
{
|
|
page = 1000;
|
|
}
|
|
for (int i = 0; i < page; i++)
|
|
{
|
|
if (i != 0)
|
|
{
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
}
|
|
}
|
|
var m = BaseRegex.GetMatchRegex(ref html, @"\{([\w\W]+?)\}");
|
|
for (int j = 0; m != null && j < m.Count; j++)
|
|
{
|
|
string list = m[j].Groups[0].Value;
|
|
|
|
long GoodsId = BaseRegex.GetLongJson(ref list, "id");
|
|
|
|
int SaleCount = BaseRegex.GetIntJson(ref list, "sold_quantity");
|
|
|
|
var mc = BaseRegex.GetMatchRegex(ref list, @"""is_onsale"":([\w\W]+?),");
|
|
if (mc == null || mc.Count <= 0) continue;
|
|
bool OffLine = !bool.Parse(mc[0].Groups[1].Value);
|
|
|
|
if (ReplaceModel)
|
|
{
|
|
if (SaleCount > 0)
|
|
{
|
|
LogSave.Add(Name, "跳过销量商品 " + GoodsId);
|
|
continue;
|
|
}
|
|
}
|
|
if (!isOnline && OffLine && !Shop.OffIds.Contains(GoodsId))
|
|
Shop.OffIds.Add(GoodsId);
|
|
if (isOnline && !OffLine && !Shop.OnIds.Contains(GoodsId))
|
|
Shop.OnIds.Add(GoodsId);
|
|
}
|
|
Thread.Sleep(300);
|
|
LogSave.Add(Name, "获取在线产品 " + shopName + ",分页:" + i);
|
|
}
|
|
LogSave.Add(Name, "获取完成");
|
|
if (UploadPinduoduoMain.NoVisit)
|
|
{
|
|
LogSave.Add(Name, "获取在线无流量产品 " + shopName);
|
|
UploadPinduoduoMain up = new UploadPinduoduoMain(Name);
|
|
up.Shop = Shop;
|
|
up.isOnline = isOnline;
|
|
up.GetGroupVisitIds();
|
|
}
|
|
}
|
|
|
|
public void GetAllGroupOnline()
|
|
{
|
|
Shop.OnOrOffProduct.Clear();
|
|
int mallId = Shop.MallId;
|
|
string cookies = Shop.Cookies, shopName = Shop.ShopName;
|
|
string url = "https://mms.pinduoduo.com/vodka/v2/mms/query/display/mall/goodsList";
|
|
string refere = "https://mms.pinduoduo.com/Pdd.html";
|
|
string data = "{\"order_by\":\"id:asc\",\"size\":100,\"page\":#page#,\"mall_id\":" + mallId + "}";
|
|
if (minPrice > 0 && GetProductOnlineClass.NoPrce)
|
|
{
|
|
if (maxPrice == 0)
|
|
maxPrice = 1000000000;
|
|
data = "{\"order_by\":\"id:asc\",\"sku_price_range\":[" + minPrice * 100 + "," + maxPrice * 100 + "],\"size\":100,\"page\":#page#,\"mall_id\":" + mallId + "}";
|
|
}
|
|
string html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
}
|
|
int allCount = BaseRegex.GetIntJson(ref html, "total");
|
|
|
|
int page = allCount / 100 + (allCount % 100 > 0 ? 1 : 0);
|
|
|
|
if (page > 1000)
|
|
{
|
|
page = 1000;
|
|
}
|
|
for (int i = 0; i < page; i++)
|
|
{
|
|
if (i != 0)
|
|
{
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
}
|
|
}
|
|
var m = BaseRegex.GetMatchRegex(ref html, @"\{([\w\W]+?)\}");
|
|
for (int j = 0; m != null && j < m.Count; j++)
|
|
{
|
|
string list = m[j].Groups[0].Value;
|
|
TaobaoProductBase p = new TaobaoProductBase();
|
|
p.GoodsId = BaseRegex.GetLongJson(ref list, "id");
|
|
p.GoodsSn = BaseRegex.GetLongJson(ref list, "goods_sn");
|
|
p.Titlte = BaseRegex.GetStringJson(ref list, "goods_name");
|
|
p.CatId = BaseRegex.GetIntJson(ref list, "cat_id");
|
|
p.CatId = PinduoduoCatList.GetNewCat3(p.CatId);
|
|
p.SaleCount = BaseRegex.GetIntJson(ref list, "sold_quantity");
|
|
p.ShopName = Shop.ShopName;
|
|
string price = BaseRegex.GetMatchRegexString(ref list, @"""sku_group_price"":\[([\d]+),");
|
|
if (string.IsNullOrEmpty(price))
|
|
price = "1000";
|
|
p.Price = int.Parse(price) / 100m;
|
|
if (PinduoduoCatList.CatIds.ContainsKey(p.CatId))
|
|
{
|
|
var c = PinduoduoCatList.CatIds[p.CatId];
|
|
p.Cat1 = c.cat1;
|
|
p.Cat2 = c.cat2;
|
|
p.Cat3 = c.cat3;
|
|
p.Cat4 = c.cat4;
|
|
p.MainCatId = c.main_cat_id;
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
var mc = BaseRegex.GetMatchRegex(ref list, @"""is_onsale"":([\w\W]+?),");
|
|
if (mc == null || mc.Count <= 0) continue;
|
|
p.OffLine = !bool.Parse(mc[0].Groups[1].Value);
|
|
if (ReplaceModel)
|
|
{
|
|
if (p.SaleCount > 0)
|
|
{
|
|
|
|
LogSave.Add(Name, "跳过销量商品 " + p.GoodsId);
|
|
continue;
|
|
}
|
|
}
|
|
if (!Shop.OnOrOffProduct.Exists(pt => pt != null && pt.GoodsId == p.GoodsId))
|
|
Shop.OnOrOffProduct.Add(p);
|
|
}
|
|
Thread.Sleep(300);
|
|
LogSave.Add(Name, "获取在线产品 " + shopName + ",分页:" + i);
|
|
}
|
|
LogSave.Add(Name, "获取完成");
|
|
if (UploadPinduoduoMain.NoVisit)
|
|
{
|
|
LogSave.Add(Name, "获取在线无流量产品 " + shopName);
|
|
UploadPinduoduoMain up = new UploadPinduoduoMain(Name);
|
|
up.Shop = Shop;
|
|
up.GetGroupVisit();
|
|
}
|
|
}
|
|
|
|
public void GetAllOffGroupOnline()
|
|
{
|
|
Shop.OnOrOffProduct.Clear();
|
|
int mallId = Shop.MallId;
|
|
string cookies = Shop.Cookies, shopName = Shop.ShopName;
|
|
string url = "https://mms.pinduoduo.com/vodka/v2/mms/query/display/mall/goodsList";
|
|
string refere = "https://mms.pinduoduo.com/Pdd.html";
|
|
//string data = "{\"order_by\":\"id:asc\",\"size\":15,\"page\":#page#,\"mall_id\":" + mallId + "}";
|
|
string data = "{\"order_by\":\"id:desc\",\"is_onsale\":0,\"size\":100,\"page\":#page#,\"mall_id\":" + mallId + "}";
|
|
if (minPrice > 0)
|
|
{
|
|
if (maxPrice == 0)
|
|
maxPrice = 1000000000;
|
|
data = "{\"order_by\":\"id:desc\",\"sku_price_range\":[" + minPrice * 100 + "," + maxPrice * 100 + "],\"size\":100,\"page\":#page#,\"mall_id\":" + mallId + "";
|
|
}
|
|
string html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
}
|
|
int allCount = BaseRegex.GetIntJson(ref html, "total");
|
|
|
|
int page = allCount / 100 + (allCount % 100 > 0 ? 1 : 0);
|
|
if (page >= 1000)
|
|
{
|
|
page = 999;
|
|
}
|
|
for (int i = 0; i < page; i++)
|
|
{
|
|
if (i != 0)
|
|
{
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
}
|
|
}
|
|
var m = BaseRegex.GetMatchRegex(ref html, @"\{([\w\W]+?)\}");
|
|
for (int j = 0; m != null && j < m.Count; j++)
|
|
{
|
|
string list = m[j].Groups[0].Value;
|
|
TaobaoProductBase p = new TaobaoProductBase();
|
|
p.GoodsId = BaseRegex.GetLongJson(ref list, "id");
|
|
p.GoodsSn = BaseRegex.GetLongJson(ref list, "goods_sn");
|
|
p.Titlte = BaseRegex.GetStringJson(ref list, "goods_name");
|
|
p.CatId = BaseRegex.GetIntJson(ref list, "cat_id");
|
|
p.CatId = PinduoduoCatList.GetNewCat3(p.CatId);
|
|
p.SaleCount = BaseRegex.GetIntJson(ref list, "sold_quantity");
|
|
p.ShopName = Shop.ShopName;
|
|
string price = BaseRegex.GetMatchRegexString(ref list, @"""sku_group_price"":\[([\d]+),");
|
|
if (string.IsNullOrEmpty(price))
|
|
price = "1000";
|
|
p.Price = int.Parse(price) / 100m;
|
|
if (PinduoduoCatList.CatIds.ContainsKey(p.CatId))
|
|
{
|
|
var c = PinduoduoCatList.CatIds[p.CatId];
|
|
p.Cat1 = c.cat1;
|
|
p.Cat2 = c.cat2;
|
|
p.Cat3 = c.cat3;
|
|
p.Cat4 = c.cat4;
|
|
p.MainCatId = c.main_cat_id;
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
var mc = BaseRegex.GetMatchRegex(ref list, @"""is_onsale"":([\w\W]+?),");
|
|
if (mc == null || mc.Count <= 0) continue;
|
|
p.OffLine = !bool.Parse(mc[0].Groups[1].Value);
|
|
if (ReplaceModel)
|
|
{
|
|
if (p.SaleCount > 0)
|
|
{
|
|
LogSave.Add(Name, "跳过销量商品 " + p.GoodsId);
|
|
continue;
|
|
}
|
|
}
|
|
if (!Shop.OnOrOffProduct.Exists(pt => pt != null && pt.GoodsId == p.GoodsId))
|
|
Shop.OnOrOffProduct.Add(p);
|
|
}
|
|
Thread.Sleep(300);
|
|
LogSave.Add(Name, "获取在线产品 " + shopName + ",分页:" + i);
|
|
}
|
|
LogSave.Add(Name, "获取完成");
|
|
if (UploadPinduoduoMain.NoVisit)
|
|
{
|
|
LogSave.Add(Name, "获取在线无流量产品 " + shopName);
|
|
UploadPinduoduoMain up = new UploadPinduoduoMain(Name);
|
|
up.Shop = Shop;
|
|
up.GetGroupVisit();
|
|
}
|
|
}
|
|
public long retCheckDaysPid()
|
|
{
|
|
if (!ClearProductGroup.IsNoDays)
|
|
return 0;
|
|
string url = BaseClass.LoginApiUrl + "?obj=upshopid/upid&act=get_days_id";
|
|
string data = "days=" + ClearProductGroup.DaysCount + "&" + UserLogin.GetSignaturex();
|
|
string html = GetHtml.PostUtf8(url, data);
|
|
long id = 0;
|
|
long.TryParse(html, out id);
|
|
return id;
|
|
}
|
|
|
|
long minPid = 0;
|
|
public void GetDelKeyWordOnline()
|
|
{
|
|
Shop.OnOrOffProduct.Clear();
|
|
if (ClearProductGroup.IsNoDays)
|
|
minPid = retCheckDaysPid();
|
|
int mallId = Shop.MallId;
|
|
string cookies = Shop.Cookies, shopName = Shop.ShopName;
|
|
string url = "https://mms.pinduoduo.com/vodka/v2/mms/query/display/mall/goodsList";
|
|
string refere = "https://mms.pinduoduo.com/Pdd.html";
|
|
string data = "{\"order_by\":\"id:asc\",\"goods_name\":\"" + delTitle + "\",\"size\":100,\"page\":#page#,\"mall_id\":" + mallId + "}";
|
|
string html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
}
|
|
int allCount = BaseRegex.GetIntJson(ref html, "total");
|
|
|
|
int page = allCount / 100 + (allCount % 100 > 0 ? 1 : 0);
|
|
if (page > 1000)
|
|
{
|
|
page = 1000;
|
|
}
|
|
for (int i = 0; i < page; i++)
|
|
{
|
|
if (i != 0)
|
|
{
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
}
|
|
}
|
|
var m = BaseRegex.GetMatchRegex(ref html, @"\{([\w\W]+?)\}");
|
|
for (int j = 0; m != null && j < m.Count; j++)
|
|
{
|
|
string list = m[j].Groups[0].Value;
|
|
TaobaoProductBase p = new TaobaoProductBase();
|
|
p.GoodsId = BaseRegex.GetLongJson(ref list, "id");
|
|
p.GoodsSn = BaseRegex.GetLongJson(ref list, "goods_sn");
|
|
p.Titlte = BaseRegex.GetStringJson(ref list, "goods_name");
|
|
if (p.GoodsId == 0 || string.IsNullOrEmpty(p.Titlte))
|
|
continue;
|
|
p.CatId = BaseRegex.GetIntJson(ref list, "cat_id");
|
|
p.CatId = PinduoduoCatList.GetNewCat3(p.CatId);
|
|
p.SaleCount = BaseRegex.GetIntJson(ref list, "sold_quantity");
|
|
p.ShopName = Shop.ShopName;
|
|
//int created_at = BaseRegex.GetIntJson(ref list, "created_at");
|
|
//DateTime dt = BaseClass.StampToDateTime(created_at);
|
|
|
|
if (ClearProductGroup.IsNoDays && p.GoodsId > minPid)
|
|
continue;
|
|
//if (ClearProductGroup.noDays && DateTime.Now.AddDays(-ClearProductGroup.daysCount) > dt)
|
|
// continue;
|
|
|
|
string price = BaseRegex.GetMatchRegexString(ref list, @"""sku_group_price"":\[([\d]+),");
|
|
if (string.IsNullOrEmpty(price))
|
|
price = "1000";
|
|
p.Price = int.Parse(price) / 100m;
|
|
if (PinduoduoCatList.CatIds.ContainsKey(p.CatId))
|
|
{
|
|
var c = PinduoduoCatList.CatIds[p.CatId];
|
|
p.Cat1 = c.cat1;
|
|
p.Cat2 = c.cat2;
|
|
p.Cat3 = c.cat3;
|
|
p.Cat4 = c.cat4;
|
|
p.MainCatId = c.main_cat_id;
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
var mc = BaseRegex.GetMatchRegex(ref list, @"""is_onsale"":([\w\W]+?),");
|
|
if (mc == null || mc.Count <= 0) continue;
|
|
p.OffLine = !bool.Parse(mc[0].Groups[1].Value);
|
|
if (!Shop.OnOrOffProduct.Exists(pt => pt != null && pt.GoodsId == p.GoodsId))
|
|
{
|
|
if (!p.Titlte.Contains(delTitle))
|
|
continue;
|
|
Shop.OnOrOffProduct.Add(p);
|
|
UploadPinduoduoMain.ProductDelTemp.Add(p);
|
|
}
|
|
}
|
|
Thread.Sleep(300);
|
|
LogSave.Add(Name, "获取在线关键词产品 " + shopName + ",分页:" + i);
|
|
}
|
|
LogSave.Add(Name, "获取完成");
|
|
}
|
|
public void GetDelKeyTitleProduct()
|
|
{
|
|
if (string.IsNullOrEmpty(PinduoduoAuth.strContent))
|
|
{
|
|
PinduoduoAuth.strContent = GetVisitProductNew.strJs;//FileBase.ReadAllText(path);
|
|
}
|
|
string NoCode = "";
|
|
string strTime = BaseClass.GetTime(DateTime.Now).ToString() + "000";
|
|
if (string.IsNullOrEmpty(NoCode))
|
|
{
|
|
string htmlx = GetHtml.Gbk("http://nano.qixiaoke.com/nano.txt");
|
|
NoCode = BaseRegex.GetMatchRegexString(ref htmlx, @"([\w\W]+?)-----");
|
|
}
|
|
string fun2 = string.Format(@"getEncode('{0}','{1}','{2}')", strTime, NoCode, "");
|
|
string codex = UploadPinduoduoSet.ExecuteScript(fun2, PinduoduoAuth.strContent);
|
|
|
|
Shop.ClearNoVisitShop.goodsCount = Shop.OnOrOffProduct.Count;
|
|
ClearProductGroup.ShopTemp.Add(Shop);
|
|
|
|
List<long> ids = new List<long>();
|
|
for (int j = 0; j < Shop.OnOrOffProduct.Count; j++)
|
|
{
|
|
if (delCount >= ClearProductGroup.GoodCount)
|
|
break;
|
|
isOnline = !Shop.OnOrOffProduct[j].OffLine;
|
|
if (isOnline)
|
|
{
|
|
var api = new PinduoduoApiGetProduct(Shop);
|
|
string html = api.SetOnline(Shop.OnOrOffProduct[j].GoodsId, false);
|
|
Shop.OnOrOffProduct[j].Message = !isOnline ? "上架成功" : "下架成功";
|
|
UploadPinduoduoMain.ProductDelTemp.Add(Shop.OnOrOffProduct[j]);
|
|
LogSave.Add(Name, "商品" + Shop.OnOrOffProduct[j].GoodsId + "下架");
|
|
Thread.Sleep(3 * 1000);
|
|
}
|
|
ids.Add(Shop.OnOrOffProduct[j].GoodsId);
|
|
delCount++;
|
|
if (ids.Count >= 15)
|
|
{
|
|
string html = DelGroupIds(ids);
|
|
|
|
if (html.Contains("删除量上限"))
|
|
{
|
|
LogSave.Add(Name, "今日删除商品已达上限:" + Shop.ShopName);
|
|
Shop.ClearNoVisitShop.goodStatus = "今日删除商品已达上限";
|
|
ClearProductGroup.ShopTemp.Add(Shop);
|
|
return;
|
|
}
|
|
ids.Clear();
|
|
Shop.ClearNoVisitShop.goodStatus = "删除第" + delCount + "个";
|
|
ClearProductGroup.ShopTemp.Add(Shop);
|
|
LogSave.Add(Name, "删除成功:" + Shop.OnOrOffProduct[j].GoodsId);
|
|
Thread.Sleep(2000);
|
|
}
|
|
}
|
|
if (ids.Count > 0)
|
|
{
|
|
string html = DelGroupIds(ids);
|
|
if (html.Contains("删除量上限"))
|
|
{
|
|
LogSave.Add(Name, "今日删除商品已达上限:" + Shop.ShopName);
|
|
Shop.ClearNoVisitShop.goodStatus = "今日删除商品已达上限";
|
|
ClearProductGroup.ShopTemp.Add(Shop);
|
|
return;
|
|
}
|
|
Shop.ClearNoVisitShop.goodStatus = "删除第" + delCount + "个(完成)";
|
|
ClearProductGroup.ShopTemp.Add(Shop);
|
|
}
|
|
LogSave.Add(Name, "删除完成");
|
|
}
|
|
|
|
public void GetDelKeyWordDel()
|
|
{
|
|
GetDelKeyWordOnline();
|
|
GetDelKeyTitleProduct();
|
|
}
|
|
public int vioCount = 0;
|
|
public void GetDelKeyGood()
|
|
{
|
|
if (string.IsNullOrEmpty(PinduoduoAuth.strContent))
|
|
{
|
|
PinduoduoAuth.strContent = GetVisitProductNew.strJs;//FileBase.ReadAllText(path);
|
|
}
|
|
string NoCode = "";
|
|
string strTime = BaseClass.GetTime(DateTime.Now).ToString() + "000";
|
|
if (string.IsNullOrEmpty(NoCode))
|
|
{
|
|
string htmlx = GetHtml.Gbk("http://nano.qixiaoke.com/nano.txt");
|
|
NoCode = BaseRegex.GetMatchRegexString(ref htmlx, @"([\w\W]+?)-----");
|
|
}
|
|
string fun2 = string.Format(@"getEncode('{0}','{1}','{2}')", strTime, NoCode, "");
|
|
string codex = UploadPinduoduoSet.ExecuteScript(fun2, PinduoduoAuth.strContent);
|
|
|
|
Shop.DelGroupShop.goodsCount = Shop.OnOrOffProduct.Count;
|
|
ShopTemp.Add(Shop);
|
|
|
|
for (int j = 0; j < Shop.OnOrOffProduct.Count; j++)
|
|
{
|
|
if (Shop.OnOrOffProduct[j].Delete == "False")
|
|
continue;
|
|
var api = new PinduoduoApiGetProduct(Shop);
|
|
string urlx = "https://mms.pinduoduo.com/vodka/v2/mms/pc/offSale";
|
|
string refere = "https://mms.pinduoduo.com/";
|
|
string data = "{\"goodsId\":" + Shop.OnOrOffProduct[j].GoodsId + ",\"crawlerInfo\":\"" + codex + "\"}";
|
|
string html = GetPostTaobaoHtml.UploadTaobaoPost(urlx, refere, true, data, Shop.Cookies);
|
|
Shop.OnOrOffProduct[j].Message = "下架成功";
|
|
LogSave.Add(Name, "下架成功:" + Shop.OnOrOffProduct[j].GoodsId);
|
|
UploadPinduoduoMain.ProductDelTemp.Add(Shop.OnOrOffProduct[j]);
|
|
vioCount++;
|
|
Shop.DelGroupShop.vioCount = vioCount;
|
|
ShopTemp.Add(Shop);
|
|
Thread.Sleep(5 * 1000);
|
|
}
|
|
Shop.DelGroupShop.goodStatus = "下架违规完成";
|
|
ShopTemp.Add(Shop);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取售罄商品
|
|
/// </summary>
|
|
public void GetSoldOutOnline()
|
|
{
|
|
Shop.SellOutProduct.Clear();
|
|
int mallId = Shop.MallId;
|
|
string cookies = Shop.Cookies, shopName = Shop.ShopName;
|
|
string url = "https://mms.pinduoduo.com/vodka/v2/mms/query/display/mall/goodsList";
|
|
string refere = "https://mms.pinduoduo.com/goods/goods_list";
|
|
string data = "{\"order_by\":\"quantity:desc,id:desc\",\"page\":#page#,\"sold_out\":1,\"size\":100,\"mall_id\":" + mallId + "}";
|
|
string html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
}
|
|
int allCount = BaseRegex.GetIntJson(ref html, "total");
|
|
|
|
int page = allCount / 100 + (allCount % 100 > 0 ? 1 : 0);
|
|
|
|
if (page > 1000)
|
|
{
|
|
page = 1000;
|
|
}
|
|
for (int i = 0; i < page; i++)
|
|
{
|
|
if (i != 0)
|
|
{
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
}
|
|
}
|
|
var m = BaseRegex.GetMatchRegex(ref html, @"\{([\w\W]+?)\}");
|
|
for (int j = 0; m != null && j < m.Count; j++)
|
|
{
|
|
string list = m[j].Groups[0].Value;
|
|
TaobaoProductBase p = new TaobaoProductBase();
|
|
p.GoodsId = BaseRegex.GetLongJson(ref list, "id");
|
|
p.GoodsSn = BaseRegex.GetLongJson(ref list, "goods_sn");
|
|
p.Titlte = BaseRegex.GetStringJson(ref list, "goods_name");
|
|
p.CatId = BaseRegex.GetIntJson(ref list, "cat_id");
|
|
p.CatId = PinduoduoCatList.GetNewCat3(p.CatId);
|
|
p.SaleCount = BaseRegex.GetIntJson(ref list, "sold_quantity");
|
|
p.ShopName = Shop.ShopName;
|
|
string price = BaseRegex.GetMatchRegexString(ref list, @"""sku_group_price"":\[([\d]+),");
|
|
if (string.IsNullOrEmpty(price))
|
|
price = "1000";
|
|
p.Price = int.Parse(price) / 100m;
|
|
if (PinduoduoCatList.CatIds.ContainsKey(p.CatId))
|
|
{
|
|
var c = PinduoduoCatList.CatIds[p.CatId];
|
|
p.Cat1 = c.cat1;
|
|
p.Cat2 = c.cat2;
|
|
p.Cat3 = c.cat3;
|
|
p.Cat4 = c.cat4;
|
|
p.MainCatId = c.main_cat_id;
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
var mc = BaseRegex.GetMatchRegex(ref list, @"""is_onsale"":([\w\W]+?),");
|
|
if (mc == null || mc.Count <= 0) continue;
|
|
p.OffLine = !bool.Parse(mc[0].Groups[1].Value);
|
|
//if (p.SaleCount <= 0)
|
|
//{
|
|
// LogSave.Add(Name, "跳过无销量商品 " + p.GoodsId);
|
|
// continue;
|
|
//}
|
|
if (!Shop.SellOutProduct.Exists(pt => pt != null && pt.GoodsId == p.GoodsId))
|
|
Shop.SellOutProduct.Add(p);
|
|
}
|
|
Thread.Sleep(300);
|
|
LogSave.Add(Name, "获取售罄产品 " + shopName + ",分页:" + i);
|
|
}
|
|
LogSave.Add(Name, "获取完成");
|
|
}
|
|
|
|
|
|
|
|
public int delCount = 0;
|
|
public int offCount = 0;
|
|
public static List<ShopChatBase> ShopTemp = new List<ShopChatBase>();
|
|
public static List<ShopChatBase> AutoShopTemp = new List<ShopChatBase>();
|
|
public static List<ShopChatBase> ArrangeShopTemp = new List<ShopChatBase>();
|
|
public void GetDelGroupProduct()
|
|
{
|
|
GetAllGroupOnline();
|
|
Shop.DelGroupShop.goodsCount = Shop.OnOrOffProduct.Count;
|
|
ShopTemp.Add(Shop);
|
|
List<long> ids = new List<long>();
|
|
if (string.IsNullOrEmpty(PinduoduoAuth.strContent))
|
|
{
|
|
PinduoduoAuth.strContent = GetVisitProductNew.strJs;//FileBase.ReadAllText(path);
|
|
}
|
|
string NoCode = "";
|
|
string strTime = BaseClass.GetTime(DateTime.Now).ToString() + "000";
|
|
if (string.IsNullOrEmpty(NoCode))
|
|
{
|
|
string htmlx = GetHtml.Gbk("http://nano.qixiaoke.com/nano.txt");
|
|
NoCode = BaseRegex.GetMatchRegexString(ref htmlx, @"([\w\W]+?)-----");
|
|
}
|
|
string fun2 = string.Format(@"getEncode('{0}','{1}','{2}')", strTime, NoCode, "");
|
|
string codex = UploadPinduoduoSet.ExecuteScript(fun2, PinduoduoAuth.strContent);
|
|
|
|
List<long> idsx = new List<long>();
|
|
for (int j = 0; j < Shop.OnOrOffProduct.Count; j++)
|
|
{
|
|
if (offCount >= UploadPinduoduoMain.DelCount)
|
|
break;
|
|
isOnline = !Shop.OnOrOffProduct[j].OffLine;
|
|
if (isOnline)
|
|
{
|
|
idsx.Add(Shop.OnOrOffProduct[j].GoodsId);
|
|
offCount++;
|
|
if (idsx.Count >= 15)
|
|
{
|
|
string html = OffShopx(idsx);
|
|
idsx.Clear();
|
|
if (html == "error")
|
|
break;
|
|
Shop.DelGroupShop.offCount = offCount;
|
|
ShopTemp.Add(Shop);
|
|
Thread.Sleep(10 * 1000);
|
|
}
|
|
}
|
|
}
|
|
if (idsx.Count > 0)
|
|
{
|
|
OffShopx(idsx);
|
|
idsx.Clear();
|
|
Shop.DelGroupShop.offCount = offCount;
|
|
ShopTemp.Add(Shop);
|
|
}
|
|
|
|
|
|
for (int j = 0; j < Shop.OnOrOffProduct.Count; j++)
|
|
{
|
|
if (delCount >= UploadPinduoduoMain.DelCount)
|
|
break;
|
|
ids.Add(Shop.OnOrOffProduct[j].GoodsId);
|
|
delCount++;
|
|
Shop.OnOrOffProduct[j].Message = "删除成功";
|
|
if (ids.Count >= 100)
|
|
{
|
|
string html = DelGroupIds(ids);
|
|
|
|
if (html.Contains("删除量上限"))
|
|
{
|
|
LogSave.Add(Name, "今日删除商品已达上限:" + Shop.ShopName);
|
|
for (int i = 0; i < ids.Count; i++)
|
|
{
|
|
var p = Shop.OnOrOffProduct.Find(sp => sp.GoodsId == ids[i]);
|
|
p.Message = " ";
|
|
UploadPinduoduoMain.ProductDelTemp.Add(p);
|
|
}
|
|
Shop.DelGroupShop.goodStatus = "今日删除商品已达上限";
|
|
ShopTemp.Add(Shop);
|
|
return;
|
|
}
|
|
for (int i = 0; i < ids.Count; i++)
|
|
{
|
|
var p = Shop.OnOrOffProduct.Find(sp => sp.GoodsId == ids[i]);
|
|
UploadPinduoduoMain.ProductDelTemp.Add(p);
|
|
}
|
|
ids.Clear();
|
|
Shop.DelGroupShop.delCount = delCount;
|
|
ShopTemp.Add(Shop);
|
|
LogSave.Add(Name, "删除成功:" + Shop.OnOrOffProduct[j].GoodsId);
|
|
Thread.Sleep(2000);
|
|
}
|
|
}
|
|
if (ids.Count > 0)
|
|
{
|
|
string html = DelGroupIds(ids);
|
|
if (html.Contains("删除量上限"))
|
|
{
|
|
LogSave.Add(Name, "今日删除商品已达上限:" + Shop.ShopName);
|
|
for (int i = 0; i < ids.Count; i++)
|
|
{
|
|
var p = Shop.OnOrOffProduct.Find(sp => sp.GoodsId == ids[i]);
|
|
p.Message = " ";
|
|
UploadPinduoduoMain.ProductDelTemp.Add(p);
|
|
}
|
|
Shop.DelGroupShop.goodStatus = "今日删除商品已达上限";
|
|
ShopTemp.Add(Shop);
|
|
return;
|
|
}
|
|
for (int i = 0; i < ids.Count; i++)
|
|
{
|
|
var p = Shop.OnOrOffProduct.Find(sp => sp.GoodsId == ids[i]);
|
|
UploadPinduoduoMain.ProductDelTemp.Add(p);
|
|
}
|
|
Shop.DelGroupShop.delCount = delCount;
|
|
ShopTemp.Add(Shop);
|
|
}
|
|
Shop.DelGroupShop.goodStatus = "删除完成";
|
|
ShopTemp.Add(Shop);
|
|
LogSave.Add(Name, "删除完成");
|
|
}
|
|
public string OffShopx(List<long> ids)
|
|
{
|
|
if (ids.Count == 0)
|
|
return "";
|
|
StringBuilder pids = new StringBuilder();
|
|
for (int i = 0; i < ids.Count; i++)
|
|
{
|
|
pids.Append("," + ids[i]);
|
|
}
|
|
string GoodsId = pids.ToString(1, pids.Length - 1);
|
|
|
|
string codex = "";
|
|
//using (IJsEngine jsEngine = new V8JsEngine())
|
|
//{
|
|
// jsEngine.Execute(GetProductOnlineClass.JsCodeGetSms);
|
|
// codex = jsEngine.CallFunction("aaa", "").ToString();
|
|
//}
|
|
string data = "{\"goodsIds\":[" + GoodsId + "],\"crawlerInfo\":\"" + codex + "\"}";
|
|
string urlx = "https://mms.pinduoduo.com/vodka/v2/mms/batchOffSale";
|
|
string refere = "https://mms.pinduoduo.com";
|
|
string html = GetPostTaobaoHtml.UploadTaobaoPost(urlx, refere, true, data, Shop.Cookies);
|
|
if (html.Contains("{\"success\":true"))
|
|
{
|
|
string[] l = GoodsId.Split(',');
|
|
foreach (string s in l)
|
|
{
|
|
//var good = Shop.OnOrOffProduct.Find(p => p.GoodsId == long.Parse(s));
|
|
//good.Message = "下架成功";
|
|
//ProductClearTemp.Add(good);
|
|
LogSave.Add(Name, "下架产品成功:" + s);
|
|
}
|
|
return "";
|
|
}
|
|
if (html.Contains("手速太快了"))
|
|
{
|
|
LogSave.Add(Name, Shop.ShopName + "接口调用频繁,请过段时间再操作。");
|
|
return "error";
|
|
}
|
|
return "";
|
|
}
|
|
|
|
public void GetDelGroupOffProduct()
|
|
{
|
|
GetAllOffGroupOnline();
|
|
Shop.DelGroupShop.goodsCount = Shop.OnOrOffProduct.Count;
|
|
ShopTemp.Add(Shop);
|
|
List<long> ids = new List<long>();
|
|
for (int j = 0; j < Shop.OnOrOffProduct.Count; j++)
|
|
{
|
|
if (delCount >= UploadPinduoduoMain.DelCount)
|
|
break;
|
|
isOnline = !Shop.OnOrOffProduct[j].OffLine;
|
|
if (isOnline)
|
|
continue;
|
|
ids.Add(Shop.OnOrOffProduct[j].GoodsId);
|
|
delCount++;
|
|
Shop.OnOrOffProduct[j].Message = "删除成功";
|
|
if (ids.Count >= 15)
|
|
{
|
|
string html = DelGroupIds(ids);
|
|
|
|
if (html.Contains("删除量上限"))
|
|
{
|
|
LogSave.Add(Name, "今日删除商品已达上限:" + Shop.ShopName);
|
|
for (int i = 0; i < ids.Count; i++)
|
|
{
|
|
var p = Shop.OnOrOffProduct.Find(sp => sp.GoodsId == ids[i]);
|
|
p.Message = " ";
|
|
UploadPinduoduoMain.ProductDelTemp.Add(p);
|
|
}
|
|
return;
|
|
}
|
|
for (int i = 0; i < ids.Count; i++)
|
|
{
|
|
var p = Shop.OnOrOffProduct.Find(sp => sp.GoodsId == ids[i]);
|
|
UploadPinduoduoMain.ProductDelTemp.Add(p);
|
|
}
|
|
ids.Clear();
|
|
Shop.DelGroupShop.delCount = delCount;
|
|
ShopTemp.Add(Shop);
|
|
LogSave.Add(Name, "删除成功:" + Shop.OnOrOffProduct[j].GoodsId);
|
|
Thread.Sleep(2000);
|
|
}
|
|
}
|
|
if (ids.Count > 0)
|
|
{
|
|
string html = DelGroupIds(ids);
|
|
if (html.Contains("删除量上限"))
|
|
{
|
|
LogSave.Add(Name, "今日删除商品已达上限:" + Shop.ShopName);
|
|
for (int i = 0; i < ids.Count; i++)
|
|
{
|
|
var p = Shop.OnOrOffProduct.Find(sp => sp.GoodsId == ids[i]);
|
|
p.Message = " ";
|
|
UploadPinduoduoMain.ProductDelTemp.Add(p);
|
|
}
|
|
return;
|
|
}
|
|
for (int i = 0; i < ids.Count; i++)
|
|
{
|
|
var p = Shop.OnOrOffProduct.Find(sp => sp.GoodsId == ids[i]);
|
|
UploadPinduoduoMain.ProductDelTemp.Add(p);
|
|
}
|
|
Shop.DelGroupShop.delCount = delCount;
|
|
ShopTemp.Add(Shop);
|
|
}
|
|
Shop.DelGroupShop.goodStatus = "删除完成";
|
|
ShopTemp.Add(Shop);
|
|
LogSave.Add(Name, "删除完成");
|
|
}
|
|
public string DelGroupIds(List<long> ids)
|
|
{
|
|
if (ids.Count == 0)
|
|
return "";
|
|
StringBuilder pids = new StringBuilder();
|
|
for (int i = 0; i < ids.Count; i++)
|
|
{
|
|
pids.Append("," + ids[i]);
|
|
}
|
|
var d = new DownUpProductExploder("", false, pids.ToString(1, pids.Length - 1));
|
|
d.Cookies = Shop.Cookies;
|
|
d.Name = Name;
|
|
d.Shop = Shop;
|
|
string html = d.Delete();
|
|
return html;
|
|
}
|
|
|
|
public void GetDelTitleProduct()
|
|
{
|
|
if (string.IsNullOrEmpty(PinduoduoAuth.strContent))
|
|
{
|
|
PinduoduoAuth.strContent = GetVisitProductNew.strJs;//FileBase.ReadAllText(path);
|
|
}
|
|
string NoCode = "";
|
|
string strTime = BaseClass.GetTime(DateTime.Now).ToString() + "000";
|
|
if (string.IsNullOrEmpty(NoCode))
|
|
{
|
|
string htmlx = GetHtml.Gbk("http://nano.qixiaoke.com/nano.txt");
|
|
NoCode = BaseRegex.GetMatchRegexString(ref htmlx, @"([\w\W]+?)-----");
|
|
}
|
|
string fun2 = string.Format(@"getEncode('{0}','{1}','{2}')", strTime, NoCode, "");
|
|
string codex = UploadPinduoduoSet.ExecuteScript(fun2, PinduoduoAuth.strContent);
|
|
|
|
Shop.DelGroupShop.goodsCount = Shop.OnOrOffProduct.Count;
|
|
ShopTemp.Add(Shop);
|
|
|
|
List<long> ids = new List<long>();
|
|
for (int j = 0; j < Shop.OnOrOffProduct.Count; j++)
|
|
{
|
|
if (delCount >= UploadPinduoduoMain.DelCount)
|
|
break;
|
|
if (Shop.OnOrOffProduct[j].Delete == "False")
|
|
continue;
|
|
isOnline = !Shop.OnOrOffProduct[j].OffLine;
|
|
if (isOnline)
|
|
{
|
|
string urlx = "https://mms.pinduoduo.com/vodka/v2/mms/pc/offSale";
|
|
string refere = "https://mms.pinduoduo.com/";
|
|
string data = "{\"goodsId\":" + Shop.OnOrOffProduct[j].GoodsId + ",\"crawlerInfo\":\"" + codex + "\"}";
|
|
string html = GetPostTaobaoHtml.UploadTaobaoPost(urlx, refere, true, data, Shop.Cookies);
|
|
if (html.Contains("\"success\":false"))
|
|
{
|
|
var api = new PinduoduoApiGetProduct(Shop);
|
|
html = api.SetOnline(Shop.OnOrOffProduct[j].GoodsId, false);
|
|
}
|
|
Shop.OnOrOffProduct[j].Message = !isOnline ? "上架成功" : "下架成功";
|
|
UploadPinduoduoMain.ProductDelTemp.Add(Shop.OnOrOffProduct[j]);
|
|
LogSave.Add("自动下架", "在线产品 " + Shop.OnOrOffProduct[j].Titlte + Shop.OnOrOffProduct[j].Message);
|
|
Thread.Sleep(5 * 1000);
|
|
}
|
|
ids.Add(Shop.OnOrOffProduct[j].GoodsId);
|
|
delCount++;
|
|
Shop.OnOrOffProduct[j].Message = "删除成功";
|
|
Shop.OnOrOffProduct[j].Delete = "False";
|
|
if (ids.Count >= 15)
|
|
{
|
|
string html = DelGroupIds(ids);
|
|
|
|
if (html.Contains("删除量上限"))
|
|
{
|
|
LogSave.Add(Name, "今日删除商品已达上限:" + Shop.ShopName);
|
|
for (int i = 0; i < ids.Count; i++)
|
|
{
|
|
var p = Shop.OnOrOffProduct.Find(sp => sp.GoodsId == ids[i]);
|
|
p.Message = " ";
|
|
UploadPinduoduoMain.ProductDelTemp.Add(p);
|
|
}
|
|
return;
|
|
}
|
|
for (int i = 0; i < ids.Count; i++)
|
|
{
|
|
var p = Shop.OnOrOffProduct.Find(sp => sp.GoodsId == ids[i]);
|
|
UploadPinduoduoMain.ProductDelTemp.Add(p);
|
|
}
|
|
ids.Clear();
|
|
Shop.DelGroupShop.delCount = delCount;
|
|
ShopTemp.Add(Shop);
|
|
|
|
LogSave.Add(Name, "删除成功:" + Shop.OnOrOffProduct[j].GoodsId);
|
|
Thread.Sleep(2000);
|
|
}
|
|
}
|
|
if (ids.Count > 0)
|
|
{
|
|
string html = DelGroupIds(ids);
|
|
if (html.Contains("删除量上限"))
|
|
{
|
|
LogSave.Add(Name, "今日删除商品已达上限:" + Shop.ShopName);
|
|
for (int i = 0; i < ids.Count; i++)
|
|
{
|
|
var p = Shop.OnOrOffProduct.Find(sp => sp.GoodsId == ids[i]);
|
|
p.Message = " ";
|
|
UploadPinduoduoMain.ProductDelTemp.Add(p);
|
|
}
|
|
return;
|
|
}
|
|
for (int i = 0; i < ids.Count; i++)
|
|
{
|
|
var p = Shop.OnOrOffProduct.Find(sp => sp.GoodsId == ids[i]);
|
|
UploadPinduoduoMain.ProductDelTemp.Add(p);
|
|
}
|
|
Shop.DelGroupShop.delCount = delCount;
|
|
ShopTemp.Add(Shop);
|
|
|
|
}
|
|
Shop.DelGroupShop.goodStatus = "删除完成";
|
|
ShopTemp.Add(Shop);
|
|
|
|
LogSave.Add(Name, "删除完成");
|
|
}
|
|
|
|
public void GetDelArrangeProduct()
|
|
{
|
|
if (string.IsNullOrEmpty(PinduoduoAuth.strContent))
|
|
{
|
|
PinduoduoAuth.strContent = GetVisitProductNew.strJs;//FileBase.ReadAllText(path);
|
|
}
|
|
string NoCode = "";
|
|
string strTime = BaseClass.GetTime(DateTime.Now).ToString() + "000";
|
|
if (string.IsNullOrEmpty(NoCode))
|
|
{
|
|
string htmlx = GetHtml.Gbk("http://nano.qixiaoke.com/nano.txt");
|
|
NoCode = BaseRegex.GetMatchRegexString(ref htmlx, @"([\w\W]+?)-----");
|
|
}
|
|
string fun2 = string.Format(@"getEncode('{0}','{1}','{2}')", strTime, NoCode, "");
|
|
string codex = UploadPinduoduoSet.ExecuteScript(fun2, PinduoduoAuth.strContent);
|
|
|
|
List<long> ids = new List<long>();
|
|
|
|
Shop.ArrangeShop.goodsCount = Shop.OnOrOffArrProduct.Count;
|
|
ArrangeShopTemp.Add(Shop);
|
|
|
|
for (int j = 0; j < Shop.OnOrOffArrProduct.Count; j++)
|
|
{
|
|
//if (delCount >= UploadPinduoduoMain.DelCount)
|
|
// break;
|
|
//if (Shop.OnOrOffArrProduct[j].Delete == "False")
|
|
// continue;
|
|
isOnline = !Shop.OnOrOffArrProduct[j].OffLine;
|
|
if (isOnline)
|
|
{
|
|
string urlx = "https://mms.pinduoduo.com/vodka/v2/mms/pc/offSale";
|
|
string refere = "https://mms.pinduoduo.com/";
|
|
string data = "{\"goodsId\":" + Shop.OnOrOffArrProduct[j].GoodsId + ",\"crawlerInfo\":\"" + codex + "\"}";
|
|
string html = GetPostTaobaoHtml.UploadTaobaoPost(urlx, refere, true, data, Shop.Cookies);
|
|
Shop.OnOrOffArrProduct[j].Message = !isOnline ? "上架成功" : "下架成功";
|
|
UploadPinduoduoMain.ProductArrangeTemp.Add(Shop.OnOrOffArrProduct[j]);
|
|
LogSave.Add("店铺整理", "在线产品 " + Shop.OnOrOffArrProduct[j].Titlte + Shop.OnOrOffArrProduct[j].Message);
|
|
Thread.Sleep(5 * 1000);
|
|
}
|
|
ids.Add(Shop.OnOrOffArrProduct[j].GoodsId);
|
|
delCount++;
|
|
Shop.OnOrOffArrProduct[j].Message = "删除成功";
|
|
Shop.OnOrOffArrProduct[j].Delete = "False";
|
|
if (ids.Count >= 15)
|
|
{
|
|
string html = DelGroupIds(ids);
|
|
Shop.ArrangeShop.delCount = delCount;
|
|
ArrangeShopTemp.Add(Shop);
|
|
|
|
if (html.Contains("删除量上限"))
|
|
{
|
|
LogSave.Add(Name, "今日删除商品已达上限:" + Shop.ShopName);
|
|
for (int i = 0; i < ids.Count; i++)
|
|
{
|
|
var p = Shop.OnOrOffArrProduct.Find(sp => sp.GoodsId == ids[i]);
|
|
p.Message = " ";
|
|
UploadPinduoduoMain.ProductArrangeTemp.Add(p);
|
|
}
|
|
return;
|
|
}
|
|
for (int i = 0; i < ids.Count; i++)
|
|
{
|
|
var p = Shop.OnOrOffProduct.Find(sp => sp.GoodsId == ids[i]);
|
|
UploadPinduoduoMain.ProductArrangeTemp.Add(p);
|
|
}
|
|
ids.Clear();
|
|
//DelGroupStatus delstatus = new DelGroupStatus();
|
|
//delstatus.shopName = Shop.ShopName;
|
|
//delstatus.count = delCount;
|
|
//UploadPinduoduoMain.delGroupStatusList.Add(delstatus);
|
|
LogSave.Add(Name, "删除成功:" + Shop.OnOrOffArrProduct[j].GoodsId);
|
|
Thread.Sleep(2000);
|
|
}
|
|
|
|
}
|
|
if (ids.Count > 0)
|
|
{
|
|
string html = DelGroupIds(ids);
|
|
Shop.ArrangeShop.delCount = delCount;
|
|
ArrangeShopTemp.Add(Shop);
|
|
if (html.Contains("删除量上限"))
|
|
{
|
|
LogSave.Add(Name, "今日删除商品已达上限:" + Shop.ShopName);
|
|
for (int i = 0; i < ids.Count; i++)
|
|
{
|
|
var p = Shop.OnOrOffArrProduct.Find(sp => sp.GoodsId == ids[i]);
|
|
p.Message = " ";
|
|
UploadPinduoduoMain.ProductArrangeTemp.Add(p);
|
|
}
|
|
return;
|
|
}
|
|
for (int i = 0; i < ids.Count; i++)
|
|
{
|
|
var p = Shop.OnOrOffArrProduct.Find(sp => sp.GoodsId == ids[i]);
|
|
UploadPinduoduoMain.ProductArrangeTemp.Add(p);
|
|
}
|
|
//DelGroupStatus delstatus = new DelGroupStatus();
|
|
//delstatus.shopName = Shop.ShopName;
|
|
//delstatus.count = delCount;
|
|
//UploadPinduoduoMain.delGroupStatusList.Add(delstatus);
|
|
}
|
|
Shop.ArrangeShop.goodStatus = "删除完成";
|
|
ArrangeShopTemp.Add(Shop);
|
|
LogSave.Add(Name, "删除完成");
|
|
}
|
|
public int resCount = 0;
|
|
public void GetRestoreProduct()
|
|
{
|
|
string url = "https://mms.pinduoduo.com/plutus/api/plutus/bin/goods/query";
|
|
string refere = "https://mms.pinduoduo.com/goods/goods_recycle";
|
|
string data = "{\"mall_id\":" + Shop.MallId + ",\"limit\":10,\"offset\":0}";
|
|
string html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data, Shop.Cookies);
|
|
int allCount = BaseRegex.GetIntJson(ref html, "total");
|
|
Shop.ClearNoVisitShop.resCount = allCount;
|
|
ClearProductGroup.ShopTemp.Add(Shop);
|
|
int page = allCount / 10 + (allCount % 10 > 0 ? 1 : 0);
|
|
// 读取商品
|
|
List<TaobaoProductBase> pList = new List<TaobaoProductBase>();
|
|
for (int i = 1; i <= page; i++)
|
|
{
|
|
if (ClearProductGroup.IsGoodCount && resCount >= ClearProductGroup.GoodCount)
|
|
break;
|
|
if (i != 1)
|
|
{
|
|
data = "{\"mall_id\":" + Shop.MallId + ",\"limit\":10,\"offset\":" + (i - 1) * 10 + "}";
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data, Shop.Cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data, Shop.Cookies);
|
|
}
|
|
var m = BaseRegex.GetMatchRegex(ref html, @"\{([\w\W]+?)\}");
|
|
for (int j = 0; m != null && j < m.Count; j++)
|
|
{
|
|
if (ClearProductGroup.IsGoodCount && resCount >= ClearProductGroup.GoodCount)
|
|
break;
|
|
string list = m[j].Groups[0].Value;
|
|
long GoodsId = BaseRegex.GetLongJson(ref list, "goods_id");
|
|
long mall_id = BaseRegex.GetLongJson(ref list, "mall_id");
|
|
int status = BaseRegex.GetIntJson(ref list, "status");
|
|
if (status == 1)//已经恢复了
|
|
continue;
|
|
|
|
TaobaoProductBase p = new TaobaoProductBase();
|
|
p.GoodsId = GoodsId;
|
|
p.ShopName = Shop.ShopName;
|
|
string title = BaseRegex.GetStringJson(ref list, "goods_name");
|
|
if (string.IsNullOrEmpty(title))
|
|
continue;
|
|
p.Titlte = GetHtml.Decode(title);
|
|
p.Message = "恢复商品失败";
|
|
pList.Add(p);
|
|
resCount++;
|
|
}
|
|
Thread.Sleep(2000 + Randomx.GetId(2000));
|
|
LogSave.Add(Name, "读取回收站产品 " + Shop.ShopName + ",分页:" + i);
|
|
}
|
|
// 还原商品
|
|
int currentResCount = 0;
|
|
for (int i = 1; i <= resCount; i++)
|
|
{
|
|
if (ClearProductGroup.IsGoodCount && currentResCount >= ClearProductGroup.GoodCount)
|
|
break;
|
|
currentResCount = i;
|
|
var p = pList[i - 1];
|
|
var mall_id = Shop.MallId;
|
|
var goods_id = p.GoodsId;
|
|
string urlx = "https://mms.pinduoduo.com/plutus/api/plutus/bin/goods/recover";
|
|
string referex = "https://mms.pinduoduo.com/goods/goods_recycle";
|
|
string datax = "{\"goods_id\":" + goods_id + ",\"mall_id\":" + mall_id
|
|
+ ",\"operator\":\"\",\"operator_id\":0,\"recover_type\":\"5\",\"recover_desc\":\"内部人员恶意删除\"}";
|
|
string htmlx = GetPostTaobaoHtml.GetJsonPost(urlx, referex, true, datax, Shop.Cookies);
|
|
var api = new PinduoduoApiGetProduct(Shop);
|
|
htmlx = api.SetOnline(goods_id, true);
|
|
if (htmlx.Contains("{\"is_success\":true"))
|
|
p.Message = "恢复商品成功";
|
|
else
|
|
LogSave.Add("恢复商品失败" + goods_id + " || " + htmlx);
|
|
UploadPinduoduoMain.RestoreProduct.Add(p);
|
|
Shop.ClearNoVisitShop.goodStatus = "还原第" + i + "个";
|
|
ClearProductGroup.ShopTemp.Add(Shop);
|
|
Thread.Sleep(2500 + Randomx.GetId(1000));
|
|
}
|
|
|
|
Shop.ClearNoVisitShop.goodStatus = "还原第" + currentResCount + "个(完成)";
|
|
ClearProductGroup.ShopTemp.Add(Shop);
|
|
LogSave.Add(Name, "还原商品完成");
|
|
}
|
|
|
|
public int totalCount = 0;
|
|
public void GetDownGood()
|
|
{
|
|
if (string.IsNullOrEmpty(PinduoduoAuth.strContent))
|
|
{
|
|
PinduoduoAuth.strContent = GetVisitProductNew.strJs;//FileBase.ReadAllText(path);
|
|
}
|
|
string NoCode = "";
|
|
string strTime = BaseClass.GetTime(DateTime.Now).ToString() + "000";
|
|
if (string.IsNullOrEmpty(NoCode))
|
|
{
|
|
string htmlx = GetHtml.Gbk("http://nano.qixiaoke.com/nano.txt");
|
|
NoCode = BaseRegex.GetMatchRegexString(ref htmlx, @"([\w\W]+?)-----");
|
|
}
|
|
string fun2 = string.Format(@"getEncode('{0}','{1}','{2}')", strTime, NoCode, "");
|
|
string codex = UploadPinduoduoSet.ExecuteScript(fun2, PinduoduoAuth.strContent);
|
|
List<long> ids = new List<long>();
|
|
for (int j = 0; j < Shop.OnOrOffArrProduct.Count; j++)
|
|
{
|
|
if (isOnline)
|
|
{
|
|
if (Shop.OnOrOffArrProduct[j].OffLine)
|
|
continue;
|
|
}
|
|
if (!isOnline)
|
|
{
|
|
if (!Shop.OnOrOffArrProduct[j].OffLine)
|
|
continue;
|
|
}
|
|
ids.Add(Shop.OnOrOffArrProduct[j].GoodsId);
|
|
totalCount++;
|
|
if (ids.Count >= 15)
|
|
{
|
|
if (isOnline)
|
|
OffShop(ids);
|
|
else
|
|
OnShop(ids);
|
|
ids.Clear();
|
|
Thread.Sleep(10 * 1000);
|
|
}
|
|
if (isOnline)
|
|
Shop.ArrangeShop.offCount = totalCount;
|
|
else
|
|
Shop.ArrangeShop.onCount = totalCount;
|
|
ArrangeShopTemp.Add(Shop);
|
|
//var api = new PinduoduoApiGetProduct(Shop);
|
|
////string urlx = "https://mms.pinduoduo.com/vodka/v2/mms/pc/onSale";
|
|
////if (isOnline)
|
|
//// urlx = "https://mms.pinduoduo.com/vodka/v2/mms/pc/offSale";
|
|
////string refere = "https://mms.pinduoduo.com/";
|
|
////string data = "{\"goodsId\":" + Shop.OnOrOffArrProduct[j].GoodsId + ",\"crawlerInfo\":\"" + codex + "\"}";
|
|
////string html = GetPostTaobaoHtml.UploadTaobaoPost(urlx, refere, true, data, Shop.Cookies);
|
|
////Shop.OnOrOffArrProduct[j].Message = "上架成功";
|
|
////LogSave.Add(Name, "上架成功:" + Shop.OnOrOffArrProduct[j].GoodsId);
|
|
////if (isOnline)
|
|
////{
|
|
//// Shop.OnOrOffArrProduct[j].Message = "下架成功";
|
|
//// LogSave.Add(Name, "下架成功:" + Shop.OnOrOffArrProduct[j].GoodsId);
|
|
////}
|
|
////UploadPinduoduoMain.ProductArrangeTemp.Add(Shop.OnOrOffArrProduct[j]);
|
|
////Thread.Sleep(5*1000);
|
|
}
|
|
if (ids.Count > 0)
|
|
{
|
|
if (isOnline)
|
|
OffShop(ids);
|
|
else
|
|
OnShop(ids);
|
|
ids.Clear();
|
|
if (isOnline)
|
|
Shop.ArrangeShop.offCount = totalCount;
|
|
else
|
|
Shop.ArrangeShop.onCount = totalCount;
|
|
ArrangeShopTemp.Add(Shop);
|
|
}
|
|
|
|
}
|
|
|
|
public void OnShop(List<long> ids)
|
|
{
|
|
if (ids.Count == 0)
|
|
return;
|
|
StringBuilder pids = new StringBuilder();
|
|
for (int i = 0; i < ids.Count; i++)
|
|
{
|
|
pids.Append("," + ids[i]);
|
|
}
|
|
string GoodsId = pids.ToString(1, pids.Length - 1);
|
|
|
|
string codex = "";
|
|
//using (IJsEngine jsEngine = new V8JsEngine())
|
|
//{
|
|
// jsEngine.Execute(GetProductOnlineClass.JsCodeGetSms);
|
|
// codex = jsEngine.CallFunction("aaa", "").ToString();
|
|
//}
|
|
string data = "{\"goodsIds\":[" + GoodsId + "],\"crawlerInfo\":\"" + codex + "\"}";
|
|
string urlx = "https://mms.pinduoduo.com/vodka/v2/mms/batchOnSale";
|
|
string refere = "https://mms.pinduoduo.com";
|
|
string html = GetPostTaobaoHtml.UploadTaobaoPost(urlx, refere, true, data, Shop.Cookies);
|
|
if (html.Contains("{\"success\":true"))
|
|
{
|
|
string[] l = GoodsId.Split(',');
|
|
foreach (string s in l)
|
|
{
|
|
var good = Shop.OnOrOffArrProduct.Find(p => p.GoodsId == long.Parse(s));
|
|
good.Message = "上架成功";
|
|
UploadPinduoduoMain.ProductArrangeTemp.Add(good);
|
|
LogSave.Add(Name, "上架产品成功:" + s);
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
public void OffShop(List<long> ids)
|
|
{
|
|
if (ids.Count == 0)
|
|
return;
|
|
StringBuilder pids = new StringBuilder();
|
|
for (int i = 0; i < ids.Count; i++)
|
|
{
|
|
pids.Append("," + ids[i]);
|
|
}
|
|
string GoodsId = pids.ToString(1, pids.Length - 1);
|
|
|
|
string codex = "";
|
|
//using (IJsEngine jsEngine = new V8JsEngine())
|
|
//{
|
|
// jsEngine.Execute(GetProductOnlineClass.JsCodeGetSms);
|
|
// codex = jsEngine.CallFunction("aaa", "").ToString();
|
|
//}
|
|
|
|
string data = "{\"goodsIds\":[" + GoodsId + "],\"crawlerInfo\":\"" + codex + "\"}";
|
|
string urlx = "https://mms.pinduoduo.com/vodka/v2/mms/batchOffSale";
|
|
string refere = "https://mms.pinduoduo.com";
|
|
string html = GetPostTaobaoHtml.UploadTaobaoPost(urlx, refere, true, data, Shop.Cookies);
|
|
if (html.Contains("{\"success\":true"))
|
|
{
|
|
string[] l = GoodsId.Split(',');
|
|
foreach (string s in l)
|
|
{
|
|
var good = Shop.OnOrOffArrProduct.Find(p => p.GoodsId == long.Parse(s));
|
|
good.Message = "下架成功";
|
|
UploadPinduoduoMain.ProductArrangeTemp.Add(good);
|
|
LogSave.Add(Name, "下架产品成功:" + s);
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
|
|
public void GetNonAdvanceOnline()
|
|
{
|
|
Shop.OnlineProduct.Clear();
|
|
int mallId = Shop.MallId;
|
|
string cookies = Shop.Cookies, shopName = Shop.ShopName;
|
|
string url = "https://mms.pinduoduo.com/vodka/v2/mms/query/display/mall/goodsList";
|
|
string refere = "https://mms.pinduoduo.com/Pdd.html";
|
|
string data = "{\"order_by\":\"id:desc\",\"is_pre_sale\":0,\"is_onsale\":" + (isOnline ? 1 : 0) + ",\"size\":100,\"page\":#page#,\"mall_id\":" + mallId + "}";
|
|
string html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
}
|
|
int allCount = BaseRegex.GetIntJson(ref html, "total");
|
|
|
|
int page = allCount / 100 + (allCount % 100 > 0 ? 1 : 0);
|
|
if (page > 1000)
|
|
{
|
|
page = 1000;
|
|
}
|
|
|
|
//PinduoduoApiGetProduct currentPDDApiGet = new PinduoduoApiGetProduct(Shop);
|
|
|
|
for (int i = 0; i < page; i++)
|
|
{
|
|
if (i != 0)
|
|
{
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
}
|
|
}
|
|
try
|
|
{
|
|
var obj = JsonConvert.DeserializeObject<GoodReturnResult>(html);
|
|
for (int j = 0; obj != null && j < obj.result.goods_list.Count; j++)
|
|
{
|
|
var goodInfo = obj.result.goods_list[j];
|
|
TaobaoProductBase p = new TaobaoProductBase();
|
|
p.GoodsId = goodInfo.id;
|
|
p.GoodsSn = long.Parse(goodInfo.goods_sn);
|
|
p.Titlte = goodInfo.goods_name;
|
|
p.CatId = goodInfo.cat_id;
|
|
p.CatId = PinduoduoCatList.GetNewCat3(p.CatId);
|
|
p.SaleCount = goodInfo.sold_quantity;
|
|
p.ShopName = Shop.ShopName;
|
|
string price = goodInfo.sku_group_price[0].ToString();
|
|
if (string.IsNullOrEmpty(price))
|
|
price = "1000";
|
|
p.Price = int.Parse(price) / 100m;
|
|
if (PinduoduoCatList.CatIds.ContainsKey(p.CatId))
|
|
{
|
|
var c = PinduoduoCatList.CatIds[p.CatId];
|
|
p.Cat1 = c.cat1;
|
|
p.Cat2 = c.cat2;
|
|
p.Cat3 = c.cat3;
|
|
p.Cat4 = c.cat4;
|
|
p.MainCatId = c.main_cat_id;
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
p.OffLine = !isOnline;
|
|
|
|
//string htmlx =currentPDDApiGet.GetProduct(p.GoodsId);
|
|
//string isPreSale = BaseRegex.GetStringJson(ref htmlx, "is_pre_sale");
|
|
//Thread.Sleep(1000);
|
|
//if (isPreSale == "1")
|
|
// continue;
|
|
//string urlx = BaseClass.NewUrl+"/goods.html?goods_id=" + p.GoodsId;
|
|
//string referex = "https://mms.pinduoduo.com/Pdd.html";
|
|
//string htmlx = GetPostTaobaoHtml.UploadTaobao(urlx, referex, true, cookies);
|
|
//string goodsName = BaseRegex.GetStringJson(ref htmlx, "goodsName");
|
|
if (ReplaceModel)
|
|
{
|
|
if (p.SaleCount > 0 && UploadPinduoduoMain.NoSold)
|
|
{
|
|
LogSave.Add(Name, "跳过销量商品 " + p.GoodsId);
|
|
continue;
|
|
}
|
|
UploadPinduoduoMain.ProductReplaceTemp.Add(p);
|
|
}
|
|
|
|
if (!Shop.OnlineProduct.Exists(pt => pt != null && pt.GoodsId == p.GoodsId))
|
|
Shop.OnlineProduct.Add(p);
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
|
|
var m = BaseRegex.GetMatchRegex(ref html, @"\{([\w\W]+?)\}");
|
|
for (int j = 0; m != null && j < m.Count; j++)
|
|
{
|
|
string list = m[j].Groups[0].Value;
|
|
TaobaoProductBase p = new TaobaoProductBase();
|
|
p.GoodsId = BaseRegex.GetLongJson(ref list, "id");
|
|
p.GoodsSn = BaseRegex.GetLongJson(ref list, "goods_sn");
|
|
p.Titlte = BaseRegex.GetStringJson(ref list, "goods_name");
|
|
p.CatId = BaseRegex.GetIntJson(ref list, "cat_id");
|
|
p.CatId = PinduoduoCatList.GetNewCat3(p.CatId);
|
|
p.SaleCount = BaseRegex.GetIntJson(ref list, "sold_quantity");
|
|
p.ShopName = Shop.ShopName;
|
|
string price = BaseRegex.GetMatchRegexString(ref list, @"""sku_group_price"":\[([\d]+),");
|
|
if (string.IsNullOrEmpty(price))
|
|
price = "1000";
|
|
p.Price = int.Parse(price) / 100m;
|
|
if (PinduoduoCatList.CatIds.ContainsKey(p.CatId))
|
|
{
|
|
var c = PinduoduoCatList.CatIds[p.CatId];
|
|
p.Cat1 = c.cat1;
|
|
p.Cat2 = c.cat2;
|
|
p.Cat3 = c.cat3;
|
|
p.Cat4 = c.cat4;
|
|
p.MainCatId = c.main_cat_id;
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
var mc = BaseRegex.GetMatchRegex(ref list, @"""is_onsale"":([\w\W]+?),");
|
|
if (mc == null || mc.Count <= 0) continue;
|
|
p.OffLine = !bool.Parse(mc[0].Groups[1].Value);
|
|
|
|
//string htmlx = currentPDDApiGet.GetProduct(p.GoodsId);
|
|
//string isPreSale = BaseRegex.GetStringJson(ref htmlx, "is_pre_sale");
|
|
//Thread.Sleep(1000);
|
|
//if (isPreSale == "1")
|
|
// continue;
|
|
|
|
if (ReplaceModel)
|
|
{
|
|
if (p.SaleCount > 0)
|
|
{
|
|
LogSave.Add(Name, "跳过销量商品 " + p.GoodsId);
|
|
continue;
|
|
}
|
|
UploadPinduoduoMain.ProductReplaceTemp.Add(p);
|
|
}
|
|
if (!Shop.OnlineProduct.Exists(pt => pt != null && pt.GoodsId == p.GoodsId))
|
|
Shop.OnlineProduct.Add(p);
|
|
}
|
|
}
|
|
Thread.Sleep(300);
|
|
LogSave.Add(Name, "获取在线产品 " + shopName + ",分页:" + i);
|
|
}
|
|
LogSave.Add(Name, "获取完成");
|
|
}
|
|
|
|
public void GetAllShopOnline()
|
|
{
|
|
Shop.OnlineProduct.Clear();
|
|
int mallId = Shop.MallId;
|
|
string cookies = Shop.Cookies, shopName = Shop.ShopName;
|
|
string url = "https://mms.pinduoduo.com/vodka/v2/mms/query/display/mall/goodsList";
|
|
string refere = "https://mms.pinduoduo.com/Pdd.html";
|
|
string data = "{\"order_by\":\"id:desc\",\"is_pre_sale\":0,\"is_onsale\":" + (isOnline ? 1 : 0) + ",\"size\":100,\"page\":#page#,\"mall_id\":" + mallId + "}";
|
|
string html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data.Replace("#page#", "1"), cookies);
|
|
}
|
|
int allCount = BaseRegex.GetIntJson(ref html, "total");
|
|
|
|
int page = allCount / 100 + (allCount % 100 > 0 ? 1 : 0);
|
|
if (page > 1000)
|
|
{
|
|
page = 1000;
|
|
}
|
|
for (int i = 0; i < page; i++)
|
|
{
|
|
if (i != 0)
|
|
{
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
}
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("total"))
|
|
{
|
|
Thread.Sleep(30 * 1000);
|
|
html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data.Replace("#page#", (i + 1).ToString()), cookies);
|
|
}
|
|
}
|
|
//try
|
|
//{
|
|
// var obj = JsonConvert.DeserializeObject<GoodReturnResult>(html);
|
|
// for (int j = 0; obj != null && j < obj.result.goods_list.Count; j++)
|
|
// {
|
|
// var goodInfo = obj.result.goods_list[j];
|
|
// TaobaoProductBase p = new TaobaoProductBase();
|
|
// p.GoodsId = goodInfo.id;
|
|
// p.GoodsSn = long.Parse(goodInfo.goods_sn);
|
|
// p.Titlte = goodInfo.goods_name;
|
|
// p.CatId = goodInfo.cat_id;
|
|
// p.CatId = PinduoduoCatList.GetNewCat3(p.CatId);
|
|
// p.SaleCount = goodInfo.sold_quantity;
|
|
// p.ShopName = Shop.ShopName;
|
|
// string price = goodInfo.sku_group_price[0].ToString();
|
|
// if (string.IsNullOrEmpty(price))
|
|
// price = "1000";
|
|
// p.Price = int.Parse(price) / 100m;
|
|
// if (PinduoduoCatList.CatIds.ContainsKey(p.CatId))
|
|
// {
|
|
// var c = PinduoduoCatList.CatIds[p.CatId];
|
|
// p.Cat1 = c.cat1;
|
|
// p.Cat2 = c.cat2;
|
|
// p.Cat3 = c.cat3;
|
|
// p.Cat4 = c.cat4;
|
|
// p.MainCatId = c.main_cat_id;
|
|
// }
|
|
// else
|
|
// {
|
|
|
|
// }
|
|
// p.OffLine = !isOnline;
|
|
// UploadPinduoduoMain.ProductReplaceTemp.Add(p);
|
|
// if (!Shop.OnlineProduct.Exists(pt => pt != null && pt.GoodsId == p.GoodsId))
|
|
// Shop.OnlineProduct.Add(p);
|
|
// }
|
|
//}
|
|
//catch
|
|
//{
|
|
|
|
var m = BaseRegex.GetMatchRegex(ref html, @"\{([\w\W]+?)\}");
|
|
for (int j = 0; m != null && j < m.Count; j++)
|
|
{
|
|
string list = m[j].Groups[0].Value;
|
|
TaobaoProductBase p = new TaobaoProductBase();
|
|
p.GoodsId = BaseRegex.GetLongJson(ref list, "id");
|
|
p.GoodsSn = BaseRegex.GetLongJson(ref list, "goods_sn");
|
|
p.Titlte = BaseRegex.GetStringJson(ref list, "goods_name");
|
|
p.CatId = BaseRegex.GetIntJson(ref list, "cat_id");
|
|
p.CatId = PinduoduoCatList.GetNewCat3(p.CatId);
|
|
p.SaleCount = BaseRegex.GetIntJson(ref list, "sold_quantity");
|
|
p.ShopName = Shop.ShopName;
|
|
string price = BaseRegex.GetMatchRegexString(ref list, @"""sku_group_price"":\[([\d]+),");
|
|
if (string.IsNullOrEmpty(price))
|
|
price = "1000";
|
|
p.Price = int.Parse(price) / 100m;
|
|
|
|
if (!Shop.OnlineProduct.Exists(pt => pt != null && pt.GoodsId == p.GoodsId))
|
|
Shop.OnlineProduct.Add(p);
|
|
}
|
|
//}
|
|
Thread.Sleep(1000);
|
|
LogSave.Add(Name, "获取在线产品 " + shopName + ",分页:" + i);
|
|
}
|
|
LogSave.Add(Name, "获取完成");
|
|
UploadShopControl.endAdvanceTime = endAdvanceTime;
|
|
new UploadShopControl(Name, Shop, true).SetAdvanceSale();
|
|
}
|
|
|
|
#region 获取codex
|
|
public static string JsCodeGetSms = @"if (typeof Array.prototype.map != ""function"") {
|
|
Array.prototype.map = function (fn, context) {
|
|
var arr = [];
|
|
if (typeof fn === ""function"") {
|
|
for (var k = 0, length = this.length; k < length; k++) {
|
|
arr.push(fn.call(context, this[k], k, this));
|
|
}
|
|
}
|
|
return arr;
|
|
};
|
|
}
|
|
T=""init"";N=""data"";E=""forEach"";
|
|
var n_0=function(){
|
|
var t={};
|
|
var a = ""function"" == typeof Symbol && ""symbol"" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
}
|
|
: function(e) {
|
|
return e && ""function"" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? ""symbol"" : typeof e
|
|
}
|
|
, r = ""undefined"" != typeof Uint8Array && ""undefined"" != typeof Uint16Array && ""undefined"" != typeof Int32Array;
|
|
function i(e, t) {
|
|
return Object.prototype.hasOwnProperty.call(e, t)
|
|
}
|
|
t.assign = function(e) {
|
|
for (var t = Array.prototype.slice.call(arguments, 1); t.length; ) {
|
|
var n = t.shift();
|
|
if (n) {
|
|
if (""object"" !== (void 0 === n ? ""undefined"" : a(n)))
|
|
throw new TypeError(n + ""must be non-object"");
|
|
for (var r in n)
|
|
i(n, r) && (e[r] = n[r])
|
|
}
|
|
}
|
|
return e
|
|
}
|
|
,
|
|
t.shrinkBuf = function(e, t) {
|
|
return e.length === t ? e : e.subarray ? e.subarray(0, t) : (e.length = t,
|
|
e)
|
|
}
|
|
;
|
|
var o = {
|
|
arraySet: function(e, t, n, a, r) {
|
|
if (t.subarray && e.subarray)
|
|
e.set(t.subarray(n, n + a), r);
|
|
else
|
|
for (var i = 0; i < a; i++)
|
|
e[r + i] = t[n + i]
|
|
},
|
|
flattenChunks: function(e) {
|
|
var t, n, a, r, i, o;
|
|
for (a = 0,
|
|
t = 0,
|
|
n = e.length; t < n; t++)
|
|
a += e[t].length;
|
|
for (o = new Uint8Array(a),
|
|
r = 0,
|
|
t = 0,
|
|
n = e.length; t < n; t++)
|
|
i = e[t],
|
|
o.set(i, r),
|
|
r += i.length;
|
|
return o
|
|
}
|
|
}
|
|
, s = {
|
|
arraySet: function(e, t, n, a, r) {
|
|
for (var i = 0; i < a; i++)
|
|
e[r + i] = t[n + i]
|
|
},
|
|
flattenChunks: function(e) {
|
|
return [].concat.apply([], e)
|
|
}
|
|
};
|
|
t.setTyped = function(e) {
|
|
e ? (t.Buf8 = Uint8Array,
|
|
t.Buf16 = Uint16Array,
|
|
t.Buf32 = Int32Array,
|
|
t.assign(t, o)) : (t.Buf8 = Array,
|
|
t.Buf16 = Array,
|
|
t.Buf32 = Array,
|
|
t.assign(t, s))
|
|
}
|
|
,
|
|
t.setTyped(r)
|
|
return t
|
|
}()
|
|
var n_11=function(){
|
|
var a = n_0;
|
|
function r(e) {
|
|
for (var t = e.length; --t >= 0; )
|
|
e[t] = 0
|
|
}
|
|
var i = 0
|
|
, o = 256
|
|
, s = o + 1 + 29
|
|
, c = 30
|
|
, l = 19
|
|
, u = 2 * s + 1
|
|
, d = 15
|
|
, p = 16
|
|
, h = 256
|
|
, f = 16
|
|
, m = 17
|
|
, g = 18
|
|
, v = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0]
|
|
, y = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13]
|
|
, _ = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7]
|
|
, b = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]
|
|
, w = new Array(2 * (s + 2));
|
|
r(w);
|
|
var S = new Array(2 * c);
|
|
r(S);
|
|
var C = new Array(512);
|
|
r(C);
|
|
var A = new Array(256);
|
|
r(A);
|
|
var I = new Array(29);
|
|
r(I);
|
|
var E, k, T, N = new Array(c);
|
|
function D(e, t, n, a, r) {
|
|
this.static_tree = e,
|
|
this.extra_bits = t,
|
|
this.extra_base = n,
|
|
this.elems = a,
|
|
this.max_length = r,
|
|
this.has_stree = e && e.length
|
|
}
|
|
function x(e, t) {
|
|
this.dyn_tree = e,
|
|
this.max_code = 0,
|
|
this.stat_desc = t
|
|
}
|
|
function L(e) {
|
|
return e < 256 ? C[e] : C[256 + (e >>> 7)]
|
|
}
|
|
function R(e, t) {
|
|
e.pending_buf[e.pending++] = 255 & t,
|
|
e.pending_buf[e.pending++] = t >>> 8 & 255
|
|
}
|
|
function P(e, t, n) {
|
|
e.bi_valid > p - n ? (e.bi_buf |= t << e.bi_valid & 65535,
|
|
R(e, e.bi_buf),
|
|
e.bi_buf = t >> p - e.bi_valid,
|
|
e.bi_valid += n - p) : (e.bi_buf |= t << e.bi_valid & 65535,
|
|
e.bi_valid += n)
|
|
}
|
|
function O(e, t, n) {
|
|
P(e, n[2 * t], n[2 * t + 1])
|
|
}
|
|
function U(e, t) {
|
|
var n = 0;
|
|
do {
|
|
n |= 1 & e,
|
|
e >>>= 1,
|
|
n <<= 1
|
|
} while (--t > 0);return n >>> 1
|
|
}
|
|
function M(e, t, n) {
|
|
var a, r, i = new Array(d + 1), o = 0;
|
|
for (a = 1; a <= d; a++)
|
|
i[a] = o = o + n[a - 1] << 1;
|
|
for (r = 0; r <= t; r++) {
|
|
var s = e[2 * r + 1];
|
|
0 !== s && (e[2 * r] = U(i[s]++, s))
|
|
}
|
|
}
|
|
function B(e) {
|
|
var t;
|
|
for (t = 0; t < s; t++)
|
|
e.dyn_ltree[2 * t] = 0;
|
|
for (t = 0; t < c; t++)
|
|
e.dyn_dtree[2 * t] = 0;
|
|
for (t = 0; t < l; t++)
|
|
e.bl_tree[2 * t] = 0;
|
|
e.dyn_ltree[2 * h] = 1,
|
|
e.opt_len = e.static_len = 0,
|
|
e.last_lit = e.matches = 0
|
|
}
|
|
function W(e) {
|
|
e.bi_valid > 8 ? R(e, e.bi_buf) : e.bi_valid > 0 && (e.pending_buf[e.pending++] = e.bi_buf),
|
|
e.bi_buf = 0,
|
|
e.bi_valid = 0
|
|
}
|
|
function V(e, t, n, a) {
|
|
var r = 2 * t
|
|
, i = 2 * n;
|
|
return e[r] < e[i] || e[r] === e[i] && a[t] <= a[n]
|
|
}
|
|
function Q(e, t, n) {
|
|
for (var a = e.heap[n], r = n << 1; r <= e.heap_len && (r < e.heap_len && V(t, e.heap[r + 1], e.heap[r], e.depth) && r++,
|
|
!V(t, a, e.heap[r], e.depth)); )
|
|
e.heap[n] = e.heap[r],
|
|
n = r,
|
|
r <<= 1;
|
|
e.heap[n] = a
|
|
}
|
|
function q(e, t, n) {
|
|
var a, r, i, s, c = 0;
|
|
if (0 !== e.last_lit)
|
|
do {
|
|
a = e.pending_buf[e.d_buf + 2 * c] << 8 | e.pending_buf[e.d_buf + 2 * c + 1],
|
|
r = e.pending_buf[e.l_buf + c],
|
|
c++,
|
|
0 === a ? O(e, r, t) : (O(e, (i = A[r]) + o + 1, t),
|
|
0 !== (s = v[i]) && P(e, r -= I[i], s),
|
|
O(e, i = L(--a), n),
|
|
0 !== (s = y[i]) && P(e, a -= N[i], s))
|
|
} while (c < e.last_lit);O(e, h, t)
|
|
}
|
|
function F(e, t) {
|
|
var n, a, r, i = t.dyn_tree, o = t.stat_desc.static_tree, s = t.stat_desc.has_stree, c = t.stat_desc.elems, l = -1;
|
|
for (e.heap_len = 0,
|
|
e.heap_max = u,
|
|
n = 0; n < c; n++)
|
|
0 !== i[2 * n] ? (e.heap[++e.heap_len] = l = n,
|
|
e.depth[n] = 0) : i[2 * n + 1] = 0;
|
|
for (; e.heap_len < 2; )
|
|
i[2 * (r = e.heap[++e.heap_len] = l < 2 ? ++l : 0)] = 1,
|
|
e.depth[r] = 0,
|
|
e.opt_len--,
|
|
s && (e.static_len -= o[2 * r + 1]);
|
|
for (t.max_code = l,
|
|
n = e.heap_len >> 1; n >= 1; n--)
|
|
Q(e, i, n);
|
|
r = c;
|
|
do {
|
|
n = e.heap[1],
|
|
e.heap[1] = e.heap[e.heap_len--],
|
|
Q(e, i, 1),
|
|
a = e.heap[1],
|
|
e.heap[--e.heap_max] = n,
|
|
e.heap[--e.heap_max] = a,
|
|
i[2 * r] = i[2 * n] + i[2 * a],
|
|
e.depth[r] = (e.depth[n] >= e.depth[a] ? e.depth[n] : e.depth[a]) + 1,
|
|
i[2 * n + 1] = i[2 * a + 1] = r,
|
|
e.heap[1] = r++,
|
|
Q(e, i, 1)
|
|
} while (e.heap_len >= 2);e.heap[--e.heap_max] = e.heap[1],
|
|
function(e, t) {
|
|
var n, a, r, i, o, s, c = t.dyn_tree, l = t.max_code, p = t.stat_desc.static_tree, h = t.stat_desc.has_stree, f = t.stat_desc.extra_bits, m = t.stat_desc.extra_base, g = t.stat_desc.max_length, v = 0;
|
|
for (i = 0; i <= d; i++)
|
|
e.bl_count[i] = 0;
|
|
for (c[2 * e.heap[e.heap_max] + 1] = 0,
|
|
n = e.heap_max + 1; n < u; n++)
|
|
(i = c[2 * c[2 * (a = e.heap[n]) + 1] + 1] + 1) > g && (i = g,
|
|
v++),
|
|
c[2 * a + 1] = i,
|
|
a > l || (e.bl_count[i]++,
|
|
o = 0,
|
|
a >= m && (o = f[a - m]),
|
|
s = c[2 * a],
|
|
e.opt_len += s * (i + o),
|
|
h && (e.static_len += s * (p[2 * a + 1] + o)));
|
|
if (0 !== v) {
|
|
do {
|
|
for (i = g - 1; 0 === e.bl_count[i]; )
|
|
i--;
|
|
e.bl_count[i]--,
|
|
e.bl_count[i + 1] += 2,
|
|
e.bl_count[g]--,
|
|
v -= 2
|
|
} while (v > 0);for (i = g; 0 !== i; i--)
|
|
for (a = e.bl_count[i]; 0 !== a; )
|
|
(r = e.heap[--n]) > l || (c[2 * r + 1] !== i && (e.opt_len += (i - c[2 * r + 1]) * c[2 * r],
|
|
c[2 * r + 1] = i),
|
|
a--)
|
|
}
|
|
}(e, t),
|
|
M(i, l, e.bl_count)
|
|
}
|
|
function G(e, t, n) {
|
|
var a, r, i = -1, o = t[1], s = 0, c = 7, l = 4;
|
|
for (0 === o && (c = 138,
|
|
l = 3),
|
|
t[2 * (n + 1) + 1] = 65535,
|
|
a = 0; a <= n; a++)
|
|
r = o,
|
|
o = t[2 * (a + 1) + 1],
|
|
++s < c && r === o || (s < l ? e.bl_tree[2 * r] += s : 0 !== r ? (r !== i && e.bl_tree[2 * r]++,
|
|
e.bl_tree[2 * f]++) : s <= 10 ? e.bl_tree[2 * m]++ : e.bl_tree[2 * g]++,
|
|
s = 0,
|
|
i = r,
|
|
0 === o ? (c = 138,
|
|
l = 3) : r === o ? (c = 6,
|
|
l = 3) : (c = 7,
|
|
l = 4))
|
|
}
|
|
function H(e, t, n) {
|
|
var a, r, i = -1, o = t[1], s = 0, c = 7, l = 4;
|
|
for (0 === o && (c = 138,
|
|
l = 3),
|
|
a = 0; a <= n; a++)
|
|
if (r = o,
|
|
o = t[2 * (a + 1) + 1],
|
|
!(++s < c && r === o)) {
|
|
if (s < l){
|
|
do {
|
|
O(e, r, e.bl_tree)
|
|
} while (0 != --s);
|
|
}else{
|
|
0 !== r ? (r !== i && (O(e, r, e.bl_tree),
|
|
s--),
|
|
O(e, f, e.bl_tree),
|
|
P(e, s - 3, 2)) : s <= 10 ? (O(e, m, e.bl_tree),
|
|
P(e, s - 3, 3)) : (O(e, g, e.bl_tree),
|
|
P(e, s - 11, 7));
|
|
}
|
|
s = 0,
|
|
i = r,
|
|
0 === o ? (c = 138,
|
|
l = 3) : r === o ? (c = 6,
|
|
l = 3) : (c = 7,
|
|
l = 4)
|
|
}
|
|
}
|
|
r(N);
|
|
var j = !1;
|
|
function K(e, t, n, r) {
|
|
P(e, (i << 1) + (r ? 1 : 0), 3),
|
|
function(e, t, n, r) {
|
|
W(e),
|
|
R(e, n),
|
|
R(e, ~n),
|
|
a.arraySet(e.pending_buf, e.window, t, n, e.pending),
|
|
e.pending += n
|
|
}(e, t, n)
|
|
}
|
|
var t={};
|
|
t._tr_init = function(e) {
|
|
j || (function() {
|
|
var e, t, n, a, r, i = new Array(d + 1);
|
|
for (n = 0,
|
|
a = 0; a < 28; a++)
|
|
for (I[a] = n,
|
|
e = 0; e < 1 << v[a]; e++)
|
|
A[n++] = a;
|
|
for (A[n - 1] = a,
|
|
r = 0,
|
|
a = 0; a < 16; a++)
|
|
for (N[a] = r,
|
|
e = 0; e < 1 << y[a]; e++)
|
|
C[r++] = a;
|
|
for (r >>= 7; a < c; a++)
|
|
for (N[a] = r << 7,
|
|
e = 0; e < 1 << y[a] - 7; e++)
|
|
C[256 + r++] = a;
|
|
for (t = 0; t <= d; t++)
|
|
i[t] = 0;
|
|
for (e = 0; e <= 143; )
|
|
w[2 * e + 1] = 8,
|
|
e++,
|
|
i[8]++;
|
|
for (; e <= 255; )
|
|
w[2 * e + 1] = 9,
|
|
e++,
|
|
i[9]++;
|
|
for (; e <= 279; )
|
|
w[2 * e + 1] = 7,
|
|
e++,
|
|
i[7]++;
|
|
for (; e <= 287; )
|
|
w[2 * e + 1] = 8,
|
|
e++,
|
|
i[8]++;
|
|
for (M(w, s + 1, i),
|
|
e = 0; e < c; e++)
|
|
S[2 * e + 1] = 5,
|
|
S[2 * e] = U(e, 5);
|
|
E = new D(w,v,o + 1,s,d),
|
|
k = new D(S,y,0,c,d),
|
|
T = new D(new Array(0),_,0,l,7)
|
|
}(),
|
|
j = !0),
|
|
e.l_desc = new x(e.dyn_ltree,E),
|
|
e.d_desc = new x(e.dyn_dtree,k),
|
|
e.bl_desc = new x(e.bl_tree,T),
|
|
e.bi_buf = 0,
|
|
e.bi_valid = 0,
|
|
B(e)
|
|
}
|
|
,
|
|
t._tr_stored_block = K,
|
|
t._tr_flush_block = function(e, t, n, a) {
|
|
var r, i, s = 0;
|
|
e.level > 0 ? (2 === e.strm.data_type && (e.strm.data_type = function(e) {
|
|
var t, n = 4093624447;
|
|
for (t = 0; t <= 31; t++,
|
|
n >>>= 1)
|
|
if (1 & n && 0 !== e.dyn_ltree[2 * t])
|
|
return 0;
|
|
if (0 !== e.dyn_ltree[18] || 0 !== e.dyn_ltree[20] || 0 !== e.dyn_ltree[26])
|
|
return 1;
|
|
for (t = 32; t < o; t++)
|
|
if (0 !== e.dyn_ltree[2 * t])
|
|
return 1;
|
|
return 0
|
|
}(e)),
|
|
F(e, e.l_desc),
|
|
F(e, e.d_desc),
|
|
s = function(e) {
|
|
var t;
|
|
for (G(e, e.dyn_ltree, e.l_desc.max_code),
|
|
G(e, e.dyn_dtree, e.d_desc.max_code),
|
|
F(e, e.bl_desc),
|
|
t = l - 1; t >= 3 && 0 === e.bl_tree[2 * b[t] + 1]; t--)
|
|
;
|
|
return e.opt_len += 3 * (t + 1) + 5 + 5 + 4,
|
|
t
|
|
}(e),
|
|
r = e.opt_len + 3 + 7 >>> 3,
|
|
(i = e.static_len + 3 + 7 >>> 3) <= r && (r = i)) : r = i = n + 5,
|
|
n + 4 <= r && -1 !== t ? K(e, t, n, a) : 4 === e.strategy || i === r ? (P(e, 2 + (a ? 1 : 0), 3),
|
|
q(e, w, S)) : (P(e, 4 + (a ? 1 : 0), 3),
|
|
function(e, t, n, a) {
|
|
var r;
|
|
for (P(e, t - 257, 5),
|
|
P(e, n - 1, 5),
|
|
P(e, a - 4, 4),
|
|
r = 0; r < a; r++)
|
|
P(e, e.bl_tree[2 * b[r] + 1], 3);
|
|
H(e, e.dyn_ltree, t - 1),
|
|
H(e, e.dyn_dtree, n - 1)
|
|
}(e, e.l_desc.max_code + 1, e.d_desc.max_code + 1, s + 1),
|
|
q(e, e.dyn_ltree, e.dyn_dtree)),
|
|
B(e),
|
|
a && W(e)
|
|
}
|
|
,
|
|
t._tr_tally = function(e, t, n) {
|
|
return e.pending_buf[e.d_buf + 2 * e.last_lit] = t >>> 8 & 255,
|
|
e.pending_buf[e.d_buf + 2 * e.last_lit + 1] = 255 & t,
|
|
e.pending_buf[e.l_buf + e.last_lit] = 255 & n,
|
|
e.last_lit++,
|
|
0 === t ? e.dyn_ltree[2 * n]++ : (e.matches++,
|
|
t--,
|
|
e.dyn_ltree[2 * (A[n] + o + 1)]++,
|
|
e.dyn_dtree[2 * L(t)]++),
|
|
e.last_lit === e.lit_bufsize - 1
|
|
}
|
|
,
|
|
t._tr_align = function(e) {
|
|
P(e, 2, 3),
|
|
O(e, h, w),
|
|
function(e) {
|
|
16 === e.bi_valid ? (R(e, e.bi_buf),
|
|
e.bi_buf = 0,
|
|
e.bi_valid = 0) : e.bi_valid >= 8 && (e.pending_buf[e.pending++] = 255 & e.bi_buf,
|
|
e.bi_buf >>= 8,
|
|
e.bi_valid -= 8)
|
|
}(e)
|
|
}
|
|
|
|
return t
|
|
}()
|
|
var n_3=function(){
|
|
return {""0"":"""",""1"":""stream end"",""2"":""need dictionary"",""-1"":""file error"",""-2"":""stream error"",""-3"":""data error"",""-4"":""insufficient memory"",""-5"":""buffer error"",""-6"":""incompatible version""}
|
|
}()
|
|
var n_12=function(e, t, n, a){
|
|
|
|
for (var r = 65535 & e | 0, i = e >>> 16 & 65535 | 0, o = 0; 0 !== n; ) {
|
|
n -= o = n > 2e3 ? 2e3 : n;
|
|
do {
|
|
i = i + (r = r + t[a++] | 0) | 0
|
|
} while (--o);r %= 65521,
|
|
i %= 65521
|
|
}
|
|
return r | i << 16 | 0
|
|
|
|
}
|
|
|
|
var n_13=function(e,t,n,r){
|
|
var i=a,o=r+n;e^=-1;for(var s=r;s<o;s++)e=e>>>8^i[255&(e^t[s])];return-1^e
|
|
}
|
|
var n_10=function(){
|
|
var a, r = n_0, i = n_11, o = n_12, s = n_13, c = n_3, l = 0, u = 4, d = 0, p = -2, h = -1, f = 1, m = 4, g = 2, v = 8, y = 9, _ = 286, b = 30, w = 19, S = 2 * _ + 1, C = 15, A = 3, I = 258, E = I + A + 1, k = 42, T = 103, N = 113, D = 666, x = 1, L = 2, R = 3, P = 4;
|
|
function O(e, t) {
|
|
return e.msg = c[t],
|
|
t
|
|
}
|
|
function U(e) {
|
|
return (e << 1) - (e > 4 ? 9 : 0)
|
|
}
|
|
function M(e) {
|
|
for (var t = e.length; --t >= 0; )
|
|
e[t] = 0
|
|
}
|
|
function B(e) {
|
|
var t = e.state
|
|
, n = t.pending;
|
|
n > e.avail_out && (n = e.avail_out),
|
|
0 !== n && (r.arraySet(e.output, t.pending_buf, t.pending_out, n, e.next_out),
|
|
e.next_out += n,
|
|
t.pending_out += n,
|
|
e.total_out += n,
|
|
e.avail_out -= n,
|
|
t.pending -= n,
|
|
0 === t.pending && (t.pending_out = 0))
|
|
}
|
|
function W(e, t) {
|
|
i._tr_flush_block(e, e.block_start >= 0 ? e.block_start : -1, e.strstart - e.block_start, t),
|
|
e.block_start = e.strstart,
|
|
B(e.strm)
|
|
}
|
|
function V(e, t) {
|
|
e.pending_buf[e.pending++] = t
|
|
}
|
|
function Q(e, t) {
|
|
e.pending_buf[e.pending++] = t >>> 8 & 255,
|
|
e.pending_buf[e.pending++] = 255 & t
|
|
}
|
|
function q(e, t) {
|
|
var n, a, r = e.max_chain_length, i = e.strstart, o = e.prev_length, s = e.nice_match, c = e.strstart > e.w_size - E ? e.strstart - (e.w_size - E) : 0, l = e.window, u = e.w_mask, d = e.prev, p = e.strstart + I, h = l[i + o - 1], f = l[i + o];
|
|
e.prev_length >= e.good_match && (r >>= 2),
|
|
s > e.lookahead && (s = e.lookahead);
|
|
do {
|
|
if (l[(n = t) + o] === f && l[n + o - 1] === h && l[n] === l[i] && l[++n] === l[i + 1]) {
|
|
i += 2,
|
|
n++;
|
|
do {} while (l[++i] === l[++n] && l[++i] === l[++n] && l[++i] === l[++n] && l[++i] === l[++n] && l[++i] === l[++n] && l[++i] === l[++n] && l[++i] === l[++n] && l[++i] === l[++n] && i < p);if (a = I - (p - i),
|
|
i = p - I,
|
|
a > o) {
|
|
if (e.match_start = t,
|
|
o = a,
|
|
a >= s)
|
|
break;
|
|
h = l[i + o - 1],
|
|
f = l[i + o]
|
|
}
|
|
}
|
|
} while ((t = d[t & u]) > c && 0 != --r);return o <= e.lookahead ? o : e.lookahead
|
|
}
|
|
function F(e) {
|
|
var t, n, a, i, c, l, u, d, p, h, f = e.w_size;
|
|
do {
|
|
if (i = e.window_size - e.lookahead - e.strstart,
|
|
e.strstart >= f + (f - E)) {
|
|
r.arraySet(e.window, e.window, f, f, 0),
|
|
e.match_start -= f,
|
|
e.strstart -= f,
|
|
e.block_start -= f,
|
|
t = n = e.hash_size;
|
|
do {
|
|
a = e.head[--t],
|
|
e.head[t] = a >= f ? a - f : 0
|
|
} while (--n);t = n = f;
|
|
do {
|
|
a = e.prev[--t],
|
|
e.prev[t] = a >= f ? a - f : 0
|
|
} while (--n);i += f
|
|
}
|
|
if (0 === e.strm.avail_in)
|
|
break;
|
|
if (l = e.strm,
|
|
u = e.window,
|
|
d = e.strstart + e.lookahead,
|
|
p = i,
|
|
h = void 0,
|
|
(h = l.avail_in) > p && (h = p),
|
|
n = 0 === h ? 0 : (l.avail_in -= h,
|
|
r.arraySet(u, l.input, l.next_in, h, d),
|
|
1 === l.state.wrap ? l.adler = o(l.adler, u, h, d) : 2 === l.state.wrap && (l.adler = s(l.adler, u, h, d)),
|
|
l.next_in += h,
|
|
l.total_in += h,
|
|
h),
|
|
e.lookahead += n,
|
|
e.lookahead + e.insert >= A)
|
|
for (c = e.strstart - e.insert,
|
|
e.ins_h = e.window[c],
|
|
e.ins_h = (e.ins_h << e.hash_shift ^ e.window[c + 1]) & e.hash_mask; e.insert && (e.ins_h = (e.ins_h << e.hash_shift ^ e.window[c + A - 1]) & e.hash_mask,
|
|
e.prev[c & e.w_mask] = e.head[e.ins_h],
|
|
e.head[e.ins_h] = c,
|
|
c++,
|
|
e.insert--,
|
|
!(e.lookahead + e.insert < A)); )
|
|
;
|
|
} while (e.lookahead < E && 0 !== e.strm.avail_in)
|
|
}
|
|
function G(e, t) {
|
|
for (var n, a; ; ) {
|
|
if (e.lookahead < E) {
|
|
if (F(e),
|
|
e.lookahead < E && t === l)
|
|
return x;
|
|
if (0 === e.lookahead)
|
|
break
|
|
}
|
|
if (n = 0,
|
|
e.lookahead >= A && (e.ins_h = (e.ins_h << e.hash_shift ^ e.window[e.strstart + A - 1]) & e.hash_mask,
|
|
n = e.prev[e.strstart & e.w_mask] = e.head[e.ins_h],
|
|
e.head[e.ins_h] = e.strstart),
|
|
0 !== n && e.strstart - n <= e.w_size - E && (e.match_length = q(e, n)),
|
|
e.match_length >= A)
|
|
if (a = i._tr_tally(e, e.strstart - e.match_start, e.match_length - A),
|
|
e.lookahead -= e.match_length,
|
|
e.match_length <= e.max_lazy_match && e.lookahead >= A) {
|
|
e.match_length--;
|
|
do {
|
|
e.strstart++,
|
|
e.ins_h = (e.ins_h << e.hash_shift ^ e.window[e.strstart + A - 1]) & e.hash_mask,
|
|
n = e.prev[e.strstart & e.w_mask] = e.head[e.ins_h],
|
|
e.head[e.ins_h] = e.strstart
|
|
} while (0 != --e.match_length);e.strstart++
|
|
} else
|
|
e.strstart += e.match_length,
|
|
e.match_length = 0,
|
|
e.ins_h = e.window[e.strstart],
|
|
e.ins_h = (e.ins_h << e.hash_shift ^ e.window[e.strstart + 1]) & e.hash_mask;
|
|
else
|
|
a = i._tr_tally(e, 0, e.window[e.strstart]),
|
|
e.lookahead--,
|
|
e.strstart++;
|
|
if (a && (W(e, !1),
|
|
0 === e.strm.avail_out))
|
|
return x
|
|
}
|
|
return e.insert = e.strstart < A - 1 ? e.strstart : A - 1,
|
|
t === u ? (W(e, !0),
|
|
0 === e.strm.avail_out ? R : P) : e.last_lit && (W(e, !1),
|
|
0 === e.strm.avail_out) ? x : L
|
|
}
|
|
function H(e, t) {
|
|
for (var n, a, r; ; ) {
|
|
if (e.lookahead < E) {
|
|
if (F(e),
|
|
e.lookahead < E && t === l)
|
|
return x;
|
|
if (0 === e.lookahead)
|
|
break
|
|
}
|
|
if (n = 0,
|
|
e.lookahead >= A && (e.ins_h = (e.ins_h << e.hash_shift ^ e.window[e.strstart + A - 1]) & e.hash_mask,
|
|
n = e.prev[e.strstart & e.w_mask] = e.head[e.ins_h],
|
|
e.head[e.ins_h] = e.strstart),
|
|
e.prev_length = e.match_length,
|
|
e.prev_match = e.match_start,
|
|
e.match_length = A - 1,
|
|
0 !== n && e.prev_length < e.max_lazy_match && e.strstart - n <= e.w_size - E && (e.match_length = q(e, n),
|
|
e.match_length <= 5 && (e.strategy === f || e.match_length === A && e.strstart - e.match_start > 4096) && (e.match_length = A - 1)),
|
|
e.prev_length >= A && e.match_length <= e.prev_length) {
|
|
r = e.strstart + e.lookahead - A,
|
|
a = i._tr_tally(e, e.strstart - 1 - e.prev_match, e.prev_length - A),
|
|
e.lookahead -= e.prev_length - 1,
|
|
e.prev_length -= 2;
|
|
do {
|
|
++e.strstart <= r && (e.ins_h = (e.ins_h << e.hash_shift ^ e.window[e.strstart + A - 1]) & e.hash_mask,
|
|
n = e.prev[e.strstart & e.w_mask] = e.head[e.ins_h],
|
|
e.head[e.ins_h] = e.strstart)
|
|
} while (0 != --e.prev_length);if (e.match_available = 0,
|
|
e.match_length = A - 1,
|
|
e.strstart++,
|
|
a && (W(e, !1),
|
|
0 === e.strm.avail_out))
|
|
return x
|
|
} else if (e.match_available) {
|
|
if ((a = i._tr_tally(e, 0, e.window[e.strstart - 1])) && W(e, !1),
|
|
e.strstart++,
|
|
e.lookahead--,
|
|
0 === e.strm.avail_out)
|
|
return x
|
|
} else
|
|
e.match_available = 1,
|
|
e.strstart++,
|
|
e.lookahead--
|
|
}
|
|
return e.match_available && (a = i._tr_tally(e, 0, e.window[e.strstart - 1]),
|
|
e.match_available = 0),
|
|
e.insert = e.strstart < A - 1 ? e.strstart : A - 1,
|
|
t === u ? (W(e, !0),
|
|
0 === e.strm.avail_out ? R : P) : e.last_lit && (W(e, !1),
|
|
0 === e.strm.avail_out) ? x : L
|
|
}
|
|
function j(e, t, n, a, r) {
|
|
this.good_length = e,
|
|
this.max_lazy = t,
|
|
this.nice_length = n,
|
|
this.max_chain = a,
|
|
this.func = r
|
|
}
|
|
function K(e) {
|
|
var t;
|
|
return e && e.state ? (e.total_in = e.total_out = 0,
|
|
e.data_type = g,
|
|
(t = e.state).pending = 0,
|
|
t.pending_out = 0,
|
|
t.wrap < 0 && (t.wrap = -t.wrap),
|
|
t.status = t.wrap ? k : N,
|
|
e.adler = 2 === t.wrap ? 0 : 1,
|
|
t.last_flush = l,
|
|
i._tr_init(t),
|
|
d) : O(e, p)
|
|
}
|
|
function z(e) {
|
|
var t, n = K(e);
|
|
return n === d && ((t = e.state).window_size = 2 * t.w_size,
|
|
M(t.head),
|
|
t.max_lazy_match = a[t.level].max_lazy,
|
|
t.good_match = a[t.level].good_length,
|
|
t.nice_match = a[t.level].nice_length,
|
|
t.max_chain_length = a[t.level].max_chain,
|
|
t.strstart = 0,
|
|
t.block_start = 0,
|
|
t.lookahead = 0,
|
|
t.insert = 0,
|
|
t.match_length = t.prev_length = A - 1,
|
|
t.match_available = 0,
|
|
t.ins_h = 0),
|
|
n
|
|
}
|
|
function Y(e, t, n, a, i, o) {
|
|
if (!e)
|
|
return p;
|
|
var s = 1;
|
|
if (t === h && (t = 6),
|
|
a < 0 ? (s = 0,
|
|
a = -a) : a > 15 && (s = 2,
|
|
a -= 16),
|
|
i < 1 || i > y || n !== v || a < 8 || a > 15 || t < 0 || t > 9 || o < 0 || o > m)
|
|
return O(e, p);
|
|
8 === a && (a = 9);
|
|
var c = new function() {
|
|
this.strm = null,
|
|
this.status = 0,
|
|
this.pending_buf = null,
|
|
this.pending_buf_size = 0,
|
|
this.pending_out = 0,
|
|
this.pending = 0,
|
|
this.wrap = 0,
|
|
this.gzhead = null,
|
|
this.gzindex = 0,
|
|
this.method = v,
|
|
this.last_flush = -1,
|
|
this.w_size = 0,
|
|
this.w_bits = 0,
|
|
this.w_mask = 0,
|
|
this.window = null,
|
|
this.window_size = 0,
|
|
this.prev = null,
|
|
this.head = null,
|
|
this.ins_h = 0,
|
|
this.hash_size = 0,
|
|
this.hash_bits = 0,
|
|
this.hash_mask = 0,
|
|
this.hash_shift = 0,
|
|
this.block_start = 0,
|
|
this.match_length = 0,
|
|
this.prev_match = 0,
|
|
this.match_available = 0,
|
|
this.strstart = 0,
|
|
this.match_start = 0,
|
|
this.lookahead = 0,
|
|
this.prev_length = 0,
|
|
this.max_chain_length = 0,
|
|
this.max_lazy_match = 0,
|
|
this.level = 0,
|
|
this.strategy = 0,
|
|
this.good_match = 0,
|
|
this.nice_match = 0,
|
|
this.dyn_ltree = new r.Buf16(2 * S),
|
|
this.dyn_dtree = new r.Buf16(2 * (2 * b + 1)),
|
|
this.bl_tree = new r.Buf16(2 * (2 * w + 1)),
|
|
M(this.dyn_ltree),
|
|
M(this.dyn_dtree),
|
|
M(this.bl_tree),
|
|
this.l_desc = null,
|
|
this.d_desc = null,
|
|
this.bl_desc = null,
|
|
this.bl_count = new r.Buf16(C + 1),
|
|
this.heap = new r.Buf16(2 * _ + 1),
|
|
M(this.heap),
|
|
this.heap_len = 0,
|
|
this.heap_max = 0,
|
|
this.depth = new r.Buf16(2 * _ + 1),
|
|
M(this.depth),
|
|
this.l_buf = 0,
|
|
this.lit_bufsize = 0,
|
|
this.last_lit = 0,
|
|
this.d_buf = 0,
|
|
this.opt_len = 0,
|
|
this.static_len = 0,
|
|
this.matches = 0,
|
|
this.insert = 0,
|
|
this.bi_buf = 0,
|
|
this.bi_valid = 0
|
|
}
|
|
;
|
|
return e.state = c,
|
|
c.strm = e,
|
|
c.wrap = s,
|
|
c.gzhead = null,
|
|
c.w_bits = a,
|
|
c.w_size = 1 << c.w_bits,
|
|
c.w_mask = c.w_size - 1,
|
|
c.hash_bits = i + 7,
|
|
c.hash_size = 1 << c.hash_bits,
|
|
c.hash_mask = c.hash_size - 1,
|
|
c.hash_shift = ~~((c.hash_bits + A - 1) / A),
|
|
c.window = new r.Buf8(2 * c.w_size),
|
|
c.head = new r.Buf16(c.hash_size),
|
|
c.prev = new r.Buf16(c.w_size),
|
|
c.lit_bufsize = 1 << i + 6,
|
|
c.pending_buf_size = 4 * c.lit_bufsize,
|
|
c.pending_buf = new r.Buf8(c.pending_buf_size),
|
|
c.d_buf = 1 * c.lit_bufsize,
|
|
c.l_buf = 3 * c.lit_bufsize,
|
|
c.level = t,
|
|
c.strategy = o,
|
|
c.method = n,
|
|
z(e)
|
|
}
|
|
var t={};
|
|
a = [new j(0,0,0,0,function(e, t) {
|
|
var n = 65535;
|
|
for (n > e.pending_buf_size - 5 && (n = e.pending_buf_size - 5); ; ) {
|
|
if (e.lookahead <= 1) {
|
|
if (F(e),
|
|
0 === e.lookahead && t === l)
|
|
return x;
|
|
if (0 === e.lookahead)
|
|
break
|
|
}
|
|
e.strstart += e.lookahead,
|
|
e.lookahead = 0;
|
|
var a = e.block_start + n;
|
|
if ((0 === e.strstart || e.strstart >= a) && (e.lookahead = e.strstart - a,
|
|
e.strstart = a,
|
|
W(e, !1),
|
|
0 === e.strm.avail_out))
|
|
return x;
|
|
if (e.strstart - e.block_start >= e.w_size - E && (W(e, !1),
|
|
0 === e.strm.avail_out))
|
|
return x
|
|
}
|
|
return e.insert = 0,
|
|
t === u ? (W(e, !0),
|
|
0 === e.strm.avail_out ? R : P) : (e.strstart > e.block_start && (W(e, !1),
|
|
e.strm.avail_out),
|
|
x)
|
|
}
|
|
), new j(4,4,8,4,G), new j(4,5,16,8,G), new j(4,6,32,32,G), new j(4,4,16,16,H), new j(8,16,32,32,H), new j(8,16,128,128,H), new j(8,32,128,256,H), new j(32,128,258,1024,H), new j(32,258,258,4096,H)],
|
|
t.deflateInit = function(e, t) {
|
|
return Y(e, t, v, 15, 8, 0)
|
|
}
|
|
,
|
|
t.deflateInit2 = Y,
|
|
t.deflateReset = z,
|
|
t.deflateResetKeep = K,
|
|
t.deflateSetHeader = function(e, t) {
|
|
return e && e.state ? 2 !== e.state.wrap ? p : (e.state.gzhead = t,
|
|
d) : p
|
|
}
|
|
,
|
|
t.deflate = function(e, t) {
|
|
var n, r, o, c;
|
|
if (!e || !e.state || t > 5 || t < 0)
|
|
return e ? O(e, p) : p;
|
|
if (r = e.state,
|
|
!e.output || !e.input && 0 !== e.avail_in || r.status === D && t !== u)
|
|
return O(e, 0 === e.avail_out ? -5 : p);
|
|
if (r.strm = e,
|
|
n = r.last_flush,
|
|
r.last_flush = t,
|
|
r.status === k)
|
|
if (2 === r.wrap)
|
|
e.adler = 0,
|
|
V(r, 31),
|
|
V(r, 139),
|
|
V(r, 8),
|
|
r.gzhead ? (V(r, (r.gzhead.text ? 1 : 0) + (r.gzhead.hcrc ? 2 : 0) + (r.gzhead.extra ? 4 : 0) + (r.gzhead.name ? 8 : 0) + (r.gzhead.comment ? 16 : 0)),
|
|
V(r, 255 & r.gzhead.time),
|
|
V(r, r.gzhead.time >> 8 & 255),
|
|
V(r, r.gzhead.time >> 16 & 255),
|
|
V(r, r.gzhead.time >> 24 & 255),
|
|
V(r, 9 === r.level ? 2 : r.strategy >= 2 || r.level < 2 ? 4 : 0),
|
|
V(r, 255 & r.gzhead.os),
|
|
r.gzhead.extra && r.gzhead.extra.length && (V(r, 255 & r.gzhead.extra.length),
|
|
V(r, r.gzhead.extra.length >> 8 & 255)),
|
|
r.gzhead.hcrc && (e.adler = s(e.adler, r.pending_buf, r.pending, 0)),
|
|
r.gzindex = 0,
|
|
r.status = 69) : (V(r, 0),
|
|
V(r, 0),
|
|
V(r, 0),
|
|
V(r, 0),
|
|
V(r, 0),
|
|
V(r, 9 === r.level ? 2 : r.strategy >= 2 || r.level < 2 ? 4 : 0),
|
|
V(r, 3),
|
|
r.status = N);
|
|
else {
|
|
var h = v + (r.w_bits - 8 << 4) << 8;
|
|
h |= (r.strategy >= 2 || r.level < 2 ? 0 : r.level < 6 ? 1 : 6 === r.level ? 2 : 3) << 6,
|
|
0 !== r.strstart && (h |= 32),
|
|
h += 31 - h % 31,
|
|
r.status = N,
|
|
Q(r, h),
|
|
0 !== r.strstart && (Q(r, e.adler >>> 16),
|
|
Q(r, 65535 & e.adler)),
|
|
e.adler = 1
|
|
}
|
|
if (69 === r.status)
|
|
if (r.gzhead.extra) {
|
|
for (o = r.pending; r.gzindex < (65535 & r.gzhead.extra.length) && (r.pending !== r.pending_buf_size || (r.gzhead.hcrc && r.pending > o && (e.adler = s(e.adler, r.pending_buf, r.pending - o, o)),
|
|
B(e),
|
|
o = r.pending,
|
|
r.pending !== r.pending_buf_size)); )
|
|
V(r, 255 & r.gzhead.extra[r.gzindex]),
|
|
r.gzindex++;
|
|
r.gzhead.hcrc && r.pending > o && (e.adler = s(e.adler, r.pending_buf, r.pending - o, o)),
|
|
r.gzindex === r.gzhead.extra.length && (r.gzindex = 0,
|
|
r.status = 73)
|
|
} else
|
|
r.status = 73;
|
|
if (73 === r.status)
|
|
if (r.gzhead.name) {
|
|
o = r.pending;
|
|
do {
|
|
if (r.pending === r.pending_buf_size && (r.gzhead.hcrc && r.pending > o && (e.adler = s(e.adler, r.pending_buf, r.pending - o, o)),
|
|
B(e),
|
|
o = r.pending,
|
|
r.pending === r.pending_buf_size)) {
|
|
c = 1;
|
|
break
|
|
}
|
|
c = r.gzindex < r.gzhead.name.length ? 255 & r.gzhead.name.charCodeAt(r.gzindex++) : 0,
|
|
V(r, c)
|
|
} while (0 !== c);r.gzhead.hcrc && r.pending > o && (e.adler = s(e.adler, r.pending_buf, r.pending - o, o)),
|
|
0 === c && (r.gzindex = 0,
|
|
r.status = 91)
|
|
} else
|
|
r.status = 91;
|
|
if (91 === r.status)
|
|
if (r.gzhead.comment) {
|
|
o = r.pending;
|
|
do {
|
|
if (r.pending === r.pending_buf_size && (r.gzhead.hcrc && r.pending > o && (e.adler = s(e.adler, r.pending_buf, r.pending - o, o)),
|
|
B(e),
|
|
o = r.pending,
|
|
r.pending === r.pending_buf_size)) {
|
|
c = 1;
|
|
break
|
|
}
|
|
c = r.gzindex < r.gzhead.comment.length ? 255 & r.gzhead.comment.charCodeAt(r.gzindex++) : 0,
|
|
V(r, c)
|
|
} while (0 !== c);r.gzhead.hcrc && r.pending > o && (e.adler = s(e.adler, r.pending_buf, r.pending - o, o)),
|
|
0 === c && (r.status = T)
|
|
} else
|
|
r.status = T;
|
|
if (r.status === T && (r.gzhead.hcrc ? (r.pending + 2 > r.pending_buf_size && B(e),
|
|
r.pending + 2 <= r.pending_buf_size && (V(r, 255 & e.adler),
|
|
V(r, e.adler >> 8 & 255),
|
|
e.adler = 0,
|
|
r.status = N)) : r.status = N),
|
|
0 !== r.pending) {
|
|
if (B(e),
|
|
0 === e.avail_out)
|
|
return r.last_flush = -1,
|
|
d
|
|
} else if (0 === e.avail_in && U(t) <= U(n) && t !== u)
|
|
return O(e, -5);
|
|
if (r.status === D && 0 !== e.avail_in)
|
|
return O(e, -5);
|
|
if (0 !== e.avail_in || 0 !== r.lookahead || t !== l && r.status !== D) {
|
|
var f = 2 === r.strategy ? function(e, t) {
|
|
for (var n; ; ) {
|
|
if (0 === e.lookahead && (F(e),
|
|
0 === e.lookahead)) {
|
|
if (t === l)
|
|
return x;
|
|
break
|
|
}
|
|
if (e.match_length = 0,
|
|
n = i._tr_tally(e, 0, e.window[e.strstart]),
|
|
e.lookahead--,
|
|
e.strstart++,
|
|
n && (W(e, !1),
|
|
0 === e.strm.avail_out))
|
|
return x
|
|
}
|
|
return e.insert = 0,
|
|
t === u ? (W(e, !0),
|
|
0 === e.strm.avail_out ? R : P) : e.last_lit && (W(e, !1),
|
|
0 === e.strm.avail_out) ? x : L
|
|
}(r, t) : 3 === r.strategy ? function(e, t) {
|
|
for (var n, a, r, o, s = e.window; ; ) {
|
|
if (e.lookahead <= I) {
|
|
if (F(e),
|
|
e.lookahead <= I && t === l)
|
|
return x;
|
|
if (0 === e.lookahead)
|
|
break
|
|
}
|
|
if (e.match_length = 0,
|
|
e.lookahead >= A && e.strstart > 0 && (a = s[r = e.strstart - 1]) === s[++r] && a === s[++r] && a === s[++r]) {
|
|
o = e.strstart + I;
|
|
do {} while (a === s[++r] && a === s[++r] && a === s[++r] && a === s[++r] && a === s[++r] && a === s[++r] && a === s[++r] && a === s[++r] && r < o);e.match_length = I - (o - r),
|
|
e.match_length > e.lookahead && (e.match_length = e.lookahead)
|
|
}
|
|
if (e.match_length >= A ? (n = i._tr_tally(e, 1, e.match_length - A),
|
|
e.lookahead -= e.match_length,
|
|
e.strstart += e.match_length,
|
|
e.match_length = 0) : (n = i._tr_tally(e, 0, e.window[e.strstart]),
|
|
e.lookahead--,
|
|
e.strstart++),
|
|
n && (W(e, !1),
|
|
0 === e.strm.avail_out))
|
|
return x
|
|
}
|
|
return e.insert = 0,
|
|
t === u ? (W(e, !0),
|
|
0 === e.strm.avail_out ? R : P) : e.last_lit && (W(e, !1),
|
|
0 === e.strm.avail_out) ? x : L
|
|
}(r, t) : a[r.level].func(r, t);
|
|
if (f !== R && f !== P || (r.status = D),
|
|
f === x || f === R)
|
|
return 0 === e.avail_out && (r.last_flush = -1),
|
|
d;
|
|
if (f === L && (1 === t ? i._tr_align(r) : 5 !== t && (i._tr_stored_block(r, 0, 0, !1),
|
|
3 === t && (M(r.head),
|
|
0 === r.lookahead && (r.strstart = 0,
|
|
r.block_start = 0,
|
|
r.insert = 0))),
|
|
B(e),
|
|
0 === e.avail_out))
|
|
return r.last_flush = -1,
|
|
d
|
|
}
|
|
return t !== u ? d : r.wrap <= 0 ? 1 : (2 === r.wrap ? (V(r, 255 & e.adler),
|
|
V(r, e.adler >> 8 & 255),
|
|
V(r, e.adler >> 16 & 255),
|
|
V(r, e.adler >> 24 & 255),
|
|
V(r, 255 & e.total_in),
|
|
V(r, e.total_in >> 8 & 255),
|
|
V(r, e.total_in >> 16 & 255),
|
|
V(r, e.total_in >> 24 & 255)) : (Q(r, e.adler >>> 16),
|
|
Q(r, 65535 & e.adler)),
|
|
B(e),
|
|
r.wrap > 0 && (r.wrap = -r.wrap),
|
|
0 !== r.pending ? d : 1)
|
|
}
|
|
,
|
|
t.deflateEnd = function(e) {
|
|
var t;
|
|
return e && e.state ? (t = e.state.status) !== k && 69 !== t && 73 !== t && 91 !== t && t !== T && t !== N && t !== D ? O(e, p) : (e.state = null,
|
|
t === N ? O(e, -3) : d) : p
|
|
}
|
|
,
|
|
t.deflateSetDictionary = function(e, t) {
|
|
var n, a, i, s, c, l, u, h, f = t.length;
|
|
if (!e || !e.state)
|
|
return p;
|
|
if (2 === (s = (n = e.state).wrap) || 1 === s && n.status !== k || n.lookahead)
|
|
return p;
|
|
for (1 === s && (e.adler = o(e.adler, t, f, 0)),
|
|
n.wrap = 0,
|
|
f >= n.w_size && (0 === s && (M(n.head),
|
|
n.strstart = 0,
|
|
n.block_start = 0,
|
|
n.insert = 0),
|
|
h = new r.Buf8(n.w_size),
|
|
r.arraySet(h, t, f - n.w_size, n.w_size, 0),
|
|
t = h,
|
|
f = n.w_size),
|
|
c = e.avail_in,
|
|
l = e.next_in,
|
|
u = e.input,
|
|
e.avail_in = f,
|
|
e.next_in = 0,
|
|
e.input = t,
|
|
F(n); n.lookahead >= A; ) {
|
|
a = n.strstart,
|
|
i = n.lookahead - (A - 1);
|
|
do {
|
|
n.ins_h = (n.ins_h << n.hash_shift ^ n.window[a + A - 1]) & n.hash_mask,
|
|
n.prev[a & n.w_mask] = n.head[n.ins_h],
|
|
n.head[n.ins_h] = a,
|
|
a++
|
|
} while (--i);n.strstart = a,
|
|
n.lookahead = A - 1,
|
|
F(n)
|
|
}
|
|
return n.strstart += n.lookahead,
|
|
n.block_start = n.strstart,
|
|
n.insert = n.lookahead,
|
|
n.lookahead = 0,
|
|
n.match_length = n.prev_length = A - 1,
|
|
n.match_available = 0,
|
|
e.next_in = l,
|
|
e.input = u,
|
|
e.avail_in = c,
|
|
n.wrap = s,
|
|
d
|
|
}
|
|
,
|
|
t.deflateInfo = ""pako deflate (from Nodeca project)""
|
|
return t
|
|
}()
|
|
var n_14=function(){
|
|
var a = n_0
|
|
, r = !0
|
|
, i = !0;
|
|
try {
|
|
String.fromCharCode.apply(null, [0])
|
|
} catch (e) {
|
|
r = !1
|
|
}
|
|
try {
|
|
String.fromCharCode.apply(null, new Uint8Array(1))
|
|
} catch (e) {
|
|
i = !1
|
|
}
|
|
for (var o = new a.Buf8(256), s = 0; s < 256; s++)
|
|
o[s] = s >= 252 ? 6 : s >= 248 ? 5 : s >= 240 ? 4 : s >= 224 ? 3 : s >= 192 ? 2 : 1;
|
|
function c(e, t) {
|
|
if (t < 65537 && (e.subarray && i || !e.subarray && r))
|
|
return String.fromCharCode.apply(null, a.shrinkBuf(e, t));
|
|
for (var n = """", o = 0; o < t; o++)
|
|
n += String.fromCharCode(e[o]);
|
|
return n
|
|
}
|
|
var t={};
|
|
o[254] = o[254] = 1,
|
|
t.string2buf = function(e) {
|
|
var t, n, r, i, o, s = e.length, c = 0;
|
|
for (i = 0; i < s; i++)
|
|
55296 == (64512 & (n = e.charCodeAt(i))) && i + 1 < s && 56320 == (64512 & (r = e.charCodeAt(i + 1))) && (n = 65536 + (n - 55296 << 10) + (r - 56320),
|
|
i++),
|
|
c += n < 128 ? 1 : n < 2048 ? 2 : n < 65536 ? 3 : 4;
|
|
for (t = new a.Buf8(c),
|
|
o = 0,
|
|
i = 0; o < c; i++)
|
|
55296 == (64512 & (n = e.charCodeAt(i))) && i + 1 < s && 56320 == (64512 & (r = e.charCodeAt(i + 1))) && (n = 65536 + (n - 55296 << 10) + (r - 56320),
|
|
i++),
|
|
n < 128 ? t[o++] = n : n < 2048 ? (t[o++] = 192 | n >>> 6,
|
|
t[o++] = 128 | 63 & n) : n < 65536 ? (t[o++] = 224 | n >>> 12,
|
|
t[o++] = 128 | n >>> 6 & 63,
|
|
t[o++] = 128 | 63 & n) : (t[o++] = 240 | n >>> 18,
|
|
t[o++] = 128 | n >>> 12 & 63,
|
|
t[o++] = 128 | n >>> 6 & 63,
|
|
t[o++] = 128 | 63 & n);
|
|
return t
|
|
}
|
|
,
|
|
t.buf2binstring = function(e) {
|
|
return c(e, e.length)
|
|
}
|
|
,
|
|
t.binstring2buf = function(e) {
|
|
for (var t = new a.Buf8(e.length), n = 0, r = t.length; n < r; n++)
|
|
t[n] = e.charCodeAt(n);
|
|
return t
|
|
}
|
|
,
|
|
t.buf2string = function(e, t) {
|
|
var n, a, r, i, s = t || e.length, l = new Array(2 * s);
|
|
for (a = 0,
|
|
n = 0; n < s; )
|
|
if ((r = e[n++]) < 128)
|
|
l[a++] = r;
|
|
else if ((i = o[r]) > 4)
|
|
l[a++] = 65533,
|
|
n += i - 1;
|
|
else {
|
|
for (r &= 2 === i ? 31 : 3 === i ? 15 : 7; i > 1 && n < s; )
|
|
r = r << 6 | 63 & e[n++],
|
|
i--;
|
|
i > 1 ? l[a++] = 65533 : r < 65536 ? l[a++] = r : (r -= 65536,
|
|
l[a++] = 55296 | r >> 10 & 1023,
|
|
l[a++] = 56320 | 1023 & r)
|
|
}
|
|
return c(l, a)
|
|
}
|
|
,
|
|
t.utf8border = function(e, t) {
|
|
var n;
|
|
for ((t = t || e.length) > e.length && (t = e.length),
|
|
n = t - 1; n >= 0 && 128 == (192 & e[n]); )
|
|
n--;
|
|
return n < 0 ? t : 0 === n ? t : n + o[e[n]] > t ? n : t
|
|
}
|
|
return t
|
|
}()
|
|
var n_15= function() {
|
|
this.input = null,
|
|
this.next_in = 0,
|
|
this.avail_in = 0,
|
|
this.total_in = 0,
|
|
this.output = null,
|
|
this.next_out = 0,
|
|
this.avail_out = 0,
|
|
this.total_out = 0,
|
|
this.msg = """",
|
|
this.state = null,
|
|
this.data_type = 2,
|
|
this.adler = 0
|
|
}
|
|
var n_9=function(e){
|
|
var a = n_10
|
|
, r = n_0
|
|
, i = n_14
|
|
, o = n_3
|
|
, s = n_15
|
|
, c = Object.prototype.toString
|
|
, l = 0
|
|
, u = -1
|
|
, d = 0
|
|
, p = 8,
|
|
t={};
|
|
function h(e) {
|
|
if (!(this instanceof h))
|
|
return new h(e);
|
|
this.options = r.assign({
|
|
level: u,
|
|
method: p,
|
|
chunkSize: 16384,
|
|
windowBits: 15,
|
|
memLevel: 8,
|
|
strategy: d,
|
|
to: """"
|
|
}, e || {});
|
|
var t = this.options;
|
|
t.raw && t.windowBits > 0 ? t.windowBits = -t.windowBits : t.gzip && t.windowBits > 0 && t.windowBits < 16 && (t.windowBits += 16),
|
|
this.err = 0,
|
|
this.msg = """",
|
|
this.ended = !1,
|
|
this.chunks = [],
|
|
this.strm = new s,
|
|
this.strm.avail_out = 0;
|
|
var n = a.deflateInit2(this.strm, t.level, t.method, t.windowBits, t.memLevel, t.strategy);
|
|
if (n !== l)
|
|
throw new Error(o[n]);
|
|
if (t.header && a.deflateSetHeader(this.strm, t.header),
|
|
t.dictionary) {
|
|
var f;
|
|
if (f = ""string"" == typeof t.dictionary ? i.string2buf(t.dictionary) : ""[object ArrayBuffer]"" === c.call(t.dictionary) ? new Uint8Array(t.dictionary) : t.dictionary,
|
|
(n = a.deflateSetDictionary(this.strm, f)) !== l)
|
|
throw new Error(o[n]);
|
|
this._dict_set = !0
|
|
}
|
|
}
|
|
function f(e, t) {
|
|
var n = new h(t);
|
|
if (n.push(e, !0),
|
|
n.err)
|
|
throw n.msg || o[n.err];
|
|
return n.result
|
|
}
|
|
h.prototype.push = function(e, t) {
|
|
var n, o, s = this.strm, u = this.options.chunkSize;
|
|
if (this.ended)
|
|
return !1;
|
|
o = t === ~~t ? t : !0 === t ? 4 : 0,
|
|
""string"" == typeof e ? s.input = i.string2buf(e) : ""[object ArrayBuffer]"" === c.call(e) ? s.input = new Uint8Array(e) : s.input = e,
|
|
s.next_in = 0,
|
|
s.avail_in = s.input.length;
|
|
do {
|
|
if (0 === s.avail_out && (s.output = new r.Buf8(u),
|
|
s.next_out = 0,
|
|
s.avail_out = u),
|
|
1 !== (n = a.deflate(s, o)) && n !== l)
|
|
return this.onEnd(n),
|
|
this.ended = !0,
|
|
!1;
|
|
0 !== s.avail_out && (0 !== s.avail_in || 4 !== o && 2 !== o) || (""string"" === this.options.to ? this.onData(i.buf2binstring(r.shrinkBuf(s.output, s.next_out))) : this.onData(r.shrinkBuf(s.output, s.next_out)))
|
|
} while ((s.avail_in > 0 || 0 === s.avail_out) && 1 !== n);return 4 === o ? (n = a.deflateEnd(this.strm),
|
|
this.onEnd(n),
|
|
this.ended = !0,
|
|
n === l) : 2 !== o || (this.onEnd(l),
|
|
s.avail_out = 0,
|
|
!0)
|
|
}
|
|
,
|
|
h.prototype.onData = function(e) {
|
|
this.chunks.push(e)
|
|
}
|
|
,
|
|
h.prototype.onEnd = function(e) {
|
|
e === l && (""string"" === this.options.to ? this.result = this.chunks.join("""") : this.result = r.flattenChunks(this.chunks)),
|
|
this.chunks = [],
|
|
this.err = e,
|
|
this.msg = this.strm.msg
|
|
}
|
|
,
|
|
t.Deflate = h,
|
|
t.deflate = f,
|
|
t.deflateRaw = function(e, t) {
|
|
return (t = t || {}).raw = !0,
|
|
f(e, t)
|
|
}
|
|
,
|
|
t.gzip = function(e, t) {
|
|
return (t = t || {}).gzip = !0,
|
|
f(e, t)
|
|
}
|
|
return t
|
|
}
|
|
l = [""w4rDocK9wqRC"", ""wpdhB8OQEA=="", ""V8KFRsOAZw=="", ""VRVuIcKx"", ""AkDDmjnDmg=="", ""w5N8BHPDqjLDscOdwq0="", ""YSHDrW/DrQ=="", ""YXcQwpfCnQ3Ds8Knw5EKPXzCnA=="", ""wp7CmMKbwrvDhA=="", ""NcOMwrrClk4="", ""K8Ogw4zDtcKTw5ZnZMO/w4jCpHLDn33CiShEw58fNsKgNcOe"", ""UmvDj8OBEw=="", ""wpdgSSlv"", ""w5fCr8KuD27Dg2t1wps="", ""woxkHcOZ"", ""N8OFw4bDksKU"", ""YUnDrQPCgcKJw4IZw5I="", ""KcOhwpBd"", ""dMOZUGQsw7Zaw7k="", ""wpxoA8ORFMOuwoQ="", ""w5DCkMKXE3k="", ""JDB4w5nDjMKZWMOs"", ""SsOTRWM4"", ""woTCoMKEwrjDjRTDrMKNKw=="", ""wqrDocO4wptJP8K5wq4="", ""O8K3TMOrw7szFw=="", ""wqnDg8O9wodD"", ""wpZBbsK4wr1AU8KE"", ""byzCpBHChw=="", ""O8OQwqHCtFs="", ""FhcqQz0="", ""w77CqWA="", ""w6BWBVzDsw=="", ""wqDCq3XDkQ=="", ""OjknbDoIw6HCl8K/Gic="", ""CcOzdAM="", ""IMK8VcOz"", ""acKLw4fDgA=="", ""w413D2M="", ""cMOXYHs="", ""TcKbTsOD"", ""wpZmwrnDjA=="", ""wo9pwrPDkw=="", ""EkLDhyA="", ""wozCo8OMWA=="", ""w53CrsOywpQ="", ""wrQpCsOdwrHCmMKZOg7CnxfDpUcYw61Xw5zDmiACwqzDgA=="", ""IjkqYw=="", ""wrtXVxQ="", ""wrttwqbDkcKBwofCh8Kwe8K+w4zClMOCw70SfMOW"", ""VMKURMOc"", ""wotAVMK4"", ""GMO3wrfDnA=="", ""JSxOw5/Dv8KXU8Olw6w="", ""P8Ouw4LDnw=="", ""eFXDqwM="", ""Zi3DrMOf"", ""w4vCr8Owwrp6w6hFGGPCqMO/NgM6"", ""PDknZwkew5DCjsKoFTRlZynDgw=="", ""KMOxwo/CiGU="", ""NjcqfTsIw4rClQ=="", ""w6XCksOCwrfCpg=="", ""esO+w4Y+V8KqBS3DlU8ywo7DpFd4wqE="", ""wq9gMMOnNg=="", ""LMOjw4jDl8KN"", ""IcO2VT/Dpg=="", ""AQ1yw7rDkQ=="", ""w6V0JU3Dmw=="", ""woIDPcObwrc="", ""wrJ7w71nw6ZCwp8mwoBbYHA="", ""RcKtU8OSbg=="", ""wq3CrVnDrcK0"", ""w7bDg8OMYx4="", ""Yy7DvMOmwrQ="", ""F3nDvyPDmg=="", ""wplaFEFa"", ""CTNYw4/Dhg=="", ""ZzjDt8O/wrM="", ""U8ODw6Rpwrk="", ""Iy1hw4zDvA=="", ""w4TCjMKcwpp3"", ""w7bChsKOwrJl"", ""Wzp4OsK2wppv"", ""w53Co8K5wrB+"", ""w43CncOOwoxI"", ""wpPCk8KT"", ""IcO1w7PDjcKe"", ""ejLClS7Cm8OM"", ""dARKPQ=="", ""YVrDoRw="", ""w5PCk8KcbA=="", ""eSnDjEM="", ""w5XDkMOZQA=="", ""AMO0wq7CtA=="", ""w7LDnhHCug=="", ""woLDnyjCmg=="", ""D0bCrHs="", ""woTCs8KIwqc="", ""KMKKSMOiw70="", ""PcK9b8Ozw6g5HMOm"", ""w7HDjx7CuGA="", ""woZGeMKEwrk="", ""woHCvMKYwqTDiwbDoQ=="", ""w57Cr8Oywo4="", ""w4jCuHpqw7U="", ""wopqwqPDqsKP"", ""wo57bMK7wqo="", ""w5PCu8KOX3s="", ""SFfDsRXClg=="", ""DlPCt1td"", ""ScKFwoEaw4w="", ""w5DCgMK1Zk8="", ""wqd+XAd7"", ""bMKtw4bDjMKg"", ""CMOCw5HDu8KR"", ""VUDDjw=="", ""wqzDg8Ksw48="", ""Y3TDgxjCiw=="", ""wo5GesKBwqM="", ""wqHClkzDvMKv"", ""F8OoRRHDhA=="", ""E8O9fgY="", ""dsO8w64zbA=="", ""YiMbw5HCj8KMBcO3wqw="", ""acKzw4vDrcKB"", ""wp1Qw5N+w4g="", ""w5TCuMKzDWTDhUZswpPDsQ=="", ""wpgNG8O8wqo="", ""wrBwwobDt8KH"", ""w47ClMKzT0A="", ""OMO4wpJQwoU="", ""AT/Ckg=="", ""OcKLU8OBw54="", ""cGgZwrfCnBzDj8Kvw4IIMWHCpsKqFh4="", ""w73CmcOawpTCpA=="", ""wrbDj8OMwqdD"", ""asKRwqARw6U="", ""wrnCt3PDkcKtAD5Tw5M="", ""wofDji/CkHvCgcKqUcO3ITAjwos3w5Qf"", ""w4vCocOp"", ""AcOrwrHDnMKGH0TCsDk="", ""VcKbwpkqw6/DjSo3TQ=="", ""Y8OaZnEsw5xVw70Iw7c="", ""aQBaJcK1B8Osw6LCtsKXUA=="", ""G8ODw7LDhcKi"", ""BhQaeRI="", ""eTrDgFzDhRbDiHNJ"", ""wqnDhExgdMKaw4VCVj7DkVrCswgd"", ""UcODVEEy"", ""HsO5w6TDosKj"", ""KMOnQDnDkA=="", ""SMKcw6HDvcKA"", ""w5TCs8KOwpJgwqFo"", ""w5bCu8O8wqZRw7lDGW8="", ""OcK9Sw=="", ""Y1rDrBPCgcKQ"", ""EcOjwqzCtlNFwrkLw5LDhyg="", ""w6PDiRPCuHjCtMKUw63DlQc="", ""w5bCrcOswrBAw6U="", ""AMO6wr/Cqw=="", ""wqfDkMKlw4U="", ""U8OAw7BMwoFwTsKf"", ""DcO7eg3Dj2onf10="", ""ZnQUwrPChg3DhQ=="", ""wqzDjsKpw4YYw7zCsw=="", ""NzQsZTMDw5DCqMK+"", ""UzpwMcKjwoY="", ""wp/CrcOBUFbCsg=="", ""NjBZw6jDn8KTXg=="", ""AcOswq3DgA=="", ""OzYgfA=="", ""K8Ouw5XDlQ=="", ""woUiGMORwrTClMK4LQM="", ""f1rDtB7CicKcw48Gw4U="", ""BsOpwopR"", ""V27DnsOUIA=="", ""w63DrcKEwqdm"", ""woxbUMKuwqpb"", ""SyxwA8K1"", ""wq3DtcKww40c"", ""fivChQ3Crw=="", ""bi9ZIcKy"", ""DkLDijHDmWDChMOjZw=="", ""w53ChMO5wrNX"", ""wqtVSg17"", ""ccKDw6bDrMKC"", ""WgXCgQjCjg=="", ""w5fDpsKbwrtc"", ""wpdLTA9s"", ""w5HCr0pRw4c="", ""woTCosK5wpzDmg=="", ""w6zCmMKtEGU="", ""wpvCncKKwq7Dtw=="", ""JMO9wopcwoN+w6sww6NMBg=="", ""w7nChsOSwpTCiw=="", ""wqbCin3Dh8KX"", ""w4zCh8KLYn9tEsKVZVk="", ""Hx4AfBQ="", ""VsKjw73DvsKk"", ""H8OgwrnCuk1FwrkLw5LDhyg="", ""wo1bScKpwr1+VMKHw5LCng=="", ""YcOBcFwO"", ""wo1sH8ORJcOlwoDDr8Oow71S"", ""EWbDniPDmQ=="", ""KBVMw4vDjA=="", ""LsOpwrbDicKHH1LCrQ=="", ""OBI5fzA="", ""wrDCqWjDiMKn"", ""wo3Dl8Kmw4UTw7o="", ""VcOlw6NawpM="", ""ecOad307"", ""w5HCrcOywpQ=""];
|
|
t = l,
|
|
a = 153,
|
|
function(e) {
|
|
for (; --e; )
|
|
t.push(t.shift())
|
|
}(++a);
|
|
var u = function e(t, n) {
|
|
var a = l[t -= 0];
|
|
void 0 === e.XUzMxH && (function() {
|
|
var e;
|
|
try {
|
|
e = Function('return (function() {}.constructor(""return this"")( ));')()
|
|
} catch (t) {
|
|
e = window
|
|
}
|
|
e.atob || (e.atob = function(e) {
|
|
for (var t, n, a = String(e).replace(/=+$/, """"), r = 0, i = 0, o = """"; n = a.charAt(i++); ~n && (t = r % 4 ? 64 * t + n : n,
|
|
r++ % 4) ? o += String.fromCharCode(255 & t >> (-2 * r & 6)) : 0)
|
|
n = ""ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="".indexOf(n);
|
|
return o
|
|
}
|
|
)
|
|
}(),
|
|
e.dRdvEy = function(e, t) {
|
|
for (var n, a = [], r = 0, i = """", o = """", s = 0, c = (e = atob(e)).length; s < c; s++)
|
|
o += ""%"" + (""00"" + e.charCodeAt(s).toString(16)).slice(-2);
|
|
e = decodeURIComponent(o);
|
|
for (var l = 0; l < 256; l++)
|
|
a[l] = l;
|
|
for (l = 0; l < 256; l++)
|
|
r = (r + a[l] + t.charCodeAt(l % t.length)) % 256,
|
|
n = a[l],
|
|
a[l] = a[r],
|
|
a[r] = n;
|
|
l = 0,
|
|
r = 0;
|
|
for (var u = 0; u < e.length; u++)
|
|
r = (r + a[l = (l + 1) % 256]) % 256,
|
|
n = a[l],
|
|
a[l] = a[r],
|
|
a[r] = n,
|
|
i += String.fromCharCode(e.charCodeAt(u) ^ a[(a[l] + a[r]) % 256]);
|
|
return i
|
|
}
|
|
,
|
|
e.pBDTtk = {},
|
|
e.XUzMxH = !0);
|
|
var r = e.pBDTtk[t];
|
|
return void 0 === r ? (void 0 === e.ytLIIR && (e.ytLIIR = !0),
|
|
a = e.dRdvEy(a, n),
|
|
e.pBDTtk[t] = a) : a = r,
|
|
a
|
|
}
|
|
|
|
var s=function(){
|
|
var t, n, a = [""fsOsw4pww5g="", ""w64ewrQjwqzDmcKN"", ""PcKPwo/Ci8KPAA=="", ""TMO6TV12woFgw5E="", ""EGjDjg=="", ""HcO4LsKuI3g="", ""TXfClnIzw6TCq8OZeSHDllfDvcO6w4I2UF/Cqw=="", ""woopbMKow63DkiIeNVQMecKRw6AUw5AXw6Bt"", ""wovCnsO9wpnCpBxEAnB7w6fDjsKQUcKzXMK4woYzA8KGICVJw7ZMw59VdcKGbsO7X8OFwp12F8K7bWtmw7c9w7zDmhXDqzFXwokQIMKeND/DliR6RcKTbBnDsMKD"", ""RhvCgApkw5jCng=="", ""XCvDscOZXXfDvyEB"", ""LcKhwpzDkC7Ckx/CscKHJw=="", ""wpfDoEV/woIT"", ""Z8Ksw7rDmcO6Vw=="", ""wovDsFhw"", ""w5Egw4EJSiLCqcOBwrR6wp3CqMKWG8KBwpRCwqNban1QwpVzw6rDp8KjG3fDsMKcwr/CisKBWy3Cp3HDm8OLQ2Q0wpFmSMOuGlrDscKgw5oWwqnCrgbDr8K9H3FewrheOA==""];
|
|
t = a,
|
|
n = 410,
|
|
function(e) {
|
|
for (; --e; )
|
|
t.push(t.shift())
|
|
}(++n);
|
|
var r = function e(t, n) {
|
|
var r, i = a[t -= 0];
|
|
void 0 === e.XCyDvT && ((r = function() {
|
|
var e;
|
|
try {
|
|
e = Function('return (function() {}.constructor(""return this"")( ));')()
|
|
} catch (t) {
|
|
e = window
|
|
}
|
|
return e
|
|
}()).atob || (r.atob = function(e) {
|
|
for (var t, n, a = String(e).replace(/=+$/, """"), r = 0, i = 0, o = """"; n = a.charAt(i++); ~n && (t = r % 4 ? 64 * t + n : n,
|
|
r++ % 4) ? o += String.fromCharCode(255 & t >> (-2 * r & 6)) : 0)
|
|
n = ""ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="".indexOf(n);
|
|
return o
|
|
}
|
|
),
|
|
e.gnKVWC = function(e, t) {
|
|
for (var n, a = [], r = 0, i = """", o = """", s = 0, c = (e = atob(e)).length; s < c; s++)
|
|
o += ""%"" + (""00"" + e.charCodeAt(s).toString(16)).slice(-2);
|
|
e = decodeURIComponent(o);
|
|
for (var l = 0; l < 256; l++)
|
|
a[l] = l;
|
|
for (l = 0; l < 256; l++)
|
|
r = (r + a[l] + t.charCodeAt(l % t.length)) % 256,
|
|
n = a[l],
|
|
a[l] = a[r],
|
|
a[r] = n;
|
|
l = 0,
|
|
r = 0;
|
|
for (var u = 0; u < e.length; u++)
|
|
r = (r + a[l = (l + 1) % 256]) % 256,
|
|
n = a[l],
|
|
a[l] = a[r],
|
|
a[r] = n,
|
|
i += String.fromCharCode(e.charCodeAt(u) ^ a[(a[l] + a[r]) % 256]);
|
|
return i
|
|
}
|
|
,
|
|
e.BawHbV = {},
|
|
e.XCyDvT = !0);
|
|
var o = e.BawHbV[t];
|
|
return void 0 === o ? (void 0 === e.hdDebs && (e.hdDebs = !0),
|
|
i = e.gnKVWC(i, n),
|
|
e.BawHbV[t] = i) : i = o,
|
|
i
|
|
}
|
|
, i = r(""0x0"", ""rrVt"")
|
|
, o = r(""0x1"", ""%p$t"")
|
|
, s = r(""0x2"", ""h62p"")
|
|
, c = r(""0x3"", ""bvUg"")
|
|
, l = r(""0x4"", ""h62p"")
|
|
, u = r(""0x5"", ""Acn)"")[r(""0x6"", ""pDBh"")]("""")
|
|
, d = {};
|
|
function p(e) {
|
|
return e[r(""0x7"", ""a@!G"")](/[+\/=]/g, function(e) {
|
|
return d[e]
|
|
})
|
|
}
|
|
d[""+""] = ""-"",
|
|
d[""/""] = ""_"",
|
|
d[""=""] = """";
|
|
var h = {};
|
|
h[r(""0x8"", ""9$$F"")] = function(e) {
|
|
for (var t = function(e, t) {
|
|
return e < t
|
|
}, n = function(e, t) {
|
|
return e + t
|
|
}, a = function(e, t) {
|
|
return e + t
|
|
}, r = function(e, t) {
|
|
return e + t
|
|
}, i = function(e, t) {
|
|
return e >>> t
|
|
}, o = function(e, t) {
|
|
return e & t
|
|
}, c = function(e, t) {
|
|
return e | t
|
|
}, l = function(e, t) {
|
|
return e << t
|
|
}, d = function(e, t) {
|
|
return e >>> t
|
|
}, h = function(e, t) {
|
|
return e & t
|
|
}, f = function(e, t) {
|
|
return e | t
|
|
}, m = function(e, t) {
|
|
return e & t
|
|
}, g = function(e, t) {
|
|
return e === t
|
|
}, v = function(e, t) {
|
|
return e + t
|
|
}, y = function(e, t) {
|
|
return e << t
|
|
}, _ = function(e, t) {
|
|
return e & t
|
|
}, b = void 0, w = void 0, S = void 0, C = """", A = e[s], I = 0, E = function(e, t) {
|
|
return e * t
|
|
}(function(e, t) {
|
|
return e(t)
|
|
}(parseInt, function(e, t) {
|
|
return e / t
|
|
}(A, 3)), 3); t(I, E); )
|
|
b = e[I++],
|
|
w = e[I++],
|
|
S = e[I++],
|
|
C += n(a(r(u[i(b, 2)], u[o(c(l(b, 4), d(w, 4)), 63)]), u[h(f(l(w, 2), d(S, 6)), 63)]), u[m(S, 63)]);
|
|
var k = function(e, t) {
|
|
return e - t
|
|
}(A, E);
|
|
return g(k, 1) ? (b = e[I],
|
|
C += v(v(u[d(b, 2)], u[m(y(b, 4), 63)]), ""=="")) : g(k, 2) && (b = e[I++],
|
|
w = e[I],
|
|
C += v(function(e, t) {
|
|
return e + t
|
|
}(function(e, t) {
|
|
return e + t
|
|
}(u[d(b, 2)], u[_(f(y(b, 4), function(e, t) {
|
|
return e >>> t
|
|
}(w, 4)), 63)]), u[_(y(w, 2), 63)]), ""="")),
|
|
function(e, t) {
|
|
return e(t)
|
|
}(p, C)
|
|
}
|
|
,
|
|
h[r(""0x9"", ""mzYq"")] = function(e) {
|
|
for (var t = function(e, t) {
|
|
return e < t
|
|
}, n = function(e, t) {
|
|
return e >= t
|
|
}, a = function(e, t) {
|
|
return e <= t
|
|
}, r = function(e, t) {
|
|
return e <= t
|
|
}, i = function(e, t) {
|
|
return e | t
|
|
}, u = function(e, t) {
|
|
return e & t
|
|
}, d = function(e, t) {
|
|
return e >> t
|
|
}, p = function(e, t) {
|
|
return e | t
|
|
}, h = function(e, t) {
|
|
return e & t
|
|
}, f = function(e, t) {
|
|
return e >= t
|
|
}, m = function(e, t) {
|
|
return e <= t
|
|
}, g = function(e, t) {
|
|
return e | t
|
|
}, v = function(e, t) {
|
|
return e & t
|
|
}, y = function(e, t) {
|
|
return e >> t
|
|
}, _ = function(e, t) {
|
|
return e | t
|
|
}, b = function(e, t) {
|
|
return e & t
|
|
}, w = function(e, t) {
|
|
return e < t
|
|
}, S = [], C = 0, A = 0; t(A, e[s]); A += 1) {
|
|
var I = e[o](A);
|
|
n(I, 0) && a(I, 127) ? (S[l](I),
|
|
C += 1) : a(128, 80) && r(I, 2047) ? (C += 2,
|
|
S[l](i(192, u(31, d(I, 6)))),
|
|
S[l](p(128, h(63, I)))) : (f(I, 2048) && r(I, 55295) || f(I, 57344) && m(I, 65535)) && (C += 3,
|
|
S[l](p(224, h(15, d(I, 12)))),
|
|
S[l](g(128, v(63, y(I, 6)))),
|
|
S[l](_(128, b(63, I))))
|
|
}
|
|
for (var E = 0; w(E, S[s]); E += 1)
|
|
S[E] &= 255;
|
|
return function(e, t) {
|
|
return e <= t
|
|
}(C, 255) ? [0, C][c](S) : [function(e, t) {
|
|
return e >> t
|
|
}(C, 8), b(C, 255)][c](S)
|
|
}
|
|
,
|
|
h.es = function(e) {
|
|
e || (e = """");
|
|
var t = e[i](0, 255)
|
|
, n = []
|
|
, a = h.charCode(t).slice(2);
|
|
return n[l](a[s]),
|
|
n = n[c](a)
|
|
}
|
|
,
|
|
h.en = function(e) {
|
|
var t = function(e, t) {
|
|
return e !== t
|
|
}
|
|
, n = function(e, t) {
|
|
return e % t
|
|
}
|
|
, a = function(e, t) {
|
|
return e < t
|
|
}
|
|
, r = function(e, t) {
|
|
return e * t
|
|
}
|
|
, o = function(e, t) {
|
|
return e + t
|
|
}
|
|
, c = function(e, t, n) {
|
|
return e(t, n)
|
|
};
|
|
e || (e = 0);
|
|
var u = function(e, t) {
|
|
return e(t)
|
|
}(parseInt, e)
|
|
, d = [];
|
|
!function(e, t) {
|
|
return e > t
|
|
}(u, 0) ? d[l](1) : d[l](0);
|
|
for (var p = Math.abs(u).toString(2).split(""""), h = 0; t(n(p[s], 8), 0); h += 1)
|
|
p.unshift(""0"");
|
|
p = p.join("""");
|
|
for (var f = Math.ceil(function(e, t) {
|
|
return e / t
|
|
}(p[s], 8)), m = 0; a(m, f); m += 1) {
|
|
var g = p[i](r(m, 8), r(o(m, 1), 8));
|
|
d[l](c(parseInt, g, 2))
|
|
}
|
|
var v = d[s];
|
|
return d.unshift(v),
|
|
d
|
|
}
|
|
,
|
|
h[r(""0xa"", ""l!6d"")] = function(e) {
|
|
for (var t = function(e, t) {
|
|
return e < t
|
|
}, n = [], a = e.toString(2).split(""""), r = 0; t(a[s], 16); r += 1)
|
|
a.unshift(0);
|
|
return a = a.join(""""),
|
|
n[l](function(e, t, n) {
|
|
return e(t, n)
|
|
}(parseInt, a[i](0, 8), 2), function(e, t, n) {
|
|
return e(t, n)
|
|
}(parseInt, a[i](8, 16), 2)),
|
|
n
|
|
}
|
|
,
|
|
h[r(""0xb"", ""&S@A"")] = function(e) {
|
|
for (var t = {
|
|
OTRHQ: r(""0xc"", ""l!6d""),
|
|
ManMe: function(e, t) {
|
|
return e < t
|
|
},
|
|
RuNgp: r(""0xd"", ""l7e1""),
|
|
YAVpt: function(e, t) {
|
|
return e(t)
|
|
},
|
|
tjRdh: function(e, t) {
|
|
return e - t
|
|
},
|
|
jScTt: function(e, t) {
|
|
return e >> t
|
|
},
|
|
WSBOs: function(e, t) {
|
|
return e + t
|
|
},
|
|
iquNq: function(e, t) {
|
|
return e + t
|
|
},
|
|
TRMwR: function(e, t) {
|
|
return e + t
|
|
},
|
|
VfVya: function(e, t) {
|
|
return e + t
|
|
},
|
|
BtbyW: function(e, t) {
|
|
return e | t
|
|
},
|
|
OVNcH: function(e, t) {
|
|
return e << t
|
|
},
|
|
xtaIO: function(e, t) {
|
|
return e & t
|
|
},
|
|
nkTwY: function(e, t) {
|
|
return e >> t
|
|
},
|
|
NujdN: function(e, t) {
|
|
return e - t
|
|
},
|
|
YPjfa: function(e, t) {
|
|
return e - t
|
|
},
|
|
SNTFM: r(""0xe"", ""hW@4""),
|
|
MOIzC: function(e, t) {
|
|
return e < t
|
|
}
|
|
}, n = t.OTRHQ.split(""|""), a = 0; ; ) {
|
|
switch (n[a++]) {
|
|
case ""0"":
|
|
i._AAA(""="");
|
|
continue;
|
|
case ""1"":
|
|
var i = {
|
|
""_BBB"": new Array(4095),
|
|
""_CCC"": -1,
|
|
""_AAA"": function(e) {
|
|
this._CCC++,
|
|
this._BBB[this._CCC] = e
|
|
},
|
|
""_bY"": function() {
|
|
return this._CCC--,
|
|
v.zrJTh(this._CCC, 0) && (this._CCC = 0),
|
|
this._BBB[this._CCC]
|
|
}
|
|
};
|
|
continue;
|
|
case ""2"":
|
|
var c = """";
|
|
continue;
|
|
case ""3"":
|
|
for (y = 0; t.ManMe(y, e[s]); y = d._bK)
|
|
for (var l = t.RuNgp.split(""|""), u = 0; ; ) {
|
|
switch (l[u++]) {
|
|
case ""0"":
|
|
i._CCC -= 3;
|
|
continue;
|
|
case ""1"":
|
|
t.YAVpt(isNaN, i._BBB[t.tjRdh(i._CCC, 1)]) ? m = g = 64 : t.YAVpt(isNaN, i._BBB[i._CCC]) && (g = 64);
|
|
continue;
|
|
case ""2"":
|
|
case ""3"":
|
|
i._AAA(d._bf());
|
|
continue;
|
|
case ""4"":
|
|
h = t.jScTt(i._BBB[t.tjRdh(i._CCC, 2)], 2);
|
|
continue;
|
|
case ""5"":
|
|
c = t.WSBOs(t.iquNq(t.TRMwR(t.VfVya(c, i._BBB[h]), i._BBB[f]), i._BBB[m]), i._BBB[g]);
|
|
continue;
|
|
case ""6"":
|
|
m = t.BtbyW(t.OVNcH(t.xtaIO(i._BBB[t.tjRdh(i._CCC, 1)], 15), 2), t.nkTwY(i._BBB[i._CCC], 6));
|
|
continue;
|
|
case ""7"":
|
|
i._AAA(d._bf());
|
|
continue;
|
|
case ""8"":
|
|
g = t.xtaIO(i._BBB[i._CCC], 63);
|
|
continue;
|
|
case ""9"":
|
|
f = t.BtbyW(t.OVNcH(t.xtaIO(i._BBB[t.NujdN(i._CCC, 2)], 3), 4), t.nkTwY(i._BBB[t.YPjfa(i._CCC, 1)], 4));
|
|
continue
|
|
}
|
|
break
|
|
}
|
|
continue;
|
|
case ""4"":
|
|
var d = {
|
|
""_b?"": e,
|
|
_bK: 0,
|
|
_bf: function() {
|
|
return e[o](this._bK++)
|
|
}
|
|
};
|
|
continue;
|
|
case ""5"":
|
|
var p = t.SNTFM;
|
|
continue;
|
|
case ""6"":
|
|
return c.replace(/=/g, """");
|
|
case ""7"":
|
|
var h, f, m, g;
|
|
continue;
|
|
case ""8"":
|
|
var v = {
|
|
zrJTh: function(e, n) {
|
|
return t.ManMe(e, n)
|
|
}
|
|
};
|
|
continue;
|
|
case ""9"":
|
|
for (var y = 0; t.MOIzC(y, p[s]); y++)
|
|
i._AAA(p.charAt(y));
|
|
continue
|
|
}
|
|
break
|
|
}
|
|
}
|
|
return h
|
|
}()
|
|
var n_2=function(){
|
|
var n = {
|
|
utf8: {
|
|
stringToBytes: function(e) {
|
|
return n.bin.stringToBytes(unescape(encodeURIComponent(e)))
|
|
},
|
|
bytesToString: function(e) {
|
|
return decodeURIComponent(escape(n.bin.bytesToString(e)))
|
|
}
|
|
},
|
|
bin: {
|
|
stringToBytes: function(e) {
|
|
for (var t = [], n = 0; n < e.length; n++)
|
|
t.push(255 & e.charCodeAt(n));
|
|
return t
|
|
},
|
|
bytesToString: function(e) {
|
|
for (var t = [], n = 0; n < e.length; n++)
|
|
t.push(String.fromCharCode(e[n]));
|
|
return t.join("""")
|
|
}
|
|
}
|
|
};
|
|
return n
|
|
}()
|
|
var n_8=function(){
|
|
function n(e) {
|
|
return !!e.constructor && ""function"" == typeof e.constructor.isBuffer && e.constructor.isBuffer(e)
|
|
}
|
|
return function(e) {
|
|
return null != e && (n(e) || function(e) {
|
|
return ""function"" == typeof e.readFloatLE && ""function"" == typeof e.slice && n(e.slice(0, 0))
|
|
}(e) || !!e._isBuffer)
|
|
}
|
|
}()
|
|
var n_7=function(){
|
|
var n, a;
|
|
n = ""ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"",
|
|
a = {
|
|
rotl: function(e, t) {
|
|
return e << t | e >>> 32 - t
|
|
},
|
|
rotr: function(e, t) {
|
|
return e << 32 - t | e >>> t
|
|
},
|
|
endian: function(e) {
|
|
if (e.constructor == Number)
|
|
return 16711935 & a.rotl(e, 8) | 4278255360 & a.rotl(e, 24);
|
|
for (var t = 0; t < e.length; t++)
|
|
e[t] = a.endian(e[t]);
|
|
return e
|
|
},
|
|
randomBytes: function(e) {
|
|
for (var t = []; e > 0; e--)
|
|
t.push(Math.floor(256 * Math.random()));
|
|
return t
|
|
},
|
|
bytesToWords: function(e) {
|
|
for (var t = [], n = 0, a = 0; n < e.length; n++,
|
|
a += 8)
|
|
t[a >>> 5] |= e[n] << 24 - a % 32;
|
|
return t
|
|
},
|
|
wordsToBytes: function(e) {
|
|
for (var t = [], n = 0; n < 32 * e.length; n += 8)
|
|
t.push(e[n >>> 5] >>> 24 - n % 32 & 255);
|
|
return t
|
|
},
|
|
bytesToHex: function(e) {
|
|
for (var t = [], n = 0; n < e.length; n++)
|
|
t.push((e[n] >>> 4).toString(16)),
|
|
t.push((15 & e[n]).toString(16));
|
|
return t.join("""")
|
|
},
|
|
hexToBytes: function(e) {
|
|
for (var t = [], n = 0; n < e.length; n += 2)
|
|
t.push(parseInt(e.substr(n, 2), 16));
|
|
return t
|
|
},
|
|
bytesToBase64: function(e) {
|
|
for (var t = [], a = 0; a < e.length; a += 3)
|
|
for (var r = e[a] << 16 | e[a + 1] << 8 | e[a + 2], i = 0; i < 4; i++)
|
|
8 * a + 6 * i <= 8 * e.length ? t.push(n.charAt(r >>> 6 * (3 - i) & 63)) : t.push(""="");
|
|
return t.join("""")
|
|
},
|
|
base64ToBytes: function(e) {
|
|
e = e.replace(/[^A-Z0-9+\/]/gi, """");
|
|
for (var t = [], a = 0, r = 0; a < e.length; r = ++a % 4)
|
|
0 != r && t.push((n.indexOf(e.charAt(a - 1)) & Math.pow(2, -2 * r + 8) - 1) << 2 * r | n.indexOf(e.charAt(a)) >>> 6 - 2 * r);
|
|
return t
|
|
}
|
|
};
|
|
return a
|
|
}()
|
|
var n_6=function(){
|
|
|
|
var a, r, i, o, s;
|
|
a = n_7,
|
|
r = n_2.utf8,
|
|
i = n_8,
|
|
o = n_2.bin,
|
|
(s = function e(t, n) {
|
|
t.constructor == String ? t = n && ""binary"" === n.encoding ? o.stringToBytes(t) : r.stringToBytes(t) : i(t) ? t = Array.prototype.slice.call(t, 0) : Array.isArray(t) || (t = t.toString());
|
|
for (var s = a.bytesToWords(t), c = 8 * t.length, l = 1732584193, u = -271733879, d = -1732584194, p = 271733878, h = 0; h < s.length; h++)
|
|
s[h] = 16711935 & (s[h] << 8 | s[h] >>> 24) | 4278255360 & (s[h] << 24 | s[h] >>> 8);
|
|
s[c >>> 5] |= 128 << c % 32,
|
|
s[14 + (c + 64 >>> 9 << 4)] = c;
|
|
var f = e._ff
|
|
, m = e._gg
|
|
, g = e._hh
|
|
, v = e._ii;
|
|
for (h = 0; h < s.length; h += 16) {
|
|
var y = l
|
|
, _ = u
|
|
, b = d
|
|
, w = p;
|
|
u = v(u = v(u = v(u = v(u = g(u = g(u = g(u = g(u = m(u = m(u = m(u = m(u = f(u = f(u = f(u = f(u, d = f(d, p = f(p, l = f(l, u, d, p, s[h + 0], 7, -680876936), u, d, s[h + 1], 12, -389564586), l, u, s[h + 2], 17, 606105819), p, l, s[h + 3], 22, -1044525330), d = f(d, p = f(p, l = f(l, u, d, p, s[h + 4], 7, -176418897), u, d, s[h + 5], 12, 1200080426), l, u, s[h + 6], 17, -1473231341), p, l, s[h + 7], 22, -45705983), d = f(d, p = f(p, l = f(l, u, d, p, s[h + 8], 7, 1770035416), u, d, s[h + 9], 12, -1958414417), l, u, s[h + 10], 17, -42063), p, l, s[h + 11], 22, -1990404162), d = f(d, p = f(p, l = f(l, u, d, p, s[h + 12], 7, 1804603682), u, d, s[h + 13], 12, -40341101), l, u, s[h + 14], 17, -1502002290), p, l, s[h + 15], 22, 1236535329), d = m(d, p = m(p, l = m(l, u, d, p, s[h + 1], 5, -165796510), u, d, s[h + 6], 9, -1069501632), l, u, s[h + 11], 14, 643717713), p, l, s[h + 0], 20, -373897302), d = m(d, p = m(p, l = m(l, u, d, p, s[h + 5], 5, -701558691), u, d, s[h + 10], 9, 38016083), l, u, s[h + 15], 14, -660478335), p, l, s[h + 4], 20, -405537848), d = m(d, p = m(p, l = m(l, u, d, p, s[h + 9], 5, 568446438), u, d, s[h + 14], 9, -1019803690), l, u, s[h + 3], 14, -187363961), p, l, s[h + 8], 20, 1163531501), d = m(d, p = m(p, l = m(l, u, d, p, s[h + 13], 5, -1444681467), u, d, s[h + 2], 9, -51403784), l, u, s[h + 7], 14, 1735328473), p, l, s[h + 12], 20, -1926607734), d = g(d, p = g(p, l = g(l, u, d, p, s[h + 5], 4, -378558), u, d, s[h + 8], 11, -2022574463), l, u, s[h + 11], 16, 1839030562), p, l, s[h + 14], 23, -35309556), d = g(d, p = g(p, l = g(l, u, d, p, s[h + 1], 4, -1530992060), u, d, s[h + 4], 11, 1272893353), l, u, s[h + 7], 16, -155497632), p, l, s[h + 10], 23, -1094730640), d = g(d, p = g(p, l = g(l, u, d, p, s[h + 13], 4, 681279174), u, d, s[h + 0], 11, -358537222), l, u, s[h + 3], 16, -722521979), p, l, s[h + 6], 23, 76029189), d = g(d, p = g(p, l = g(l, u, d, p, s[h + 9], 4, -640364487), u, d, s[h + 12], 11, -421815835), l, u, s[h + 15], 16, 530742520), p, l, s[h + 2], 23, -995338651), d = v(d, p = v(p, l = v(l, u, d, p, s[h + 0], 6, -198630844), u, d, s[h + 7], 10, 1126891415), l, u, s[h + 14], 15, -1416354905), p, l, s[h + 5], 21, -57434055), d = v(d, p = v(p, l = v(l, u, d, p, s[h + 12], 6, 1700485571), u, d, s[h + 3], 10, -1894986606), l, u, s[h + 10], 15, -1051523), p, l, s[h + 1], 21, -2054922799), d = v(d, p = v(p, l = v(l, u, d, p, s[h + 8], 6, 1873313359), u, d, s[h + 15], 10, -30611744), l, u, s[h + 6], 15, -1560198380), p, l, s[h + 13], 21, 1309151649), d = v(d, p = v(p, l = v(l, u, d, p, s[h + 4], 6, -145523070), u, d, s[h + 11], 10, -1120210379), l, u, s[h + 2], 15, 718787259), p, l, s[h + 9], 21, -343485551),
|
|
l = l + y >>> 0,
|
|
u = u + _ >>> 0,
|
|
d = d + b >>> 0,
|
|
p = p + w >>> 0
|
|
}
|
|
return a.endian([l, u, d, p])
|
|
}
|
|
)._ff = function(e, t, n, a, r, i, o) {
|
|
var s = e + (t & n | ~t & a) + (r >>> 0) + o;
|
|
return (s << i | s >>> 32 - i) + t
|
|
}
|
|
,
|
|
s._gg = function(e, t, n, a, r, i, o) {
|
|
var s = e + (t & a | n & ~a) + (r >>> 0) + o;
|
|
return (s << i | s >>> 32 - i) + t
|
|
}
|
|
,
|
|
s._hh = function(e, t, n, a, r, i, o) {
|
|
var s = e + (t ^ n ^ a) + (r >>> 0) + o;
|
|
return (s << i | s >>> 32 - i) + t
|
|
}
|
|
,
|
|
s._ii = function(e, t, n, a, r, i, o) {
|
|
var s = e + (n ^ (t | ~a)) + (r >>> 0) + o;
|
|
return (s << i | s >>> 32 - i) + t
|
|
}
|
|
,
|
|
s._blocksize = 16,
|
|
s._digestsize = 16;
|
|
return function(e, t) {
|
|
if (void 0 === e || null === e)
|
|
throw new Error(""Illegal argument "" + e);
|
|
var n = a.wordsToBytes(s(e, t));
|
|
return t && t.asBytes ? n : t && t.asString ? o.bytesToString(n) : a.bytesToHex(n)
|
|
}
|
|
|
|
}()
|
|
var n_4=function(){
|
|
var t, n, a = [""fsOsw4pww5g="", ""w64ewrQjwqzDmcKN"", ""PcKPwo/Ci8KPAA=="", ""TMO6TV12woFgw5E="", ""EGjDjg=="", ""HcO4LsKuI3g="", ""TXfClnIzw6TCq8OZeSHDllfDvcO6w4I2UF/Cqw=="", ""woopbMKow63DkiIeNVQMecKRw6AUw5AXw6Bt"", ""wovCnsO9wpnCpBxEAnB7w6fDjsKQUcKzXMK4woYzA8KGICVJw7ZMw59VdcKGbsO7X8OFwp12F8K7bWtmw7c9w7zDmhXDqzFXwokQIMKeND/DliR6RcKTbBnDsMKD"", ""RhvCgApkw5jCng=="", ""XCvDscOZXXfDvyEB"", ""LcKhwpzDkC7Ckx/CscKHJw=="", ""wpfDoEV/woIT"", ""Z8Ksw7rDmcO6Vw=="", ""wovDsFhw"", ""w5Egw4EJSiLCqcOBwrR6wp3CqMKWG8KBwpRCwqNban1QwpVzw6rDp8KjG3fDsMKcwr/CisKBWy3Cp3HDm8OLQ2Q0wpFmSMOuGlrDscKgw5oWwqnCrgbDr8K9H3FewrheOA==""];
|
|
t = a,
|
|
n = 410,
|
|
function(e) {
|
|
for (; --e; )
|
|
t.push(t.shift())
|
|
}(++n);
|
|
var r = function e(t, n) {
|
|
var r, i = a[t -= 0];
|
|
void 0 === e.XCyDvT && ((r = function() {
|
|
var e;
|
|
try {
|
|
e = Function('return (function() {}.constructor(""return this"")( ));')()
|
|
} catch (t) {
|
|
e = window
|
|
}
|
|
return e
|
|
}()).atob || (r.atob = function(e) {
|
|
for (var t, n, a = String(e).replace(/=+$/, """"), r = 0, i = 0, o = """"; n = a.charAt(i++); ~n && (t = r % 4 ? 64 * t + n : n,
|
|
r++ % 4) ? o += String.fromCharCode(255 & t >> (-2 * r & 6)) : 0)
|
|
n = ""ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="".indexOf(n);
|
|
return o
|
|
}
|
|
),
|
|
e.gnKVWC = function(e, t) {
|
|
for (var n, a = [], r = 0, i = """", o = """", s = 0, c = (e = atob(e)).length; s < c; s++)
|
|
o += ""%"" + (""00"" + e.charCodeAt(s).toString(16)).slice(-2);
|
|
e = decodeURIComponent(o);
|
|
for (var l = 0; l < 256; l++)
|
|
a[l] = l;
|
|
for (l = 0; l < 256; l++)
|
|
r = (r + a[l] + t.charCodeAt(l % t.length)) % 256,
|
|
n = a[l],
|
|
a[l] = a[r],
|
|
a[r] = n;
|
|
l = 0,
|
|
r = 0;
|
|
for (var u = 0; u < e.length; u++)
|
|
r = (r + a[l = (l + 1) % 256]) % 256,
|
|
n = a[l],
|
|
a[l] = a[r],
|
|
a[r] = n,
|
|
i += String.fromCharCode(e.charCodeAt(u) ^ a[(a[l] + a[r]) % 256]);
|
|
return i
|
|
}
|
|
,
|
|
e.BawHbV = {},
|
|
e.XCyDvT = !0);
|
|
var o = e.BawHbV[t];
|
|
return void 0 === o ? (void 0 === e.hdDebs && (e.hdDebs = !0),
|
|
i = e.gnKVWC(i, n),
|
|
e.BawHbV[t] = i) : i = o,
|
|
i
|
|
}
|
|
, i = r(""0x0"", ""rrVt"")
|
|
, o = r(""0x1"", ""%p$t"")
|
|
, s = r(""0x2"", ""h62p"")
|
|
, c = r(""0x3"", ""bvUg"")
|
|
, l = r(""0x4"", ""h62p"")
|
|
, u = r(""0x5"", ""Acn)"")[r(""0x6"", ""pDBh"")]("""")
|
|
, d = {};
|
|
function p(e) {
|
|
return e[r(""0x7"", ""a@!G"")](/[+\/=]/g, function(e) {
|
|
return d[e]
|
|
})
|
|
}
|
|
d[""+""] = ""-"",
|
|
d[""/""] = ""_"",
|
|
d[""=""] = """";
|
|
var h = {};
|
|
h[r(""0x8"", ""9$$F"")] = function(e) {
|
|
for (var t = function(e, t) {
|
|
return e < t
|
|
}, n = function(e, t) {
|
|
return e + t
|
|
}, a = function(e, t) {
|
|
return e + t
|
|
}, r = function(e, t) {
|
|
return e + t
|
|
}, i = function(e, t) {
|
|
return e >>> t
|
|
}, o = function(e, t) {
|
|
return e & t
|
|
}, c = function(e, t) {
|
|
return e | t
|
|
}, l = function(e, t) {
|
|
return e << t
|
|
}, d = function(e, t) {
|
|
return e >>> t
|
|
}, h = function(e, t) {
|
|
return e & t
|
|
}, f = function(e, t) {
|
|
return e | t
|
|
}, m = function(e, t) {
|
|
return e & t
|
|
}, g = function(e, t) {
|
|
return e === t
|
|
}, v = function(e, t) {
|
|
return e + t
|
|
}, y = function(e, t) {
|
|
return e << t
|
|
}, _ = function(e, t) {
|
|
return e & t
|
|
}, b = void 0, w = void 0, S = void 0, C = """", A = e[s], I = 0, E = function(e, t) {
|
|
return e * t
|
|
}(function(e, t) {
|
|
return e(t)
|
|
}(parseInt, function(e, t) {
|
|
return e / t
|
|
}(A, 3)), 3); t(I, E); )
|
|
b = e[I++],
|
|
w = e[I++],
|
|
S = e[I++],
|
|
C += n(a(r(u[i(b, 2)], u[o(c(l(b, 4), d(w, 4)), 63)]), u[h(f(l(w, 2), d(S, 6)), 63)]), u[m(S, 63)]);
|
|
var k = function(e, t) {
|
|
return e - t
|
|
}(A, E);
|
|
return g(k, 1) ? (b = e[I],
|
|
C += v(v(u[d(b, 2)], u[m(y(b, 4), 63)]), ""=="")) : g(k, 2) && (b = e[I++],
|
|
w = e[I],
|
|
C += v(function(e, t) {
|
|
return e + t
|
|
}(function(e, t) {
|
|
return e + t
|
|
}(u[d(b, 2)], u[_(f(y(b, 4), function(e, t) {
|
|
return e >>> t
|
|
}(w, 4)), 63)]), u[_(y(w, 2), 63)]), ""="")),
|
|
function(e, t) {
|
|
return e(t)
|
|
}(p, C)
|
|
}
|
|
,
|
|
h[r(""0x9"", ""mzYq"")] = function(e) {
|
|
for (var t = function(e, t) {
|
|
return e < t
|
|
}, n = function(e, t) {
|
|
return e >= t
|
|
}, a = function(e, t) {
|
|
return e <= t
|
|
}, r = function(e, t) {
|
|
return e <= t
|
|
}, i = function(e, t) {
|
|
return e | t
|
|
}, u = function(e, t) {
|
|
return e & t
|
|
}, d = function(e, t) {
|
|
return e >> t
|
|
}, p = function(e, t) {
|
|
return e | t
|
|
}, h = function(e, t) {
|
|
return e & t
|
|
}, f = function(e, t) {
|
|
return e >= t
|
|
}, m = function(e, t) {
|
|
return e <= t
|
|
}, g = function(e, t) {
|
|
return e | t
|
|
}, v = function(e, t) {
|
|
return e & t
|
|
}, y = function(e, t) {
|
|
return e >> t
|
|
}, _ = function(e, t) {
|
|
return e | t
|
|
}, b = function(e, t) {
|
|
return e & t
|
|
}, w = function(e, t) {
|
|
return e < t
|
|
}, S = [], C = 0, A = 0; t(A, e[s]); A += 1) {
|
|
var I = e[o](A);
|
|
n(I, 0) && a(I, 127) ? (S[l](I),
|
|
C += 1) : a(128, 80) && r(I, 2047) ? (C += 2,
|
|
S[l](i(192, u(31, d(I, 6)))),
|
|
S[l](p(128, h(63, I)))) : (f(I, 2048) && r(I, 55295) || f(I, 57344) && m(I, 65535)) && (C += 3,
|
|
S[l](p(224, h(15, d(I, 12)))),
|
|
S[l](g(128, v(63, y(I, 6)))),
|
|
S[l](_(128, b(63, I))))
|
|
}
|
|
for (var E = 0; w(E, S[s]); E += 1)
|
|
S[E] &= 255;
|
|
return function(e, t) {
|
|
return e <= t
|
|
}(C, 255) ? [0, C][c](S) : [function(e, t) {
|
|
return e >> t
|
|
}(C, 8), b(C, 255)][c](S)
|
|
}
|
|
,
|
|
h.es = function(e) {
|
|
e || (e = """");
|
|
var t = e[i](0, 255)
|
|
, n = []
|
|
, a = h.charCode(t).slice(2);
|
|
return n[l](a[s]),
|
|
n = n[c](a)
|
|
}
|
|
,
|
|
h.en = function(e) {
|
|
var t = function(e, t) {
|
|
return e !== t
|
|
}
|
|
, n = function(e, t) {
|
|
return e % t
|
|
}
|
|
, a = function(e, t) {
|
|
return e < t
|
|
}
|
|
, r = function(e, t) {
|
|
return e * t
|
|
}
|
|
, o = function(e, t) {
|
|
return e + t
|
|
}
|
|
, c = function(e, t, n) {
|
|
return e(t, n)
|
|
};
|
|
e || (e = 0);
|
|
var u = function(e, t) {
|
|
return e(t)
|
|
}(parseInt, e)
|
|
, d = [];
|
|
!function(e, t) {
|
|
return e > t
|
|
}(u, 0) ? d[l](1) : d[l](0);
|
|
for (var p = Math.abs(u).toString(2).split(""""), h = 0; t(n(p[s], 8), 0); h += 1)
|
|
p.unshift(""0"");
|
|
p = p.join("""");
|
|
for (var f = Math.ceil(function(e, t) {
|
|
return e / t
|
|
}(p[s], 8)), m = 0; a(m, f); m += 1) {
|
|
var g = p[i](r(m, 8), r(o(m, 1), 8));
|
|
d[l](c(parseInt, g, 2))
|
|
}
|
|
var v = d[s];
|
|
return d.unshift(v),
|
|
d
|
|
}
|
|
,
|
|
h[r(""0xa"", ""l!6d"")] = function(e) {
|
|
for (var t = function(e, t) {
|
|
return e < t
|
|
}, n = [], a = e.toString(2).split(""""), r = 0; t(a[s], 16); r += 1)
|
|
a.unshift(0);
|
|
return a = a.join(""""),
|
|
n[l](function(e, t, n) {
|
|
return e(t, n)
|
|
}(parseInt, a[i](0, 8), 2), function(e, t, n) {
|
|
return e(t, n)
|
|
}(parseInt, a[i](8, 16), 2)),
|
|
n
|
|
}
|
|
,
|
|
h[r(""0xb"", ""&S@A"")] = function(e) {
|
|
for (var t = {
|
|
OTRHQ: r(""0xc"", ""l!6d""),
|
|
ManMe: function(e, t) {
|
|
return e < t
|
|
},
|
|
RuNgp: r(""0xd"", ""l7e1""),
|
|
YAVpt: function(e, t) {
|
|
return e(t)
|
|
},
|
|
tjRdh: function(e, t) {
|
|
return e - t
|
|
},
|
|
jScTt: function(e, t) {
|
|
return e >> t
|
|
},
|
|
WSBOs: function(e, t) {
|
|
return e + t
|
|
},
|
|
iquNq: function(e, t) {
|
|
return e + t
|
|
},
|
|
TRMwR: function(e, t) {
|
|
return e + t
|
|
},
|
|
VfVya: function(e, t) {
|
|
return e + t
|
|
},
|
|
BtbyW: function(e, t) {
|
|
return e | t
|
|
},
|
|
OVNcH: function(e, t) {
|
|
return e << t
|
|
},
|
|
xtaIO: function(e, t) {
|
|
return e & t
|
|
},
|
|
nkTwY: function(e, t) {
|
|
return e >> t
|
|
},
|
|
NujdN: function(e, t) {
|
|
return e - t
|
|
},
|
|
YPjfa: function(e, t) {
|
|
return e - t
|
|
},
|
|
SNTFM: r(""0xe"", ""hW@4""),
|
|
MOIzC: function(e, t) {
|
|
return e < t
|
|
}
|
|
}, n = t.OTRHQ.split(""|""), a = 0; ; ) {
|
|
switch (n[a++]) {
|
|
case ""0"":
|
|
i._AAA(""="");
|
|
continue;
|
|
case ""1"":
|
|
var i = {
|
|
""_BBB"": new Array(4095),
|
|
""_CCC"": -1,
|
|
""_AAA"": function(e) {
|
|
this._CCC++,
|
|
this._BBB[this._CCC] = e
|
|
},
|
|
""_bY"": function() {
|
|
return this._CCC--,
|
|
v.zrJTh(this._CCC, 0) && (this._CCC = 0),
|
|
this._BBB[this._CCC]
|
|
}
|
|
};
|
|
continue;
|
|
case ""2"":
|
|
var c = """";
|
|
continue;
|
|
case ""3"":
|
|
for (y = 0; t.ManMe(y, e[s]); y = d._bK)
|
|
for (var l = t.RuNgp.split(""|""), u = 0; ; ) {
|
|
switch (l[u++]) {
|
|
case ""0"":
|
|
i._CCC -= 3;
|
|
continue;
|
|
case ""1"":
|
|
t.YAVpt(isNaN, i._BBB[t.tjRdh(i._CCC, 1)]) ? m = g = 64 : t.YAVpt(isNaN, i._BBB[i._CCC]) && (g = 64);
|
|
continue;
|
|
case ""2"":
|
|
case ""3"":
|
|
i._AAA(d._bf());
|
|
continue;
|
|
case ""4"":
|
|
h = t.jScTt(i._BBB[t.tjRdh(i._CCC, 2)], 2);
|
|
continue;
|
|
case ""5"":
|
|
c = t.WSBOs(t.iquNq(t.TRMwR(t.VfVya(c, i._BBB[h]), i._BBB[f]), i._BBB[m]), i._BBB[g]);
|
|
continue;
|
|
case ""6"":
|
|
m = t.BtbyW(t.OVNcH(t.xtaIO(i._BBB[t.tjRdh(i._CCC, 1)], 15), 2), t.nkTwY(i._BBB[i._CCC], 6));
|
|
continue;
|
|
case ""7"":
|
|
i._AAA(d._bf());
|
|
continue;
|
|
case ""8"":
|
|
g = t.xtaIO(i._BBB[i._CCC], 63);
|
|
continue;
|
|
case ""9"":
|
|
f = t.BtbyW(t.OVNcH(t.xtaIO(i._BBB[t.NujdN(i._CCC, 2)], 3), 4), t.nkTwY(i._BBB[t.YPjfa(i._CCC, 1)], 4));
|
|
continue
|
|
}
|
|
break
|
|
}
|
|
continue;
|
|
case ""4"":
|
|
var d = {
|
|
""_b?"": e,
|
|
_bK: 0,
|
|
_bf: function() {
|
|
return e[o](this._bK++)
|
|
}
|
|
};
|
|
continue;
|
|
case ""5"":
|
|
var p = t.SNTFM;
|
|
continue;
|
|
case ""6"":
|
|
return c.replace(/=/g, """");
|
|
case ""7"":
|
|
var h, f, m, g;
|
|
continue;
|
|
case ""8"":
|
|
var v = {
|
|
zrJTh: function(e, n) {
|
|
return t.ManMe(e, n)
|
|
}
|
|
};
|
|
continue;
|
|
case ""9"":
|
|
for (var y = 0; t.MOIzC(y, p[s]); y++)
|
|
i._AAA(p.charAt(y));
|
|
continue
|
|
}
|
|
break
|
|
}
|
|
}
|
|
return h
|
|
}()
|
|
var n_17=function(){
|
|
return function(e) {
|
|
e = e || 21;
|
|
for (var t = """"; 0 < e--; )
|
|
t += ""_~getRandomVcryp0123456789bfhijklqsuvwxzABCDEFGHIJKLMNOPQSTUWXYZ""[64 * Math.random() | 0];
|
|
return t
|
|
}
|
|
}
|
|
var n_18=function(){
|
|
return function(e, t, n) {
|
|
if (""string"" != typeof e)
|
|
throw new Error(""The string parameter must be a string."");
|
|
if (e.length < 1)
|
|
throw new Error(""The string parameter must be 1 character or longer."");
|
|
if (""number"" != typeof t)
|
|
throw new Error(""The length parameter must be a number."");
|
|
if (""string"" != typeof n && n)
|
|
throw new Error(""The character parameter must be a string."");
|
|
var a = -1;
|
|
for (t -= e.length,
|
|
n || 0 === n || (n = "" ""); ++a < t; )
|
|
e += n;
|
|
return e
|
|
}
|
|
}
|
|
var n_16=function(){
|
|
var t, a, r = ""function"" == typeof Symbol && ""symbol"" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
}
|
|
: function(e) {
|
|
return e && ""function"" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? ""symbol"" : typeof e
|
|
}
|
|
, i = n_4, o = n_17, s = n_18, c = [""ZsKHw6dJKg=="", ""PsKiwoHDkls="", ""fcOIcsOOwoE="", ""w6DDhMO1"", ""wqgRw48="", ""WXbCh8OrwqI="", ""Mx8u"", ""XsKMwrgMwq8="", ""w57ClhbDh8KcMlU="", ""YsKxwpg8wrQyw4Q5wrM="", ""wqLDrcK2w4HDtcOTw5w/a23DpcO1"", ""w63CvXUAw7HCmw=="", ""w7rCpcK4Ej0vwrgN"", ""B8KkwqbDgl47"", ""w5wvwrDDn8OBw6F5QMOI"", ""w4jCixLDq8KBKU3CvcKc"", ""w5HCqjnDi8K1w5TCoSXCtlo="", ""VHbDg8KnfBxSw5A="", ""wohlwolpwrnDmz3CncO/"", ""w73Ct244w6zCkVcUW8O4"", ""wo3DryjDoMKxw5LCoSHCogI="", ""f8Krwo0="", ""wo43fsORwqI="", ""VMK8O8KOFw=="", ""YsKfMMKrCw=="", ""w7M1w7xMwqQ="", ""wr1Ow4/ChAU="", ""w57Dqx/Ci3k="", ""JRQ5Lm1n"", ""VcOoV8OtwqQ="", ""YMOFdcOCwrs="", ""BMKMwqTDtkQ="", ""wrRuw5HCn8O9"", ""wqvDjBlXw5Q="", ""wp9lw5LCnMOswrU="", ""wpoyw40ybWgACU3Cgw=="", ""ccO0M8Ocwq8="", ""TsO6w7ZITw=="", ""w7nCiMKUKiA="", ""dBIHwo/Du1Et"", ""W8KBw6BHPA=="", ""WEnCkD/DmQ=="", ""w5zDisOkw7gOKA=="", ""OBfDv8KXw5jCmxoEPUfCiQ=="", ""woo2w4UjSw=="", ""wpvDt8KPw7XDkA=="", ""bm/ClwrDgg=="", ""w6XDmWVgw7A="", ""PMKJw47DtiTDgRE="", ""DS0pImA="", ""wozDmRDDscKO"", ""DDnDnMKtYRE="", ""Kz7DscK+ag=="", ""VU7Ch3snw6TCvg=="", ""GRvDo8KQw5k="", ""w6oww6Zuwo0Dwpg="", ""K3TDs0c9"", ""wofDhzPCvsKl"", ""XsODw6JvQw==""];
|
|
t = c,
|
|
a = 481,
|
|
function(e) {
|
|
for (; --e; )
|
|
t.push(t.shift())
|
|
}(++a);
|
|
var l = function e(t, n) {
|
|
var a = c[t -= 0];
|
|
void 0 === e.ToSPmZ && (function() {
|
|
var e;
|
|
try {
|
|
e = Function('return (function() {}.constructor(""return this"")( ));')()
|
|
} catch (t) {
|
|
e = window
|
|
}
|
|
e.atob || (e.atob = function(e) {
|
|
for (var t, n, a = String(e).replace(/=+$/, """"), r = 0, i = 0, o = """"; n = a.charAt(i++); ~n && (t = r % 4 ? 64 * t + n : n,
|
|
r++ % 4) ? o += String.fromCharCode(255 & t >> (-2 * r & 6)) : 0)
|
|
n = ""ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="".indexOf(n);
|
|
return o
|
|
}
|
|
)
|
|
}(),
|
|
e.bDEYsi = function(e, t) {
|
|
for (var n, a = [], r = 0, i = """", o = """", s = 0, c = (e = atob(e)).length; s < c; s++)
|
|
o += ""%"" + (""00"" + e.charCodeAt(s).toString(16)).slice(-2);
|
|
e = decodeURIComponent(o);
|
|
for (var l = 0; l < 256; l++)
|
|
a[l] = l;
|
|
for (l = 0; l < 256; l++)
|
|
r = (r + a[l] + t.charCodeAt(l % t.length)) % 256,
|
|
n = a[l],
|
|
a[l] = a[r],
|
|
a[r] = n;
|
|
l = 0,
|
|
r = 0;
|
|
for (var u = 0; u < e.length; u++)
|
|
r = (r + a[l = (l + 1) % 256]) % 256,
|
|
n = a[l],
|
|
a[l] = a[r],
|
|
a[r] = n,
|
|
i += String.fromCharCode(e.charCodeAt(u) ^ a[(a[l] + a[r]) % 256]);
|
|
return i
|
|
}
|
|
,
|
|
e.CsmJJo = {},
|
|
e.ToSPmZ = !0);
|
|
var r = e.CsmJJo[t];
|
|
return void 0 === r ? (void 0 === e.IecrwX && (e.IecrwX = !0),
|
|
a = e.bDEYsi(a, n),
|
|
e.CsmJJo[t] = a) : a = r,
|
|
a
|
|
}, u = l(""0x0"", ""kqq7"")
|
|
, d = l(""0x1"", ""Nbio"")
|
|
, p = l(""0x2"", ""8]v%"")
|
|
, h = l(""0x3"", ""!dO["")
|
|
, f = l(""0x4"", ""qwPb"")
|
|
, m = void 0;
|
|
(""undefined"" == typeof window ? ""undefined"" : r(window)) !== l(""0x5"", ""@cws"") && (m = window);
|
|
var g = {};
|
|
function v() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Date[l(""0xc"", ""kqq7"")]()
|
|
, t = {};
|
|
t[l(""0xd"", ""7CWB"")] = function(e, t) {
|
|
return e(t)
|
|
}
|
|
,
|
|
t[l(""0xe"", ""2!ee"")] = function(e) {
|
|
return e()
|
|
}
|
|
,
|
|
t[l(""0xf"", ""2!ee"")] = function(e, t) {
|
|
return e % t
|
|
}
|
|
,
|
|
t[l(""0x10"", ""4SXa"")] = function(e, t, n, a) {
|
|
return e(t, n, a)
|
|
}
|
|
,
|
|
t[l(""0x11"", ""^2]S"")] = function(e, t) {
|
|
return e(t)
|
|
}
|
|
,
|
|
t[l(""0x12"", ""^2T5"")] = l(""0x13"", ""0lHd"");
|
|
var n = t[l(""0x14"", ""wxh!"")](String, e)[l(""0x15"", ""wxh!"")](0, 10)
|
|
, a = t[l(""0x16"", ""qwPb"")](o)
|
|
, r = t[l(""0x17"", ""QWdF"")]((n + ""_"" + a)[l(""0x18"", ""uj#G"")]("""")[l(""0x19"", ""QWdF"")](function(e, t) {
|
|
return e + t[l(""0x1a"", ""o39("")](0)
|
|
}, 0), 1e3)
|
|
, c = t[l(""0x1b"", ""sUgK"")](s, t[l(""0x1c"", ""Wkx*"")](String, r), 3, ""0"");
|
|
return i[t[l(""0x1d"", ""!dO["")]]("""" + n + c)[l(""0x1e"", ""Sfwa"")](/=/g, """") + ""_"" + a
|
|
}
|
|
function y(e) {
|
|
var t = {};
|
|
return t[l(""0x1f"", ""lw6I"")] = function(e, t) {
|
|
return e + t
|
|
}
|
|
,
|
|
t[l(""0x20"", ""BFjI"")](e[l(""0x21"", ""XDB^"")](0)[l(""0x22"", ""*K7x"")](), e[l(""0x23"", ""o39("")](1))
|
|
}
|
|
g[l(""0x6"", ""NY!u"")] = function(e, t) {
|
|
var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 9999
|
|
, a = {
|
|
fbRJM: function(e, t) {
|
|
return e + t
|
|
},
|
|
frmUV: function(e, t) {
|
|
return e * t
|
|
},
|
|
hEtyF: function(e, t) {
|
|
return e * t
|
|
},
|
|
Ldquo: function(e, t) {
|
|
return e * t
|
|
},
|
|
WyIat: function(e, t) {
|
|
return e * t
|
|
},
|
|
QoVaK: function(e, t) {
|
|
return e + t
|
|
},
|
|
BFRDf: l(""0x7"", ""(B![""),
|
|
rwfOE: function(e, t) {
|
|
return e + t
|
|
},
|
|
dGuIE: function(e, t) {
|
|
return e || t
|
|
},
|
|
JZtat: l(""0x8"", ""%Wlr"")
|
|
};
|
|
e = a.fbRJM(""_"", e);
|
|
var r = """";
|
|
if (n) {
|
|
var i = new Date;
|
|
i.setTime(a.fbRJM(i.getTime(), a.frmUV(a.hEtyF(a.Ldquo(a.WyIat(n, 24), 60), 60), 1e3))),
|
|
r = a.QoVaK(a.BFRDf, i.toUTCString())
|
|
}
|
|
m[h][p] = a.QoVaK(a.QoVaK(a.QoVaK(a.rwfOE(e, ""=""), a.dGuIE(t, """")), r), a.JZtat)
|
|
}
|
|
,
|
|
g[l(""0x9"", ""lO!]"")] = function(e) {
|
|
for (var t = function(e, t) {
|
|
return e < t
|
|
}, n = function(e, t) {
|
|
return e === t
|
|
}, a = function(e, t) {
|
|
return e === t
|
|
}, r = function(e, t) {
|
|
return e + ""=""
|
|
}(e = function(e, t) {
|
|
return ""_"" + t
|
|
}(0, e)), i = m[h][p].split("";""), o = 0; t(o, i[f]); o++) {
|
|
for (var s = i[o]; n(s.charAt(0), "" ""); )
|
|
s = s[u](1, s[f]);
|
|
if (a(s.indexOf(r), 0))
|
|
return s[u](r[f], s[f])
|
|
}
|
|
return null
|
|
}
|
|
,
|
|
g[l(""0xa"", ""8]v%"")] = function(e, t) {
|
|
e = ""_"" + e,
|
|
m[d].setItem(e, t)
|
|
}
|
|
,
|
|
g[l(""0xb"", ""(B!["")] = function(e) {
|
|
return e = ""_"" + e,
|
|
m[d].getItem(e)
|
|
};
|
|
var e={};
|
|
e[l(""0x3a"", ""NY!u"")] = function() {
|
|
|
|
e[l(""0x24"", ""Nbio"")] = function(e, t) {
|
|
return e(t)
|
|
}
|
|
,
|
|
e[l(""0x25"", ""BFjI"")] = function(e, t) {
|
|
return e(t)
|
|
}
|
|
,
|
|
e[l(""0x26"", ""fEf$"")] = l(""0x27"", ""#Q][""),
|
|
e[l(""0x28"", ""0lHd"")] = function(e) {
|
|
return e()
|
|
}
|
|
,
|
|
e[l(""0x29"", ""(B!["")] = l(""0x2a"", ""%Wlr""),
|
|
e[l(""0x2b"", ""%Wlr"")] = l(""0x2c"", ""Ll3h""),
|
|
e[l(""0x2d"", ""*K7x"")] = l(""0x2e"", ""5!BQ"");
|
|
var t = e[l(""0x2f"", ""l@vt"")]
|
|
, n = {}
|
|
, a = e[l(""0x30"", ""JeN9"")](v);
|
|
return [e[l(""0x31"", ""Wkx*"")], e[l(""0x32"", ""lw6I"")]][e[l(""0x33"", ""qwPb"")]](function(r) {
|
|
try {
|
|
var i = l(""0x34"", ""wxh!"") + r + l(""0x35"", ""XDB^"");
|
|
n[i] = g[l(""0x36"", ""eN@a"") + e[l(""0x37"", ""$%JQ"")](y, r)](t),
|
|
n[i] || (g[l(""0x38"", ""0lHd"") + e[l(""0x39"", ""kqq7"")](y, r)](t, a),
|
|
n[i] = a)
|
|
} catch (e) {}
|
|
}),
|
|
n
|
|
}
|
|
}()
|
|
var obj_2=function(){
|
|
var t, a, r = ""function"" == typeof Symbol && ""symbol"" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
}
|
|
: function(e) {
|
|
return e && ""function"" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? ""symbol"" : typeof e
|
|
}
|
|
, i = n_6, o = n_9, s = n_4, c = n_16, l = [""w4rDocK9wqRC"", ""wpdhB8OQEA=="", ""V8KFRsOAZw=="", ""VRVuIcKx"", ""AkDDmjnDmg=="", ""w5N8BHPDqjLDscOdwq0="", ""YSHDrW/DrQ=="", ""YXcQwpfCnQ3Ds8Knw5EKPXzCnA=="", ""wp7CmMKbwrvDhA=="", ""NcOMwrrClk4="", ""K8Ogw4zDtcKTw5ZnZMO/w4jCpHLDn33CiShEw58fNsKgNcOe"", ""UmvDj8OBEw=="", ""wpdgSSlv"", ""w5fCr8KuD27Dg2t1wps="", ""woxkHcOZ"", ""N8OFw4bDksKU"", ""YUnDrQPCgcKJw4IZw5I="", ""KcOhwpBd"", ""dMOZUGQsw7Zaw7k="", ""wpxoA8ORFMOuwoQ="", ""w5DCkMKXE3k="", ""JDB4w5nDjMKZWMOs"", ""SsOTRWM4"", ""woTCoMKEwrjDjRTDrMKNKw=="", ""wqrDocO4wptJP8K5wq4="", ""O8K3TMOrw7szFw=="", ""wqnDg8O9wodD"", ""wpZBbsK4wr1AU8KE"", ""byzCpBHChw=="", ""O8OQwqHCtFs="", ""FhcqQz0="", ""w77CqWA="", ""w6BWBVzDsw=="", ""wqDCq3XDkQ=="", ""OjknbDoIw6HCl8K/Gic="", ""CcOzdAM="", ""IMK8VcOz"", ""acKLw4fDgA=="", ""w413D2M="", ""cMOXYHs="", ""TcKbTsOD"", ""wpZmwrnDjA=="", ""wo9pwrPDkw=="", ""EkLDhyA="", ""wozCo8OMWA=="", ""w53CrsOywpQ="", ""wrQpCsOdwrHCmMKZOg7CnxfDpUcYw61Xw5zDmiACwqzDgA=="", ""IjkqYw=="", ""wrtXVxQ="", ""wrttwqbDkcKBwofCh8Kwe8K+w4zClMOCw70SfMOW"", ""VMKURMOc"", ""wotAVMK4"", ""GMO3wrfDnA=="", ""JSxOw5/Dv8KXU8Olw6w="", ""P8Ouw4LDnw=="", ""eFXDqwM="", ""Zi3DrMOf"", ""w4vCr8Owwrp6w6hFGGPCqMO/NgM6"", ""PDknZwkew5DCjsKoFTRlZynDgw=="", ""KMOxwo/CiGU="", ""NjcqfTsIw4rClQ=="", ""w6XCksOCwrfCpg=="", ""esO+w4Y+V8KqBS3DlU8ywo7DpFd4wqE="", ""wq9gMMOnNg=="", ""LMOjw4jDl8KN"", ""IcO2VT/Dpg=="", ""AQ1yw7rDkQ=="", ""w6V0JU3Dmw=="", ""woIDPcObwrc="", ""wrJ7w71nw6ZCwp8mwoBbYHA="", ""RcKtU8OSbg=="", ""wq3CrVnDrcK0"", ""w7bDg8OMYx4="", ""Yy7DvMOmwrQ="", ""F3nDvyPDmg=="", ""wplaFEFa"", ""CTNYw4/Dhg=="", ""ZzjDt8O/wrM="", ""U8ODw6Rpwrk="", ""Iy1hw4zDvA=="", ""w4TCjMKcwpp3"", ""w7bChsKOwrJl"", ""Wzp4OsK2wppv"", ""w53Co8K5wrB+"", ""w43CncOOwoxI"", ""wpPCk8KT"", ""IcO1w7PDjcKe"", ""ejLClS7Cm8OM"", ""dARKPQ=="", ""YVrDoRw="", ""w5PCk8KcbA=="", ""eSnDjEM="", ""w5XDkMOZQA=="", ""AMO0wq7CtA=="", ""w7LDnhHCug=="", ""woLDnyjCmg=="", ""D0bCrHs="", ""woTCs8KIwqc="", ""KMKKSMOiw70="", ""PcK9b8Ozw6g5HMOm"", ""w7HDjx7CuGA="", ""woZGeMKEwrk="", ""woHCvMKYwqTDiwbDoQ=="", ""w57Cr8Oywo4="", ""w4jCuHpqw7U="", ""wopqwqPDqsKP"", ""wo57bMK7wqo="", ""w5PCu8KOX3s="", ""SFfDsRXClg=="", ""DlPCt1td"", ""ScKFwoEaw4w="", ""w5DCgMK1Zk8="", ""wqd+XAd7"", ""bMKtw4bDjMKg"", ""CMOCw5HDu8KR"", ""VUDDjw=="", ""wqzDg8Ksw48="", ""Y3TDgxjCiw=="", ""wo5GesKBwqM="", ""wqHClkzDvMKv"", ""F8OoRRHDhA=="", ""E8O9fgY="", ""dsO8w64zbA=="", ""YiMbw5HCj8KMBcO3wqw="", ""acKzw4vDrcKB"", ""wp1Qw5N+w4g="", ""w5TCuMKzDWTDhUZswpPDsQ=="", ""wpgNG8O8wqo="", ""wrBwwobDt8KH"", ""w47ClMKzT0A="", ""OMO4wpJQwoU="", ""AT/Ckg=="", ""OcKLU8OBw54="", ""cGgZwrfCnBzDj8Kvw4IIMWHCpsKqFh4="", ""w73CmcOawpTCpA=="", ""wrbDj8OMwqdD"", ""asKRwqARw6U="", ""wrnCt3PDkcKtAD5Tw5M="", ""wofDji/CkHvCgcKqUcO3ITAjwos3w5Qf"", ""w4vCocOp"", ""AcOrwrHDnMKGH0TCsDk="", ""VcKbwpkqw6/DjSo3TQ=="", ""Y8OaZnEsw5xVw70Iw7c="", ""aQBaJcK1B8Osw6LCtsKXUA=="", ""G8ODw7LDhcKi"", ""BhQaeRI="", ""eTrDgFzDhRbDiHNJ"", ""wqnDhExgdMKaw4VCVj7DkVrCswgd"", ""UcODVEEy"", ""HsO5w6TDosKj"", ""KMOnQDnDkA=="", ""SMKcw6HDvcKA"", ""w5TCs8KOwpJgwqFo"", ""w5bCu8O8wqZRw7lDGW8="", ""OcK9Sw=="", ""Y1rDrBPCgcKQ"", ""EcOjwqzCtlNFwrkLw5LDhyg="", ""w6PDiRPCuHjCtMKUw63DlQc="", ""w5bCrcOswrBAw6U="", ""AMO6wr/Cqw=="", ""wqfDkMKlw4U="", ""U8OAw7BMwoFwTsKf"", ""DcO7eg3Dj2onf10="", ""ZnQUwrPChg3DhQ=="", ""wqzDjsKpw4YYw7zCsw=="", ""NzQsZTMDw5DCqMK+"", ""UzpwMcKjwoY="", ""wp/CrcOBUFbCsg=="", ""NjBZw6jDn8KTXg=="", ""AcOswq3DgA=="", ""OzYgfA=="", ""K8Ouw5XDlQ=="", ""woUiGMORwrTClMK4LQM="", ""f1rDtB7CicKcw48Gw4U="", ""BsOpwopR"", ""V27DnsOUIA=="", ""w63DrcKEwqdm"", ""woxbUMKuwqpb"", ""SyxwA8K1"", ""wq3DtcKww40c"", ""fivChQ3Crw=="", ""bi9ZIcKy"", ""DkLDijHDmWDChMOjZw=="", ""w53ChMO5wrNX"", ""wqtVSg17"", ""ccKDw6bDrMKC"", ""WgXCgQjCjg=="", ""w5fDpsKbwrtc"", ""wpdLTA9s"", ""w5HCr0pRw4c="", ""woTCosK5wpzDmg=="", ""w6zCmMKtEGU="", ""wpvCncKKwq7Dtw=="", ""JMO9wopcwoN+w6sww6NMBg=="", ""w7nChsOSwpTCiw=="", ""wqbCin3Dh8KX"", ""w4zCh8KLYn9tEsKVZVk="", ""Hx4AfBQ="", ""VsKjw73DvsKk"", ""H8OgwrnCuk1FwrkLw5LDhyg="", ""wo1bScKpwr1+VMKHw5LCng=="", ""YcOBcFwO"", ""wo1sH8ORJcOlwoDDr8Oow71S"", ""EWbDniPDmQ=="", ""KBVMw4vDjA=="", ""LsOpwrbDicKHH1LCrQ=="", ""OBI5fzA="", ""wrDCqWjDiMKn"", ""wo3Dl8Kmw4UTw7o="", ""VcOlw6NawpM="", ""ecOad307"", ""w5HCrcOywpQ=""];
|
|
t = l,
|
|
a = 153,
|
|
function(e) {
|
|
for (; --e; )
|
|
t.push(t.shift())
|
|
}(++a);
|
|
var u = function e(t, n) {
|
|
var a = l[t -= 0];
|
|
void 0 === e.XUzMxH && (function() {
|
|
var e;
|
|
try {
|
|
e = Function('return (function() {}.constructor(""return this"")( ));')()
|
|
} catch (t) {
|
|
e = window
|
|
}
|
|
e.atob || (e.atob = function(e) {
|
|
for (var t, n, a = String(e).replace(/=+$/, """"), r = 0, i = 0, o = """"; n = a.charAt(i++); ~n && (t = r % 4 ? 64 * t + n : n,
|
|
r++ % 4) ? o += String.fromCharCode(255 & t >> (-2 * r & 6)) : 0)
|
|
n = ""ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="".indexOf(n);
|
|
return o
|
|
}
|
|
)
|
|
}(),
|
|
e.dRdvEy = function(e, t) {
|
|
for (var n, a = [], r = 0, i = """", o = """", s = 0, c = (e = atob(e)).length; s < c; s++)
|
|
o += ""%"" + (""00"" + e.charCodeAt(s).toString(16)).slice(-2);
|
|
e = decodeURIComponent(o);
|
|
for (var l = 0; l < 256; l++)
|
|
a[l] = l;
|
|
for (l = 0; l < 256; l++)
|
|
r = (r + a[l] + t.charCodeAt(l % t.length)) % 256,
|
|
n = a[l],
|
|
a[l] = a[r],
|
|
a[r] = n;
|
|
l = 0,
|
|
r = 0;
|
|
for (var u = 0; u < e.length; u++)
|
|
r = (r + a[l = (l + 1) % 256]) % 256,
|
|
n = a[l],
|
|
a[l] = a[r],
|
|
a[r] = n,
|
|
i += String.fromCharCode(e.charCodeAt(u) ^ a[(a[l] + a[r]) % 256]);
|
|
return i
|
|
}
|
|
,
|
|
e.pBDTtk = {},
|
|
e.XUzMxH = !0);
|
|
var r = e.pBDTtk[t];
|
|
return void 0 === r ? (void 0 === e.ytLIIR && (e.ytLIIR = !0),
|
|
a = e.dRdvEy(a, n),
|
|
e.pBDTtk[t] = a) : a = r,
|
|
a
|
|
}
|
|
, d = u(""0x0"", ""N@!L"")
|
|
, p = u(""0x1"", ""X#ub"")
|
|
, h = u(""0x2"", ""HlWl"")
|
|
, f = u(""0x3"", ""8*&^"")
|
|
, m = u(""0x4"", ""V(U@"")
|
|
, g = u(""0x5"", ""N@!L"")
|
|
, v = u(""0x6"", ""8*&^"")
|
|
, y = u(""0x7"", ""ORi#"")
|
|
, _ = u(""0x8"", ""$$MT"")
|
|
, b = u(""0x9"", ""A]&c"")
|
|
, w = u(""0xa"", ""NKkM"")
|
|
, S = u(""0xb"", ""ORi#"")
|
|
, C = u(""0xc"", ""41#!"")
|
|
, A = u(""0xd"", ""yg#F"")
|
|
, I = u(""0xe"", ""tTBx"")
|
|
, E = u(""0xf"", ""zANS"")
|
|
, k = u(""0x10"", ""p^Nr"")
|
|
, T = u(""0x11"", ""41#!"")
|
|
, N = u(""0x12"", ""YJhW"")
|
|
, D = 0
|
|
, x = void 0
|
|
, L = void 0
|
|
, R = function() {}
|
|
, P = void 0
|
|
, O = void 0
|
|
, U = void 0;
|
|
function M(e) {
|
|
var t = {};
|
|
return t[u(""0x59"", ""41#!"")] = u(""0x5a"", ""87zo""),
|
|
s[t[u(""0x5b"", ""rfzr"")]](e[A])[I](e)
|
|
}
|
|
(""undefined"" == typeof window ? ""undefined"" : r(window)) !== u(""0x13"", ""#*n4"") && (P = window,
|
|
O = window[u(""0x14"", ""HlWl"")],
|
|
U = window[u(""0x15"", ""Gq*t"")]);
|
|
var B = {};
|
|
B[u(""0x5c"", ""vU%x"")] = function() {
|
|
this[N] = []
|
|
}
|
|
,
|
|
B[u(""0x5d"", ""41#!"")] = function(e) {
|
|
if (function(e, t) {
|
|
return e < 8
|
|
}(this[N][A])) {
|
|
var t = e || P.event
|
|
, n = t.target.id || """"
|
|
, a = {};
|
|
a[C] = n,
|
|
a[S] = t[S],
|
|
a[w] = t[w],
|
|
a[b] = function(e, t) {
|
|
return e - t
|
|
}(Date.now(), D),
|
|
this[N][k](a)
|
|
}
|
|
}
|
|
,
|
|
B[u(""0x5e"", ""A]&c"")] = function() {
|
|
var e = [][I](s.es(""db""));
|
|
this[""data""]=[];
|
|
return this[N][E](function(t) {
|
|
e = e[I](s.en(t[S]), s.en(t[w]), s.es(t[C]), s.en(t[b]))
|
|
}),
|
|
M(e)
|
|
}
|
|
;
|
|
var W = {};
|
|
W[u(""0x5f"", ""X#ub"")] = function() {
|
|
this[N] = {}
|
|
}
|
|
,
|
|
W[u(""0x60"", ""jLF%"")] = function() {
|
|
this[T]();
|
|
var e = [][I](s.es(""kf""), s.es(""https://mobile.yangkeduo.com/mall_page.html?mall_id=935967023&page_id=10039_1549772752665_yvEdqLaiCV&is_back=1""), s.es(this[N][v]));
|
|
return M(e)
|
|
}
|
|
;
|
|
var V = {};
|
|
V[u(""0x61"", ""rfzr"")] = function() {
|
|
this[N] = {},
|
|
this[N][m] = P[g][m],
|
|
this[N][f] = P[g][f]
|
|
}
|
|
,
|
|
V[u(""0x62"", ""8LuC"")] = function() {
|
|
var e = [][I](s.es(""lh""), s.en(728), s.en(1366));
|
|
return M(e)
|
|
}
|
|
;
|
|
var Q = {};
|
|
Q[u(""0x63"", ""xWl$"")] = function() {
|
|
var e = function(e, t) {
|
|
return e + t
|
|
}
|
|
, t = function(e, t, n) {
|
|
return e(t, n)
|
|
}
|
|
, n = function(e, t) {
|
|
return e(t)
|
|
}
|
|
, a = function(e, t) {
|
|
return e * t
|
|
};
|
|
|
|
x=new Date().getTime()-2832711;
|
|
//x=1549773947000;
|
|
this[N] = e(t(parseInt, n(String, a(Math.random(), e(Math.pow(2, 52), 1))), 10), t(parseInt, n(String, a(Math.random(), function(e, t) {
|
|
return e + t
|
|
}(Math.pow(2, 30), 1))), 10)) + ""-"" + x
|
|
}
|
|
,
|
|
Q[u(""0x60"", ""jLF%"")] = function() {
|
|
this[T]();
|
|
var e = [][I](s.es(""ie""), s.es(this[N]));
|
|
return M(e)
|
|
}
|
|
;
|
|
var q = {};
|
|
q[u(""0x64"", ""X^fs"")] = function() {
|
|
this[N] = function() {
|
|
var e = {};
|
|
e[u(""0x16"", ""Erlx"")] = function(e, t) {
|
|
return e !== t
|
|
}
|
|
,
|
|
e[u(""0x17"", ""sBpA"")] = u(""0x18"", ""@^yh""),
|
|
e[u(""0x19"", ""oSA*"")] = function(e, t) {
|
|
return e < t
|
|
}
|
|
,
|
|
e[u(""0x1a"", ""ORi#"")] = function(e, t) {
|
|
return e < t
|
|
}
|
|
,
|
|
e[u(""0x1b"", ""5plr"")] = function(e, t) {
|
|
return e !== t
|
|
}
|
|
,
|
|
e[u(""0x1c"", ""oSA*"")] = u(""0x1d"", ""Gtlg""),
|
|
e[u(""0x1e"", ""N@!L"")] = function(e, t) {
|
|
return e !== t
|
|
}
|
|
,
|
|
e[u(""0x1f"", ""tFE8"")] = function(e, t) {
|
|
return e === t
|
|
}
|
|
,
|
|
e[u(""0x20"", ""jLF%"")] = function(e, t) {
|
|
return e === t
|
|
}
|
|
,
|
|
e[u(""0x21"", ""5plr"")] = function(e, t) {
|
|
return e === t
|
|
}
|
|
,
|
|
e[u(""0x22"", ""sBpA"")] = u(""0x23"", ""tFE8""),
|
|
e[u(""0x24"", ""87zo"")] = function(e, t) {
|
|
return e !== t
|
|
}
|
|
,
|
|
e[u(""0x25"", ""TwR["")] = function(e, t) {
|
|
return e < t
|
|
}
|
|
,
|
|
e[u(""0x26"", ""XdCJ"")] = function(e, t) {
|
|
return e << t
|
|
}
|
|
;
|
|
var t = [];
|
|
e[u(""0x27"", ""TwR["")](r(P[u(""0x28"", ""Gq*t"")]), e[u(""0x29"", ""Yy&w"")]) || e[u(""0x2a"", ""vU%x"")](r(P[u(""0x2b"", ""iFuj"")]), e[u(""0x2c"", ""41#!"")]) ? t[0] = 1 : t[0] = e[u(""0x2d"", ""jLF%"")](P[u(""0x2e"", ""8*&^"")], 1) || e[u(""0x1a"", ""ORi#"")](P[u(""0x2f"", ""@^yh"")], 1) ? 1 : 0,
|
|
t[1] = e[u(""0x30"", ""8LuC"")](r(P[u(""0x31"", ""VfGE"")]), e[u(""0x32"", ""Gtlg"")]) || e[u(""0x33"", ""zANS"")](r(P[u(""0x34"", ""p^Nr"")]), e[u(""0x35"", ""41#!"")]) ? 1 : 0,
|
|
t[2] = e[u(""0x36"", ""vU%x"")](r(P[u(""0x37"", ""ORi#"")]), e[u(""0x38"", ""$$MT"")]) ? 0 : 1,
|
|
t[3] = e[u(""0x39"", ""8LuC"")](r(P[u(""0x3a"", ""Yy&w"")]), e[u(""0x3b"", ""sBpA"")]) ? 0 : 1,
|
|
t[4] = e[u(""0x3c"", ""VfGE"")](r(P[u(""0x3d"", ""xWl$"")]), e[u(""0x3e"", ""yg#F"")]) ? 0 : 1,
|
|
t[5] = e[u(""0x3f"", ""Gtlg"")](O[u(""0x40"", ""rfzr"")], !0) ? 1 : 0,
|
|
t[6] = e[u(""0x41"", ""prnV"")](r(P[u(""0x42"", ""NKkM"")]), e[u(""0x43"", ""TwR["")]) && e[u(""0x44"", ""8*&^"")](r(P[u(""0x45"", ""YJhW"")]), e[u(""0x46"", ""Erlx"")]) ? 0 : 1;
|
|
try {
|
|
e[u(""0x47"", ""tFE8"")](r(Function[u(""0x48"", ""XdCJ"")][u(""0x49"", ""VfGE"")]), e[u(""0x43"", ""TwR["")]) && (t[7] = 1),
|
|
e[u(""0x4a"", ""YJhW"")](Function[u(""0x4b"", ""HlWl"")][u(""0x4c"", ""Gq*t"")][u(""0x4d"", ""8LuC"")]()[u(""0x4e"", ""VfGE"")](/bind/g, e[u(""0x4f"", ""XdCJ"")]), Error[u(""0x50"", ""zANS"")]()) && (t[7] = 1),
|
|
e[u(""0x51"", ""8LuC"")](Function[u(""0x52"", ""TwR["")][u(""0x50"", ""zANS"")][u(""0x53"", ""]iEY"")]()[u(""0x54"", ""X#ub"")](/toString/g, e[u(""0x55"", ""]iEY"")]), Error[u(""0x56"", ""@^yh"")]()) && (t[7] = 1)
|
|
} catch (e) {}
|
|
for (var n = 0, a = 0; e[u(""0x57"", ""5plr"")](a, t[A]); a++)
|
|
n += e[u(""0x58"", ""8*&^"")](t[a], a);
|
|
return n
|
|
}()
|
|
}
|
|
,
|
|
q[u(""0x65"", ""X^fs"")] = function() {
|
|
this[N]=0;
|
|
var e = [][I](s.es(""hb""), s.en(this[N]));
|
|
return M(e)
|
|
}
|
|
;
|
|
var F = {};
|
|
F[u(""0x66"", ""Gtlg"")] = function() {
|
|
var e, t;
|
|
this[N] = (e = i,
|
|
t = P[_][y] ? P[_][y] : """",
|
|
e(t))
|
|
}
|
|
,
|
|
F[u(""0x67"", ""tTBx"")] = function() {
|
|
this[N]=""2b35d8af16a28a0b22e4d9363d5770ba"";
|
|
var e = [][I](s.es(""ml""), s.es(this[N]));
|
|
return M(e)
|
|
}
|
|
;
|
|
var G = {};
|
|
G[u(""0x68"", ""Yy&w"")] = function() {
|
|
var e = u(""0x69"", ""#*n4"");
|
|
this[N] = P[e] ? ""y"" : ""n""
|
|
}
|
|
,
|
|
G[u(""0x6a"", ""41#!"")] = function() {
|
|
this[N]=""y"";
|
|
var e = [][I](s.es(""qc""), s.es(this[N]));
|
|
return M(e)
|
|
}
|
|
;
|
|
var H = {};
|
|
H[u(""0x6b"", ""tFE8"")] = function() {
|
|
var e = u(""0x6c"", ""X^fs"");
|
|
this[N] = P[e] ? ""y"" : ""n""
|
|
}
|
|
,
|
|
H[u(""0x6d"", ""xWl$"")] = function() {
|
|
this[N]=""y"";
|
|
var e = [][I](s.es(""za""), s.es(this[N]));
|
|
return M(e)
|
|
}
|
|
;
|
|
var j = {};
|
|
j[u(""0x6e"", ""@^yh"")] = function() {
|
|
this[N] = Date.now() - L
|
|
this[N]=1798959;
|
|
}
|
|
,
|
|
j[u(""0x5e"", ""A]&c"")] = function() {
|
|
this[T]();
|
|
var e = [][I](s.es(""xq""), s.en(this[N]));
|
|
return M(e)
|
|
}
|
|
;
|
|
var K = {};
|
|
K[u(""0x6f"", ""p^Nr"")] = function() {
|
|
var e = u(""0x70"", ""zANS"");
|
|
this[N] = O[e]
|
|
}
|
|
,
|
|
K[u(""0x71"", ""YJhW"")] = function() {
|
|
this[N]=""Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36"";
|
|
var e = [][I](s.es(""te""), s.es(this[N]));
|
|
return M(e)
|
|
}
|
|
;
|
|
var z = {};
|
|
function Y() {
|
|
[V, q, F, G, H, K, z][E](function(e) {
|
|
e[T]
|
|
})
|
|
}
|
|
function J() {
|
|
var e = {};
|
|
e[u(""0x76"", ""8*&^"")] = u(""0x77"", ""41#!""),
|
|
e[u(""0x78"", ""Yy&w"")] = u(""0x79"", ""5Bg9""),
|
|
e[u(""0x7a"", ""VfGE"")] = u(""0x7b"", ""YJhW""),
|
|
P[e[u(""0x7c"", ""A]&c"")]][e[u(""0x7d"", ""zANS"")]](e[u(""0x7e"", ""rfzr"")], B, !1)
|
|
}
|
|
function Z() {
|
|
[B][E](function(e) {
|
|
e[T]()
|
|
})
|
|
}
|
|
function X() {
|
|
var e, t = {};
|
|
t[u(""0x7f"", ""#*n4"")] = u(""0x80"", ""UT1q""),
|
|
t[u(""0x81"", ""xWl$"")] = function(e) {
|
|
return e()
|
|
}
|
|
,
|
|
t[u(""0x82"", ""vU%x"")] = function(e, t) {
|
|
return e < t
|
|
}
|
|
,
|
|
t[u(""0x83"", ""yh6@"")] = function(e, t) {
|
|
return e === t
|
|
}
|
|
,
|
|
t[u(""0x84"", ""a3XL"")] = function(e, t) {
|
|
return e > t
|
|
}
|
|
,
|
|
t[u(""0x85"", ""Gtlg"")] = function(e, t) {
|
|
return e <= t
|
|
}
|
|
,
|
|
t[u(""0x86"", ""l!fK"")] = function(e, t) {
|
|
return e - t
|
|
}
|
|
,
|
|
t[u(""0x87"", ""zANS"")] = function(e, t) {
|
|
return e << t
|
|
}
|
|
,
|
|
t[u(""0x88"", ""a3XL"")] = function(e, t) {
|
|
return e > t
|
|
}
|
|
,
|
|
t[u(""0x89"", ""$$MT"")] = function(e, t) {
|
|
return e - t
|
|
}
|
|
,
|
|
t[u(""0x8a"", ""zANS"")] = function(e, t) {
|
|
return e << t
|
|
}
|
|
,
|
|
t[u(""0x8b"", ""ai[I"")] = function(e, t, n) {
|
|
return e(t, n)
|
|
}
|
|
,
|
|
t[u(""0x8c"", ""ai[I"")] = u(""0x8d"", ""yg#F""),
|
|
t[u(""0x8e"", ""ai[I"")] = function(e, t) {
|
|
return e + t
|
|
}
|
|
,
|
|
t[u(""0x8f"", ""N@!L"")] = u(""0x90"", ""iFuj""),
|
|
t[u(""0x91"", ""YJhW"")] = u(""0x92"", ""5plr"");
|
|
var n = (e = [])[I].apply(e, [B[u(""0x93"", ""oSA*"")](), W[u(""0x94"", ""HlWl"")](), V[u(""0x95"", ""iFuj"")](), Q[u(""0x96"", ""prnV"")](), q[u(""0x97"", ""yh6@"")](), F[u(""0x94"", ""HlWl"")](), G[u(""0x98"", ""8*&^"")](), H[u(""0x99"", ""V(U@"")](), j[u(""0x9a"", ""QENo"")](), K[u(""0x9b"", ""h&#n"")]()].concat(function(e) {
|
|
if (Array.isArray(e)) {
|
|
for (var t = 0, n = Array(e.length); t < e.length; t++)
|
|
n[t] = e[t];
|
|
return n
|
|
}
|
|
return Array.from(e)
|
|
}(z[u(""0x9c"", ""TwR["")]())));
|
|
t[u(""0x9d"", ""X#ub"")](Z);
|
|
for (var a = n[A][u(""0x9e"", ""X#ub"")](2)[u(""0x9f"", ""V(U@"")](""""), r = 0; t[u(""0xa0"", ""@^yh"")](a[A], 16); r += 1)
|
|
a[u(""0xa1"", ""TwR["")](""0"");
|
|
a = a[u(""0xa2"", ""Yy&w"")]("""");
|
|
var i = [];
|
|
t[u(""0xa3"", ""87zo"")](n[A], 0) ? i[k](0, 0) : t[u(""0xa4"", ""X^fs"")](n[A], 0) && t[u(""0xa5"", ""@^yh"")](n[A], t[u(""0xa6"", ""iFuj"")](t[u(""0xa7"", ""HlWl"")](1, 8), 1)) ? i[k](0, n[A]) : t[u(""0xa8"", ""h&#n"")](n[A], t[u(""0xa9"", ""szDT"")](t[u(""0xaa"", ""iFuj"")](1, 8), 1)) && i[k](t[u(""0xab"", ""tFE8"")](parseInt, a[d](0, 8), 2), t[u(""0xac"", ""jLF%"")](parseInt, a[d](8, 16), 2)),
|
|
n = [][I]([1], [0, 0, 0], i, n);
|
|
var c = o()[t[u(""0xad"", ""YJhW"")]](n)
|
|
, l = [][u(""0xae"", ""Erlx"")][u(""0xaf"", ""ORi#"")](c, function(e) {
|
|
return String[t[u(""0xb0"", ""HlWl"")]](e)
|
|
});
|
|
return t[u(""0xb1"", ""@^yh"")](t[u(""0xb2"", ""vU%x"")], s[t[u(""0xb3"", ""A]&c"")]](l[u(""0xb4"", ""A]&c"")]("""")))
|
|
}
|
|
function $() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}
|
|
, t = {};
|
|
t[u(""0xb5"", ""5Bg9"")] = u(""0xb6"", ""zANS""),
|
|
t[u(""0xb7"", ""jLF%"")] = function(e) {
|
|
return e()
|
|
}
|
|
,
|
|
t[u(""0xb8"", ""UT1q"")] = u(""0xb9"", ""XdCJ""),
|
|
t[u(""0xba"", ""#*n4"")] = function(e) {
|
|
return e()
|
|
}
|
|
,
|
|
t[u(""0xbb"", ""X^fs"")] = function(e) {
|
|
return e()
|
|
}
|
|
;
|
|
for (var n = t[u(""0xbc"", ""iFuj"")][u(""0xbd"", ""Gq*t"")](""|""), a = 0; ; ) {
|
|
switch (n[a++]) {
|
|
case ""0"":
|
|
D = Date[u(""0xbe"", ""Vfyd"")]();
|
|
continue;
|
|
case ""1"":
|
|
t[u(""0xbf"", ""X#ub"")](Z);
|
|
continue;
|
|
case ""2"":
|
|
this[u(""0xc0"", ""NKkM"")](e[t[u(""0xc1"", ""Yy&w"")]] || 879609302220);
|
|
continue;
|
|
case ""3"":
|
|
t[u(""0xc2"", ""]iEY"")](Y);
|
|
continue;
|
|
case ""4"":
|
|
t[u(""0xc3"", ""szDT"")](J);
|
|
continue
|
|
}
|
|
break
|
|
}
|
|
}
|
|
/*z[u(""0x72"", ""HlWl"")] = function() {
|
|
this[N] = c()
|
|
}
|
|
,*/
|
|
z[u(""0x73"", ""a3XL"")] = function() {
|
|
var e = this
|
|
, t = u(""0x74"", ""N@!L"")
|
|
, n = u(""0x75"", ""41#!"")
|
|
, a = []
|
|
, r = {};
|
|
this[N]={""nano_cookie_fp"":""XpdYlpmxlpgxnqXbn9_eYcGO1a_o7Qm~gn7c44IB"",""nano_storage_fp"":""XpdYlpmxlpgxnqXbn9_eYcGO1a_o7Qm~gn7c44IB""};
|
|
return r[t] = ""ys"",
|
|
r[n] = ""ut"",
|
|
Object.keys(this[N])[E](function(t) {
|
|
var n = [][I](s.es(r[t]), s.es(e[N][t]));
|
|
a[k](function(e, t) {
|
|
return e(t)
|
|
}(M, n))
|
|
}),
|
|
a
|
|
}
|
|
,
|
|
$[u(""0xc4"", ""vU%x"")][u(""0xc5"", ""QENo"")] = function(e) {
|
|
L = Date[u(""0xc6"", ""N@!L"")](),
|
|
x = e
|
|
}
|
|
,
|
|
$[u(""0xc7"", ""p^Nr"")][T] = R,
|
|
$[u(""0xc8"", ""szDT"")][u(""0xc9"", ""8LuC"")] = R,
|
|
$[u(""0xc4"", ""vU%x"")][u(""0xca"", ""oSA*"")] = function() {
|
|
var e = {};
|
|
return e[u(""0xcb"", ""YJhW"")] = function(e) {
|
|
return e()
|
|
}
|
|
,
|
|
e[u(""0xcc"", ""41#!"")](X)
|
|
}
|
|
,
|
|
$[u(""0xcd"", ""prnV"")][u(""0xce"", ""TyG1"")] = function() {
|
|
var e = {};
|
|
return e[u(""0xcf"", ""8LuC"")] = function(e, t) {
|
|
return e(t)
|
|
}
|
|
,
|
|
e[u(""0xd0"", ""YJhW"")] = function(e) {
|
|
return e()
|
|
}
|
|
,
|
|
new Promise(function(t) {
|
|
e[u(""0xd1"", ""A]&c"")](t, e[u(""0xd2"", ""jLF%"")](X))
|
|
}
|
|
)
|
|
}
|
|
;
|
|
|
|
var e={};
|
|
var ee = void 0;
|
|
e[u(""0xd3"", ""ai[I"")] = function(e) {
|
|
return ee || (ee = new $(e))
|
|
}
|
|
return X()
|
|
return e[u(""0xd3"", ""ai[I"")]
|
|
}
|
|
function aaa(){return encodeURIComponent(obj_2())}";
|
|
#endregion
|
|
|
|
#region 0an算法,可以用在部分需要0ao的接口上
|
|
public static string PinDuoDUo_0ao = @"function get_anti(h) {
|
|
var href = h;
|
|
var f_rot = (function (t, n) {
|
|
var r, e;
|
|
r = ""ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"",
|
|
e = {
|
|
rotl: function (t, n) {
|
|
return t << n | t >>> 32 - n
|
|
},
|
|
rotr: function (t, n) {
|
|
return t << 32 - n | t >>> n
|
|
},
|
|
endian: function (t) {
|
|
if (t.constructor == Number)
|
|
return 16711935 & e.rotl(t, 8) | 4278255360 & e.rotl(t, 24);
|
|
for (var n = 0; n < t.length; n++)
|
|
t[n] = e.endian(t[n]);
|
|
return t
|
|
},
|
|
randomBytes: function (t) {
|
|
for (var n = []; t > 0; t--)
|
|
n.push(Math.floor(256 * Math.random()));
|
|
return n
|
|
},
|
|
bytesToWords: function (t) {
|
|
for (var n = [], r = 0, e = 0; r < t.length; r++,
|
|
e += 8)
|
|
n[e >>> 5] |= t[r] << 24 - e % 32;
|
|
return n
|
|
},
|
|
wordsToBytes: function (t) {
|
|
for (var n = [], r = 0; r < 32 * t.length; r += 8)
|
|
n.push(t[r >>> 5] >>> 24 - r % 32 & 255);
|
|
return n
|
|
},
|
|
bytesToHex: function (t) {
|
|
for (var n = [], r = 0; r < t.length; r++)
|
|
n.push((t[r] >>> 4).toString(16)),
|
|
n.push((15 & t[r]).toString(16));
|
|
return n.join("""")
|
|
},
|
|
hexToBytes: function (t) {
|
|
for (var n = [], r = 0; r < t.length; r += 2)
|
|
n.push(h(t.substr(r, 2), 16));
|
|
return n
|
|
},
|
|
bytesToBase64: function (t) {
|
|
for (var n = [], e = 0; e < t.length; e += 3)
|
|
for (var i = t[e] << 16 | t[e + 1] << 8 | t[e + 2], a = 0; a < 4; a++)
|
|
8 * e + 6 * a <= 8 * t.length ? n.push(r.charAt(i >>> 6 * (3 - a) & 63)) : n.push(""="");
|
|
return n.join("""")
|
|
},
|
|
base64ToBytes: function (t) {
|
|
t = t.replace(/[^A-Z0-9+\/]/gi, """");
|
|
for (var n = [], e = 0, i = 0; e < t.length; i = ++e % 4)
|
|
0 != i && n.push((r.indexOf(t.charAt(e - 1)) & Math.pow(2, -2 * i + 8) - 1) << 2 * i | r.indexOf(t.charAt(e)) >>> 6 - 2 * i);
|
|
return n
|
|
}
|
|
};
|
|
return e;
|
|
})(); // 7
|
|
|
|
|
|
var f_base64 = (function (t, n) {
|
|
return function (t) {
|
|
t = t || 21;
|
|
for (var n = """"; 0 < t--;)
|
|
n += ""_~varfunctio0125634789bdegjhklmpqswxyzABCDEFGHIJKLMNOPQRSTUVWXYZ""[64 * Math.random() | 0];
|
|
return n
|
|
}
|
|
})(); // 17
|
|
|
|
|
|
var f_input = (function (t, n, r) {
|
|
""use strict"";
|
|
return function () {
|
|
this.input = null,
|
|
this.next_in = 0,
|
|
this.avail_in = 0,
|
|
this.total_in = 0,
|
|
this.output = null,
|
|
this.next_out = 0,
|
|
this.avail_out = 0,
|
|
this.total_out = 0,
|
|
this.msg = """",
|
|
this.state = null,
|
|
this.data_type = 2,
|
|
this.adler = 0
|
|
}
|
|
})(); // 15
|
|
|
|
|
|
var f_err = (function (t, n, r) {
|
|
""use strict"";
|
|
return function (t, n, r) {
|
|
if (""string"" != typeof t)
|
|
throw new Error(""The string parameter must be a string."");
|
|
if (t.length < 1)
|
|
throw new Error(""The string parameter must be 1 character or longer."");
|
|
if (""number"" != typeof n)
|
|
throw new Error(""The length parameter must be a number."");
|
|
if (""string"" != typeof r && r)
|
|
throw new Error(""The character parameter must be a string."");
|
|
var e = -1;
|
|
for (n -= t.length,
|
|
r || 0 === r || (r = "" ""); ++e < n;)
|
|
t += r;
|
|
return t
|
|
}
|
|
})(); // 18
|
|
|
|
|
|
var f_assign = (function (t, n, r) {
|
|
""use strict"";
|
|
var n = {};
|
|
var e = ""function"" == typeof _ && ""symbol"" == g(w) ? function (t) {
|
|
return ""object""
|
|
}
|
|
: function (t) {
|
|
return t && ""function"" == typeof _ && t.constructor === _ && t !== _.prototype ? ""symbol"" : ""object""
|
|
}
|
|
,
|
|
i = ""undefined"" != typeof Uint8Array && ""undefined"" != typeof Uint16Array && ""undefined"" != typeof Int32Array;
|
|
|
|
function a(t, n) {
|
|
return Object.prototype.hasOwnProperty.call(t, n)
|
|
}
|
|
|
|
n.assign = function (t) {
|
|
for (var n = Array.prototype.slice.call(arguments, 1); n.length;) {
|
|
var r = n.shift();
|
|
if (r) {
|
|
if (""object"" !== (void 0 === r ? ""undefined"" : e(r)))
|
|
throw new TypeError(r + ""must be non-object"");
|
|
for (var i in r)
|
|
a(r, i) && (t[i] = r[i])
|
|
}
|
|
}
|
|
return t
|
|
}
|
|
,
|
|
n.shrinkBuf = function (t, n) {
|
|
return t.length === n ? t : t.subarray ? t.subarray(0, n) : (t.length = n,
|
|
t)
|
|
}
|
|
;
|
|
var o = {
|
|
arraySet: function (t, n, r, e, i) {
|
|
if (n.subarray && t.subarray)
|
|
t.set(n.subarray(r, r + e), i);
|
|
else
|
|
for (var a = 0; a < e; a++)
|
|
t[i + a] = n[r + a]
|
|
},
|
|
flattenChunks: function (t) {
|
|
var n, r, e, i, a, o;
|
|
for (e = 0,
|
|
n = 0,
|
|
r = t.length; n < r; n++)
|
|
e += t[n].length;
|
|
for (o = new Uint8Array(e),
|
|
i = 0,
|
|
n = 0,
|
|
r = t.length; n < r; n++)
|
|
a = t[n],
|
|
o.set(a, i),
|
|
i += a.length;
|
|
return o
|
|
}
|
|
}
|
|
, s = {
|
|
arraySet: function (t, n, r, e, i) {
|
|
for (var a = 0; a < e; a++)
|
|
t[i + a] = n[r + a]
|
|
},
|
|
flattenChunks: function (t) {
|
|
return [].concat.apply([], t)
|
|
}
|
|
};
|
|
n.setTyped = function (t) {
|
|
t ? (n.Buf8 = Uint8Array,
|
|
n.Buf16 = Uint16Array,
|
|
n.Buf32 = Int32Array,
|
|
n.assign(n, o)) : (n.Buf8 = Array,
|
|
n.Buf16 = Array,
|
|
n.Buf32 = Array,
|
|
n.assign(n, s))
|
|
}
|
|
,
|
|
n.setTyped(i);
|
|
|
|
return n;
|
|
})(); // 0
|
|
|
|
|
|
var f_string = (function (t, n, r) {
|
|
""use strict"";
|
|
var n = {};
|
|
var e = f_assign
|
|
, i = !0
|
|
, a = !0;
|
|
String.fromCharCode.apply(null, [0])
|
|
String.fromCharCode.apply(null, new Uint8Array(1))
|
|
for (var o = new e.Buf8(256), s = 0; s < 256; s++)
|
|
o[s] = s >= 252 ? 6 : s >= 248 ? 5 : s >= 240 ? 4 : s >= 224 ? 3 : s >= 192 ? 2 : 1;
|
|
|
|
function u(t, n) {
|
|
if (n < 65534 && (t.subarray && a || !t.subarray && i))
|
|
return String.fromCharCode.apply(null, e.shrinkBuf(t, n));
|
|
for (var r = """", o = 0; o < n; o++)
|
|
r += String.fromCharCode(t[o]);
|
|
return r
|
|
}
|
|
|
|
o[254] = o[254] = 1,
|
|
n.string2buf = function (t) {
|
|
var n, r, i, a, o, s = t.length, u = 0;
|
|
for (a = 0; a < s; a++)
|
|
55296 == (64512 & (r = t.charCodeAt(a))) && a + 1 < s && 56320 == (64512 & (i = t.charCodeAt(a + 1))) && (r = 65536 + (r - 55296 << 10) + (i - 56320),
|
|
a++),
|
|
u += r < 128 ? 1 : r < 2048 ? 2 : r < 65536 ? 3 : 4;
|
|
for (n = new e.Buf8(u),
|
|
o = 0,
|
|
a = 0; o < u; a++)
|
|
55296 == (64512 & (r = t.charCodeAt(a))) && a + 1 < s && 56320 == (64512 & (i = t.charCodeAt(a + 1))) && (r = 65536 + (r - 55296 << 10) + (i - 56320),
|
|
a++),
|
|
r < 128 ? n[o++] = r : r < 2048 ? (n[o++] = 192 | r >>> 6,
|
|
n[o++] = 128 | 63 & r) : r < 65536 ? (n[o++] = 224 | r >>> 12,
|
|
n[o++] = 128 | r >>> 6 & 63,
|
|
n[o++] = 128 | 63 & r) : (n[o++] = 240 | r >>> 18,
|
|
n[o++] = 128 | r >>> 12 & 63,
|
|
n[o++] = 128 | r >>> 6 & 63,
|
|
n[o++] = 128 | 63 & r);
|
|
return n
|
|
}
|
|
,
|
|
n.buf2binstring = function (t) {
|
|
return u(t, t.length)
|
|
}
|
|
,
|
|
n.binstring2buf = function (t) {
|
|
for (var n = new e.Buf8(t.length), r = 0, i = n.length; r < i; r++)
|
|
n[r] = t.charCodeAt(r);
|
|
return n
|
|
}
|
|
,
|
|
n.buf2string = function (t, n) {
|
|
var r, e, i, a, s = n || t.length, c = new Array(2 * s);
|
|
for (e = 0,
|
|
r = 0; r < s;)
|
|
if ((i = t[r++]) < 128)
|
|
c[e++] = i;
|
|
else if ((a = o[i]) > 4)
|
|
c[e++] = 65533,
|
|
r += a - 1;
|
|
else {
|
|
for (i &= 2 === a ? 31 : 3 === a ? 15 : 7; a > 1 && r < s;)
|
|
i = i << 6 | 63 & t[r++],
|
|
a--;
|
|
a > 1 ? c[e++] = 65533 : i < 65536 ? c[e++] = i : (i -= 65536,
|
|
c[e++] = 55296 | i >> 10 & 1023,
|
|
c[e++] = 56320 | 1023 & i)
|
|
}
|
|
return u(c, e)
|
|
}
|
|
,
|
|
n.utf8border = function (t, n) {
|
|
var r;
|
|
for ((n = n || t.length) > t.length && (n = t.length),
|
|
r = n - 1; r >= 0 && 128 == (192 & t[r]);)
|
|
r--;
|
|
return r < 0 ? n : 0 === r ? n : r + o[t[r]] > n ? r : n
|
|
};
|
|
|
|
return n;
|
|
})(); // 14
|
|
|
|
|
|
var f_hook_object = (function (t, n) {
|
|
return function (t) {
|
|
return t.webpackPolyfill || (t.deprecate = function () {
|
|
}
|
|
,
|
|
t.paths = [],
|
|
t.children || (t.children = []),
|
|
Object.defineProperty(t, ""loaded"", {
|
|
enumerable: !0,
|
|
get: function () {
|
|
return t.l
|
|
}
|
|
}),
|
|
Object.defineProperty(t, ""id"", {
|
|
enumerable: !0,
|
|
get: function () {
|
|
return t.i
|
|
}
|
|
}),
|
|
t.webpackPolyfill = 1),
|
|
t
|
|
}
|
|
})(); // 1
|
|
|
|
|
|
var f_utf8_bin = (function (t, n) {
|
|
var r = {
|
|
utf8: {
|
|
stringToBytes: function (t) {
|
|
return r.bin.stringToBytes(unescape(encodeURIComponent(t)))
|
|
},
|
|
bytesToString: function (t) {
|
|
return decodeURIComponent(escape(r.bin.bytesToString(t)))
|
|
}
|
|
},
|
|
bin: {
|
|
stringToBytes: function (t) {
|
|
for (var n = [], r = 0; r < t.length; r++)
|
|
n.push(255 & t.charCodeAt(r));
|
|
return n
|
|
},
|
|
bytesToString: function (t) {
|
|
for (var n = [], r = 0; r < t.length; r++)
|
|
n.push(String.fromCharCode(t[r]));
|
|
return n.join("""")
|
|
}
|
|
}
|
|
};
|
|
return r;
|
|
})(); // 2
|
|
|
|
|
|
var f_stream = (function (t, n, r) {
|
|
""use strict"";
|
|
t = {
|
|
2: ""need dictionary"",
|
|
1: ""stream end"",
|
|
0: """",
|
|
""-1"": ""file error"",
|
|
""-2"": ""stream error"",
|
|
""-3"": ""data error"",
|
|
""-4"": ""insufficient memory"",
|
|
""-5"": ""buffer error"",
|
|
""-6"": ""incompatible version""
|
|
}
|
|
return t;
|
|
})(); // 3
|
|
|
|
|
|
var f_en = (function (t, n, r) {
|
|
var n, r,
|
|
e = [""WMKPO8ONwrHCnTM="", ""w4HDqMO4R8KDw4Q="", ""cV97wr4AAsOPw7o="", ""w53DkMKT"", ""w5fDu8OBcsOtw6c="", ""w7A/CRDCiSDChV1MwqvCkDJrDidnwqPCpMK0"", ""w5PDlMOVNQsVAsKgEcK0woPDv8KCe8OCwpTCoRbDui/DsUMDw58RH24twqDDjsKNwrRfGCTDt2sVw7HCrcOze8OYwqkkwpXCp8O3asKnw7sGHV/DkBUTw71kRcKfwqQVw5c="", ""woNjOcKOYsONw7jDgcOJHzcXwop/KMOwKSTCrg=="", ""wpgRwod3NsKHPg=="", ""w64QQ3LDtMOvwrZiNA=="", ""bMOGZ8KJISnDl2sPwqw="", ""wrLDizPDhhrCjA=="", ""w5vDnMKRORQ2"", ""QRDDssOI"", ""w6XDvcKRwpgsMCx0FMO+w7HDjAxzJsKZwpEgdjPDvMOaHMO8McKMwofCo8OCZ8KnIsOANCzCm8KUe8OJOizDtB8ZU8Owfz1tMHELL8O1AMOOw6zDlGMnExwKw6Y="", ""YUd2wqU3""];
|
|
n = e,
|
|
r = 249,
|
|
function (t) {
|
|
for (; --t;)
|
|
n.push(n.shift())
|
|
}(++r);
|
|
var i = function t(n, r) {
|
|
var i, a = e[n -= 0];
|
|
void 0 === t.OYUOmT && ((i = function () {
|
|
var t;
|
|
t = Function('return (function() {}.constructor(""return this"")( ));')()
|
|
return t
|
|
}()).atob || (i.atob = function (t) {
|
|
for (var n, r, e = String(t).replace(/=+$/, """"), i = 0, a = 0, o = """"; r = e.charAt(a++); ~r && (n = i % 4 ? 64 * n + r : r,
|
|
i++ % 4) ? o += String.fromCharCode(255 & n >> (-2 * i & 6)) : 0)
|
|
r = ""ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="".indexOf(r);
|
|
return o
|
|
}
|
|
),
|
|
t.KlaBWf = function (t, n) {
|
|
for (var r, e = [], i = 0, a = """", o = """", s = 0, u = (t = atob(t)).length; s < u; s++)
|
|
o += ""%"" + (""00"" + t.charCodeAt(s).toString(16)).slice(-2);
|
|
t = decodeURIComponent(o);
|
|
for (var c = 0; c < 256; c++)
|
|
e[c] = c;
|
|
for (c = 0; c < 256; c++)
|
|
i = (i + e[c] + n.charCodeAt(c % n.length)) % 256,
|
|
r = e[c],
|
|
e[c] = e[i],
|
|
e[i] = r;
|
|
c = 0,
|
|
i = 0;
|
|
for (var f = 0; f < t.length; f++)
|
|
i = (i + e[c = (c + 1) % 256]) % 256,
|
|
r = e[c],
|
|
e[c] = e[i],
|
|
e[i] = r,
|
|
a += String.fromCharCode(t.charCodeAt(f) ^ e[(e[c] + e[i]) % 256]);
|
|
return a
|
|
}
|
|
,
|
|
t.qLLMER = {},
|
|
t.OYUOmT = !0);
|
|
var o = t.qLLMER[n];
|
|
return void 0 === o ? (void 0 === t.ERaocM && (t.ERaocM = !0),
|
|
a = t.KlaBWf(a, r),
|
|
t.qLLMER[n] = a) : a = o,
|
|
a
|
|
}
|
|
, a = i(""0x0"", ""Z*YI"")
|
|
, o = i(""0x1"", ""eHoP"")
|
|
, s = i(""0x2"", ""xf4l"")
|
|
, u = i(""0x3"", ""4H[4"")
|
|
, c = i(""0x4"", ""jbx*"")
|
|
, f = i(""0x5"", ""pe(C"")[i(""0x6"", ""j)OB"")]("""")
|
|
, w = {};
|
|
|
|
function l(t) {
|
|
return t[i(""0x7"", ""gQva"")](/[+\/=]/g, function (t) {
|
|
return w[t]
|
|
})
|
|
}
|
|
|
|
w[""+""] = ""-"",
|
|
w[""/""] = ""_"",
|
|
w[""=""] = """";
|
|
var d = {};
|
|
d[i(""0x8"", ""O7N@"")] = function (t) {
|
|
for (var n = function (t, n) {
|
|
return t(n)
|
|
}, r = function (t, n) {
|
|
return t < n
|
|
}, e = function (t, n) {
|
|
return t + n
|
|
}, i = function (t, n) {
|
|
return t + n
|
|
}, a = function (t, n) {
|
|
return t >>> n
|
|
}, o = function (t, n) {
|
|
return t & n
|
|
}, u = function (t, n) {
|
|
return t | n
|
|
}, c = function (t, n) {
|
|
return t << n
|
|
}, w = function (t, n) {
|
|
return t | n
|
|
}, d = function (t, n) {
|
|
return t === n
|
|
}, _ = function (t, n) {
|
|
return t + n
|
|
}, x = function (t, n) {
|
|
return t >>> n
|
|
}, g = function (t, n) {
|
|
return t + n
|
|
}, v = function (t, n) {
|
|
return t & n
|
|
}, p = void 0, b = void 0, m = void 0, C = """", D = t[s], O = 0, k = function (t, n) {
|
|
return t * n
|
|
}(n(h, function (t, n) {
|
|
return t / n
|
|
}(D, 3)), 3); r(O, k);)
|
|
p = t[O++],
|
|
b = t[O++],
|
|
m = t[O++],
|
|
C += e(e(i(f[a(p, 2)], f[o(u(c(p, 4), a(b, 4)), 63)]), f[o(w(c(b, 2), a(m, 6)), 63)]), f[o(m, 63)]);
|
|
var y = function (t, n) {
|
|
return t - n
|
|
}(D, k);
|
|
return d(y, 1) ? (p = t[O],
|
|
C += i(_(f[x(p, 2)], f[function (t, n) {
|
|
return t & n
|
|
}(c(p, 4), 63)]), ""=="")) : d(y, 2) && (p = t[O++],
|
|
b = t[O],
|
|
C += _(g(g(f[x(p, 2)], f[v(w(function (t, n) {
|
|
return t << n
|
|
}(p, 4), function (t, n) {
|
|
return t >>> n
|
|
}(b, 4)), 63)]), f[v(function (t, n) {
|
|
return t << n
|
|
}(b, 2), 63)]), ""="")),
|
|
n(l, C)
|
|
}
|
|
,
|
|
d[i(""0x9"", ""j)OB"")] = function (t) {
|
|
for (var n = function (t, n) {
|
|
return t < n
|
|
}, r = function (t, n) {
|
|
return t >= n
|
|
}, e = function (t, n) {
|
|
return t <= n
|
|
}, i = function (t, n) {
|
|
return t <= n
|
|
}, a = function (t, n) {
|
|
return t | n
|
|
}, f = function (t, n) {
|
|
return t & n
|
|
}, h = function (t, n) {
|
|
return t >> n
|
|
}, w = function (t, n) {
|
|
return t & n
|
|
}, l = function (t, n) {
|
|
return t >= n
|
|
}, d = function (t, n) {
|
|
return t <= n
|
|
}, _ = function (t, n) {
|
|
return t | n
|
|
}, x = function (t, n) {
|
|
return t & n
|
|
}, g = function (t, n) {
|
|
return t & n
|
|
}, v = function (t, n) {
|
|
return t >> n
|
|
}, p = function (t, n) {
|
|
return t & n
|
|
}, b = function (t, n) {
|
|
return t < n
|
|
}, m = [], C = 0, D = 0; n(D, t[s]); D += 1) {
|
|
var O = t[o](D);
|
|
r(O, 0) && e(O, 127) ? (m[c](O),
|
|
C += 1) : e(128, 80) && i(O, 2047) ? (C += 2,
|
|
m[c](a(192, f(31, h(O, 6)))),
|
|
m[c](a(128, w(63, O)))) : (l(O, 2048) && d(O, 55295) || l(O, 57344) && d(O, 65535)) && (C += 3,
|
|
m[c](_(224, x(15, h(O, 12)))),
|
|
m[c](_(128, g(63, v(O, 6)))),
|
|
m[c](_(128, p(63, O))))
|
|
}
|
|
for (var k = 0; b(k, m[s]); k += 1)
|
|
m[k] &= 255;
|
|
return function (t, n) {
|
|
return t <= n
|
|
}(C, 255) ? [0, C][u](m) : [function (t, n) {
|
|
return t >> n
|
|
}(C, 8), p(C, 255)][u](m)
|
|
}
|
|
,
|
|
d.es = function (t) {
|
|
t || (t = """");
|
|
var n = t[a](0, 255)
|
|
, r = []
|
|
, e = d.charCode(n).slice(2);
|
|
return r[c](e[s]),
|
|
r[u](e)
|
|
}
|
|
,
|
|
d.en = function (t) {
|
|
var n = function (t, n) {
|
|
return t !== n
|
|
}
|
|
, r = function (t, n) {
|
|
return t % n
|
|
}
|
|
, e = function (t, n) {
|
|
return t < n
|
|
}
|
|
, i = function (t, n) {
|
|
return t * n
|
|
}
|
|
, o = function (t, n) {
|
|
return t * n
|
|
}
|
|
, u = function (t, n) {
|
|
return t + n
|
|
}
|
|
, f = function (t, n, r) {
|
|
return t(n, r)
|
|
};
|
|
t || (t = 0);
|
|
var w = function (t, n) {
|
|
return parseInt(n)
|
|
}(0, t)
|
|
, l = [];
|
|
!function (t, n) {
|
|
return t > n
|
|
}(w, 0) ? l[c](1) : l[c](0);
|
|
for (var d = Math.abs(w).toString(2).split(""""), _ = 0; n(r(d[s], 8), 0); _ += 1)
|
|
d.unshift(""0"");
|
|
d = d.join("""");
|
|
for (var x = Math.ceil(function (t, n) {
|
|
return t / n
|
|
}(d[s], 8)), g = 0; e(g, x); g += 1) {
|
|
var v = d[a](i(g, 8), o(u(g, 1), 8));
|
|
l[c](f(parseInt, v, 2))
|
|
}
|
|
var p = l[s];
|
|
return l.unshift(p),
|
|
l
|
|
}
|
|
,
|
|
d[i(""0xa"", ""4H[4"")] = function (t) {
|
|
for (var n = function (t, n) {
|
|
return t < n
|
|
}, r = [], e = t.toString(2).split(""""), i = 0; n(e[s], 16); i += 1)
|
|
e.unshift(0);
|
|
return e = e.join(""""),
|
|
r[c](function (t, n, r) {
|
|
return t(n, r)
|
|
}(parseInt, e[a](0, 8), 2), function (t, n, r) {
|
|
return t(n, r)
|
|
}(parseInt, e[a](8, 16), 2)),
|
|
r
|
|
}
|
|
,
|
|
d[i(""0xb"", ""n1$k"")] = function (t) {
|
|
for (var n = {
|
|
siKwF: i(""0xc"", ""3sl8""),
|
|
cCTci: i(""0xd"", ""$oSo""),
|
|
gJSsU: function (t, n) {
|
|
return t < n
|
|
},
|
|
jKThZ: i(""0xe"", ""VRJR""),
|
|
rZJxP: function (t, n) {
|
|
return t | n
|
|
},
|
|
BJGzg: function (t, n) {
|
|
return t << n
|
|
},
|
|
dkecu: function (t, n) {
|
|
return t & n
|
|
},
|
|
YDHhf: function (t, n) {
|
|
return t - n
|
|
},
|
|
PTrMw: function (t, n) {
|
|
return t >> n
|
|
},
|
|
inPLI: function (t, n) {
|
|
return t << n
|
|
},
|
|
DFOkJ: function (t, n) {
|
|
return t(n)
|
|
},
|
|
kkUqO: function (t, n) {
|
|
return t - n
|
|
},
|
|
CCwIR: function (t, n) {
|
|
return t(n)
|
|
},
|
|
qYmFj: function (t, n) {
|
|
return t + n
|
|
},
|
|
fGVLX: function (t, n) {
|
|
return t & n
|
|
},
|
|
BCdUS: function (t, n) {
|
|
return t - n
|
|
},
|
|
WIZIR: function (t, n) {
|
|
return t < n
|
|
}
|
|
}, r = n.siKwF.split(""|""), e = 0; ;) {
|
|
switch (r[e++]) {
|
|
case ""0"":
|
|
return _.replace(/=/g, """");
|
|
case ""1"":
|
|
var a = n.cCTci;
|
|
continue;
|
|
case ""2"":
|
|
var u, c, f, h;
|
|
continue;
|
|
case ""3"":
|
|
for (d = 0; n.gJSsU(d, t[s]); d = v._bK)
|
|
for (var w = n.jKThZ.split(""|""), l = 0; ;) {
|
|
switch (w[l++]) {
|
|
case ""0"":
|
|
x._á(v._bf());
|
|
continue;
|
|
case ""1"":
|
|
f = n.rZJxP(n.BJGzg(n.dkecu(x._ê[n.YDHhf(x._bÌ, 1)], 15), 2), n.PTrMw(x._ê[x._bÌ], 6));
|
|
continue;
|
|
case ""2"":
|
|
c = n.rZJxP(n.inPLI(n.dkecu(x._ê[n.YDHhf(x._bÌ, 2)], 3), 4), n.PTrMw(x._ê[n.YDHhf(x._bÌ, 1)], 4));
|
|
continue;
|
|
case ""3"":
|
|
n.DFOkJ(isNaN, x._ê[n.kkUqO(x._bÌ, 1)]) ? f = h = 64 : n.CCwIR(isNaN, x._ê[x._bÌ]) && (h = 64);
|
|
continue;
|
|
case ""4"":
|
|
_ = n.qYmFj(n.qYmFj(n.qYmFj(n.qYmFj(_, x._ê[u]), x._ê[c]), x._ê[f]), x._ê[h]);
|
|
continue;
|
|
case ""5"":
|
|
x._á(v._bf());
|
|
continue;
|
|
case ""6"":
|
|
h = n.fGVLX(x._ê[x._bÌ], 63);
|
|
continue;
|
|
case ""7"":
|
|
u = n.PTrMw(x._ê[n.BCdUS(x._bÌ, 2)], 2);
|
|
continue;
|
|
case ""8"":
|
|
x._á(v._bf());
|
|
continue;
|
|
case ""9"":
|
|
x._bÌ -= 3;
|
|
continue
|
|
}
|
|
break
|
|
}
|
|
continue;
|
|
case ""4"":
|
|
for (var d = 0; n.WIZIR(d, a[s]); d++)
|
|
x._á(a.charAt(d));
|
|
continue;
|
|
case ""5"":
|
|
x._á(""="");
|
|
continue;
|
|
case ""6"":
|
|
var _ = """";
|
|
continue;
|
|
case ""7"":
|
|
var x = {
|
|
""_ê"": new Array(4095),
|
|
""_bÌ"": -1,
|
|
""_á"": function (t) {
|
|
this._bÌ++,
|
|
this._ê[this._bÌ] = t
|
|
},
|
|
""_bÝ"": function () {
|
|
return this._bÌ--,
|
|
g.ElHZO(this._bÌ, 0) && (this._bÌ = 0),
|
|
this._ê[this._bÌ]
|
|
}
|
|
};
|
|
continue;
|
|
case ""8"":
|
|
var g = {
|
|
ElHZO: function (t, r) {
|
|
return n.WIZIR(t, r)
|
|
}
|
|
};
|
|
continue;
|
|
case ""9"":
|
|
var v = {
|
|
""_bÇ"": t,
|
|
_bK: 0,
|
|
_bf: function () {
|
|
return t[o](this._bK++)
|
|
}
|
|
};
|
|
continue
|
|
}
|
|
break
|
|
}
|
|
};
|
|
|
|
return d;
|
|
})(); // 4
|
|
|
|
|
|
var f_digest = (function (t, n, r) {
|
|
var e, i, a, o, s;
|
|
e = f_rot,
|
|
i = f_utf8_bin.utf8,
|
|
a = f_is_buffer,
|
|
o = f_utf8_bin.bin,
|
|
(s = function t(n, r) {
|
|
n.constructor == String ? n = r && ""binary"" === r.encoding ? o.stringToBytes(n) : i.stringToBytes(n) : a(n) ? n = Array.prototype.slice.call(n, 0) : f(n) || (n = n.toString());
|
|
for (var s = e.bytesToWords(n), u = 8 * n.length, c = 1732584193, h = -271733879, w = -1732584194, l = 271733878, d = 0; d < s.length; d++)
|
|
s[d] = 16711935 & (s[d] << 8 | s[d] >>> 24) | 4278255360 & (s[d] << 24 | s[d] >>> 8);
|
|
s[u >>> 5] |= 128 << u % 32,
|
|
s[14 + (u + 64 >>> 9 << 4)] = u;
|
|
var _ = t._ff
|
|
, x = t._gg
|
|
, g = t._hh
|
|
, v = t._ii;
|
|
for (d = 0; d < s.length; d += 16) {
|
|
var p = c
|
|
, b = h
|
|
, m = w
|
|
, C = l;
|
|
h = v(h = v(h = v(h = v(h = g(h = g(h = g(h = g(h = x(h = x(h = x(h = x(h = _(h = _(h = _(h = _(h, w = _(w, l = _(l, c = _(c, h, w, l, s[d + 0], 7, -680876936), h, w, s[d + 1], 12, -389564586), c, h, s[d + 2], 17, 606105819), l, c, s[d + 3], 22, -1044525330), w = _(w, l = _(l, c = _(c, h, w, l, s[d + 4], 7, -176418897), h, w, s[d + 5], 12, 1200080426), c, h, s[d + 6], 17, -1473231341), l, c, s[d + 7], 22, -45705983), w = _(w, l = _(l, c = _(c, h, w, l, s[d + 8], 7, 1770035416), h, w, s[d + 9], 12, -1958414417), c, h, s[d + 10], 17, -42063), l, c, s[d + 11], 22, -1990404162), w = _(w, l = _(l, c = _(c, h, w, l, s[d + 12], 7, 1804603682), h, w, s[d + 13], 12, -40341101), c, h, s[d + 14], 17, -1502002290), l, c, s[d + 15], 22, 1236535329), w = x(w, l = x(l, c = x(c, h, w, l, s[d + 1], 5, -165796510), h, w, s[d + 6], 9, -1069501632), c, h, s[d + 11], 14, 643717713), l, c, s[d + 0], 20, -373897302), w = x(w, l = x(l, c = x(c, h, w, l, s[d + 5], 5, -701558691), h, w, s[d + 10], 9, 38016083), c, h, s[d + 15], 14, -660478335), l, c, s[d + 4], 20, -405537848), w = x(w, l = x(l, c = x(c, h, w, l, s[d + 9], 5, 568446438), h, w, s[d + 14], 9, -1019803690), c, h, s[d + 3], 14, -187363961), l, c, s[d + 8], 20, 1163531501), w = x(w, l = x(l, c = x(c, h, w, l, s[d + 13], 5, -1444681467), h, w, s[d + 2], 9, -51403784), c, h, s[d + 7], 14, 1735328473), l, c, s[d + 12], 20, -1926607734), w = g(w, l = g(l, c = g(c, h, w, l, s[d + 5], 4, -378558), h, w, s[d + 8], 11, -2022574463), c, h, s[d + 11], 16, 1839030562), l, c, s[d + 14], 23, -35309556), w = g(w, l = g(l, c = g(c, h, w, l, s[d + 1], 4, -1530992060), h, w, s[d + 4], 11, 1272893353), c, h, s[d + 7], 16, -155497632), l, c, s[d + 10], 23, -1094730640), w = g(w, l = g(l, c = g(c, h, w, l, s[d + 13], 4, 681279174), h, w, s[d + 0], 11, -358537222), c, h, s[d + 3], 16, -722521979), l, c, s[d + 6], 23, 76029189), w = g(w, l = g(l, c = g(c, h, w, l, s[d + 9], 4, -640364487), h, w, s[d + 12], 11, -421815835), c, h, s[d + 15], 16, 530742520), l, c, s[d + 2], 23, -995338651), w = v(w, l = v(l, c = v(c, h, w, l, s[d + 0], 6, -198630844), h, w, s[d + 7], 10, 1126891415), c, h, s[d + 14], 15, -1416354905), l, c, s[d + 5], 21, -57434055), w = v(w, l = v(l, c = v(c, h, w, l, s[d + 12], 6, 1700485571), h, w, s[d + 3], 10, -1894986606), c, h, s[d + 10], 15, -1051523), l, c, s[d + 1], 21, -2054922799), w = v(w, l = v(l, c = v(c, h, w, l, s[d + 8], 6, 1873313359), h, w, s[d + 15], 10, -30611744), c, h, s[d + 6], 15, -1560198380), l, c, s[d + 13], 21, 1309151649), w = v(w, l = v(l, c = v(c, h, w, l, s[d + 4], 6, -145523070), h, w, s[d + 11], 10, -1120210379), c, h, s[d + 2], 15, 718787259), l, c, s[d + 9], 21, -343485551),
|
|
c = c + p >>> 0,
|
|
h = h + b >>> 0,
|
|
w = w + m >>> 0,
|
|
l = l + C >>> 0
|
|
}
|
|
return e.endian([c, h, w, l])
|
|
}
|
|
)._ff = function (t, n, r, e, i, a, o) {
|
|
var s = t + (n & r | ~n & e) + (i >>> 0) + o;
|
|
return (s << a | s >>> 32 - a) + n
|
|
}
|
|
,
|
|
s._gg = function (t, n, r, e, i, a, o) {
|
|
var s = t + (n & e | r & ~e) + (i >>> 0) + o;
|
|
return (s << a | s >>> 32 - a) + n
|
|
}
|
|
,
|
|
s._hh = function (t, n, r, e, i, a, o) {
|
|
var s = t + (n ^ r ^ e) + (i >>> 0) + o;
|
|
return (s << a | s >>> 32 - a) + n
|
|
}
|
|
,
|
|
s._ii = function (t, n, r, e, i, a, o) {
|
|
var s = t + (r ^ (n | ~e)) + (i >>> 0) + o;
|
|
return (s << a | s >>> 32 - a) + n
|
|
}
|
|
,
|
|
s._blocksize = 16,
|
|
s._digestsize = 16,
|
|
tt = function (t, n) {
|
|
if (null == t)
|
|
throw new Error(""Illegal argument "" + t);
|
|
var r = e.wordsToBytes(s(t, n));
|
|
return n && n.asBytes ? r : n && n.asString ? o.bytesToString(r) : e.bytesToHex(r)
|
|
};
|
|
return tt;
|
|
})(); // 5
|
|
|
|
|
|
var f_is_buffer = (function (t, n) {
|
|
function r(t) {
|
|
return !!t.constructor && ""function"" == typeof t.constructor.isBuffer && t.constructor.isBuffer(t)
|
|
}
|
|
|
|
return function (t) {
|
|
return null != t && (r(t) || function (t) {
|
|
return ""function"" == typeof t.readFloatLE && ""function"" == typeof t.slice && r(t.slice(0, 0))
|
|
}(t) || !!t._isBuffer)
|
|
}
|
|
})(); // 8
|
|
|
|
|
|
var f_yu_xun = (function (t, n, r) {
|
|
""use strict"";
|
|
return function (t, n, r, e) {
|
|
for (var i = 65535 & t | 0, a = t >>> 16 & 65535 | 0, o = 0; 0 !== r;) {
|
|
r -= o = r > 2e3 ? 2e3 : r;
|
|
do {
|
|
a = a + (i = i + n[e++] | 0) | 0
|
|
} while (--o);
|
|
i %= 65521,
|
|
a %= 65521
|
|
}
|
|
return i | a << 16 | 0
|
|
}
|
|
})(); // 12
|
|
|
|
|
|
var f_yi = (function (t, n, r) {
|
|
""use strict"";
|
|
var e = function () {
|
|
for (var t, n = [], r = 0; r < 256; r++) {
|
|
t = r;
|
|
for (var e = 0; e < 8; e++)
|
|
t = 1 & t ? 3988292384 ^ t >>> 1 : t >>> 1;
|
|
n[r] = t
|
|
}
|
|
return n
|
|
}();
|
|
return function (t, n, r, i) {
|
|
var a = e
|
|
, o = i + r;
|
|
t ^= -1;
|
|
for (var s = i; s < o; s++)
|
|
t = t >>> 8 ^ a[255 & (t ^ n[s])];
|
|
return -1 ^ t
|
|
}
|
|
})(); // 13
|
|
|
|
|
|
var f_tr = (function (t, n, r) {
|
|
""use strict"";
|
|
var n = {};
|
|
var e = f_assign;
|
|
|
|
function i(t) {
|
|
for (var n = t.length; --n >= 0;)
|
|
t[n] = 0
|
|
}
|
|
|
|
var a = 0
|
|
, o = 256
|
|
, s = o + 1 + 29
|
|
, u = 30
|
|
, c = 19
|
|
, f = 2 * s + 1
|
|
, h = 15
|
|
, w = 16
|
|
, l = 256
|
|
, d = 16
|
|
, _ = 17
|
|
, x = 18
|
|
, g = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0]
|
|
, v = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13]
|
|
, p = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7]
|
|
, b = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]
|
|
, m = new Array(2 * (s + 2));
|
|
i(m);
|
|
var C = new Array(2 * u);
|
|
i(C);
|
|
var D = new Array(512);
|
|
i(D);
|
|
var O = new Array(256);
|
|
i(O);
|
|
var k = new Array(29);
|
|
i(k);
|
|
var y, K, z, A = new Array(u);
|
|
|
|
function M(t, n, r, e, i) {
|
|
this.static_tree = t,
|
|
this.extra_bits = n,
|
|
this.extra_base = r,
|
|
this.elems = e,
|
|
this.max_length = i,
|
|
this.has_stree = t && t.length
|
|
}
|
|
|
|
function B(t, n) {
|
|
this.dyn_tree = t,
|
|
this.max_code = 0,
|
|
this.stat_desc = n
|
|
}
|
|
|
|
function L(t) {
|
|
return t < 256 ? D[t] : D[256 + (t >>> 7)]
|
|
}
|
|
|
|
function j(t, n) {
|
|
t.pending_buf[t.pending++] = 255 & n,
|
|
t.pending_buf[t.pending++] = n >>> 8 & 255
|
|
}
|
|
|
|
function S(t, n, r) {
|
|
t.bi_valid > w - r ? (t.bi_buf |= n << t.bi_valid & 65535,
|
|
j(t, t.bi_buf),
|
|
t.bi_buf = n >> w - t.bi_valid,
|
|
t.bi_valid += r - w) : (t.bi_buf |= n << t.bi_valid & 65535,
|
|
t.bi_valid += r)
|
|
}
|
|
|
|
function T(t, n, r) {
|
|
S(t, r[2 * n], r[2 * n + 1])
|
|
}
|
|
|
|
function H(t, n) {
|
|
var r = 0;
|
|
do {
|
|
r |= 1 & t,
|
|
t >>>= 1,
|
|
r <<= 1
|
|
} while (--n > 0);
|
|
return r >>> 1
|
|
}
|
|
|
|
function V(t, n, r) {
|
|
var e, i, a = new Array(h + 1), o = 0;
|
|
for (e = 1; e <= h; e++)
|
|
a[e] = o = o + r[e - 1] << 1;
|
|
for (i = 0; i <= n; i++) {
|
|
var s = t[2 * i + 1];
|
|
0 !== s && (t[2 * i] = H(a[s]++, s))
|
|
}
|
|
}
|
|
|
|
function Y(t) {
|
|
var n;
|
|
for (n = 0; n < s; n++)
|
|
t.dyn_ltree[2 * n] = 0;
|
|
for (n = 0; n < u; n++)
|
|
t.dyn_dtree[2 * n] = 0;
|
|
for (n = 0; n < c; n++)
|
|
t.bl_tree[2 * n] = 0;
|
|
t.dyn_ltree[2 * l] = 1,
|
|
t.opt_len = t.static_len = 0,
|
|
t.last_lit = t.matches = 0
|
|
}
|
|
|
|
function q(t) {
|
|
t.bi_valid > 8 ? j(t, t.bi_buf) : t.bi_valid > 0 && (t.pending_buf[t.pending++] = t.bi_buf),
|
|
t.bi_buf = 0,
|
|
t.bi_valid = 0
|
|
}
|
|
|
|
function N(t, n, r, e) {
|
|
var i = 2 * n
|
|
, a = 2 * r;
|
|
return t[i] < t[a] || t[i] === t[a] && e[n] <= e[r]
|
|
}
|
|
|
|
function R(t, n, r) {
|
|
for (var e = t.heap[r], i = r << 1; i <= t.heap_len && (i < t.heap_len && N(n, t.heap[i + 1], t.heap[i], t.depth) && i++,
|
|
!N(n, e, t.heap[i], t.depth));)
|
|
t.heap[r] = t.heap[i],
|
|
r = i,
|
|
i <<= 1;
|
|
t.heap[r] = e
|
|
}
|
|
|
|
function Q(t, n, r) {
|
|
var e, i, a, s, u = 0;
|
|
if (0 !== t.last_lit)
|
|
do {
|
|
e = t.pending_buf[t.d_buf + 2 * u] << 8 | t.pending_buf[t.d_buf + 2 * u + 1],
|
|
i = t.pending_buf[t.l_buf + u],
|
|
u++,
|
|
0 === e ? T(t, i, n) : (T(t, (a = O[i]) + o + 1, n),
|
|
0 !== (s = g[a]) && S(t, i -= k[a], s),
|
|
T(t, a = L(--e), r),
|
|
0 !== (s = v[a]) && S(t, e -= A[a], s))
|
|
} while (u < t.last_lit);
|
|
T(t, l, n)
|
|
}
|
|
|
|
function U(t, n) {
|
|
var r, e, i, a = n.dyn_tree, o = n.stat_desc.static_tree, s = n.stat_desc.has_stree, u = n.stat_desc.elems,
|
|
c = -1;
|
|
for (t.heap_len = 0,
|
|
t.heap_max = f,
|
|
r = 0; r < u; r++)
|
|
0 !== a[2 * r] ? (t.heap[++t.heap_len] = c = r,
|
|
t.depth[r] = 0) : a[2 * r + 1] = 0;
|
|
for (; t.heap_len < 2;)
|
|
a[2 * (i = t.heap[++t.heap_len] = c < 2 ? ++c : 0)] = 1,
|
|
t.depth[i] = 0,
|
|
t.opt_len--,
|
|
s && (t.static_len -= o[2 * i + 1]);
|
|
for (n.max_code = c,
|
|
r = t.heap_len >> 1; r >= 1; r--)
|
|
R(t, a, r);
|
|
i = u;
|
|
do {
|
|
r = t.heap[1],
|
|
t.heap[1] = t.heap[t.heap_len--],
|
|
R(t, a, 1),
|
|
e = t.heap[1],
|
|
t.heap[--t.heap_max] = r,
|
|
t.heap[--t.heap_max] = e,
|
|
a[2 * i] = a[2 * r] + a[2 * e],
|
|
t.depth[i] = (t.depth[r] >= t.depth[e] ? t.depth[r] : t.depth[e]) + 1,
|
|
a[2 * r + 1] = a[2 * e + 1] = i,
|
|
t.heap[1] = i++,
|
|
R(t, a, 1)
|
|
} while (t.heap_len >= 2);
|
|
t.heap[--t.heap_max] = t.heap[1],
|
|
function (t, n) {
|
|
var r, e, i, a, o, s, u = n.dyn_tree, c = n.max_code, w = n.stat_desc.static_tree,
|
|
l = n.stat_desc.has_stree, d = n.stat_desc.extra_bits, _ = n.stat_desc.extra_base,
|
|
x = n.stat_desc.max_length, g = 0;
|
|
for (a = 0; a <= h; a++)
|
|
t.bl_count[a] = 0;
|
|
for (u[2 * t.heap[t.heap_max] + 1] = 0,
|
|
r = t.heap_max + 1; r < f; r++)
|
|
(a = u[2 * u[2 * (e = t.heap[r]) + 1] + 1] + 1) > x && (a = x,
|
|
g++),
|
|
u[2 * e + 1] = a,
|
|
e > c || (t.bl_count[a]++,
|
|
o = 0,
|
|
e >= _ && (o = d[e - _]),
|
|
s = u[2 * e],
|
|
t.opt_len += s * (a + o),
|
|
l && (t.static_len += s * (w[2 * e + 1] + o)));
|
|
if (0 !== g) {
|
|
do {
|
|
for (a = x - 1; 0 === t.bl_count[a];)
|
|
a--;
|
|
t.bl_count[a]--,
|
|
t.bl_count[a + 1] += 2,
|
|
t.bl_count[x]--,
|
|
g -= 2
|
|
} while (g > 0);
|
|
for (a = x; 0 !== a; a--)
|
|
for (e = t.bl_count[a]; 0 !== e;)
|
|
(i = t.heap[--r]) > c || (u[2 * i + 1] !== a && (t.opt_len += (a - u[2 * i + 1]) * u[2 * i],
|
|
u[2 * i + 1] = a),
|
|
e--)
|
|
}
|
|
}(t, n),
|
|
V(a, c, t.bl_count)
|
|
}
|
|
|
|
function E(t, n, r) {
|
|
var e, i, a = -1, o = n[1], s = 0, u = 7, c = 4;
|
|
for (0 === o && (u = 138,
|
|
c = 3),
|
|
n[2 * (r + 1) + 1] = 65535,
|
|
e = 0; e <= r; e++)
|
|
i = o,
|
|
o = n[2 * (e + 1) + 1],
|
|
++s < u && i === o || (s < c ? t.bl_tree[2 * i] += s : 0 !== i ? (i !== a && t.bl_tree[2 * i]++,
|
|
t.bl_tree[2 * d]++) : s <= 10 ? t.bl_tree[2 * _]++ : t.bl_tree[2 * x]++,
|
|
s = 0,
|
|
a = i,
|
|
0 === o ? (u = 138,
|
|
c = 3) : i === o ? (u = 6,
|
|
c = 3) : (u = 7,
|
|
c = 4))
|
|
}
|
|
|
|
function P(t, n, r) {
|
|
var e, i, a = -1, o = n[1], s = 0, u = 7, c = 4;
|
|
for (0 === o && (u = 138,
|
|
c = 3),
|
|
e = 0; e <= r; e++)
|
|
if (i = o,
|
|
o = n[2 * (e + 1) + 1],
|
|
!(++s < u && i === o)) {
|
|
if (s < c)
|
|
do {
|
|
T(t, i, t.bl_tree)
|
|
} while (0 != --s);
|
|
else
|
|
0 !== i ? (i !== a && (T(t, i, t.bl_tree),
|
|
s--),
|
|
T(t, d, t.bl_tree),
|
|
S(t, s - 3, 2)) : s <= 10 ? (T(t, _, t.bl_tree),
|
|
S(t, s - 3, 3)) : (T(t, x, t.bl_tree),
|
|
S(t, s - 11, 7));
|
|
s = 0,
|
|
a = i,
|
|
0 === o ? (u = 138,
|
|
c = 3) : i === o ? (u = 6,
|
|
c = 3) : (u = 7,
|
|
c = 4)
|
|
}
|
|
}
|
|
|
|
i(A);
|
|
var F = !1;
|
|
|
|
function I(t, n, r, i) {
|
|
S(t, (a << 1) + (i ? 1 : 0), 3),
|
|
function (t, n, r, i) {
|
|
q(t),
|
|
j(t, r),
|
|
j(t, ~r),
|
|
e.arraySet(t.pending_buf, t.window, n, r, t.pending),
|
|
t.pending += r
|
|
}(t, n, r)
|
|
}
|
|
|
|
n._tr_init = function (t) {
|
|
F || (function () {
|
|
var t, n, r, e, i, a = new Array(h + 1);
|
|
for (r = 0,
|
|
e = 0; e < 28; e++)
|
|
for (k[e] = r,
|
|
t = 0; t < 1 << g[e]; t++)
|
|
O[r++] = e;
|
|
for (O[r - 1] = e,
|
|
i = 0,
|
|
e = 0; e < 16; e++)
|
|
for (A[e] = i,
|
|
t = 0; t < 1 << v[e]; t++)
|
|
D[i++] = e;
|
|
for (i >>= 7; e < u; e++)
|
|
for (A[e] = i << 7,
|
|
t = 0; t < 1 << v[e] - 7; t++)
|
|
D[256 + i++] = e;
|
|
for (n = 0; n <= h; n++)
|
|
a[n] = 0;
|
|
for (t = 0; t <= 143;)
|
|
m[2 * t + 1] = 8,
|
|
t++,
|
|
a[8]++;
|
|
for (; t <= 255;)
|
|
m[2 * t + 1] = 9,
|
|
t++,
|
|
a[9]++;
|
|
for (; t <= 279;)
|
|
m[2 * t + 1] = 7,
|
|
t++,
|
|
a[7]++;
|
|
for (; t <= 287;)
|
|
m[2 * t + 1] = 8,
|
|
t++,
|
|
a[8]++;
|
|
for (V(m, s + 1, a),
|
|
t = 0; t < u; t++)
|
|
C[2 * t + 1] = 5,
|
|
C[2 * t] = H(t, 5);
|
|
y = new M(m, g, o + 1, s, h),
|
|
K = new M(C, v, 0, u, h),
|
|
z = new M(new Array(0), p, 0, c, 7)
|
|
}(),
|
|
F = !0),
|
|
t.l_desc = new B(t.dyn_ltree, y),
|
|
t.d_desc = new B(t.dyn_dtree, K),
|
|
t.bl_desc = new B(t.bl_tree, z),
|
|
t.bi_buf = 0,
|
|
t.bi_valid = 0,
|
|
Y(t)
|
|
}
|
|
,
|
|
n._tr_stored_block = I,
|
|
n._tr_flush_block = function (t, n, r, e) {
|
|
var i, a, s = 0;
|
|
t.level > 0 ? (2 === t.strm.data_type && (t.strm.data_type = function (t) {
|
|
var n, r = 4093624447;
|
|
for (n = 0; n <= 31; n++,
|
|
r >>>= 1)
|
|
if (1 & r && 0 !== t.dyn_ltree[2 * n])
|
|
return 0;
|
|
if (0 !== t.dyn_ltree[18] || 0 !== t.dyn_ltree[20] || 0 !== t.dyn_ltree[26])
|
|
return 1;
|
|
for (n = 32; n < o; n++)
|
|
if (0 !== t.dyn_ltree[2 * n])
|
|
return 1;
|
|
return 0
|
|
}(t)),
|
|
U(t, t.l_desc),
|
|
U(t, t.d_desc),
|
|
s = function (t) {
|
|
var n;
|
|
for (E(t, t.dyn_ltree, t.l_desc.max_code),
|
|
E(t, t.dyn_dtree, t.d_desc.max_code),
|
|
U(t, t.bl_desc),
|
|
n = c - 1; n >= 3 && 0 === t.bl_tree[2 * b[n] + 1]; n--)
|
|
;
|
|
return t.opt_len += 3 * (n + 1) + 5 + 5 + 4,
|
|
n
|
|
}(t),
|
|
i = t.opt_len + 3 + 7 >>> 3,
|
|
(a = t.static_len + 3 + 7 >>> 3) <= i && (i = a)) : i = a = r + 5,
|
|
r + 4 <= i && -1 !== n ? I(t, n, r, e) : 4 === t.strategy || a === i ? (S(t, 2 + (e ? 1 : 0), 3),
|
|
Q(t, m, C)) : (S(t, 4 + (e ? 1 : 0), 3),
|
|
function (t, n, r, e) {
|
|
var i;
|
|
for (S(t, n - 257, 5),
|
|
S(t, r - 1, 5),
|
|
S(t, e - 4, 4),
|
|
i = 0; i < e; i++)
|
|
S(t, t.bl_tree[2 * b[i] + 1], 3);
|
|
P(t, t.dyn_ltree, n - 1),
|
|
P(t, t.dyn_dtree, r - 1)
|
|
}(t, t.l_desc.max_code + 1, t.d_desc.max_code + 1, s + 1),
|
|
Q(t, t.dyn_ltree, t.dyn_dtree)),
|
|
Y(t),
|
|
e && q(t)
|
|
}
|
|
,
|
|
n._tr_tally = function (t, n, r) {
|
|
return t.pending_buf[t.d_buf + 2 * t.last_lit] = n >>> 8 & 255,
|
|
t.pending_buf[t.d_buf + 2 * t.last_lit + 1] = 255 & n,
|
|
t.pending_buf[t.l_buf + t.last_lit] = 255 & r,
|
|
t.last_lit++,
|
|
0 === n ? t.dyn_ltree[2 * r]++ : (t.matches++,
|
|
n--,
|
|
t.dyn_ltree[2 * (O[r] + o + 1)]++,
|
|
t.dyn_dtree[2 * L(n)]++),
|
|
t.last_lit === t.lit_bufsize - 1
|
|
}
|
|
,
|
|
n._tr_align = function (t) {
|
|
S(t, 2, 3),
|
|
T(t, l, m),
|
|
function (t) {
|
|
16 === t.bi_valid ? (j(t, t.bi_buf),
|
|
t.bi_buf = 0,
|
|
t.bi_valid = 0) : t.bi_valid >= 8 && (t.pending_buf[t.pending++] = 255 & t.bi_buf,
|
|
t.bi_buf >>= 8,
|
|
t.bi_valid -= 8)
|
|
}(t)
|
|
};
|
|
|
|
return n;
|
|
})(); // 11
|
|
|
|
|
|
var f_long = (function (t, n, r) {
|
|
""use strict"";
|
|
var n = {};
|
|
var e, i = f_assign, a = f_tr, o = f_yu_xun, s = f_yi, u = f_stream, c = 0, f = 4, h = 0, w = -2, l = -1, d = 1,
|
|
_ = 4, x = 2, g = 8, v = 9, p = 286, b = 30, m = 19, C = 2 * p + 1, D = 15, O = 3, k = 258, y = k + O + 1,
|
|
K = 42, z = 103, A = 113, M = 666, B = 1, L = 2, j = 3, S = 4;
|
|
|
|
function T(t, n) {
|
|
return t.msg = u[n],
|
|
n
|
|
}
|
|
|
|
function H(t) {
|
|
return (t << 1) - (t > 4 ? 9 : 0)
|
|
}
|
|
|
|
function V(t) {
|
|
for (var n = t.length; --n >= 0;)
|
|
t[n] = 0
|
|
}
|
|
|
|
function Y(t) {
|
|
var n = t.state
|
|
, r = n.pending;
|
|
r > t.avail_out && (r = t.avail_out),
|
|
0 !== r && (i.arraySet(t.output, n.pending_buf, n.pending_out, r, t.next_out),
|
|
t.next_out += r,
|
|
n.pending_out += r,
|
|
t.total_out += r,
|
|
t.avail_out -= r,
|
|
n.pending -= r,
|
|
0 === n.pending && (n.pending_out = 0))
|
|
}
|
|
|
|
function q(t, n) {
|
|
a._tr_flush_block(t, t.block_start >= 0 ? t.block_start : -1, t.strstart - t.block_start, n),
|
|
t.block_start = t.strstart,
|
|
Y(t.strm)
|
|
}
|
|
|
|
function N(t, n) {
|
|
t.pending_buf[t.pending++] = n
|
|
}
|
|
|
|
function R(t, n) {
|
|
t.pending_buf[t.pending++] = n >>> 8 & 255,
|
|
t.pending_buf[t.pending++] = 255 & n
|
|
}
|
|
|
|
function Q(t, n) {
|
|
var r, e, i = t.max_chain_length, a = t.strstart, o = t.prev_length, s = t.nice_match,
|
|
u = t.strstart > t.w_size - y ? t.strstart - (t.w_size - y) : 0, c = t.window, f = t.w_mask, h = t.prev,
|
|
w = t.strstart + k, l = c[a + o - 1], d = c[a + o];
|
|
t.prev_length >= t.good_match && (i >>= 2),
|
|
s > t.lookahead && (s = t.lookahead);
|
|
do {
|
|
if (c[(r = n) + o] === d && c[r + o - 1] === l && c[r] === c[a] && c[++r] === c[a + 1]) {
|
|
a += 2,
|
|
r++;
|
|
do {
|
|
} while (c[++a] === c[++r] && c[++a] === c[++r] && c[++a] === c[++r] && c[++a] === c[++r] && c[++a] === c[++r] && c[++a] === c[++r] && c[++a] === c[++r] && c[++a] === c[++r] && a < w);
|
|
if (e = k - (w - a),
|
|
a = w - k,
|
|
e > o) {
|
|
if (t.match_start = n,
|
|
o = e,
|
|
e >= s)
|
|
break;
|
|
l = c[a + o - 1],
|
|
d = c[a + o]
|
|
}
|
|
}
|
|
} while ((n = h[n & f]) > u && 0 != --i);
|
|
return o <= t.lookahead ? o : t.lookahead
|
|
}
|
|
|
|
function U(t) {
|
|
var n, r, e, a, u, c, f, h, w, l, d = t.w_size;
|
|
do {
|
|
if (a = t.window_size - t.lookahead - t.strstart,
|
|
t.strstart >= d + (d - y)) {
|
|
i.arraySet(t.window, t.window, d, d, 0),
|
|
t.match_start -= d,
|
|
t.strstart -= d,
|
|
t.block_start -= d,
|
|
n = r = t.hash_size;
|
|
do {
|
|
e = t.head[--n],
|
|
t.head[n] = e >= d ? e - d : 0
|
|
} while (--r);
|
|
n = r = d;
|
|
do {
|
|
e = t.prev[--n],
|
|
t.prev[n] = e >= d ? e - d : 0
|
|
} while (--r);
|
|
a += d
|
|
}
|
|
if (0 === t.strm.avail_in)
|
|
break;
|
|
if (c = t.strm,
|
|
f = t.window,
|
|
h = t.strstart + t.lookahead,
|
|
w = a,
|
|
l = void 0,
|
|
(l = c.avail_in) > w && (l = w),
|
|
r = 0 === l ? 0 : (c.avail_in -= l,
|
|
i.arraySet(f, c.input, c.next_in, l, h),
|
|
1 === c.state.wrap ? c.adler = o(c.adler, f, l, h) : 2 === c.state.wrap && (c.adler = s(c.adler, f, l, h)),
|
|
c.next_in += l,
|
|
c.total_in += l,
|
|
l),
|
|
t.lookahead += r,
|
|
t.lookahead + t.insert >= O)
|
|
for (u = t.strstart - t.insert,
|
|
t.ins_h = t.window[u],
|
|
t.ins_h = (t.ins_h << t.hash_shift ^ t.window[u + 1]) & t.hash_mask; t.insert && (t.ins_h = (t.ins_h << t.hash_shift ^ t.window[u + O - 1]) & t.hash_mask,
|
|
t.prev[u & t.w_mask] = t.head[t.ins_h],
|
|
t.head[t.ins_h] = u,
|
|
u++,
|
|
t.insert--,
|
|
!(t.lookahead + t.insert < O));)
|
|
;
|
|
} while (t.lookahead < y && 0 !== t.strm.avail_in)
|
|
}
|
|
|
|
function E(t, n) {
|
|
for (var r, e; ;) {
|
|
if (t.lookahead < y) {
|
|
if (U(t),
|
|
t.lookahead < y && n === c)
|
|
return B;
|
|
if (0 === t.lookahead)
|
|
break
|
|
}
|
|
if (r = 0,
|
|
t.lookahead >= O && (t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + O - 1]) & t.hash_mask,
|
|
r = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h],
|
|
t.head[t.ins_h] = t.strstart),
|
|
0 !== r && t.strstart - r <= t.w_size - y && (t.match_length = Q(t, r)),
|
|
t.match_length >= O)
|
|
if (e = a._tr_tally(t, t.strstart - t.match_start, t.match_length - O),
|
|
t.lookahead -= t.match_length,
|
|
t.match_length <= t.max_lazy_match && t.lookahead >= O) {
|
|
t.match_length--;
|
|
do {
|
|
t.strstart++,
|
|
t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + O - 1]) & t.hash_mask,
|
|
r = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h],
|
|
t.head[t.ins_h] = t.strstart
|
|
} while (0 != --t.match_length);
|
|
t.strstart++
|
|
} else
|
|
t.strstart += t.match_length,
|
|
t.match_length = 0,
|
|
t.ins_h = t.window[t.strstart],
|
|
t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + 1]) & t.hash_mask;
|
|
else
|
|
e = a._tr_tally(t, 0, t.window[t.strstart]),
|
|
t.lookahead--,
|
|
t.strstart++;
|
|
if (e && (q(t, !1),
|
|
0 === t.strm.avail_out))
|
|
return B
|
|
}
|
|
return t.insert = t.strstart < O - 1 ? t.strstart : O - 1,
|
|
n === f ? (q(t, !0),
|
|
0 === t.strm.avail_out ? j : S) : t.last_lit && (q(t, !1),
|
|
0 === t.strm.avail_out) ? B : L
|
|
}
|
|
|
|
function P(t, n) {
|
|
for (var r, e, i; ;) {
|
|
if (t.lookahead < y) {
|
|
if (U(t),
|
|
t.lookahead < y && n === c)
|
|
return B;
|
|
if (0 === t.lookahead)
|
|
break
|
|
}
|
|
if (r = 0,
|
|
t.lookahead >= O && (t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + O - 1]) & t.hash_mask,
|
|
r = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h],
|
|
t.head[t.ins_h] = t.strstart),
|
|
t.prev_length = t.match_length,
|
|
t.prev_match = t.match_start,
|
|
t.match_length = O - 1,
|
|
0 !== r && t.prev_length < t.max_lazy_match && t.strstart - r <= t.w_size - y && (t.match_length = Q(t, r),
|
|
t.match_length <= 5 && (t.strategy === d || t.match_length === O && t.strstart - t.match_start > 4096) && (t.match_length = O - 1)),
|
|
t.prev_length >= O && t.match_length <= t.prev_length) {
|
|
i = t.strstart + t.lookahead - O,
|
|
e = a._tr_tally(t, t.strstart - 1 - t.prev_match, t.prev_length - O),
|
|
t.lookahead -= t.prev_length - 1,
|
|
t.prev_length -= 2;
|
|
do {
|
|
++t.strstart <= i && (t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + O - 1]) & t.hash_mask,
|
|
r = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h],
|
|
t.head[t.ins_h] = t.strstart)
|
|
} while (0 != --t.prev_length);
|
|
if (t.match_available = 0,
|
|
t.match_length = O - 1,
|
|
t.strstart++,
|
|
e && (q(t, !1),
|
|
0 === t.strm.avail_out))
|
|
return B
|
|
} else if (t.match_available) {
|
|
if ((e = a._tr_tally(t, 0, t.window[t.strstart - 1])) && q(t, !1),
|
|
t.strstart++,
|
|
t.lookahead--,
|
|
0 === t.strm.avail_out)
|
|
return B
|
|
} else
|
|
t.match_available = 1,
|
|
t.strstart++,
|
|
t.lookahead--
|
|
}
|
|
return t.match_available && (e = a._tr_tally(t, 0, t.window[t.strstart - 1]),
|
|
t.match_available = 0),
|
|
t.insert = t.strstart < O - 1 ? t.strstart : O - 1,
|
|
n === f ? (q(t, !0),
|
|
0 === t.strm.avail_out ? j : S) : t.last_lit && (q(t, !1),
|
|
0 === t.strm.avail_out) ? B : L
|
|
}
|
|
|
|
function F(t, n, r, e, i) {
|
|
this.good_length = t,
|
|
this.max_lazy = n,
|
|
this.nice_length = r,
|
|
this.max_chain = e,
|
|
this.func = i
|
|
}
|
|
|
|
function I(t) {
|
|
var n;
|
|
return t && t.state ? (t.total_in = t.total_out = 0,
|
|
t.data_type = x,
|
|
(n = t.state).pending = 0,
|
|
n.pending_out = 0,
|
|
n.wrap < 0 && (n.wrap = -n.wrap),
|
|
n.status = n.wrap ? K : A,
|
|
t.adler = 2 === n.wrap ? 0 : 1,
|
|
n.last_flush = c,
|
|
a._tr_init(n),
|
|
h) : T(t, w)
|
|
}
|
|
|
|
function W(t) {
|
|
var n, r = I(t);
|
|
return r === h && ((n = t.state).window_size = 2 * n.w_size,
|
|
V(n.head),
|
|
n.max_lazy_match = e[n.level].max_lazy,
|
|
n.good_match = e[n.level].good_length,
|
|
n.nice_match = e[n.level].nice_length,
|
|
n.max_chain_length = e[n.level].max_chain,
|
|
n.strstart = 0,
|
|
n.block_start = 0,
|
|
n.lookahead = 0,
|
|
n.insert = 0,
|
|
n.match_length = n.prev_length = O - 1,
|
|
n.match_available = 0,
|
|
n.ins_h = 0),
|
|
r
|
|
}
|
|
|
|
function Z(t, n, r, e, a, o) {
|
|
if (!t)
|
|
return w;
|
|
var s = 1;
|
|
if (n === l && (n = 6),
|
|
e < 0 ? (s = 0,
|
|
e = -e) : e > 15 && (s = 2,
|
|
e -= 16),
|
|
a < 1 || a > v || r !== g || e < 8 || e > 15 || n < 0 || n > 9 || o < 0 || o > _)
|
|
return T(t, w);
|
|
8 === e && (e = 9);
|
|
var u = new function () {
|
|
this.strm = null,
|
|
this.status = 0,
|
|
this.pending_buf = null,
|
|
this.pending_buf_size = 0,
|
|
this.pending_out = 0,
|
|
this.pending = 0,
|
|
this.wrap = 0,
|
|
this.gzhead = null,
|
|
this.gzindex = 0,
|
|
this.method = g,
|
|
this.last_flush = -1,
|
|
this.w_size = 0,
|
|
this.w_bits = 0,
|
|
this.w_mask = 0,
|
|
this.window = null,
|
|
this.window_size = 0,
|
|
this.prev = null,
|
|
this.head = null,
|
|
this.ins_h = 0,
|
|
this.hash_size = 0,
|
|
this.hash_bits = 0,
|
|
this.hash_mask = 0,
|
|
this.hash_shift = 0,
|
|
this.block_start = 0,
|
|
this.match_length = 0,
|
|
this.prev_match = 0,
|
|
this.match_available = 0,
|
|
this.strstart = 0,
|
|
this.match_start = 0,
|
|
this.lookahead = 0,
|
|
this.prev_length = 0,
|
|
this.max_chain_length = 0,
|
|
this.max_lazy_match = 0,
|
|
this.level = 0,
|
|
this.strategy = 0,
|
|
this.good_match = 0,
|
|
this.nice_match = 0,
|
|
this.dyn_ltree = new i.Buf16(2 * C),
|
|
this.dyn_dtree = new i.Buf16(2 * (2 * b + 1)),
|
|
this.bl_tree = new i.Buf16(2 * (2 * m + 1)),
|
|
V(this.dyn_ltree),
|
|
V(this.dyn_dtree),
|
|
V(this.bl_tree),
|
|
this.l_desc = null,
|
|
this.d_desc = null,
|
|
this.bl_desc = null,
|
|
this.bl_count = new i.Buf16(D + 1),
|
|
this.heap = new i.Buf16(2 * p + 1),
|
|
V(this.heap),
|
|
this.heap_len = 0,
|
|
this.heap_max = 0,
|
|
this.depth = new i.Buf16(2 * p + 1),
|
|
V(this.depth),
|
|
this.l_buf = 0,
|
|
this.lit_bufsize = 0,
|
|
this.last_lit = 0,
|
|
this.d_buf = 0,
|
|
this.opt_len = 0,
|
|
this.static_len = 0,
|
|
this.matches = 0,
|
|
this.insert = 0,
|
|
this.bi_buf = 0,
|
|
this.bi_valid = 0
|
|
}
|
|
;
|
|
return t.state = u,
|
|
u.strm = t,
|
|
u.wrap = s,
|
|
u.gzhead = null,
|
|
u.w_bits = e,
|
|
u.w_size = 1 << u.w_bits,
|
|
u.w_mask = u.w_size - 1,
|
|
u.hash_bits = a + 7,
|
|
u.hash_size = 1 << u.hash_bits,
|
|
u.hash_mask = u.hash_size - 1,
|
|
u.hash_shift = ~~((u.hash_bits + O - 1) / O),
|
|
u.window = new i.Buf8(2 * u.w_size),
|
|
u.head = new i.Buf16(u.hash_size),
|
|
u.prev = new i.Buf16(u.w_size),
|
|
u.lit_bufsize = 1 << a + 6,
|
|
u.pending_buf_size = 4 * u.lit_bufsize,
|
|
u.pending_buf = new i.Buf8(u.pending_buf_size),
|
|
u.d_buf = 1 * u.lit_bufsize,
|
|
u.l_buf = 3 * u.lit_bufsize,
|
|
u.level = n,
|
|
u.strategy = o,
|
|
u.method = r,
|
|
W(t)
|
|
}
|
|
|
|
e = [new F(0, 0, 0, 0, function (t, n) {
|
|
var r = 65535;
|
|
for (r > t.pending_buf_size - 5 && (r = t.pending_buf_size - 5); ;) {
|
|
if (t.lookahead <= 1) {
|
|
if (U(t),
|
|
0 === t.lookahead && n === c)
|
|
return B;
|
|
if (0 === t.lookahead)
|
|
break
|
|
}
|
|
t.strstart += t.lookahead,
|
|
t.lookahead = 0;
|
|
var e = t.block_start + r;
|
|
if ((0 === t.strstart || t.strstart >= e) && (t.lookahead = t.strstart - e,
|
|
t.strstart = e,
|
|
q(t, !1),
|
|
0 === t.strm.avail_out))
|
|
return B;
|
|
if (t.strstart - t.block_start >= t.w_size - y && (q(t, !1),
|
|
0 === t.strm.avail_out))
|
|
return B
|
|
}
|
|
return t.insert = 0,
|
|
n === f ? (q(t, !0),
|
|
0 === t.strm.avail_out ? j : S) : (t.strstart > t.block_start && (q(t, !1),
|
|
t.strm.avail_out),
|
|
B)
|
|
}
|
|
), new F(4, 4, 8, 4, E), new F(4, 5, 16, 8, E), new F(4, 6, 32, 32, E), new F(4, 4, 16, 16, P), new F(8, 16, 32, 32, P), new F(8, 16, 128, 128, P), new F(8, 32, 128, 256, P), new F(32, 128, 258, 1024, P), new F(32, 258, 258, 4096, P)],
|
|
n.deflateInit = function (t, n) {
|
|
return Z(t, n, g, 15, 8, 0)
|
|
}
|
|
,
|
|
n.deflateInit2 = Z,
|
|
n.deflateReset = W,
|
|
n.deflateResetKeep = I,
|
|
n.deflateSetHeader = function (t, n) {
|
|
return t && t.state ? 2 !== t.state.wrap ? w : (t.state.gzhead = n,
|
|
h) : w
|
|
}
|
|
,
|
|
n.deflate = function (t, n) {
|
|
var r, i, o, u;
|
|
if (!t || !t.state || n > 5 || n < 0)
|
|
return t ? T(t, w) : w;
|
|
if (i = t.state,
|
|
!t.output || !t.input && 0 !== t.avail_in || i.status === M && n !== f)
|
|
return T(t, 0 === t.avail_out ? -5 : w);
|
|
if (i.strm = t,
|
|
r = i.last_flush,
|
|
i.last_flush = n,
|
|
i.status === K)
|
|
if (2 === i.wrap)
|
|
t.adler = 0,
|
|
N(i, 31),
|
|
N(i, 139),
|
|
N(i, 8),
|
|
i.gzhead ? (N(i, (i.gzhead.text ? 1 : 0) + (i.gzhead.hcrc ? 2 : 0) + (i.gzhead.extra ? 4 : 0) + (i.gzhead.name ? 8 : 0) + (i.gzhead.comment ? 16 : 0)),
|
|
N(i, 255 & i.gzhead.time),
|
|
N(i, i.gzhead.time >> 8 & 255),
|
|
N(i, i.gzhead.time >> 16 & 255),
|
|
N(i, i.gzhead.time >> 24 & 255),
|
|
N(i, 9 === i.level ? 2 : i.strategy >= 2 || i.level < 2 ? 4 : 0),
|
|
N(i, 255 & i.gzhead.os),
|
|
i.gzhead.extra && i.gzhead.extra.length && (N(i, 255 & i.gzhead.extra.length),
|
|
N(i, i.gzhead.extra.length >> 8 & 255)),
|
|
i.gzhead.hcrc && (t.adler = s(t.adler, i.pending_buf, i.pending, 0)),
|
|
i.gzindex = 0,
|
|
i.status = 69) : (N(i, 0),
|
|
N(i, 0),
|
|
N(i, 0),
|
|
N(i, 0),
|
|
N(i, 0),
|
|
N(i, 9 === i.level ? 2 : i.strategy >= 2 || i.level < 2 ? 4 : 0),
|
|
N(i, 3),
|
|
i.status = A);
|
|
else {
|
|
var l = g + (i.w_bits - 8 << 4) << 8;
|
|
l |= (i.strategy >= 2 || i.level < 2 ? 0 : i.level < 6 ? 1 : 6 === i.level ? 2 : 3) << 6,
|
|
0 !== i.strstart && (l |= 32),
|
|
l += 31 - l % 31,
|
|
i.status = A,
|
|
R(i, l),
|
|
0 !== i.strstart && (R(i, t.adler >>> 16),
|
|
R(i, 65535 & t.adler)),
|
|
t.adler = 1
|
|
}
|
|
if (69 === i.status)
|
|
if (i.gzhead.extra) {
|
|
for (o = i.pending; i.gzindex < (65535 & i.gzhead.extra.length) && (i.pending !== i.pending_buf_size || (i.gzhead.hcrc && i.pending > o && (t.adler = s(t.adler, i.pending_buf, i.pending - o, o)),
|
|
Y(t),
|
|
o = i.pending,
|
|
i.pending !== i.pending_buf_size));)
|
|
N(i, 255 & i.gzhead.extra[i.gzindex]),
|
|
i.gzindex++;
|
|
i.gzhead.hcrc && i.pending > o && (t.adler = s(t.adler, i.pending_buf, i.pending - o, o)),
|
|
i.gzindex === i.gzhead.extra.length && (i.gzindex = 0,
|
|
i.status = 73)
|
|
} else
|
|
i.status = 73;
|
|
if (73 === i.status)
|
|
if (i.gzhead.name) {
|
|
o = i.pending;
|
|
do {
|
|
if (i.pending === i.pending_buf_size && (i.gzhead.hcrc && i.pending > o && (t.adler = s(t.adler, i.pending_buf, i.pending - o, o)),
|
|
Y(t),
|
|
o = i.pending,
|
|
i.pending === i.pending_buf_size)) {
|
|
u = 1;
|
|
break
|
|
}
|
|
u = i.gzindex < i.gzhead.name.length ? 255 & i.gzhead.name.charCodeAt(i.gzindex++) : 0,
|
|
N(i, u)
|
|
} while (0 !== u);
|
|
i.gzhead.hcrc && i.pending > o && (t.adler = s(t.adler, i.pending_buf, i.pending - o, o)),
|
|
0 === u && (i.gzindex = 0,
|
|
i.status = 91)
|
|
} else
|
|
i.status = 91;
|
|
if (91 === i.status)
|
|
if (i.gzhead.comment) {
|
|
o = i.pending;
|
|
do {
|
|
if (i.pending === i.pending_buf_size && (i.gzhead.hcrc && i.pending > o && (t.adler = s(t.adler, i.pending_buf, i.pending - o, o)),
|
|
Y(t),
|
|
o = i.pending,
|
|
i.pending === i.pending_buf_size)) {
|
|
u = 1;
|
|
break
|
|
}
|
|
u = i.gzindex < i.gzhead.comment.length ? 255 & i.gzhead.comment.charCodeAt(i.gzindex++) : 0,
|
|
N(i, u)
|
|
} while (0 !== u);
|
|
i.gzhead.hcrc && i.pending > o && (t.adler = s(t.adler, i.pending_buf, i.pending - o, o)),
|
|
0 === u && (i.status = z)
|
|
} else
|
|
i.status = z;
|
|
if (i.status === z && (i.gzhead.hcrc ? (i.pending + 2 > i.pending_buf_size && Y(t),
|
|
i.pending + 2 <= i.pending_buf_size && (N(i, 255 & t.adler),
|
|
N(i, t.adler >> 8 & 255),
|
|
t.adler = 0,
|
|
i.status = A)) : i.status = A),
|
|
0 !== i.pending) {
|
|
if (Y(t),
|
|
0 === t.avail_out)
|
|
return i.last_flush = -1,
|
|
h
|
|
} else if (0 === t.avail_in && H(n) <= H(r) && n !== f)
|
|
return T(t, -5);
|
|
if (i.status === M && 0 !== t.avail_in)
|
|
return T(t, -5);
|
|
if (0 !== t.avail_in || 0 !== i.lookahead || n !== c && i.status !== M) {
|
|
var d = 2 === i.strategy ? function (t, n) {
|
|
for (var r; ;) {
|
|
if (0 === t.lookahead && (U(t),
|
|
0 === t.lookahead)) {
|
|
if (n === c)
|
|
return B;
|
|
break
|
|
}
|
|
if (t.match_length = 0,
|
|
r = a._tr_tally(t, 0, t.window[t.strstart]),
|
|
t.lookahead--,
|
|
t.strstart++,
|
|
r && (q(t, !1),
|
|
0 === t.strm.avail_out))
|
|
return B
|
|
}
|
|
return t.insert = 0,
|
|
n === f ? (q(t, !0),
|
|
0 === t.strm.avail_out ? j : S) : t.last_lit && (q(t, !1),
|
|
0 === t.strm.avail_out) ? B : L
|
|
}(i, n) : 3 === i.strategy ? function (t, n) {
|
|
for (var r, e, i, o, s = t.window; ;) {
|
|
if (t.lookahead <= k) {
|
|
if (U(t),
|
|
t.lookahead <= k && n === c)
|
|
return B;
|
|
if (0 === t.lookahead)
|
|
break
|
|
}
|
|
if (t.match_length = 0,
|
|
t.lookahead >= O && t.strstart > 0 && (e = s[i = t.strstart - 1]) === s[++i] && e === s[++i] && e === s[++i]) {
|
|
o = t.strstart + k;
|
|
do {
|
|
} while (e === s[++i] && e === s[++i] && e === s[++i] && e === s[++i] && e === s[++i] && e === s[++i] && e === s[++i] && e === s[++i] && i < o);
|
|
t.match_length = k - (o - i),
|
|
t.match_length > t.lookahead && (t.match_length = t.lookahead)
|
|
}
|
|
if (t.match_length >= O ? (r = a._tr_tally(t, 1, t.match_length - O),
|
|
t.lookahead -= t.match_length,
|
|
t.strstart += t.match_length,
|
|
t.match_length = 0) : (r = a._tr_tally(t, 0, t.window[t.strstart]),
|
|
t.lookahead--,
|
|
t.strstart++),
|
|
r && (q(t, !1),
|
|
0 === t.strm.avail_out))
|
|
return B
|
|
}
|
|
return t.insert = 0,
|
|
n === f ? (q(t, !0),
|
|
0 === t.strm.avail_out ? j : S) : t.last_lit && (q(t, !1),
|
|
0 === t.strm.avail_out) ? B : L
|
|
}(i, n) : e[i.level].func(i, n);
|
|
if (d !== j && d !== S || (i.status = M),
|
|
d === B || d === j)
|
|
return 0 === t.avail_out && (i.last_flush = -1),
|
|
h;
|
|
if (d === L && (1 === n ? a._tr_align(i) : 5 !== n && (a._tr_stored_block(i, 0, 0, !1),
|
|
3 === n && (V(i.head),
|
|
0 === i.lookahead && (i.strstart = 0,
|
|
i.block_start = 0,
|
|
i.insert = 0))),
|
|
Y(t),
|
|
0 === t.avail_out))
|
|
return i.last_flush = -1,
|
|
h
|
|
}
|
|
return n !== f ? h : i.wrap <= 0 ? 1 : (2 === i.wrap ? (N(i, 255 & t.adler),
|
|
N(i, t.adler >> 8 & 255),
|
|
N(i, t.adler >> 16 & 255),
|
|
N(i, t.adler >> 24 & 255),
|
|
N(i, 255 & t.total_in),
|
|
N(i, t.total_in >> 8 & 255),
|
|
N(i, t.total_in >> 16 & 255),
|
|
N(i, t.total_in >> 24 & 255)) : (R(i, t.adler >>> 16),
|
|
R(i, 65535 & t.adler)),
|
|
Y(t),
|
|
i.wrap > 0 && (i.wrap = -i.wrap),
|
|
0 !== i.pending ? h : 1)
|
|
}
|
|
,
|
|
n.deflateEnd = function (t) {
|
|
var n;
|
|
return t && t.state ? (n = t.state.status) !== K && 69 !== n && 73 !== n && 91 !== n && n !== z && n !== A && n !== M ? T(t, w) : (t.state = null,
|
|
n === A ? T(t, -3) : h) : w
|
|
}
|
|
,
|
|
n.deflateSetDictionary = function (t, n) {
|
|
var r, e, a, s, u, c, f, l, d = n.length;
|
|
if (!t || !t.state)
|
|
return w;
|
|
if (2 === (s = (r = t.state).wrap) || 1 === s && r.status !== K || r.lookahead)
|
|
return w;
|
|
for (1 === s && (t.adler = o(t.adler, n, d, 0)),
|
|
r.wrap = 0,
|
|
d >= r.w_size && (0 === s && (V(r.head),
|
|
r.strstart = 0,
|
|
r.block_start = 0,
|
|
r.insert = 0),
|
|
l = new i.Buf8(r.w_size),
|
|
i.arraySet(l, n, d - r.w_size, r.w_size, 0),
|
|
n = l,
|
|
d = r.w_size),
|
|
u = t.avail_in,
|
|
c = t.next_in,
|
|
f = t.input,
|
|
t.avail_in = d,
|
|
t.next_in = 0,
|
|
t.input = n,
|
|
U(r); r.lookahead >= O;) {
|
|
e = r.strstart,
|
|
a = r.lookahead - (O - 1);
|
|
do {
|
|
r.ins_h = (r.ins_h << r.hash_shift ^ r.window[e + O - 1]) & r.hash_mask,
|
|
r.prev[e & r.w_mask] = r.head[r.ins_h],
|
|
r.head[r.ins_h] = e,
|
|
e++
|
|
} while (--a);
|
|
r.strstart = e,
|
|
r.lookahead = O - 1,
|
|
U(r)
|
|
}
|
|
return r.strstart += r.lookahead,
|
|
r.block_start = r.strstart,
|
|
r.insert = r.lookahead,
|
|
r.lookahead = 0,
|
|
r.match_length = r.prev_length = O - 1,
|
|
r.match_available = 0,
|
|
t.next_in = c,
|
|
t.input = f,
|
|
t.avail_in = u,
|
|
r.wrap = s,
|
|
h
|
|
}
|
|
,
|
|
n.deflateInfo = ""pako deflate (from Nodeca project)"";
|
|
|
|
return n;
|
|
})(); // 10
|
|
|
|
|
|
var f_gzip = (function (t, n, r) {
|
|
""use strict"";
|
|
var n = {};
|
|
var e = f_long
|
|
, i = f_assign
|
|
, a = f_string
|
|
, o = f_stream
|
|
, s = f_input
|
|
, u = Object.prototype.toString
|
|
, c = 0
|
|
, f = -1
|
|
, h = 0
|
|
, w = 8;
|
|
|
|
function l(t) {
|
|
if (!(this instanceof l))
|
|
return new l(t);
|
|
this.options = i.assign({
|
|
level: f,
|
|
method: w,
|
|
chunkSize: 16384,
|
|
windowBits: 15,
|
|
memLevel: 8,
|
|
strategy: h,
|
|
to: """"
|
|
}, t || {});
|
|
var n = this.options;
|
|
n.raw && n.windowBits > 0 ? n.windowBits = -n.windowBits : n.gzip && n.windowBits > 0 && n.windowBits < 16 && (n.windowBits += 16),
|
|
this.err = 0,
|
|
this.msg = """",
|
|
this.ended = !1,
|
|
this.chunks = [],
|
|
this.strm = new s,
|
|
this.strm.avail_out = 0;
|
|
var r = e.deflateInit2(this.strm, n.level, n.method, n.windowBits, n.memLevel, n.strategy);
|
|
if (r !== c)
|
|
throw new Error(o[r]);
|
|
if (n.header && e.deflateSetHeader(this.strm, n.header),
|
|
n.dictionary) {
|
|
var d;
|
|
if (d = ""string"" == typeof n.dictionary ? a.string2buf(n.dictionary) : ""[object ArrayBuffer]"" === u.call(n.dictionary) ? new Uint8Array(n.dictionary) : n.dictionary,
|
|
(r = e.deflateSetDictionary(this.strm, d)) !== c)
|
|
throw new Error(o[r]);
|
|
this._dict_set = !0
|
|
}
|
|
}
|
|
|
|
function d(t, n) {
|
|
var r = new l(n);
|
|
if (r.push(t, !0),
|
|
r.err)
|
|
throw r.msg || o[r.err];
|
|
return r.result
|
|
}
|
|
|
|
l.prototype.push = function (t, n) {
|
|
var r, o, s = this.strm, f = this.options.chunkSize;
|
|
if (this.ended)
|
|
return !1;
|
|
o = n === ~~n ? n : !0 === n ? 4 : 0,
|
|
""string"" == typeof t ? s.input = a.string2buf(t) : ""[object ArrayBuffer]"" === u.call(t) ? s.input = new Uint8Array(t) : s.input = t,
|
|
s.next_in = 0,
|
|
s.avail_in = s.input.length;
|
|
do {
|
|
if (0 === s.avail_out && (s.output = new i.Buf8(f),
|
|
s.next_out = 0,
|
|
s.avail_out = f),
|
|
1 !== (r = e.deflate(s, o)) && r !== c)
|
|
return this.onEnd(r),
|
|
this.ended = !0,
|
|
!1;
|
|
0 !== s.avail_out && (0 !== s.avail_in || 4 !== o && 2 !== o) || (""string"" === this.options.to ? this.onData(a.buf2binstring(i.shrinkBuf(s.output, s.next_out))) : this.onData(i.shrinkBuf(s.output, s.next_out)))
|
|
} while ((s.avail_in > 0 || 0 === s.avail_out) && 1 !== r);
|
|
return 4 === o ? (r = e.deflateEnd(this.strm),
|
|
this.onEnd(r),
|
|
this.ended = !0,
|
|
r === c) : 2 !== o || (this.onEnd(c),
|
|
s.avail_out = 0,
|
|
!0)
|
|
}
|
|
,
|
|
l.prototype.onData = function (t) {
|
|
this.chunks.push(t)
|
|
}
|
|
,
|
|
l.prototype.onEnd = function (t) {
|
|
t === c && (""string"" === this.options.to ? this.result = this.chunks.join("""") : this.result = i.flattenChunks(this.chunks)),
|
|
this.chunks = [],
|
|
this.err = t,
|
|
this.msg = this.strm.msg
|
|
}
|
|
,
|
|
n.Deflate = l,
|
|
n.deflate = d,
|
|
n.deflateRaw = function (t, n) {
|
|
return (n = n || {}).raw = !0,
|
|
d(t, n)
|
|
}
|
|
,
|
|
n.gzip = function (t, n) {
|
|
return (n = n || {}).gzip = !0,
|
|
d(t, n)
|
|
};
|
|
return n;
|
|
})(); // 9
|
|
|
|
|
|
var f_p = (function (t, n, r) {
|
|
var n, e, i = ""function"" == typeof _ && ""symbol"" == g(w) ? function (t) {
|
|
return ""object""
|
|
}
|
|
: function (t) {
|
|
return t && ""function"" == typeof _ && t.constructor === _ && t !== _.prototype ? ""symbol"" : ""object""
|
|
}
|
|
, a = f_en, o = f_base64, s = f_err,
|
|
u = [""QzwKMQ4="", ""w6fCisOpFyEo"", ""w7LDkcKMw4F9"", ""wqLDlVkyLG7Cvg=="", ""w4nDvHUmUg=="", ""CGTDnk7DoMO0Eg=="", ""woBEw60FeA=="", ""w684w4vDhWM="", ""w7HDv2zDocKF"", ""w7LDmcK9KTQ="", ""LcOPWsKmwro="", ""w7A+FDZH"", ""w4PCvSM="", ""KMOiaA=="", ""RMOiwq3CjsOr"", ""wqLDhEI="", ""WcOOdlx8"", ""w7HDs8K9w55Bw4cs"", ""JMK5IcOPRcOawrjDgMKq"", ""a8KKw5bCk8OdcxjCjW/DlcO1w7Y="", ""LcOyw5LDiyES"", ""ecOAwp7Cg8O1w6o3w6k="", ""wqzCt8K5wr8Zw5M="", ""wo0HwpQSw6bDosKTYsO2"", ""PMOiaMKrez3CkCBs"", ""DMKLZkFBw50Lwqlvw7k="", ""wq/Cq8K9w5BHw5tiXA=="", ""w4vDvnkvSMK8w4t7w4U="", ""w6bDi8KLwq3ClcKJR8KkZlQ="", ""wrvDkG9HY8OVFS/CqQQ="", ""wph9w6w="", ""wpsWR8KTwog="", ""wqhfwobDr8KJ"", ""wqDCkklGTg=="", ""w7LDuX/DsMKY"", ""flXCtwhS"", ""w63DlcKvwoPCkQ=="", ""UBYOOB56"", ""w6bDvMK1w59h"", ""wpMvw5M8Jg=="", ""UzfCosOewog="", ""L0DDtV7DjA=="", ""fmk/w7jCuQ=="", ""YMKzw6/DmQLDrw=="", ""w7/CszLDi8O+I8OuHMKGSQ=="", ""w6gZw6vDvUY="", ""wrkewp4Nw6I="", ""GCJdwqvClw=="", ""T8OzRR/ClXPChw=="", ""JXwNwo3Cjg=="", ""YBYIID8="", ""fsOHwpzChMOZw7s="", ""wpQsw68vMwrDng8jw5UK"", ""w6/CtzrDmsOY"", ""wojDrGY4Pg=="", ""wpYMwoUSw40="", ""wpfCj2ZfUg=="", ""IcOmcsKHSzTCiw=="", ""RcOIV3Z9""];
|
|
n = u,
|
|
e = 136,
|
|
function (t) {
|
|
for (; --t;)
|
|
n.push(n.shift())
|
|
}(++e);
|
|
var c = function t(n, r) {
|
|
var e, i = u[n -= 0];
|
|
void 0 === t.KnuQDT && ((e = function () {
|
|
var t;
|
|
t = Function('return (function() {}.constructor(""return this"")( ));')()
|
|
return t
|
|
}()).atob || (e.atob = function (t) {
|
|
for (var n, r, e = String(t).replace(/=+$/, """"), i = 0, a = 0, o = """"; r = e.charAt(a++); ~r && (n = i % 4 ? 64 * n + r : r,
|
|
i++ % 4) ? o += String.fromCharCode(255 & n >> (-2 * i & 6)) : 0)
|
|
r = ""ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="".indexOf(r);
|
|
return o
|
|
}
|
|
),
|
|
t.fyxzDe = function (t, n) {
|
|
for (var r, e = [], i = 0, a = """", o = """", s = 0, u = (t = atob(t)).length; s < u; s++)
|
|
o += ""%"" + (""00"" + t.charCodeAt(s).toString(16)).slice(-2);
|
|
t = decodeURIComponent(o);
|
|
for (var c = 0; c < 256; c++)
|
|
e[c] = c;
|
|
for (c = 0; c < 256; c++)
|
|
i = (i + e[c] + n.charCodeAt(c % n.length)) % 256,
|
|
r = e[c],
|
|
e[c] = e[i],
|
|
e[i] = r;
|
|
c = 0,
|
|
i = 0;
|
|
for (var f = 0; f < t.length; f++)
|
|
i = (i + e[c = (c + 1) % 256]) % 256,
|
|
r = e[c],
|
|
e[c] = e[i],
|
|
e[i] = r,
|
|
a += String.fromCharCode(t.charCodeAt(f) ^ e[(e[c] + e[i]) % 256]);
|
|
return a
|
|
}
|
|
,
|
|
t.aBwsIj = {},
|
|
t.KnuQDT = !0);
|
|
var a = t.aBwsIj[n];
|
|
return void 0 === a ? (void 0 === t.oBOLyG && (t.oBOLyG = !0),
|
|
i = t.fyxzDe(i, r),
|
|
t.aBwsIj[n] = i) : i = a,
|
|
i
|
|
}
|
|
, f = c(""0x0"", ""0Q^3"")
|
|
, h = c(""0x1"", ""&zxH"")
|
|
, l = c(""0x2"", ""kc36"")
|
|
, d = c(""0x3"", ""FsN1"")
|
|
, x = c(""0x4"", ""wt6v"")
|
|
, v = void 0;
|
|
(""undefined"" == typeof window ? ""undefined"" : i(window)) !== c(""0x5"", ""kWt7"") && (v = window);
|
|
var p = {};
|
|
|
|
function b() {
|
|
var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Date[c(""0xc"", ""HxY!"")]()
|
|
, n = {};
|
|
n[c(""0xd"", ""E7dI"")] = function (t, n) {
|
|
return t(n)
|
|
}
|
|
,
|
|
n[c(""0xe"", ""r[(a"")] = function (t) {
|
|
return t()
|
|
}
|
|
,
|
|
n[c(""0xf"", ""kkhd"")] = function (t, n) {
|
|
return t % n
|
|
}
|
|
,
|
|
n[c(""0x10"", ""l*OF"")] = function (t, n, r, e) {
|
|
return t(n, r, e)
|
|
}
|
|
,
|
|
n[c(""0x11"", ""zgAZ"")] = function (t, n) {
|
|
return t(n)
|
|
}
|
|
,
|
|
n[c(""0x12"", ""gPk6"")] = c(""0x13"", ""jhb9"");
|
|
var r = n[c(""0x14"", ""#BDR"")](String, t)[c(""0x15"", ""mUZ7"")](0, 10)
|
|
, e = n[c(""0x16"", ""!LcL"")](o)
|
|
, i = n[c(""0x17"", ""OPo!"")]((r + ""_"" + e)[c(""0x18"", ""mpB0"")]("""")[c(""0x19"", ""*%RS"")](function (t, n) {
|
|
return t + n[c(""0x1a"", ""[)ww"")](0)
|
|
}, 0), 1e3)
|
|
, u = n[c(""0x1b"", ""BmuK"")](s, n[c(""0x1c"", ""kWt7"")](String, i), 3, ""0"");
|
|
return a[n[c(""0x1d"", ""ogP5"")]]("""" + r + u)[c(""0x1e"", ""v*sR"")](/=/g, """") + ""_"" + e
|
|
}
|
|
|
|
function m(t) {
|
|
var n = {};
|
|
return n[c(""0x1f"", ""zrO^"")] = function (t, n) {
|
|
return t + n
|
|
}
|
|
,
|
|
n[c(""0x20"", ""jhb9"")](t[c(""0x21"", ""FsN1"")](0)[c(""0x22"", ""mUZ7"")](), t[c(""0x23"", ""[)ww"")](1))
|
|
}
|
|
|
|
p[c(""0x6"", ""6axu"")] = function (t, n) {
|
|
var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 9999
|
|
, e = {
|
|
hNolq: function (t, n) {
|
|
return t + n
|
|
},
|
|
HSBcF: function (t, n) {
|
|
return t * n
|
|
},
|
|
QsJzw: function (t, n) {
|
|
return t * n
|
|
},
|
|
irUnm: c(""0x7"", ""3hFI""),
|
|
ZRUhv: function (t, n) {
|
|
return t + n
|
|
},
|
|
KcgwS: function (t, n) {
|
|
return t + n
|
|
},
|
|
NcxmC: function (t, n) {
|
|
return t || n
|
|
},
|
|
HWavj: c(""0x8"", ""#BDR"")
|
|
};
|
|
t = e.hNolq(""_"", t);
|
|
var i = """";
|
|
if (r) {
|
|
var a = new Date;
|
|
a.setTime(e.hNolq(a.getTime(), e.HSBcF(e.HSBcF(e.QsJzw(e.QsJzw(r, 24), 60), 60), 1e3))),
|
|
i = e.hNolq(e.irUnm, a.toUTCString())
|
|
}
|
|
v[d][l] = e.hNolq(e.ZRUhv(e.KcgwS(e.KcgwS(t, ""=""), e.NcxmC(n, """")), i), e.HWavj)
|
|
}
|
|
,
|
|
p[c(""0x9"", ""&8PU"")] = function (t) {
|
|
for (var n = function (t, n) {
|
|
return t + n
|
|
}, r = function (t, n) {
|
|
return t < n
|
|
}, e = function (t, n) {
|
|
return t === n
|
|
}, i = n(t = n(""_"", t), ""=""), a = v[d][l].split("";""), o = 0; r(o, a[x]); o++) {
|
|
for (var s = a[o]; e(s.charAt(0), "" "");)
|
|
s = s[f](1, s[x]);
|
|
if (e(s.indexOf(i), 0))
|
|
return s[f](i[x], s[x])
|
|
}
|
|
return null
|
|
}
|
|
,
|
|
p[c(""0xa"", ""PA5G"")] = function (t, n) {
|
|
t = ""_"" + t,
|
|
v[h].setItem(t, n)
|
|
}
|
|
,
|
|
p[c(""0xb"", ""VlH&"")] = function (t) {
|
|
return t = ""_"" + t,
|
|
v[h].getItem(t)
|
|
};
|
|
|
|
return function () {
|
|
var t = {};
|
|
t[c(""0x24"", ""!jRO"")] = function (t, n) {
|
|
return t(n)
|
|
}
|
|
,
|
|
t[c(""0x25"", ""kWt7"")] = function (t, n) {
|
|
return t(n)
|
|
}
|
|
,
|
|
t[c(""0x26"", ""kkhd"")] = c(""0x27"", ""6axu""),
|
|
t[c(""0x28"", ""3hFI"")] = function (t) {
|
|
return t()
|
|
}
|
|
,
|
|
t[c(""0x29"", ""jhb9"")] = c(""0x2a"", ""7CAL""),
|
|
t[c(""0x2b"", ""#BDR"")] = c(""0x2c"", ""!jRO""),
|
|
t[c(""0x2d"", ""&8PU"")] = c(""0x2e"", ""OPo!"");
|
|
var n = t[c(""0x2f"", ""HxY!"")]
|
|
, r = {}
|
|
, e = t[c(""0x30"", ""BmuK"")](b);
|
|
return [t[c(""0x31"", ""l*OF"")], t[c(""0x32"", ""jFJ8"")]][t[c(""0x33"", ""Ayw("")]](function (i) {
|
|
var a = c(""0x34"", ""AVSJ"") + i + c(""0x35"", ""[)ww"");
|
|
r[a] = e;
|
|
}),
|
|
r
|
|
}
|
|
})(); // 16
|
|
|
|
|
|
var f_main = (function (t, n, r) {
|
|
var n, e, i = ""function"" == typeof _ && ""symbol"" == g(w) ? function (t) {
|
|
return ""object""
|
|
}
|
|
: function (t) {
|
|
return t && ""function"" == typeof _ && t.constructor === _ && t !== _.prototype ? ""symbol"" : ""object""
|
|
}
|
|
, a = f_digest, o = f_gzip, l = f_en, d = f_p,
|
|
x = [""N8KlwqzDisKH"", ""w4XDgsOb"", ""wqfDi3/CjMOP"", ""aFNew60Q"", ""w6bDhMK/w6bDqQ=="", ""w5rDhF7Dhmg="", ""wqTCgcO9w5QL"", ""CcKww4VnCA=="", ""BHFtGnPChkMLHMKqw4VjQMKT"", ""wqjCmcOxw44="", ""En/CvTp5VE9APwLDrw=="", ""F3hvHw=="", ""TcOrRMOH"", ""VWYRJQLCqMO5GVrDnMOp"", ""w6dzOcKF"", ""w43CnsOFHg=="", ""wrJSwp/CtsOgUmzDjibDkS0="", ""w5TCvVrCjg=="", ""w6FAUwQ="", ""w4zCrgklw43DvMOhIcONwp3DhQ=="", ""GwrDsMKr"", ""VGkWNQ=="", ""w5nDlXbDtw=="", ""wrgOwrzCjA=="", ""w7vCh8KWVA=="", ""w7Euwoc4"", ""wqEBwrbCkw=="", ""w758M8Ka"", ""w5DDgMOUDA=="", ""wqEdwrPDsg=="", ""w6ghwo0n"", ""VcO9w6Ju"", ""w6HCqcKVQDkNcsK+w6VSwrsOw5wqQcO5w5QgPSprVQ=="", ""wo7DvCnDiQ=="", ""w6IRc8K8"", ""w4bDk8OnwrfCnsOCw4LCjiUrQgBJRFMGw4k="", ""w4cdU0M="", ""JC8cw6c="", ""UsOWw4xn"", ""wqJyHBskw5zDrVUd"", ""L8KgcMKl"", ""w43CslDCkQ=="", ""w5TCkcOPAQ=="", ""KMK+w4pqIsK5w7XDrcO2wqPCpcOVwrJV"", ""w4vCrcKNRgUbScKjw75WwrIfw6I4WA=="", ""wonCp8ObQMKc"", ""OV5eMEM="", ""wrpyDijDkA=="", ""OS4Aw7BvEsKow6szwro="", ""w5FDKcKEw5I="", ""w5oTRVtPwpQRC8OP"", ""FycFw5Rd"", ""NcK8w5ZqEcK2"", ""w74OVW5g"", ""wplkIT0I"", ""w4cNdMKTEQ=="", ""w7PDkmXDm1Y="", ""w5bCoMKKSj8="", ""GVYWOBQ="", ""w7oLWcKZJg=="", ""HnHCsCt4VGRCHwDDvhzCm8Kgeg=="", ""wpwFwpLCulvDnsO8IAA="", ""w4LDjsOTHg=="", ""TmQNLgLCocOoAE8="", ""MsKPUsKMHw=="", ""w6ZmGcK/w6w="", ""TWYcKg=="", ""woUZwozCocKY"", ""wqTDpSDDg30="", ""wpJlORHDvlDDssKQwognWMOn"", ""wqfDtjDDp0A="", ""w63DlUPDiWU="", ""w7wkeHpv"", ""CMKrw6BWEg=="", ""w4rDlMOLwrvCmw=="", ""w7fCiwvCr3k="", ""w5ZKKsKiw7A="", ""VsO8wqbDuwE="", ""d8OIa8Oxw54="", ""wr4IwrPCl8Kb"", ""C2hBH3o="", ""woojwrbCgFU="", ""HnvCtTJ0RW8="", ""wpNgIw8r"", ""NMKTw4lTNg=="", ""alNZ"", ""w5UoYEtm"", ""D8KLwpPCsR3Cvg=="", ""w7nDisONIk8="", ""BHk0EQ=="", ""w5XCrcKAQg=="", ""w6zCgRcX"", ""IcOwwrAb"", ""w5TCrgQq"", ""wpNgLzwM"", ""DktuClo="", ""E8Obw5R8esKtw6rDuA=="", ""wqIQwrnCkcKe"", ""w6/ChHHCt8Ko"", ""SGkMKQfCq8OI"", ""w47CoA4v"", ""w4ULXsKbHQ=="", ""dMOxw5F/wo0="", ""wpZ/bAYB"", ""wq4+wpDCmX8="", ""PnVeBUA="", ""w5jCq8KzfW0="", ""w6QXfMKnAw=="", ""NkN6OEY="", ""wroUTMKqPw=="", ""LwrDhcKVeg=="", ""wr92wqfCh8Ou"", ""wrdSwoE="", ""OVNbPw=="", ""YcOAw49yaA=="", ""HlNtNWY="", ""BlQ6LCs="", ""FkwHGSw="", ""NsKvwrzDk8KF"", ""w450XxhF"", ""wovDsy7Dh2MWTnLCqg=="", ""w6k8fMKYBw=="", ""wrg+ecKtEA=="", ""wpxpwpTCusOq"", ""woFnMh3DiV3DgMKHwrk+WcOwPAzDi24="", ""w7oDwogcEw=="", ""w4bCn1/CtcKY"", ""S8OKw4pnf8KUGwnClA=="", ""EmloFWDChnQ6AcKpw4N5ccKJKsOV"", ""KkBYJ0fDjFJFAQ=="", ""wrHChcO3w44QZBbDljw="", ""CcKJwpXCvwvCmBXCi0cp"", ""w6zCkhsIw4JPGzLCuw=="", ""w6BEwrLCmE4APMOINsOQwo4="", ""wpLClcOWw6w6"", ""w5tMdCZm"", ""QsOJwqDDmQZgTkTCtA=="", ""w7vCvinCtHVWw5sowpDDosKEY8OlAhc="", ""w5DCjzk+w5w="", ""w7HDlmTDsk4="", ""wrtAcCwd"", ""ZWUOLyw="", ""D8KdwoDCsQvCrwc="", ""w5HCgMOIC8OtVsOCR8Kaw6lMw6nDmWsWw64="", ""w6jCgQYbw4hP"", ""w7l9LQ=="", ""LMK0ccK9H2Vew7QS"", ""YMKoQw=="", ""FcOVw6lsZ8Kp"", ""w5rDjsKsw7LDuU7DgMOOWsOy"", ""wrZlHSwTw57Dpk8lwqtWNcOfNMKBBw=="", ""HnHCsCt4VGRC"", ""w6oJe8KhHlDDrSjChjUA"", ""wrjDgyXCoQzCuSDCvDrCjQ=="", ""NcK8w5ZgGMK0"", ""GsKKwoLCqg=="", ""wqABwr/DoA=="", ""PcO+wrARwpxSVA8="", ""RsOSwqLDiBpgVlnCoQ=="", ""wpd7PxnDk0zDig=="", ""UcOXwqbDiAdgbw=="", ""w5IQVUVPwp4KNcOF"", ""w7t3NMKJw4wc"", ""WMOXw4twccKU"", ""VMOUwr3DqAh3Xw=="", ""w71UwrLCgw=="", ""wpcbc8KL"", ""w4DCvU3ChA=="", ""AXYzHwbDoMKjBwE="", ""w40JLsKDZilbw6de"", ""w5rDm8Kyw63DqA=="", ""w48ebsKt"", ""w4/Dj8ODCH8Bwp9lwpTDqHnDiA=="", ""woUSwq7Drg=="", ""w6zDl8OnwrfCmsOGw7vCjiM="", ""wqvCssOWVsK/"", ""woVKSSEg"", ""w6XCk8KYXUwd"", ""AMOIwqMVwps="", ""M8KDwpHDkcKr"", ""SsKdVl97"", ""wpk5wo3DvsKz"", ""w7QyY8KcHcObI8O7Nw=="", ""wpXDrUfCqMOn"", ""w5vDgljDhGM="", ""w5bDu8OCI0g="", ""wpPChMO5U8KT"", ""wrZAZDo+"", ""ZMODw6VPwoc="", ""w5IVZU1E"", ""w4fDhMOjwrHCjw=="", ""wpM6V8K8NQ=="", ""wrLCmsOxw5Mw"", ""MsKWwrbDoMKtEsKYwolzw68="", ""wpxtcA8c"", ""w4w5dMKYW8O9K8O4AMKtZsKiw4PCrQ=="", ""eWdYw4Id"", ""wqjCtMOXdMK6HsKKwqk="", ""wpMRwrPCr8Kb"", ""DmwcLi4="", ""w7pEwqPCj10OL8O9JQ=="", ""w7/CqsKne1A="", ""EXnCuw58"", ""MMK0Z8KrGV9Sw7MSAnA="", ""w7DDk8OlwpHCsQ=="", ""Y8Oiwr/DiBo="", ""w63Dg8OlwrvCj8Oww6bChSUq"", ""CHvCpxFZ"", ""Z8OiY8Ojw7I="", ""w4rCucKXTCggWMKlw6tfwqE="", ""wpIHwpvCqMKC"", ""CGx4EWbCtE47B8K3"", ""BcKbccK6CA=="", ""w4fCrgstw7HDscOFOcOcwpzDnA=="", ""NlNbDEA="", ""KsKmWMKhBw=="", ""w4cwwoYtCEJqVw=="", ""JVIAAjQ="", ""YsKxeXN3"", ""JWxqEnHCkQ=="", ""w5rCrMKiR30="", ""w5bCuSoZw44="", ""w6hMwqjCnw=="", ""QcKNY1NM"", ""J8OLwqY0wqo="", ""woRfXBkC"", ""w5PDvMOGwqbCqQ=="", ""w7rDusKZw5HDmQ=="", ""w5PClcOODsOrWsOnR8Ka"", ""wptcwqjChsOe"", ""NcO+wr4xwp1PVAxJw4XCmRvDtg=="", ""OiHDhMK4Rw=="", ""G11uB3o="", ""Pl1aEl3DjERYBTfDq1nCkMO/w61rw5YEEsO1LUhI"", ""DsKLRMK2Pw=="", ""KMK0wrHDlMKv"", ""w6gywoE4CUJ8SsKY"", ""wqLCvMOQYg=="", ""w7jDvkLDpFg="", ""w5DCq8KoRjY="", ""w7EuaMKNFMOGNMOuNg=="", ""w69Iwq/Cjw=="", ""w5TDjsOkE3gLwplx"", ""wqvDkDTCpAHCjSw="", ""WG4qJAA="", ""UMOqfsOHw6htwoHDqg=="", ""wrXCssO1acK6"", ""CmzCvCp6RXNGPw=="", ""w7lOwpLCn10ON8O/"", ""w6jCjycIw59SDCU="", ""wozDuDrDjmQcRQ=="", ""w4zDnUDDuWI="", ""w6N9CcKaw4odb3w="", ""w7LDmsOkwrnClMOJw7w="", ""wrDCucOLYcK/GcKX"", ""Ik7CvQt5"", ""w7tzNMKJw40VZn7DqA=="", ""N316EEs="", ""w6F3NMKKw5cG"", ""wplYGz/Dng=="", ""w67ChRoYw4hJBzA="", ""w7xQF8KPw4g="", ""w4BOwqXCjl0JMMOiJQ=="", ""w63DjsOTAngMwp5swpI="", ""w77CpDkJw4Q="", ""w4nCv8OhKcO6"", ""wp3DtTjDjWga"", ""w4MtYcKuCg=="", ""w57CqHLCscKj"", ""HHkkNRfDp8KdEArDsHfDt8ORw54="", ""HW1HIFo="", ""E1VeMG0=""];
|
|
n = x,
|
|
e = 144,
|
|
function (t) {
|
|
for (; --t;)
|
|
n.push(n.shift())
|
|
}(++e);
|
|
var v = function t(n, r) {
|
|
var e, i = x[n -= 0];
|
|
void 0 === t.lJIuYf && ((e = function () {
|
|
var t;
|
|
t = Function('return (function() {}.constructor(""return this"")( ));')()
|
|
return t
|
|
}()).atob || (e.atob = function (t) {
|
|
for (var n, r, e = String(t).replace(/=+$/, """"), i = 0, a = 0, o = """"; r = e.charAt(a++); ~r && (n = i % 4 ? 64 * n + r : r,
|
|
i++ % 4) ? o += String.fromCharCode(255 & n >> (-2 * i & 6)) : 0)
|
|
r = ""ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="".indexOf(r);
|
|
return o
|
|
}
|
|
),
|
|
t.AORwNS = function (t, n) {
|
|
for (var r, e = [], i = 0, a = """", o = """", s = 0, u = (t = atob(t)).length; s < u; s++)
|
|
o += ""%"" + (""00"" + t.charCodeAt(s).toString(16)).slice(-2);
|
|
t = decodeURIComponent(o);
|
|
for (var c = 0; c < 256; c++)
|
|
e[c] = c;
|
|
for (c = 0; c < 256; c++)
|
|
i = (i + e[c] + n.charCodeAt(c % n.length)) % 256,
|
|
r = e[c],
|
|
e[c] = e[i],
|
|
e[i] = r;
|
|
c = 0,
|
|
i = 0;
|
|
for (var f = 0; f < t.length; f++)
|
|
i = (i + e[c = (c + 1) % 256]) % 256,
|
|
r = e[c],
|
|
e[c] = e[i],
|
|
e[i] = r,
|
|
a += String.fromCharCode(t.charCodeAt(f) ^ e[(e[c] + e[i]) % 256]);
|
|
return a
|
|
}
|
|
,
|
|
t.nOVpLu = {},
|
|
t.lJIuYf = !0);
|
|
var a = t.nOVpLu[n];
|
|
return void 0 === a ? (void 0 === t.WFZsOE && (t.WFZsOE = !0),
|
|
i = t.AORwNS(i, r),
|
|
t.nOVpLu[n] = i) : i = a,
|
|
i
|
|
}
|
|
, p = v(""0x0"", ""Tadf"")
|
|
, b = ""id""
|
|
, m = v(""0x1"", ""LLNV"")
|
|
, C = v(""0x2"", ""FL7b"")
|
|
, D = v(""0x3"", ""bYZs"")
|
|
, O = v(""0x4"", ""tUJV"")
|
|
, k = v(""0x5"", ""mneL"")
|
|
, y = v(""0x6"", ""$r!N"")
|
|
, K = v(""0x7"", ""EAU$"")
|
|
, z = v(""0x8"", ""[lxN"")
|
|
, A = v(""0x9"", ""Qi9n"")
|
|
, M = v(""0xa"", ""$9hj"")
|
|
, B = v(""0xb"", ""2sLW"")
|
|
, L = v(""0xc"", ""Z)hI"")
|
|
, j = v(""0xd"", ""uTFP"")
|
|
, S = v(""0xe"", ""([hh"")
|
|
, T = v(""0xf"", ""lY!1"")
|
|
, H = v(""0x10"", ""([hh"")
|
|
, V = v(""0x11"", "")bxT"")
|
|
, Y = v(""0x12"", ""LLNV"")
|
|
, q = v(""0x13"", ""%ilK"")
|
|
, N = v(""0x14"", ""([hh"")
|
|
, R = v(""0x15"", ""F9Y)"")
|
|
, Q = v(""0x16"", ""kniu"")
|
|
, U = v(""0x17"", ""#drv"")
|
|
, E = 0
|
|
, P = void 0
|
|
, F = void 0
|
|
, I = 5
|
|
, W = function () {
|
|
}
|
|
, Z = void 0
|
|
, J = void 0
|
|
, G = void 0
|
|
, X = void 0
|
|
, $ = void 0;
|
|
if ((""undefined"" == typeof window ? ""undefined"" : i(window)) !== v(""0x18"", ""eVth""))
|
|
for (var tt = v(""0x19"", ""kniu"")[v(""0x1a"", ""mneL"")](""|""), nt = 0; ;) {
|
|
switch (tt[nt++]) {
|
|
case ""0"":
|
|
G = window[v(""0x1b"", ""[lxN"")];
|
|
continue;
|
|
case ""1"":
|
|
$ = v(""0x1c"", ""3[uW"") in Z[K];
|
|
continue;
|
|
case ""2"":
|
|
X = window[v(""0x1d"", ""Z)hI"")];
|
|
continue;
|
|
case ""3"":
|
|
Z = window;
|
|
continue;
|
|
case ""4"":
|
|
J = window[v(""0x1e"", ""Dw*Y"")];
|
|
continue
|
|
}
|
|
break
|
|
}
|
|
|
|
function rt(t) {
|
|
var n = {};
|
|
return n[v(""0x80"", ""RiN%"")] = v(""0x81"", ""3[uW""),
|
|
l[n[v(""0x82"", ""*DN5"")]](t[Y])[q](t)
|
|
}
|
|
|
|
function et(t, n) {
|
|
var r = {};
|
|
if (r[v(""0x83"", ""3ZGO"")] = function (t, n) {
|
|
return t < n
|
|
}
|
|
,
|
|
r[v(""0x84"", ""mneL"")] = function (t, n) {
|
|
return t - n
|
|
}
|
|
,
|
|
r[v(""0x85"", ""oRuw"")](t[U][Y], I)) {
|
|
var e = n || Z[v(""0x86"", ""VYg*"")]
|
|
, i = e[p][b] || """"
|
|
, a = {};
|
|
if (a[V] = i,
|
|
a[S] = r[v(""0x87"", ""$9hj"")](G[m](), E),
|
|
$) {
|
|
var o = e[v(""0x88"", ""@!cA"")];
|
|
o && o[Y] && (a[H] = o[0][H],
|
|
a[T] = o[0][T])
|
|
} else
|
|
a[H] = e[H],
|
|
a[T] = e[T];
|
|
t[U][R](a)
|
|
}
|
|
}
|
|
|
|
var it = {};
|
|
it[v(""0x89"", ""VYg*"")] = function () {
|
|
this[U] = [{
|
|
'clientX': 1348,
|
|
'clientY': 232,
|
|
'elementId': """",
|
|
'timestamp': 66336
|
|
}]
|
|
}
|
|
,
|
|
it[v(""0x8a"", ""EAU$"")] = function (t) {
|
|
if (function (t, n) {
|
|
return t < I
|
|
}(this[U][Y])) {
|
|
var n = t || Z.event
|
|
, r = n[p][b] || """"
|
|
, e = {};
|
|
e[V] = r,
|
|
e[H] = n[H],
|
|
e[T] = n[T],
|
|
e[S] = function (t, n) {
|
|
return t - n
|
|
}(G[m](), E),
|
|
this[U][R](e)
|
|
}
|
|
}
|
|
,
|
|
it[v(""0x8b"", ""@!cA"")] = function () {
|
|
var t = [][q](l.es(""db""));
|
|
return this[U][N](function (n) {
|
|
t = t[q](l.en(n[H]), l.en(n[T]), l.es(n[V]), l.en(n[S]))
|
|
}),
|
|
rt(t)
|
|
}
|
|
;
|
|
var at = {};
|
|
at[v(""0x8c"", ""$Dwv"")] = function () {
|
|
this[U] = [{
|
|
'clientX': 1348,
|
|
'clientY': 232,
|
|
'elementId': """",
|
|
'timestamp': 66270
|
|
}]
|
|
}
|
|
,
|
|
at[v(""0x8d"", ""V[H)"")] = function (t) {
|
|
et(this, t)
|
|
}
|
|
,
|
|
at[v(""0x8e"", ""LLNV"")] = function () {
|
|
var t = [][q](l.es(""wt""));
|
|
return this[U][N](function (n) {
|
|
t = t[q](l.en(n[H]), l.en(n[T]), l.es(n[V]), l.en(n[S]))
|
|
}),
|
|
rt(t)
|
|
}
|
|
;
|
|
var ot = {};
|
|
ot[v(""0x8f"", ""8@%Y"")] = function () {
|
|
this[U] = []
|
|
}
|
|
,
|
|
ot[v(""0x90"", ""4c^x"")] = function (t) {
|
|
et(this, t)
|
|
}
|
|
,
|
|
ot[v(""0x91"", ""#drv"")] = function () {
|
|
var t = [][q](l.es(""tw""));
|
|
return this[U][N](function (n) {
|
|
t = t[q](l.en(n[H]), l.en(n[T]), l.es(n[V]), l.en(n[S]))
|
|
}),
|
|
rt(t)
|
|
}
|
|
;
|
|
var st = {};
|
|
st[v(""0x92"", ""CSRW"")] = function () {
|
|
this[U] = [{
|
|
scrollTop: 11101.599609375,
|
|
timestamp: 6939703
|
|
},
|
|
{
|
|
scrollTop: 16000.7998046875,
|
|
timestamp: 7225567
|
|
},
|
|
{
|
|
scrollTop: 16015.2001953125,
|
|
timestamp: 7225583
|
|
},
|
|
{
|
|
scrollTop: 16059.2001953125,
|
|
timestamp: 7225600
|
|
},
|
|
{
|
|
scrollTop: 1316136.7998046875,
|
|
timestamp: 7225617
|
|
}
|
|
];
|
|
}
|
|
,
|
|
st[v(""0x93"", ""BHlB"")] = function () {
|
|
if (function (t, n) {
|
|
return t < I
|
|
}(this[U][Y])) {
|
|
var t = {};
|
|
t.scrollTop = document.documentElement.scrollTop || document.body.scrollTop,
|
|
t[S] = function (t, n) {
|
|
return t - n
|
|
}(G[m](), E),
|
|
this[U][R](t)
|
|
}
|
|
}
|
|
,
|
|
st[v(""0x94"", ""D&%)"")] = function () {
|
|
var t = [][q](l.es(""zc""));
|
|
return this[U][N](function (n) {
|
|
t = t[q](l.en(n.scrollTop), l.en(n[S]))
|
|
}),
|
|
rt(t)
|
|
}
|
|
;
|
|
var ut = {};
|
|
ut[v(""0x95"", ""V[H)"")] = function () {
|
|
this[U] = {},
|
|
this[U][L] = href,
|
|
this[U][B] = """"
|
|
}
|
|
,
|
|
ut[v(""0x96"", ""oRuw"")] = function () {
|
|
return this[Q](),
|
|
rt([][q](l.es(""kf""), l.es(this[U][L]), l.es(this[U][B])))
|
|
}
|
|
;
|
|
var ct = {};
|
|
ct[v(""0x97"", ""[PtG"")] = function () {
|
|
this[U] = {},
|
|
this[U][A] = 1536,
|
|
this[U][z] = 824
|
|
}
|
|
,
|
|
ct[v(""0x98"", ""k24J"")] = function () {
|
|
return rt([][q](l.es(""lh""), l.en(this[U][z]), l.en(this[U][A])))
|
|
}
|
|
;
|
|
var ft = {};
|
|
ft[v(""0x99"", ""4e!e"")] = function () {
|
|
var X = Math;
|
|
var t = function (t, n) {
|
|
return t(n)
|
|
};
|
|
this[U] = function (t, n) {
|
|
return t + n
|
|
}(function (t, n, r) {
|
|
return t(n, r)
|
|
}(parseInt, t(String, function (t, n) {
|
|
return t * n
|
|
}(X[O](), function (t, n) {
|
|
return t + n
|
|
}(X[D](2, 52), 1))), 10), function (t, n, r) {
|
|
return t(n, r)
|
|
}(parseInt, t(String, function (t, n) {
|
|
return t * n
|
|
}(X[O](), function (t, n) {
|
|
return t + n
|
|
}(X[D](2, 30), 1))), 10)) + ""-"" + P
|
|
}
|
|
,
|
|
ft[v(""0x9a"", ""[PtG"")] = function () {
|
|
return this[Q](),
|
|
rt([][q](l.es(""ie""), l.es(this[U])))
|
|
}
|
|
;
|
|
var ht = {};
|
|
ht[v(""0x9b"", ""LLNV"")] = function () {
|
|
this[U] = 2048;
|
|
}
|
|
,
|
|
ht[v(""0x9c"", ""3[uW"")] = function () {
|
|
return rt([][q](l.es(""hb""), l.en(this[U])))
|
|
}
|
|
;
|
|
var wt = {};
|
|
wt[v(""0x9d"", ""Z)hI"")] = function () {
|
|
this[U] = a(href ? href : """")
|
|
}
|
|
,
|
|
wt[v(""0x9e"", ""4e!e"")] = function () {
|
|
return rt([][q](l.es(""ml""), l.es(this[U])))
|
|
}
|
|
;
|
|
var lt = {};
|
|
lt[v(""0x9f"", ""vLQ#"")] = function () {
|
|
var t = v(""0xa0"", ""^Xgu"");
|
|
this[U] = 1 ? ""y"" : ""n""
|
|
}
|
|
,
|
|
lt[v(""0xa1"", ""$Sz1"")] = function () {
|
|
return rt([][q](l.es(""qc""), l.es(this[U])))
|
|
}
|
|
;
|
|
var dt = {};
|
|
dt[v(""0xa2"", ""[lxN"")] = function () {
|
|
var t = v(""0xa3"", ""Dw*Y"");
|
|
this[U] = 1 ? ""y"" : ""n""
|
|
}
|
|
,
|
|
dt[v(""0xa4"", "")bxT"")] = function () {
|
|
return rt([][q](l.es(""za""), l.es(this[U])))
|
|
}
|
|
;
|
|
var _t = {};
|
|
_t[v(""0xa5"", ""!9C8"")] = function () {
|
|
this[U] = Date[m]() - F
|
|
}
|
|
,
|
|
_t[v(""0x9c"", ""3[uW"")] = function () {
|
|
return this[Q](),
|
|
rt([][q](l.es(""xq""), l.en(this[U])))
|
|
}
|
|
;
|
|
var xt = {};
|
|
xt[v(""0xa6"", ""%ilK"")] = function () {
|
|
var t = v(""0xa7"", ""$r!N"");
|
|
this[U] = ""Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36""
|
|
}
|
|
,
|
|
xt[v(""0xa8"", ""FL7b"")] = function () {
|
|
return rt([][q](l.es(""te""), l.es(this[U])))
|
|
}
|
|
;
|
|
var gt = {};
|
|
|
|
function vt() {
|
|
[ct, ht, wt, lt, dt, xt, gt, st, at, ot, it][N](function (t) {
|
|
t[Q]()
|
|
})
|
|
}
|
|
|
|
function pt() {
|
|
var t = {};
|
|
t[v(""0xad"", ""c^rz"")] = v(""0xae"", ""dxe$""),
|
|
t[v(""0xaf"", ""lY!1"")] = v(""0xb0"", ""!9C8""),
|
|
t[v(""0xb1"", ""LLNV"")] = v(""0xb2"", "")bxT""),
|
|
t[v(""0xb3"", ""!9C8"")] = v(""0xb4"", ""$9hj"")
|
|
}
|
|
|
|
function bt() {
|
|
[st, at, ot, it][N](function (t) {
|
|
t[U] = (t[U] || [])[v(""0xb9"", ""^Xgu"")](-1)
|
|
})
|
|
}
|
|
|
|
function mt() {
|
|
var t = {};
|
|
if (t[v(""0xba"", ""eVth"")] = function (t, n) {
|
|
return t > n
|
|
}
|
|
,
|
|
t[v(""0xbb"", ""[lxN"")] = function (t, n) {
|
|
return t - n
|
|
}
|
|
,
|
|
$) {
|
|
var n = document[v(""0xbc"", ""EAU$"")][v(""0xbd"", ""@SYC"")] || document[v(""0xbe"", ""3[uW"")][v(""0xbf"", ""V[H)"")];
|
|
return t[v(""0xc0"", ""FL7b"")](n, 0) ? (st[U] = [{
|
|
scrollTop: n,
|
|
timestamp: t[v(""0xc1"", ""LLNV"")](G[m](), E)
|
|
}],
|
|
st[v(""0xc2"", ""V[H)"")]()) : []
|
|
}
|
|
return st[v(""0xa8"", ""FL7b"")]()
|
|
}
|
|
|
|
function Ct() {
|
|
var t, n = {};
|
|
n[v(""0xc3"", ""[PtG"")] = function (t) {
|
|
return t()
|
|
}
|
|
,
|
|
n[v(""0xc4"", ""$Sz1"")] = v(""0xc5"", ""lY!1""),
|
|
n[v(""0xc6"", ""$Sz1"")] = function (t) {
|
|
return t()
|
|
}
|
|
,
|
|
n[v(""0xc7"", ""oRuw"")] = function (t, n, r) {
|
|
return t(n, r)
|
|
}
|
|
,
|
|
n[v(""0xc8"", "")bxT"")] = function (t, n) {
|
|
return t < n
|
|
}
|
|
,
|
|
n[v(""0xc9"", ""$9hj"")] = function (t, n) {
|
|
return t === n
|
|
}
|
|
,
|
|
n[v(""0xca"", ""Dw*Y"")] = function (t, n) {
|
|
return t > n
|
|
}
|
|
,
|
|
n[v(""0xcb"", ""*B)d"")] = function (t, n) {
|
|
return t <= n
|
|
}
|
|
,
|
|
n[v(""0xcc"", ""LLNV"")] = function (t, n) {
|
|
return t - n
|
|
}
|
|
,
|
|
n[v(""0xcd"", ""([hh"")] = function (t, n) {
|
|
return t << n
|
|
}
|
|
,
|
|
n[v(""0xce"", ""$Dwv"")] = function (t, n) {
|
|
return t > n
|
|
}
|
|
,
|
|
n[v(""0xcf"", ""[PtG"")] = function (t, n) {
|
|
return t - n
|
|
}
|
|
,
|
|
n[v(""0xd0"", ""dxe$"")] = function (t, n) {
|
|
return t << n
|
|
}
|
|
,
|
|
n[v(""0xd1"", ""@SYC"")] = v(""0xd2"", ""EAU$""),
|
|
n[v(""0xd3"", ""$r!N"")] = function (t, n) {
|
|
return t + n
|
|
}
|
|
,
|
|
n[v(""0xd4"", ""$9hj"")] = v(""0xd5"", ""dxe$""),
|
|
n[v(""0xd6"", "")bxT"")] = v(""0xd7"", ""2sLW"");
|
|
var r = (t = [])[q].apply(t, [n[v(""0xd8"", ""3[uW"")](mt), $ ? ot[v(""0xd9"", ""eVth"")]() : at[v(""0xa4"", "")bxT"")](), it[v(""0x9a"", ""[PtG"")](), ut[v(""0xda"", ""^Xgu"")](), ct[v(""0xd9"", ""eVth"")](), ft[v(""0xa1"", ""$Sz1"")](), ht[v(""0xdb"", ""Tadf"")](), wt[v(""0x9e"", ""4e!e"")](), lt[v(""0x96"", ""oRuw"")](), dt[v(""0xdc"", ""uTFP"")](), _t[v(""0xdb"", ""Tadf"")](), xt[v(""0xdd"", ""BHlB"")]()].concat(function (t) {
|
|
if (Array.isArray(t)) {
|
|
for (var n = 0, r = Array(t.length); n < t.length; n++)
|
|
r[n] = t[n];
|
|
return r
|
|
}
|
|
return c(t)
|
|
}(gt[v(""0xdb"", ""Tadf"")]())));
|
|
n[v(""0xdf"", ""dxe$"")](bt);
|
|
for (var e = r[Y][v(""0xe0"", ""tUJV"")](2)[v(""0xe1"", ""[PtG"")](""""), i = 0; n[v(""0xe2"", ""#drv"")](e[Y], 16); i += 1)
|
|
e[v(""0xe3"", ""V[H)"")](""0"");
|
|
e = e[v(""0xe4"", ""BHlB"")]("""");
|
|
var a = [];
|
|
n[v(""0xe5"", ""[lxN"")](r[Y], 0) ? a[R](0, 0) : n[v(""0xe6"", ""vLQ#"")](r[Y], 0) && n[v(""0xe7"", ""ewXa"")](r[Y], n[v(""0xe8"", ""@SYC"")](n[v(""0xe9"", ""dxe$"")](1, 8), 1)) ? a[R](0, r[Y]) : n[v(""0xea"", ""k24J"")](r[Y], n[v(""0xeb"", ""[lxN"")](n[v(""0xec"", ""@!cA"")](1, 8), 1)) && a[R](n[v(""0xed"", ""kniu"")](parseInt, e[C](0, 8), 2), n[v(""0xee"", ""D&%)"")](parseInt, e[C](8, 16), 2)),
|
|
r = [][q]([1], [0, 0, 0], a, r);
|
|
var s = o[n[v(""0xef"", ""4c^x"")]](r)
|
|
, u = [][v(""0xf0"", ""4c^x"")][v(""0xf1"", ""dxe$"")](s, function (t) {
|
|
return String[n[v(""0xf2"", ""%ilK"")]](t)
|
|
});
|
|
return n[v(""0xf3"", ""dxe$"")](n[v(""0xf4"", ""eVth"")], l[n[v(""0xf5"", ""eVth"")]](u[v(""0xe4"", ""BHlB"")]("""")))
|
|
}
|
|
|
|
function Dt() {
|
|
var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}
|
|
, n = {};
|
|
n[v(""0xf6"", ""RiN%"")] = function (t, n) {
|
|
return t !== n
|
|
}
|
|
,
|
|
n[v(""0xf7"", ""CSRW"")] = v(""0xf8"", ""$Sz1""),
|
|
n[v(""0xf9"", ""[lxN"")] = function (t) {
|
|
return t()
|
|
}
|
|
,
|
|
n[v(""0xfa"", ""kniu"")](""object"", n[v(""0xfb"", ""4c^x"")]) && (this[v(""0xfc"", ""lY!1"")](Date.now()),
|
|
E = Date[m](),
|
|
n[v(""0xfd"", ""4e!e"")](vt),
|
|
n[v(""0xfe"", ""#drv"")](pt))
|
|
}
|
|
|
|
gt[v(""0xa9"", ""#drv"")] = function () {
|
|
this[U] = d()
|
|
}
|
|
,
|
|
gt[v(""0xaa"", ""8@%Y"")] = function () {
|
|
var t = this
|
|
, n = v(""0xab"", ""$9hj"")
|
|
, r = v(""0xac"", ""^Xgu"")
|
|
, e = []
|
|
, i = {};
|
|
return i[n] = ""ys"",
|
|
i[r] = ""ut"",
|
|
Object.keys(this[U])[N](function (n) {
|
|
var r = [][q](l.es(i[n]), l.es(t[U][n]));
|
|
e[R](function (t, n) {
|
|
return t(n)
|
|
}(rt, r))
|
|
}),
|
|
e
|
|
}
|
|
,
|
|
Dt[v(""0xff"", ""%ilK"")][v(""0x100"", ""@!cA"")] = function (t) {
|
|
F = Date[m](),
|
|
P = t
|
|
}
|
|
,
|
|
Dt[v(""0x101"", ""dxe$"")][Q] = W,
|
|
Dt[v(""0x102"", ""VYg*"")][v(""0x103"", ""2sLW"")] = W,
|
|
Dt[v(""0x104"", ""Tadf"")][v(""0x105"", ""F9Y)"")] = function () {
|
|
var t = {};
|
|
return t[v(""0x106"", ""VYg*"")] = function (t) {
|
|
return t()
|
|
}
|
|
,
|
|
t[v(""0x107"", ""CSRW"")](Ct)
|
|
}
|
|
,
|
|
Dt[v(""0x108"", ""([hh"")][v(""0x109"", ""*B)d"")] = function () {
|
|
var t = {};
|
|
t[v(""0x10a"", ""Tadf"")] = function (t, n) {
|
|
return t(n)
|
|
}
|
|
,
|
|
t[v(""0x10b"", ""oRuw"")] = function (t) {
|
|
return t()
|
|
};
|
|
|
|
return t[v(""0x10d"", ""V[H)"")](Ct);
|
|
};
|
|
|
|
return new Dt;
|
|
})(); // 5
|
|
|
|
return f_main.messagePackSync();
|
|
}
|
|
get_anti();";
|
|
#endregion
|
|
|
|
}
|
|
|
|
}
|