123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863 |
- using HTEXLib.Translator;
- using Ionic.Zip;
- using NPOI.SS.UserModel;
- using NPOI.SS.UserModel.Charts;
- using NPOI.SS.Util;
- using NPOI.XSSF.UserModel;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Net;
- using System.Net.NetworkInformation;
- using System.Net.Sockets;
- using System.Security.Cryptography;
- using System.Text;
- using System.Text.RegularExpressions;
- using System.Web;
- using System.Xml;
- using System.Xml.Linq;
- using System.Xml.Xsl;
- namespace HTEXTest
- {
- public class Node {
- public string val { get; set; }
- public List<Node> children { get; set; }
- public Node(string text, List<Node> node ) {
- this.val = text;
- this.children = node;
- }
- }
- class Program
- {
- /// <summary>
- /// 获取本地机器网卡的所有IP地址
- /// </summary>
- /// <returns></returns>
- public static List<string> getIPAddress()
- {
- return NetworkInterface.GetAllNetworkInterfaces()
- .SelectMany(i => i.GetIPProperties().UnicastAddresses)
- .Select(a => a.Address)
- //AddressFamily.InterNetwork 过滤掉IPV6 //过滤127.0.0.1 !IPAddress.IsLoopback(a)
- .Where(a => a.AddressFamily == AddressFamily.InterNetwork)
- .Select(a => a.ToString()).ToList();
- }
- public static List<IPAddress> getIPAddressE()
- {
- return NetworkInterface.GetAllNetworkInterfaces()
- .SelectMany(i => i.GetIPProperties().UnicastAddresses)
- .Select(a => a.Address)
- //AddressFamily.InterNetwork 过滤掉IPV6 //过滤127.0.0.1 !IPAddress.IsLoopback(a)
- //.Where(a => a.AddressFamily == AddressFamily.InterNetwork)
- .ToList();
- }
- public static IList<string> PreorderTraversal(Node root)
- {
- //返回的list
- var forReturn = new List<string>();
- if (root == null) return forReturn;
- //定义一个栈
- var stackTemp = new Stack<Node>();
- //在栈的顶部插入根节点
- stackTemp.Push(root);
- while (stackTemp.Any())
- {
- //移除栈顶部的对象
- var curNode = stackTemp.Pop();
- //将该对象add至返回的list中
- forReturn.Add(curNode.val);
- if (curNode.children != null)
- {
- for (var i = curNode.children.Count - 1; i >= 0; i--)
- stackTemp.Push(curNode.children[i]);
- }
- }
- return forReturn;
- }
- public static void changeArgb(long color) {
- //int color = 0x1A0078ff;
- long alpha = (color & 0xff000000) >> 24;
- long red = (color & 0x00ff0000) >> 16;
- long green = (color & 0x0000ff00) >> 8;
- long blue = (color & 0x000000ff);
- }
- public static string sKey= "cstftsmf";
- public static string DESDeCode(string pToDecrypt)
- {
- // HttpContext.Current.Response.Write(pToDecrypt + "<br>" + sKey);
- // HttpContext.Current.Response.End();
- DESCryptoServiceProvider des = new DESCryptoServiceProvider();
- byte[] inputByteArray = new byte[pToDecrypt.Length / 2];
- for (int x = 0; x < pToDecrypt.Length / 2; x++)
- {
- int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16));
- inputByteArray[x] = (byte)i;
- }
- des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
- des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
- MemoryStream ms = new MemoryStream();
- CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
- cs.Write(inputByteArray, 0, inputByteArray.Length);
- cs.FlushFinalBlock();
- StringBuilder ret = new StringBuilder();
- return HttpUtility.UrlDecode(System.Text.Encoding.UTF8.GetString(ms.ToArray()));
- }
- public static string DESEnCode(string pToEncrypt)
- {
- pToEncrypt = HttpUtility.UrlEncode(pToEncrypt);
- DESCryptoServiceProvider des = new DESCryptoServiceProvider();
- byte[] inputByteArray = Encoding.GetEncoding("UTF-8").GetBytes(pToEncrypt);
- //建立加密对象的密钥和偏移量
- //原文使用ASCIIEncoding.ASCII方法的GetBytes方法
- //使得输入密码必须输入英文文本
- des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
- des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
- MemoryStream ms = new MemoryStream();
- CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
- cs.Write(inputByteArray, 0, inputByteArray.Length);
- cs.FlushFinalBlock();
- StringBuilder ret = new StringBuilder();
- foreach (byte b in ms.ToArray())
- {
- ret.AppendFormat("{0:X2}", b);
- }
- ret.ToString();
- return ret.ToString();
- }
- public static string Encrypt(string stringToEncrypt, string sKey)
- {
- DESCryptoServiceProvider des = new DESCryptoServiceProvider();
- byte[] inputByteArray = Encoding.GetEncoding("UTF-8").GetBytes(stringToEncrypt);
- des.Key = ASCIIEncoding.UTF8.GetBytes(sKey);
- des.IV = ASCIIEncoding.UTF8.GetBytes(sKey);
- MemoryStream ms = new MemoryStream();
- CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
- cs.Write(inputByteArray, 0, inputByteArray.Length);
- cs.FlushFinalBlock();
- StringBuilder ret = new StringBuilder();
- foreach (byte b in ms.ToArray())
- {
- ret.AppendFormat("{0:X2}", b);
- }
- ret.ToString();
- return ret.ToString();
- }
- public static string Decrypt(string stringToDecrypt, string sKey)
- {
- DESCryptoServiceProvider des = new DESCryptoServiceProvider();
- byte[] inputByteArray = new byte[stringToDecrypt.Length / 2];
- for (int x = 0; x < stringToDecrypt.Length / 2; x++)
- {
- int i = (Convert.ToInt32(stringToDecrypt.Substring(x * 2, 2), 16));
- inputByteArray[x] = (byte)i;
- }
- des.Key = ASCIIEncoding.UTF8.GetBytes(sKey);
- des.IV = ASCIIEncoding.UTF8.GetBytes(sKey);
- MemoryStream ms = new MemoryStream();
- CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
- cs.Write(inputByteArray, 0, inputByteArray.Length);
- cs.FlushFinalBlock();
- StringBuilder ret = new StringBuilder();
- return System.Text.Encoding.Default.GetString(ms.ToArray());
- }
- public static int getWeek(DateTimeOffset dt)
- {
- DateTimeOffset time = Convert.ToDateTime(dt.ToString("yyyy") + "-01-01");
- TimeSpan ts = dt - time;
- int iii = (int)time.DayOfWeek;
- int day = int.Parse(ts.TotalDays.ToString("F0"));
- if (iii == 0)
- {
- day--;
- }
- else
- {
- day = day - (7 - iii) - 1;
- }
- int week = ((day + 7) / 7) + 1;
- return week;
- }
- private static string HTEXTranslator(string stream)
- {
- Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
- Encoding encoding = Encoding.GetEncoding("GB2312");
- var options = new ReadOptions { StatusMessageWriter = System.Console.Out, Encoding = encoding };
- using (ZipFile zip = ZipFile.Read(stream, options))
- {
- zip.AlternateEncoding = encoding;
- List<Stream> streams = new List<Stream>();
- foreach (var f in zip.Entries)
- {
- string neme= f.FileName;
- if (f.IsDirectory) {
- string subPath = "F:\\cccc\\" + neme;
- if (false == System.IO.Directory.Exists(subPath))
- {
- //创建pic文件夹
- System.IO.Directory.CreateDirectory(subPath);
- }
- continue;
- }
- // var st= ;
- //一个个解压
- var a = f.OpenReader();
- byte[] bytes = new byte[a.Length];
- a.Read(bytes, 0, bytes.Length);
- FileStream stream2 = new FileStream("F:\\cccc\\" + neme, FileMode.OpenOrCreate);
- stream2.Write(bytes, 0, bytes.Length);
- stream2.Close();
- }
- }
- return null;
- }
- static void CreateChart(IDrawing drawing, ISheet sheet, IClientAnchor anchor, string serie1, string serie2)
- {
- IChart chart = drawing.CreateChart(anchor);
- IChartLegend legend = chart.GetOrCreateLegend();
- //标题位置
- legend.Position = LegendPosition.Top;
- IBarChartData<double, double> data = chart.ChartDataFactory.CreateBarChartData<double, double>();
- // Use a category axis for the bottom axis.
- //横坐标
- IChartAxis bottomAxis = chart.ChartAxisFactory.CreateCategoryAxis(AxisPosition.Bottom);
- //纵坐标
- IValueAxis leftAxis = chart.ChartAxisFactory.CreateValueAxis(AxisPosition.Left);
- leftAxis.Crosses = AxisCrosses.AutoZero;//AxisCrosses.Max 则纵坐标在右侧
- IChartDataSource<double> xs = DataSources.FromNumericCellRange(sheet, new CellRangeAddress(0, 0, 0, 10 - 1));
- IChartDataSource<double> ys1 = DataSources.FromNumericCellRange(sheet, new CellRangeAddress(1, 1, 0, 10 - 1));
- IChartDataSource<double> ys2 = DataSources.FromNumericCellRange(sheet, new CellRangeAddress(2, 2, 0, 10 - 1));
- //添加标题
- var s1 = data.AddSeries(xs, ys1);
- s1.SetTitle(serie1);
- var s2 = data.AddSeries(xs, ys2);
- s2.SetTitle(serie2);
- chart.Plot(data, bottomAxis, leftAxis);
- }
- const int NUM_OF_ROWS = 3;
- const int NUM_OF_COLUMNS = 10;
- class MemoryResourceResolver : XmlUrlResolver {
- public override object GetEntity(Uri absoluteUri,
- string role, Type ofObjectToReturn)
- {
- if (absoluteUri.ToString().Contains("Common"))
- {
- return new MemoryStream(Encoding.UTF8.GetBytes("Xml with with common data"));
- }
- if (absoluteUri.ToString().Contains("Xhtml"))
- {
- return new MemoryStream(Encoding.UTF8.GetBytes("Xml with with xhtml data"));
- }
- return "";
- }
- }
- public class Stu {
- public int id { get; set; }
- public string classid { get; set; }
- public string name { get; set; }
- public int score { get; set; }
-
- }
- static void Main(string[] args)
- {
-
- string rtf = @"{\*\blipuid 1b80440fbb2ab6748cc9f28edcef985e}ffd8ffe000104a46494600010101006000600000ff296ade39fda3bc25fb445bfed45fb47f8221f0ae91e17d01be0af8347ecfa9f09b5ed17c3be2b1e32d4f4bbfd4bc51f003c51f1bf42b2f885ab5b68d07c5083c05f19bc1a9e3bd17c31e17d075b13691a15859c5e6dfb26ff00c13a3e147ec79f173e31fc66f87bf113e2af8a7c53f1e2c6d6d3e25c5e3cb2f824e3c5177a3f8bbc51e2af0af893c4be26f027c17f01fc45f1cf8d7c2d6de31d7bc2369e38f88de37f1978b7c45e159aca3f1eeb3e30d7f48d275fb2fd02a2800a28a2800a28a2803fffd9}}{\nonshppict{\pict\picscalex100\picscaley99\piccropl0\piccropr0\piccropt0\piccropb0\picw2249\pich1085\picwgoal1275\pichgoal615\wmetafile8\bliptag461390863\blipupi96{\*\blipuid 1b80440fbb2ab6748cc9f28edcef985e}0100090000035609000000002d0900000010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101000000040000002701ffff030000000000}}}{\rtlch\fcs1 \af0 \ltrch\fcs0 \loch\af14\hich\af14\dbch\af14\insrsid10430208 \loch\af14\hich\af14\dbch\f14 \'a6\'62\'a4\'cf\'a4\'f1\'a8\'d2\'a8\'e7\'bc\'c6\'b9\'cf\'b9\'b3\'a4\'57\'a6\'b3\'a8\'e2\'c2\'49}{\rtlch\fcs1 \af0 \ltrch\fcs0 \loch\af0\hich\af0\dbch\af14\insrsid10430208 \hich\af0\dbch\af14\loch\f0 A(x1}{\rtlch\fcs1 \af0 \ltrch\fcs0 \loch\af14\hich\af14\dbch\af14\insrsid10430208 \loch\af14\hich\af14\dbch\f14 \'a1\'41}{\rtlch\fcs1 \af0 \ltrch\fcs0 \loch\af0\hich\af0\dbch\af14\insrsid10430208 \hich\af0\dbch\af14\loch\f0 y1)}{\rtlch\fcs1 \af0 \ltrch\fcs0 \loch\af14\hich\af14\dbch\af14\insrsid10430208 \loch\af14\hich\af14\dbch\f14 \'a1\'42}{\rtlch\fcs1 \af0 \ltrch\fcs0 \loch\af0\hich\af0\dbch\af14\insrsid10430208 \hich\af0\dbch\af14\loch\f0 B(x2}{\rtlch\fcs1 \af0 \ltrch\fcs0 \loch\af14\hich\af14\dbch\af14\insrsid10430208 \loch\af14\hich\af14\dbch\f14 \'a1\'41}{\rtlch\fcs1 \af0 \ltrch\fcs0 \loch\af0\hich\af0\dbch\af14\insrsid10430208 \hich\af0\dbch\af14\loch\f0 y2)}{\rtlch\fcs1 \af0 \ltrch\fcs0 \loch\af14\hich\af14\dbch\af14\insrsid10430208 \loch\af14\hich\af14\dbch\f14 \'a1\'41}{\rtlch\fcs1 \af0 \ltrch\fcs0 \loch\af0\hich\af0\dbch\af14\insrsid10430208 \hich\af0\dbch\af14\loch\f0 x1}{\rtlch\fcs1 \af0 \ltrch\fcs0 \loch\af14\hich\af14\dbch\af14\insrsid10430208 \loch\af14\hich\af14\dbch\f14 \'a1\'d5}{\rtlch\fcs1 \af0 \ltrch\fcs0 \loch\af0\hich\af0\dbch\af14\insrsid10430208 0}{\rtlch\fcs1 \af0 \ltrch\fcs0 \loch\af14\hich\af14\dbch\af14\insrsid10430208 \loch\af14\hich\af14\dbch\f14 \'a1\'d5}{\rtlch\fcs1 \af0 \ltrch\fcs0 \loch\af0\hich\af0\dbch\af14\insrsid10430208 \hich\af0\dbch\af14\loch\f0 y1}{\rtlch\fcs1 \af0 \ltrch\fcs0 \loch\af14\hich\af14\dbch\af14\insrsid10430208 \loch\af14\hich\af14\dbch\f14 \'a1\'41}{\rtlch\fcs1 \af0 \ltrch\fcs0 \loch\af0\hich\af0\dbch\af14\insrsid10430208 \hich\af0\dbch\af14\loch\f0 y1}{\rtlch\fcs1 \af0 \ltrch\fcs0 \loch\af14\hich\af14\dbch\af14\insrsid10430208 \loch\af14\hich\af14\dbch\f14 \'a1\'d5}{\rtlch\fcs1 \af0 \ltrch\fcs0 \loch\af0\hich\af0\dbch\af14\insrsid10430208 \hich\af0\dbch\af14\loch\f0 y2}{\rtlch\fcs1 \af0 \ltrch\fcs0 \loch\af14\hich\af14\dbch\af14\insrsid10430208 \loch\af14\hich\af14\dbch\f14 \'a1\'41\'ab\'68}{\rtlch\fcs1 \af0 \ltrch\fcs0 \loch\af0\hich\af0\dbch\af14\insrsid10430208 \hich\af0\dbch\af14\loch\f0 m}{\rtlch\fcs1 \af0 \ltrch\fcs0 \loch\af14\hich\af14\dbch\af14\insrsid10430208 \loch\af14\hich\af14\dbch\f14 \'aa\'ba\'a8\'fa\'ad\'c8\'bd\'64\'b3\'f2\'ac\'4f\'a1\'5d\'a1\'5e}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\insrsid13373147\charrsid11947830 {\*\shppict{\pict{\*\picprop\shplid1025{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLockRotation}{\sv 0}}{\sp{\sn fLockAspectRatio}{\sv 1}}{\sp{\sn fLockPosition}{\sv 0}}{\sp{\sn fLockAgainstSelect}{\sv 0}}{\sp{\sn fLockCropping}{\sv 0}}{\sp{\sn fLockVerticies}{\sv 0}}{\sp{\sn fLockAgainstGrouping}{\sv 0}}{\sp{\sn pictureGray}{\sv 0}}{\sp{\sn pictureBiLevel}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fNoFillHitTest}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn wzName}{\sv \'cd\'bc\'c6\'ac 1}}{\sp{\sn dhgt}{\sv 251658240}}{\sp{\sn fHidden}{\sv 0}}{\sp{\sn fLayoutInCell}{\sv 1}}}\picscalex100\picscaley99\piccropl0\piccropr0\piccropt0\piccropb0\picw2619\pich1535\picwgoal1485\pichgoal870\jpegblip\bliptag598940992{\*\blipuid 23b31d4086481d13c8807e05722de477}ffd8ffe000104a46494600010101006000600000ffdb00430001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101ffdb004301010101010101010101010a049a5482e0c6678524758a63096688cd186092189999a32e1b61662b824d45454caad49c9ce752739b4d39ca72949a926a49c9b6da6a4d357b34ddf765d3c3d0a5054a950a34a9a7192a74e9c21052872f2494231514e3c90e5695e3cb1b5b9558a28a2a0d828a28a00ffd9}}{\nonshppict{\pict\picscalex100\picscaley99\piccropl0\piccropr0\piccropt0\piccropb0\picw2619\pich1535\picwgoal1485\pichgoal870\wmetafile8\bliptag598940992\blipupi96{\*\blipuid 23b31d4086481d13c8807e05722de477}0100090000034622000000001d22000000000400000003010800050000000b0200000000050000000c023b006400030000001e00040000000701040004000000070104001d220000410b2000cc003a006300000000003a0063000000000028000000630000 ng1025 \cf3 \'bf\'ef\'be\'dc\'c3D}{\rtlch \fcs1 \af0 \afs21 \ltrch \fcs0 \fs21 \kerning2 \rtlch \alang1025 \ltrch \dbch \af4 \hich \af0 \loch \f0 \lang1033 \langnp1033 \langfe1028 \langfenp1028 \alang1025 \cf3 \}}{\rtlch \fcs1 \af0 \afs22 \ltrch \fcs0 \fs21 \kerning2 \rtlch \alang1025 \ltrch \dbch \af1 \hich \af3 \loch \af3 \lang1033 \langnp1033 \langfe2052 \langfenp2052 \alang1025 {\*\shppict {\pict {\*\picprop \shplid1025 {\sp {\sn shapeType}{\sv 75}}{\sp {\sn fFlipH}{\sv 0}}{\sp {\sn fFlipV}{\sv 0}}{\sp {\sn fLockAspectRatio}{\sv 1}}{\sp {\sn dxWrapDistLeft}{\sv 0}}{\sp {\sn dxWrapDistRight}{\sv 0}}{\sp {\sn fLayoutInCell}{\sv 1}}}\piccropl0 \piccropr0 \piccropt0 \piccropb0 \picscalex100 \picscaley101 \picw85 \pich41 \picwgoal1275 \pichgoal615 \pngblip {\*\blipuid a1f35504a1f35504a1f35504a1f35504}89504e470d0a1a0a002f9ca26841dc25d81534e125949a47226e7868b23eebb80cdbc6bba2464777952cb6428438937e42eaf71a4b6e711cab3f09aaed25f2223b5bae593d9bd2b44daa990bb5a8edec45b6e979cd41a2f31be80b194d09ee3ada48f9e2ad620d5bb3a03ce8033e00c3803ce401506fe007ed9acab7780f7220000000049454e44ae426082}}{\nonshppict {\pict \piccropl0 \piccropr0 \piccropt0 \piccropb0 \picscalex100 \picscaley101 \picw85 \pich41 \picwgoal1275 \pichgoal615 \wmetafile8 {\*\blipuid a1f35504a1f35504a1f35504a1f35504}010009000040000002701ffff030000000000}}}{\rtlch \fcs1 \af0 \afs22 \ltrch \fcs0 \fs21 \kerning2 \rtlch \alang1025 \ltrch \loch \af0 \hich \af0 \dbch \f4 \lang1033 \langnp1033 \langfe1028 \langfenp1028 \alang1025 \'a6b\'a4\'cf\'a4\sv 75}}{\sp {\sn fFlipH}{\sv 0}}{\sp {\sn fFlipV}{\sv 0}}{\sp {\sn fLockAspectRatio}{\sv 1}}{\sp {\sn fNoFillHitTest}{\sv 1}}{\sp {\sn fFilled}{\sv 0}}{\sp {\sn fLine}{\sv 0}}{\sp {\sn fPreferRelativeResize}{\sv 1}}{\sp {\sn wzName}{\sv \'cd\'bc\'c6\'ac 1}}{\sp {\sn fLayoutInCell}{\sv 1}}{\sp {\sn @unknown\id8405 }{\sv 1}}}\piccropl0 \piccropr0 \piccropt0 \piccropb0 \picscalex100 \picscaley100 \picw99 \pich57 \picwgoal1485 \pichgoal869 \pngblip {\*\blipuid b5c49745b5c49745b5c49745b5c49745}89504e470d0a1a0a0000000d49484452000000630000085f2ba158ada4a90d335dcdd2bbdcc08af1b83971fff0cd070a55458e46a7be4f8784f89b28d78a4d62c881897479cdae4f6145f5a3b9b4800e078ca966423360c004269f5e8e619eb14b4ec7d8ef25fcdf17b87ffad20cac00bbee567fab5eb601a8d6d04005f2919fd430080f6df34955b51d6866f886bcf9dda24aee7dbd429ced0395d8373f714aa6c59c1b079e9aab8b20000c6a7e3dc41b5833a25651f3522929a72b811752f5b64720180a34e532ae5753539c399ba70d89e604b3eced0d1c1bebb0e0aaf73de8deb61630020429fbfa7f837256e63854c31319fb6fddd678dd2ba2772685ab65ab6e94d2d7bfac027db3ed9ba30e01e3f9615dbe76f4870883636cb574afc4e511b9b05d73bb08261b04c0090f269703616e7b1f67137bffbe1c45f33d14f005bf4fba926dc65e5048e4c21ca6a720600e4c5390020ce72066f0c8d0180158d0180985f206ba5505e73466e0ec4ad5094b42731adde887be1f38eb9b33d3a52f74ffa852c945e030087ed334574e6dd499b720f7a7c025fe877a74e964235f5b52ffb08006c4996969f88850c89acfb15689e5900c09986ad04b1ac0000bf53e4778ae09ac2e7e3a95bd3b7dfa5ffc703fbfb142d4c295a9852b430a568614ad1c294a28529450b538a967f01ce893329af3697820000000049454e44ae426082}}{\nonshppict {\pict \piccropl0 \piccropr0 \piccropt0 \piccropb0 \picscalex100 \picscaley100 \picw99 \pich57 \picwgoal1485 \pichgoal869 \wmetafile8 {\*\blipuid b5c49745b5c49745b5c49745b5c49745}0100090000039e0d00000000750d000000000400000003 ";
- FileStream fss = new FileStream(@"C:\Users\CrazyIter\Desktop\trf.rtf", System.IO.FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
- StreamReader srs = new StreamReader(fss, System.Text.Encoding.UTF8);
- string lines;
- StringBuilder builder = new StringBuilder();
- while ((lines = srs.ReadLine()) != null)
- {
- builder.Append(lines.ToString());
- }
- srs.Close();
- string text = builder.ToString();
- //string reg = @"\{\\\*\\blipuid.*?\}";
- string base64 = @"F:\base64.txt";
- string reg = @"\{([\\S].*?)\}";
- var array = Regex.Split(text, reg);
-
- var strs = array.Select((x, index) => new { index, x }).Where(t => t.x.Contains("blipuid")).Select(y => new { str = array[y.index + 1], }).ToList() ;
- StreamReader sr = new StreamReader(base64, Encoding.Default);
- StringBuilder content = new StringBuilder();
- string line;
- while (( line = sr.ReadLine()) != null)
- {
- content.Append(line);
- }
- byte[] bytes = Convert.FromBase64String(content.ToString());
- // 写入文件到指定位置
- using (System.IO.FileStream fs = new System.IO.FileStream("F:\\001.emf", System.IO.FileMode.Create, System.IO.FileAccess.Write))
- {
- fs.Write(bytes, 0, bytes.Length);
- fs.Flush();
- }
- string aasd = "对错对错对错对对错错错错错对对对对对对错对对错对错对错错错错错错对错对错错对错对对对错对对对对错错对错对对对错错对错错对";
- for (int i = 1; i <= aasd.Length; i++) {
- Console.WriteLine($"{i} : {aasd[i-1]}");
- }
- long a = 1123; long b = 500000552;
- var c = a / b;
- string aza = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- string azh = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- string aaa= aza.Replace("A", "A");
- long now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
- Console.WriteLine(now);
- List<Stu> stus = new List<Stu>();
- Random random = new Random();
- for (int i = 0; i < 20; i++) {
- stus.Add(new Stu { id = i + 1,classid= $"class{i %5}",name= $"学生{i+1}",score= random.Next(50 ,100)});
- }
- //源数据
- Console.WriteLine("源数据 -----------------------------");
- stus.ForEach(x => { Console.WriteLine($"{x.id}:{x.classid}:{x.name}:{x.score}"); });
- //排序数据
- Console.WriteLine("排序数据-----------------------------");
- var orderData= stus.OrderBy(x => x.score);
- orderData.ToList().ForEach(x => { Console.WriteLine($"{x.id}:{x.classid}:{x.name}:{x.score}"); });
- //分组数据
- Console.WriteLine("分组数据-----------------------------");
- var groupData= stus.Select(x => new {classid= x.classid,stu= x }).GroupBy(y=>y.classid).ToList();
- groupData.ForEach(x => {
- var classid = x.Key;
- x.ToList().ForEach(y => { Console.WriteLine($"{classid}:{y.stu.name}:{y.stu.id}:{y.stu.classid}:{y.stu.score}"); });
- });
- Console.WriteLine();
- // XslCompiledTransform xslt = new XslCompiledTransform();
- // MemoryResourceResolver resolver = new MemoryResourceResolver();
- //// XmlTextReader xR = new XmlTextReader(new StringReader(styleSheet));
- //// xslt.Load(xR, null, resolver);
- // StringWriter sw = new StringWriter();
- // XmlReader OMML2MML = XmlReader.Create(new StreamReader("D:\\VSProjectCode\\TEAMModelHTEX\\HTEXTest\\xslt\\mmltex.xsl"));
- // XslCompiledTransform xslTransform = new XslCompiledTransform();
- // //resolver.ResolveUri("D:\\VSProjectCode\\TEAMModelHTEX\\HTEXTest\\xslt", "D:\\VSProjectCode\\TEAMModelHTEX\\HTEXTest\\xslt\\mmltex.xsl");
- // xslTransform.Load(OMML2MML, null, resolver);
- // XmlReader OMML2MML = XmlReader.Create(new StreamReader("D:\\VSProjectCode\\TEAMModelHTEX\\HTEXTest\\xslt\\mmltex.xsl"));
- // XslCompiledTransform xslTransform = new XslCompiledTransform();
- // xslTransform.Load(OMML2MML);
- // string mathXml = "<math xmlns:mml=\"http://www.w3.org/1998/Math/MathML\" xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\"><msup><mrow><mfenced separators=\"|\"><mrow><mi>𝑥</mi><mo>+</mo><mi>𝑎</mi></mrow></mfenced></mrow><mrow><mi>𝑛</mi></mrow></msup><mo>=</mo><mrow><msubsup><mo stretchy=\"false\">∑</mo><mrow><mi>𝑘</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>𝑛</mi></mrow></msubsup><mrow><mfenced separators=\"|\"><mrow><mfrac linethickness=\"0pt\"><mrow><mi>𝑛</mi></mrow><mrow><mi>𝑘</mi></mrow></mfrac></mrow></mfenced><msup><mrow><mi>𝑥</mi></mrow><mrow><mi>𝑘</mi></mrow></msup><msup><mrow><mi>𝑎</mi></mrow><mrow><mi>𝑛</mi><mo>−</mo><mi>𝑘</mi></mrow></msup></mrow></mrow></math>";
- string officeML = string.Empty;
- //using (TextReader tr = new StringReader(mathXml))
- //{
- // using (XmlReader reader = XmlReader.Create(tr))
- // {
- // using (MemoryStream ms = new MemoryStream())
- // {
- // XmlWriterSettings settings = xslTransform.OutputSettings.Clone();
- // settings.ConformanceLevel = ConformanceLevel.Fragment;
- // settings.OmitXmlDeclaration = true;
- // XmlWriter xw = XmlWriter.Create(ms, settings);
- // xslTransform.Transform(reader, xw);
- // ms.Seek(0, SeekOrigin.Begin);
- // using (StreamReader sr = new StreamReader(ms, Encoding.UTF8))
- // {
- // officeML = sr.ReadToEnd();
- // }
- // }
- // }
- //}
- // officeML = officeML.Replace("mml:", "");
- //XElement officeElement = XElement.Load(new StringReader(officeML));
- // List<string> sq = new List<string>();
- // sq.Add($"array_contains(c.targetClassIds,'1')");
- // sq.Add($"array_contains(c.targetClassIds,'2')");
- // sq.Add($"array_contains(c.targetClassIds,'3')");
- // string sql = string.Join(" or " ,sq);
- // int rot =559% 2;
- // string qus = "<!DOCTYPE html ><html xmlns=\"http://www.w3.org/1999/xhtml\"><head><meta charset=\"UTF-8\" /><title></title><meta name=\"Generator\" content=\"PowerTools for Open XML\" /><style>span {/* white-space: pre-wrap;*/ }body { margin: 1cm auto; max-width: 20cm; padding: 0; }</style></head><body><div><p dir=\"ltr\" class=\"pt-a\"><span class=\"pt-a0\">" +
- // "{1 判断题}-1是自然数</span></p><p dir=\"ltr\" class=\"pt-a\"><span class=\"pt-a0\">{答案}错</span></p><p dir=\"ltr\" class=\"pt-a\"><span class=\"pt-a0\">{知识点}自然数</span></p><p dir=\"ltr\" class=\"pt-a\"><span class=\"pt-a0\">{评鉴}</span></p><p dir=\"ltr\" class=\"pt-a\"><span class=\"pt-a0\">{配分}5</span></p><p dir=\"ltr\" class=\"pt-a\"><span class=\"pt-a0\">{</span><span class=\"pt-a0\">2</span><span lang=\"zh-CN\" xml:space=\"preserve\" class=\"pt-a0-000000\">判断题}非0为真 A.对 B.错 </span></p><p dir=\"ltr\" class=\"pt-a\"><span class=\"pt-a0\">{知识点}是非判断</span></p><p dir=\"ltr\" class=\"pt-a\"><span class=\"pt-a0\">{配分}5</span></p><p dir=\"ltr\" class=\"pt-a\"><span class=\"pt-a0\">{应用}</span></p><p dir=\"ltr\" class=\"pt-a\"><span class=\"pt-a0\">{答案}A</span></p><p dir=\"ltr\" class=\"pt-a-000001\"><span xml:space=\"preserve\" class=\"pt-000002\"> </span></p><p dir=\"ltr\" class=\"pt-a-000001\"><span xml:space=\"preserve\" class=\"pt-000002\"> </span></p><p dir=\"ltr\" class=\"pt-a-000001\"><span class=\"pt-a0-000003\">{3单选题}</span><span lang=\"zh-CN\" class=\"pt-a0-000004\">中国的创新发展战略使科技领域不断取得新成果,下列说法正确的是</span><span lang=\"zh-CN\" class=\"pt-a0-000004\">( )</span></p><p dir=\"ltr\" class=\"pt-a-000001\"><span class=\"pt-a0-000004\">A.智能机器人只能通过声音信号控制</span><span xml:space=\"preserve\" class=\"pt-a0-000004\"> </span><span class=\"pt-a0-000004\">B.北斗卫星导航是通过光纤传递信息</span></p><p dir=\"ltr\" class=\"pt-a-000001\"><span class=\"pt-a0-000004\">C.无人自动驾驶汽车行驶不需要消耗能量</span><span xml:space=\"preserve\" class=\"pt-a0-000004\"> </span><span class=\"pt-a0-000004\">D.用5G手机上网是通过电磁波传递信息</span></p><p dir=\"ltr\" class=\"pt-a-000001\"><span class=\"pt-a0-000004\">{答案}D</span></p><p dir=\"ltr\" class=\"pt-a-000005\"><span class=\"pt-a0-000003\">{解析}</span><span class=\"pt-a0-000006\">A.智能机器人可以通过电磁波信号控制。B.北斗卫星通过电磁波传递信息。C.无人驾驶汽车需要消耗能量。</span></p><p dir=\"ltr\" class=\"pt-a-000001\"><span class=\"pt-a0-000003\">";
- // string qus1 = "{1问答题}文字{答案}4*4=16,3+3+3=9{解析}正方形面积为边长的平方,三角形的边长*3为周长{知识点}三角形,正方形,面积{2问答题}圆的面积公式是什么。{解析}正方形面积为边长的平方,三角形的边长*3为周长{答案}4*4=16,3+3+3=9{配分}10{知识点}三角形,正方形,面积{应用}{3问答题}平行四边形的面积公式是什么。{配分}10{应用}";
- // string qus2 = "{2问答题}圆的面积公式是什么。{解析}正方形面积为边长的平方,三角形的边长*3为周长{答案}4*4=16,3+3+3=9{配分}10{知识点}三角形,正方形,面积{应用}";
- // string qus3 = "{3问答题}平行四边形的面积公式是什么。{配分}10{应用}";
- // var rrre = Regex.Split(qus, "{([\\s]*?)}");
- // var rrr= Regex.Split(qus, "{([\\S]*?)}");
- // var rrrs = Regex.Split(qus, "{(.*?)}");
- // List<string> an = new List<string>();
- // bool taga = false;
- // bool tagb = false;
- // int ina = 0;
- // int inb = 0;
- // int inc = 0;
- // int ind = 0;
- // for (int i = 0; i < qus1.Length; i++) {
- // if (qus1[i].Equals('{')) {
- // taga = true;
- // ina = i;
- // }
- // if (qus1[i].Equals('}')&& taga==true)
- // {
- // inb = i;
- // tagb = true;
- // }
- // if (inb > 0 && taga&& tagb) {
- // an.Add(qus1.Substring(ina, inb - ina));
- // taga = false;
- // tagb = false;
- // ina = 0;
- // inb = 0;
- // }
- // }
- // List<string> sdee = new List<string>();
- // sdee.Add("三角形");
- // sdee.Add("正方形");
- // sdee.Add("面积");
- // sdee.Add("正方形");
- // sdee.Add("周长");
- // sdee.Add("圆");
- //var fd= sdee.IndexOf("圆");
- // var fr = sdee.IndexOf("方");
- // string ssss = "三角形.正方形,面积、正方形,周长:圆";
- // string[]eeee= Regex.Split(ssss, "\\.|\\.|\\、|\\:|\\:|\\,|\\,|\\;|\\;");
- // var reg = "^[0-9]+(\\.?[0-9]+)?";
- // Match m1t = Regex.Match("1223.444,5678,", reg);
- // Console.WriteLine(m1t.Value);
- // Dictionary<string, string> question = new Dictionary<string, string> {
- // { "Summary", "{\\d+问答题}" },
- // { "Answer", "{答案}" },
- // { "Score", "{配分}" },
- // { "Point", "{知识点}" },
- // { "Analysis", "{解析}" },
- // { "Filed1", "{知识}" },
- // { "Filed2", "{理解}" },
- // { "Filed3", "{应用}" },
- // { "Filed4", "{分析}" },
- // { "Filed5", "{综合}" },
- // { "Filed6", "{评鉴}" }
- // };
- // Dictionary<string, string> dict = new Dictionary<string, string> ();
- // foreach (var mkey in question.Keys) {
- // //比较最短的
- // List<string> val = new List<string>();
- // string RegexStr = question [mkey] +".*";
- // Match mt = Regex.Match(qus1, RegexStr);
- // val.Add(mt.Value);
- // foreach (var skey in question.Keys)
- // {
- // if (mkey != skey) {
- // RegexStr = question[mkey] + "([\\s\\S]*?)" + question[skey];
- // mt = Regex.Match(qus1, RegexStr);
- // if (!string.IsNullOrWhiteSpace(mt.Value)) {
- // val.Add(mt.Value);
- // }
- // }
- // }
- // val = val.OrderBy(s => s.Length).ToList() ;
- // dict.Add(mkey,val.First());
- // }
- // var keys = dict.Keys;
- // foreach (string key in keys) {
- // switch (key) {
- // case "Summary":
- // break;
- // case "Answer":
- // break;
- // case "Score":
- // break;
- // case "Point":
- // break;
- // case "Filed1":
- // break;
- // case "Filed2":
- // break;
- // case "Filed3":
- // break;
- // case "Filed4":
- // break;
- // case "Filed5":
- // break;
- // case "Filed6":
- // break;
- // default: break;
- // }
- // }
- //IWorkbook wb = new XSSFWorkbook();
- //ISheet sheet = wb.CreateSheet("linechart");
- //IRow row;
- //ICell cell;
- //for (int rowIndex = 0; rowIndex < NUM_OF_ROWS; rowIndex++)
- //{
- // row = sheet.CreateRow((short)rowIndex);
- // for (int colIndex = 0; colIndex < NUM_OF_COLUMNS; colIndex++)
- // {
- // cell = row.CreateCell((short)colIndex);
- // cell.SetCellValue(colIndex * (rowIndex + 1));
- // }
- //}
- //IDrawing drawing = sheet.CreateDrawingPatriarch();
- //IClientAnchor anchor1 = drawing.CreateAnchor(0, 0, 0, 0, 0, 5, 10, 15);
- //CreateChart(drawing, sheet, anchor1, "title1", "title2");
- //IClientAnchor anchor2 = drawing.CreateAnchor(0, 0, 0, 0, 0, 20, 10, 35);
- //CreateChart(drawing, sheet, anchor2, "s1", "s2");
- //using (FileStream fs = File.Create("F:\\test5.png"))
- //{
- // wb.Write(fs);
- //}
- //HTEXTranslator("F:\\zip测试.zip");
- //var a = new HandWriteRecognizerCSharp.InkAnalyzer();
- // a.Recognizer("", 1);
- // var sesa= Convert.FromBase64String(s_Blank_wml_base64);
- //var s_EmptyDocument = new WmlDocument("F:\\EmptyDocument.xml", Convert.FromBase64String(s_Blank_wml_base64));
- // s_EmptyDocument.Save();
- // Stream stream123 = new MemoryStream(sesa);
- // // 把 Stream 转换成 byte[]
- // byte[] bytes = new byte[stream123.Length];
- // stream123.Read(bytes, 0, bytes.Length);
- // // 设置当前流的位置为流的开始
- // stream123.Seek(0, SeekOrigin.Begin);
- // // 把 byte[] 写入文件
- // FileStream fs = new FileStream("F:\\123.xml", FileMode.Create);
- // BinaryWriter bw = new BinaryWriter(fs);
- // bw.Write(bytes);
- // bw.Close();
- // fs.Close();
- // FileStream stream= new FileStream("F:\\WORD解析\\测试多种插入图形.docx", FileMode.Open,FileAccess.ReadWrite);
- // var s = new DOXC2HTMLTranslator().Translate(stream);
- // var saes = Convert.FromBase64String(s_Blank_wml_base64);
- // List<string> option = new List<string>() {"A","B","A","C","D","B","D","A" ,"C","A","C"};
- //var dddd= option.GroupBy(x => x);
- // foreach (var dd in dddd) {
- // var ddds = dd.Count();
- // Console.WriteLine(ddds);
- // }
- // Console.WriteLine(getWeek(DateTimeOffset.UtcNow.AddDays(-13)));
- // var str = "123456789";
- // var aa = DESEnCode(str);
- // Console.WriteLine(aa);
- // var encode = "52A8A78FB4FAB031F5D62EAE7AD5EA6B9AC97E2F05771FA7455EBF68265AD0D7AC892DDC041D15486EC8E90922C0CA1FE1C59962FE5C980C29861DFC1FC0CD30E59B6CC02EBC46172221A71CA7FF8F0111604D862BB78C317AB52608F08639B4B815A3F8A2D0C9D980E5D4C82E5F94618C30C5C87A52AFF44B60E931508381279C6F53BA47453F96570FF73C41E9D8456690BBA9BE1B78146AE66F93CB0FDCBE8030AC2A6302F5CC1C9064E8282C9E7B0B96F447D44D73AE0D0532F939999A6CEA4FBD9F9AF09E44BEDCD6252898C4C0DA2E299D193A690DDADFB0CCE641F228ADA1434AFFC16EDC4803FF71D8A705FD525E735DCA594B2AFC5AF529E999F1CEE7AB4E1CE2EDBDED422EF41900CCDDA67E7BA71B4523E921ABDF0A6853E3E3F4";
- // Console.WriteLine(Decrypt(encode, "cstftsmf"));
- // List<double> ds = new List<double>();
- // ds.Add(0);
- // ds.Add(51.222);
- // ds.Add(60);
- // ds.Add(70);
- // ds.Add(80);
- // Console.WriteLine(2.ToString().PadRight(4, '0') + 1.ToString().PadLeft(3, '0'));
- // Console.WriteLine(25.ToString().PadRight(4, '0') + 10.ToString().PadLeft(3, '0'));
- // Console.WriteLine(225.ToString().PadRight(4, '0') + 110.ToString().PadLeft(3, '0'));
- // Console.WriteLine(125.ToString().PadRight(4, '0') + 0.ToString().PadLeft(3, '0'));
- // XmlDocument doc = new XmlDocument();
- // Console.WriteLine(BulletAutonumberHelper.IntToCircle(15, true));
- // Console.WriteLine( BulletAutonumberHelper.IntToRoman(12, true));
- // Console.WriteLine(BulletAutonumberHelper.IntToRoman(27, true));
- // Console.WriteLine(BulletAutonumberHelper.IntToChar(25,false));
- // Console.WriteLine(BulletAutonumberHelper.IntToChar(26, false));
- // Console.WriteLine(BulletAutonumberHelper.IntToChar(27, false));
- // Console.WriteLine(BulletAutonumberHelper.IntToChar(2019, false));
- // Color color = ColorTranslator.FromHtml("#" + "FF0000CC");
- // string cls= ColorTranslator.ToHtml(color);
- // string time = string.Format("{0:yyyyMMdd-HH:mm:ss.fff}", DateTimeOffset.Now);
- // TimeSpan ts = DateTimeOffset.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
- // var tim= Convert.ToInt64(ts.TotalMilliseconds).ToString();
- // string appid = "4E28C6F06EDA495491FA7943C143E534";
- // string appkey = "3B83808EE00E42DFBBEB7502331CF1D8";
- // string key = appid + appkey + tim;
- // var sha = ShaHashHelper.GetSHA1(key).ToUpper() ;
- // List<IPAddress> a = getIPAddressE();
- // foreach (var ae in a) {
- // Console.WriteLine(ae);
- // }
- // string jsonStr = "{name:计算数据大表名称,num:15,sheet:[{sheetName:不同时期,nums:[23,52,86],special:[准业务,磨合期,老业主,稳定期]},{sheetName:50分制}]}";
- // string jsonStro = jsonStr.Replace(",", ",");
- }
- private static string s_Blank_wml_base64 = @"UEsDBBQABgAIAAAAIQAJJIeCgQEAAI4FAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAAC
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0
- lE1Pg0AQhu8m/geyVwPbejDGlPag9ahNrPG8LkPZyH5kZ/v17x1KS6qhpVq9kMAy7/vMCzOD0UqX
- 0QI8KmtS1k96LAIjbabMLGWv08f4lkUYhMlEaQ2kbA3IRsPLi8F07QAjqjaYsiIEd8c5ygK0wMQ6
- MHSSW69FoFs/407IDzEDft3r3XBpTQAT4lBpsOHgAXIxL0M0XtHjmsRDiSy6r1+svFImnCuVFIFI
- +cJk31zirUNClZt3sFAOrwiD8VaH6uSwwbbumaLxKoNoInx4Epow+NL6jGdWzjX1kByXaeG0ea4k
- NPWVmvNWAiJlrsukOdFCmR3/QQ4M6xLw7ylq3RPt31QoxnkOkj52dx4a46rppLbYq+12gxAopFNM
- vv6CcVfouFXuRFjC+8u/UeyJd4LkNBpT8V7CCYn/MIxGuhMi0LwD31z7Z3NsZI5Z0mRMvHVI+8P/
- ou3dgqiqYxo5Bz4oaFZE24g1jrR7zu4Pqu2WQdbizTfbdPgJAAD//wMAUEsDBBQABgAIAAAAIQAe
- kRq38wAAAE4CAAALAAgCX3JlbHMvLnJlbHMgogQCKKAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJLbSgNBDIbvBd9hyH032woi0tneSKF3
- IusDhJnsAXcOzKTavr2jILpQ217m9OfLT9abg5vUO6c8Bq9hWdWg2JtgR99reG23iwdQWchbmoJn
- DUfOsGlub9YvPJGUoTyMMaui4rOGQSQ+ImYzsKNchci+VLqQHEkJU4+RzBv1jKu6vsf0VwOamaba
- WQ1pZ+9AtcdYNl/WDl03Gn4KZu/Yy4kVyAdhb9kuYipsScZyjWop9SwabDDPJZ2RYqwKNuBpotX1
- RP9fi46FLAmhCYnP83x1nANaXg902aJ5x687HyFZLBZ9e/tDg7MvaD4BAAD//wMAUEsDBBQABgAI
- AAAAIQB8O5c5IgEAALkDAAAcAAgBd29yZC9fcmVscy9kb2N1bWVudC54bWwucmVscyCiBAEooAAB
- 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";
- }
- }
|