init repo

This commit is contained in:
nikolay ivanov
2014-07-05 18:22:49 +00:00
commit a8be6b9e72
17348 changed files with 9229832 additions and 0 deletions

View File

@@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual C# Express 2008
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PdfWriter", "PdfWriter\PdfWriter.csproj", "{D7628414-F181-49AB-9E23-76D741426641}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D7628414-F181-49AB-9E23-76D741426641}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D7628414-F181-49AB-9E23-76D741426641}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D7628414-F181-49AB-9E23-76D741426641}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D7628414-F181-49AB-9E23-76D741426641}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,952 @@
/*
* (c) Copyright Ascensio System SIA 2010-2014
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.IO;
namespace PdfWriter
{
enum CommandType
{
ctPenXML = 0,
ctPenColor = 1,
ctPenAlpha = 2,
ctPenSize = 3,
ctPenDashStyle = 4,
ctPenLineStartCap = 5,
ctPenLineEndCap = 6,
ctPenLineJoin = 7,
ctPenDashPatern = 8,
ctPenDashPatternCount = 9,
ctPenDashOffset = 10,
ctPenAlign = 11,
ctPenMiterLimit = 12,
ctBrushXML = 20,
ctBrushType = 21,
ctBrushColor1 = 22,
ctBrushColor2 = 23,
ctBrushAlpha1 = 24,
ctBrushAlpha2 = 25,
ctBrushTexturePath = 26,
ctBrushTextureAlpha = 27,
ctBrushTextureMode = 28,
ctBrushRectable = 29,
ctBrushRectableEnabled = 30,
ctBrushGradient = 31,
ctFontXML = 40,
ctFontName = 41,
ctFontSize = 42,
ctFontStyle = 43,
ctFontPath = 44,
ctFontGID = 45,
ctFontCharSpace = 46,
ctShadowXML = 50,
ctShadowVisible = 51,
ctShadowDistanceX = 52,
ctShadowDistanceY = 53,
ctShadowBlurSize = 54,
ctShadowColor = 55,
ctShadowAlpha = 56,
ctEdgeXML = 70,
ctEdgeVisible = 71,
ctEdgeDistance = 72,
ctEdgeColor = 73,
ctEdgeAlpha = 74,
ctDrawText = 80,
ctDrawTextEx = 81,
ctPathCommandMoveTo = 91,
ctPathCommandLineTo = 92,
ctPathCommandLinesTo = 93,
ctPathCommandCurveTo = 94,
ctPathCommandCurvesTo = 95,
ctPathCommandArcTo = 96,
ctPathCommandClose = 97,
ctPathCommandEnd = 98,
ctDrawPath = 99,
ctPathCommandStart = 100,
ctPathCommandGetCurrentPoint = 101,
ctPathCommandText = 102,
ctPathCommandTextEx = 103,
ctDrawImage = 110,
ctDrawImageFromFile = 111,
ctSetParams = 120,
ctBeginCommand = 121,
ctEndCommand = 122,
ctSetTransform = 130,
ctResetTransform = 131,
ctClipMode = 140,
ctCommandLong1 = 150,
ctCommandDouble1 = 151,
ctCommandString1 = 152,
ctCommandLong2 = 153,
ctCommandDouble2 = 154,
ctCommandString2 = 155,
ctPageWidth = 200,
ctPageHeight = 201,
ctPageStart = 202,
ctPageEnd = 203,
ctError = 255
}
public class CPdfWriter
{
private string m_sHtmlPlace = "";
private string m_sThemesPlace = "";
private bool m_bIsUnregistredVersion = false;
List<string> m_arTmpTexturePrushPaths = new List<string>();
public void SetHtmlPlace(string sRoot)
{
m_sHtmlPlace = sRoot;
}
public void SetThemesPlace(string sRoot)
{
m_sThemesPlace = sRoot;
}
public void SetUnregistredVersion(bool bIsUnReg)
{
m_bIsUnregistredVersion = bIsUnReg;
}
public bool SavePdf2(string sPathXml, string sDstFile)
{
try
{
AVSOfficePDFWriter.CPDFWriterClass oWriter = new AVSOfficePDFWriter.CPDFWriterClass();
oWriter.CreatePDF();
XmlDocument oDocument = new XmlDocument();
oDocument.Load(sPathXml);
XmlNodeList list = oDocument.ChildNodes[0].ChildNodes;
int nPagesCount = list.Count;
for (int nPage = 0; nPage < nPagesCount; ++nPage)
{
oWriter.NewPage();
oWriter.BeginCommand(1);
XmlNodeList nodes = list[nPage].ChildNodes;
int nCommandsCount = nodes.Count;
bool bIsPathOpened = false;
for (int nCommand = 0; nCommand < nCommandsCount; ++nCommand)
{
XmlNode oNode = nodes[nCommand];
XmlAttributeCollection attr = oNode.Attributes;
CommandType type = (CommandType)Convert.ToInt32(oNode.Attributes["t"].Value);
switch (type)
{
case CommandType.ctPenColor:
oWriter.PenColor = Convert.ToInt32(attr["v"].Value);
break;
case CommandType.ctPenAlpha:
oWriter.PenAlpha = Convert.ToInt32(attr["v"].Value);
break;
case CommandType.ctPenSize:
oWriter.PenSize = Convert.ToDouble(attr["v"].Value);
break;
case CommandType.ctBrushColor1:
oWriter.BrushColor1 = Convert.ToInt32(attr["v"].Value);
break;
case CommandType.ctBrushAlpha1:
oWriter.BrushAlpha1 = Convert.ToInt32(attr["v"].Value);
break;
case CommandType.ctBrushColor2:
oWriter.BrushColor2 = Convert.ToInt32(attr["v"].Value);
break;
case CommandType.ctBrushAlpha2:
oWriter.BrushAlpha2 = Convert.ToInt32(attr["v"].Value);
break;
case CommandType.ctSetTransform:
oWriter.SetTransform(Convert.ToDouble(attr["m1"].Value), Convert.ToDouble(attr["m2"].Value), Convert.ToDouble(attr["m3"].Value),
Convert.ToDouble(attr["m4"].Value), Convert.ToDouble(attr["m5"].Value), Convert.ToDouble(attr["m6"].Value));
break;
case CommandType.ctPathCommandStart:
if (bIsPathOpened)
{
oWriter.PathCommandEnd();
oWriter.EndCommand(4);
oWriter.PathCommandStart();
oWriter.BeginCommand(4);
}
else
{
oWriter.PathCommandStart();
oWriter.BeginCommand(4);
}
bIsPathOpened = true;
break;
case CommandType.ctPathCommandMoveTo:
oWriter.PathCommandMoveTo(Convert.ToDouble(attr["x"].Value), Convert.ToDouble(attr["y"].Value));
break;
case CommandType.ctPathCommandLineTo:
oWriter.PathCommandLineTo(Convert.ToDouble(attr["x"].Value), Convert.ToDouble(attr["y"].Value));
break;
case CommandType.ctPathCommandCurveTo:
oWriter.PathCommandCurveTo(Convert.ToDouble(attr["x1"].Value), Convert.ToDouble(attr["y1"].Value), Convert.ToDouble(attr["x2"].Value),
Convert.ToDouble(attr["y2"].Value), Convert.ToDouble(attr["x3"].Value), Convert.ToDouble(attr["y3"].Value));
break;
case CommandType.ctPathCommandClose:
oWriter.PathCommandClose();
break;
case CommandType.ctDrawPath:
oWriter.DrawPath(Convert.ToInt32(attr["v"].Value));
break;
case CommandType.ctDrawImageFromFile:
oWriter.DrawImageFromFile(attr["src"].Value, Convert.ToDouble(attr["x"].Value), Convert.ToDouble(attr["y"].Value),
Convert.ToDouble(attr["w"]), Convert.ToDouble(attr["h"].Value));
break;
case CommandType.ctFontName:
oWriter.FontName = attr["v"].Value;
break;
case CommandType.ctFontSize:
oWriter.FontSize = Convert.ToDouble(attr["v"].Value);
break;
case CommandType.ctFontStyle:
oWriter.FontStyle = Convert.ToInt32(attr["v"].Value);
break;
case CommandType.ctDrawText:
oWriter.CommandDrawText(attr["v"].Value, Convert.ToDouble(attr["x"].Value), Convert.ToDouble(attr["y"].Value), 0, 0, 0);
break;
default:
break;
};
}
if (bIsPathOpened)
{
oWriter.PathCommandEnd();
oWriter.EndCommand(4);
}
oWriter.EndCommand(1);
}
oWriter.SaveToFile(sDstFile);
return true;
}
catch
{
return false;
}
}
public bool SavePdf(string sPathXml, string sDstFile)
{
m_arTmpTexturePrushPaths.Clear();
CommandType eCommand = CommandType.ctError;
int len = 0;
int curindex = 0;
int nCountPages = 0;
string sTempLogo = "";
try
{
AVSGraphics.CAVSWinFonts winfonts = new AVSGraphics.CAVSWinFontsClass();
AVSOfficePDFWriter.CPDFWriterClass oWriter = new AVSOfficePDFWriter.CPDFWriterClass();
oWriter.CreatePDF();
oWriter.SetPDFCompressionMode(15);
bool bIsPathOpened = false;
StringBuilder sHypers = new StringBuilder();
sHypers.Append("<linker>");
unsafe
{
string[] array50 = File.ReadAllLines(sPathXml, Encoding.UTF8);
for (int index50 = 0; index50 < array50.Length; index50++)
{
byte[] dstArray = Convert.FromBase64String(array50[index50]);
len = dstArray.Length;
curindex = 0;
Int32* m = null;
UInt16* ms = null;
int _sLen = 0;
string s = "";
double m1 = 0;
double m2 = 0;
double m3 = 0;
double m4 = 0;
double m5 = 0;
double m6 = 0;
string imgPath = "";
string base64Temp = "";
fixed (byte* p = dstArray)
{
byte* current = p;
while (curindex < len)
{
eCommand = (CommandType)(*current);
current++;
curindex++;
switch (eCommand)
{
case CommandType.ctPageWidth:
m = (Int32*)current;
current += 4;
curindex += 4;
oWriter.Width = ((*m) / 100000.0);
break;
case CommandType.ctPageHeight:
m = (Int32*)current;
current += 4;
curindex += 4;
oWriter.Height = ((*m) / 100000.0);
break;
case CommandType.ctPageStart:
oWriter.NewPage();
oWriter.BeginCommand(1);
++nCountPages;
break;
case CommandType.ctPageEnd:
if (bIsPathOpened)
{
oWriter.PathCommandEnd();
oWriter.EndCommand(4);
}
bIsPathOpened = false;
if (m_bIsUnregistredVersion)
{
double ww = oWriter.Width;
double wh = oWriter.Height;
double dR = ww - 13;
double dB = wh - 5;
double k = 1.0;
if (ww <= wh)
{
double k1 = ww / 210;
double k2 = wh / 297;
k = Math.Min(k1, k2);
}
else
{
double k1 = ww / 297;
double k2 = wh / 210;
k = Math.Min(k1, k2);
}
double dW = 15 * 5.9 * k;
double dH = 15 * k;
double dKoef = 72 / 25.4;
sHypers.AppendFormat("<link><source x=\"{0}\" y=\"{1}\" width=\"{2}\" height=\"{3}\" page=\"{4}\"/>", (int)((dR - dW) * dKoef), (int)((dB - dH) * dKoef), (int)(dW * dKoef), (int)(dH * dKoef), nCountPages - 1);
sHypers.Append("<target url=\"www.teamlab.com\"/></link>");
oWriter.ResetTransform();
if ("" == sTempLogo)
{
sTempLogo = Path.GetTempFileName();
File.WriteAllBytes(sTempLogo, PdfWriter.Properties.Resources.logo);
}
oWriter.DrawImageFromFile(sTempLogo, dR - dW, dB - dH, dW, dH);
}
oWriter.EndCommand(1);
break;
case CommandType.ctPenColor:
m = (Int32*)current;
oWriter.PenColor = *m;
current += 4;
curindex += 4;
break;
case CommandType.ctPenAlpha:
oWriter.PenAlpha = *current;
current++;
curindex++;
break;
case CommandType.ctPenSize:
m = (Int32*)current;
oWriter.PenSize = *m / 100000.0;
current += 4;
curindex += 4;
break;
case CommandType.ctPenLineJoin:
oWriter.PenLineJoin = *current;
current++;
curindex++;
break;
case CommandType.ctBrushType:
m = (Int32*)current;
oWriter.BrushType = *m;
current += 4;
curindex += 4;
break;
case CommandType.ctBrushColor1:
m = (Int32*)current;
oWriter.BrushColor1 = *m;
current += 4;
curindex += 4;
break;
case CommandType.ctBrushAlpha1:
oWriter.BrushAlpha1 = *current;
current++;
curindex++;
break;
case CommandType.ctBrushColor2:
m = (Int32*)current;
oWriter.BrushColor1 = *m;
current += 4;
curindex += 4;
break;
case CommandType.ctBrushAlpha2:
oWriter.BrushAlpha2 = *current;
current++;
curindex++;
break;
case CommandType.ctBrushRectable:
m = (Int32*)current;
current += 4 * 4;
curindex += 4 * 4;
m1 = (*m++) / 100000.0;
m2 = (*m++) / 100000.0;
m3 = (*m++) / 100000.0;
m4 = (*m++) / 100000.0;
oWriter.BrushRect(0, m1, m2, m3, m4);
break;
case CommandType.ctBrushRectableEnabled:
bool bEn = (1 == *current);
oWriter.SetAdditionalParam("BrushFillBoundsEnable", bEn);
current += 1;
curindex += 1;
break;
case CommandType.ctBrushTexturePath:
ms = (UInt16*)current;
current += 2;
curindex += 2;
_sLen = (int)(*ms);
s = new string((char*)current, 0, _sLen);
imgPath = s;
if (0 != s.IndexOf("http:") &&
0 != s.IndexOf("https:") &&
0 != s.IndexOf("ftp:") &&
0 != s.IndexOf("file:"))
{
if (0 == s.IndexOf("theme"))
{
imgPath = Path.Combine(m_sThemesPlace, s);
}
else
{
imgPath = Path.Combine(m_sHtmlPlace, s);
int _len = imgPath.Length;
int ind = imgPath.LastIndexOf(".svg");
if (ind != -1)
{
if (ind == (_len - 4))
{
string sInterest = imgPath.Substring(0, ind);
if (File.Exists(sInterest + ".emf"))
imgPath = sInterest + ".emf";
else if (File.Exists(sInterest + ".wmf"))
imgPath = sInterest + ".wmf";
}
}
}
}
base64Temp = "";
if (0 == s.IndexOf("data:"))
{
try
{
int nFind = s.IndexOf(",");
s = s.Remove(0, nFind + 1);
base64Temp = Path.GetTempFileName();
byte[] byteIm = Convert.FromBase64String(s);
File.WriteAllBytes(base64Temp, byteIm);
imgPath = base64Temp;
}
catch
{
}
}
current += 2 * _sLen;
curindex += 2 * _sLen;
oWriter.BrushTexturePath = imgPath;
if (base64Temp != "")
{
m_arTmpTexturePrushPaths.Add(base64Temp);
}
break;
case CommandType.ctBrushGradient:
current++;
curindex++;
string strAttrMain = "";
string strColors = "";
bool bIsLinear = true;
while (true)
{
byte _command = *current;
current++;
curindex++;
if (251 == _command)
break;
switch (_command)
{
case 0:
{
current += 5;
curindex += 5;
m = (Int32*)current;
current += 4 * 4;
curindex += 4 * 4;
double d1 = (*m++) / 100000.0;
double d2 = (*m++) / 100000.0;
double d3 = (*m++) / 100000.0;
double d4 = (*m++) / 100000.0;
strAttrMain = String.Format("x1=\"{0}\" y1=\"{1}\" x2=\"{2}\" y2=\"{3}\" gradientUnits=\"userSpaceOnUse\"", d1, d2, d3, d4);
strAttrMain = strAttrMain.Replace(',', '.');
break;
}
case 1:
{
bIsLinear = false;
current++;
curindex++;
m = (Int32*)current;
current += 6 * 4;
curindex += 6 * 4;
double d1 = (*m++) / 100000.0;
double d2 = (*m++) / 100000.0;
double d3 = (*m++) / 100000.0;
double d4 = (*m++) / 100000.0;
double d5 = (*m++) / 100000.0;
double d6 = (*m++) / 100000.0;
strAttrMain = String.Format("cx=\"{0}\" cy=\"{1}\" r0=\"{2}\" r1=\"{3}\" rx=\"{4}\" ry=\"{5}\" gradientUnits=\"userSpaceOnUse\"", d1, d2, d5, d6, d1, d2);
strAttrMain = strAttrMain.Replace(',', '.');
break;
}
case 2:
{
int nCountColors = *((Int32*)current);
current += 4;
curindex += 4;
for (int nI = 0; nI < nCountColors; ++nI)
{
int pos = *((Int32*)current);
current += 4;
curindex += 4;
double dPos = pos / 100000.0;
byte _r = *current++;
byte _g = *current++;
byte _b = *current++;
byte _a = *current++;
curindex += 4;
int _color = ((_b << 16) & 0xFF0000) | ((_g << 8) & 0xFF00) | _r;
string sColor = String.Format("<stop stop-color=\"{0}\" stop-opacity=\"{1}\" offset=\"{2}\" />", _color, _a / 255.0, dPos);
sColor = sColor.Replace(',', '.');
strColors += sColor;
}
break;
}
default:
break;
};
}
string strXml = "";
if (bIsLinear)
{
strXml = "<linearGradient " + strAttrMain + ">" + strColors + "</linearGradient>";
oWriter.SetAdditionalParam("Fill-LinearGradient", strXml);
}
else
{
strXml = "<radialGradient " + strAttrMain + ">" + strColors + "</radialGradient>";
oWriter.SetAdditionalParam("Fill-RadialGradient", strXml);
}
break;
case CommandType.ctBrushTextureMode:
int mode = (int)(*current);
oWriter.BrushTextureMode = mode;
current += 1;
curindex += 1;
break;
case CommandType.ctBrushTextureAlpha:
int txalpha = (int)(*current);
oWriter.BrushTextureAlpha = txalpha;
current += 1;
curindex += 1;
break;
case CommandType.ctSetTransform:
m = (Int32*)current;
current += 6 * 4;
curindex += 6 * 4;
m1 = (*m++) / 100000.0;
m2 = (*m++) / 100000.0;
m3 = (*m++) / 100000.0;
m4 = (*m++) / 100000.0;
m5 = (*m++) / 100000.0;
m6 = (*m++) / 100000.0;
oWriter.SetTransform(m1, m2, m3, m4, m5, m6);
break;
case CommandType.ctPathCommandStart:
if (bIsPathOpened)
{
oWriter.PathCommandEnd();
oWriter.EndCommand(4);
oWriter.BeginCommand(4);
oWriter.PathCommandStart();
}
else
{
oWriter.BeginCommand(4);
oWriter.PathCommandStart();
}
bIsPathOpened = true;
break;
case CommandType.ctPathCommandEnd:
if (bIsPathOpened)
{
oWriter.PathCommandEnd();
oWriter.EndCommand(4);
bIsPathOpened = false;
}
break;
case CommandType.ctPathCommandMoveTo:
m = (Int32*)current;
current += 2 * 4;
curindex += 2 * 4;
m1 = (*m++) / 100000.0;
m2 = (*m++) / 100000.0;
oWriter.PathCommandMoveTo(m1, m2);
break;
case CommandType.ctPathCommandLineTo:
m = (Int32*)current;
current += 2 * 4;
curindex += 2 * 4;
m1 = (*m++) / 100000.0;
m2 = (*m++) / 100000.0;
oWriter.PathCommandLineTo(m1, m2);
break;
case CommandType.ctPathCommandCurveTo:
m = (Int32*)current;
current += 6 * 4;
curindex += 6 * 4;
m1 = (*m++) / 100000.0;
m2 = (*m++) / 100000.0;
m3 = (*m++) / 100000.0;
m4 = (*m++) / 100000.0;
m5 = (*m++) / 100000.0;
m6 = (*m++) / 100000.0;
oWriter.PathCommandCurveTo(m1, m2, m3, m4, m5, m6);
break;
case CommandType.ctPathCommandClose:
oWriter.PathCommandClose();
break;
case CommandType.ctDrawPath:
m = (Int32*)current;
current += 4;
curindex += 4;
oWriter.DrawPath(*m);
break;
case CommandType.ctDrawImageFromFile:
m = (Int32*)current;
current += 4;
curindex += 4;
_sLen = (int)(*m);
_sLen /= 2;
s = new string((char*)current, 0, _sLen);
imgPath = s;
if (0 != s.IndexOf("http:") &&
0 != s.IndexOf("https:") &&
0 != s.IndexOf("ftp:") &&
0 != s.IndexOf("file:"))
{
if (0 == s.IndexOf("theme"))
{
imgPath = Path.Combine(m_sThemesPlace, s);
}
else
{
imgPath = Path.Combine(m_sHtmlPlace, s);
int _len = imgPath.Length;
int ind = imgPath.LastIndexOf(".svg");
if (ind != -1)
{
if (ind == (_len - 4))
{
string sInterest = imgPath.Substring(0, ind);
if (File.Exists(sInterest + ".emf"))
imgPath = sInterest + ".emf";
else if (File.Exists(sInterest + ".wmf"))
imgPath = sInterest + ".wmf";
}
}
}
}
base64Temp = "";
if (0 == s.IndexOf("data:"))
{
try
{
int nFind = s.IndexOf(",");
s = s.Remove(0, nFind + 1);
base64Temp = Path.GetTempFileName();
byte[] byteIm = Convert.FromBase64String(s);
File.WriteAllBytes(base64Temp, byteIm);
imgPath = base64Temp;
}
catch
{
}
}
current += 2 * _sLen;
curindex += 2 * _sLen;
m = (Int32*)current;
current += 4 * 4;
curindex += 4 * 4;
m1 = (*m++) / 100000.0;
m2 = (*m++) / 100000.0;
m3 = (*m++) / 100000.0;
m4 = (*m++) / 100000.0;
try
{
oWriter.DrawImageFromFile(imgPath, m1, m2, m3, m4);
}
catch { }
if (base64Temp != "")
{
File.Delete(base64Temp);
}
break;
case CommandType.ctFontName:
ms = (UInt16*)current;
current += 2;
curindex += 2;
_sLen = (int)(*ms);
s = new string((char*)current, 0, _sLen);
current += 2 * _sLen;
curindex += 2 * _sLen;
oWriter.FontName = s;
break;
case CommandType.ctFontSize:
m = (Int32*)current;
current += 4;
curindex += 4;
m1 = (*m++) / 100000.0;
oWriter.FontSize = Math.Min(m1, 1000.0);
break;
case CommandType.ctFontStyle:
m = (Int32*)current;
current += 4;
curindex += 4;
oWriter.FontStyle = *m;
break;
case CommandType.ctDrawText:
ms = (UInt16*)current;
current += 2;
curindex += 2;
_sLen = (int)(*ms);
s = new string((char*)current, 0, _sLen);
current += 2 * _sLen;
curindex += 2 * _sLen;
m = (Int32*)current;
current += 2 * 4;
curindex += 2 * 4;
m1 = (*m++) / 100000.0;
m2 = (*m++) / 100000.0;
oWriter.CommandDrawText(s, m1, m2, 0, 0, 0);
break;
case CommandType.ctBeginCommand:
m = (Int32*)current;
current += 4;
curindex += 4;
if (bIsPathOpened)
{
oWriter.PathCommandEnd();
oWriter.EndCommand(4);
bIsPathOpened = false;
}
oWriter.BeginCommand((uint)(*m));
break;
case CommandType.ctEndCommand:
m = (Int32*)current;
current += 4;
curindex += 4;
if (bIsPathOpened)
{
oWriter.PathCommandEnd();
oWriter.EndCommand(4);
bIsPathOpened = false;
}
oWriter.EndCommand((uint)(*m));
oWriter.PathCommandEnd();
break;
default:
break;
};
}
}
}
}
sHypers.Append("</linker>");
if (m_bIsUnregistredVersion)
{
oWriter.BeginCommand(8);
string strHypers = sHypers.ToString();
oWriter.CommandDrawText(strHypers, 0, 0, 0, 0, 0);
oWriter.EndCommand(8);
}
if (sTempLogo != "")
File.Delete(sTempLogo);
DeleteTmpFiles();
oWriter.SaveToFile(sDstFile);
return true;
}
catch
{
if (sTempLogo != "")
File.Delete(sTempLogo);
DeleteTmpFiles();
return false;
}
}
private void DeleteTmpFiles()
{
int len = m_arTmpTexturePrushPaths.Count;
for (int i = 0; i < len; ++i)
{
if (File.Exists(m_arTmpTexturePrushPaths[i]))
File.Delete(m_arTmpTexturePrushPaths[i]);
}
m_arTmpTexturePrushPaths.Clear();
}
}
}

View File

@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{D7628414-F181-49AB-9E23-76D741426641}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>PdfWriter</RootNamespace>
<AssemblyName>PdfWriter</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.ServiceModel.Web">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data.DataSetExtensions">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Unreg.cs" />
<Compile Include="Main.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<COMReference Include="AVSGraphics">
<Guid>{AB5F2678-2773-44C4-A637-33DFBC51233B}</Guid>
<VersionMajor>1</VersionMajor>
<VersionMinor>0</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>tlbimp</WrapperTool>
<Isolated>False</Isolated>
</COMReference>
<COMReference Include="AVSOfficePDFWriter">
<Guid>{E0DC00B5-13BE-451C-92B5-078A5B44BEEA}</Guid>
<VersionMajor>1</VersionMajor>
<VersionMinor>0</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>tlbimp</WrapperTool>
<Isolated>False</Isolated>
</COMReference>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="Resources\logo.wmf" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<PropertyGroup>
<PostBuildEvent>copy $(ProjectDir)bin\Release\$(TargetFileName) $(SolutionDir)..\wwwroot\Bin\</PostBuildEvent>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,50 @@
/*
* (c) Copyright Ascensio System SIA 2010-2014
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("PdfWriter")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Ascensio System SIA")]
[assembly: AssemblyProduct("PdfWriter")]
[assembly: AssemblyCopyright("Ascensio System SIA Copyright (c) 2013")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
[assembly: Guid("8af8f799-b208-44f3-ac7a-9b37a5918982")]
[assembly: AssemblyVersion("1.0.0.2")]
[assembly: AssemblyFileVersion("1.0.0.2")]

View File

@@ -0,0 +1,77 @@
/*
* (c) Copyright Ascensio System SIA 2010-2014
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
namespace PdfWriter.Properties {
using System;
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PdfWriter.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
internal static byte[] logo {
get {
object obj = ResourceManager.GetObject("logo", resourceCulture);
return ((byte[])(obj));
}
}
}
}

View File

@@ -0,0 +1,124 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="logo" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\logo.wmf;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root>

View File

@@ -0,0 +1,188 @@
/*
* (c) Copyright Ascensio System SIA 2010-2014
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.IO;
namespace PdfWriter
{
class ResoursesLogo
{
public static string Logo1 = @"<?xml version='1.0' encoding='utf-8'?>
<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
<svg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px'
width='514px' height='166px' viewBox='0 0 514 166' enable-background='new 0 0 514 166' xml:space='preserve'>
<polygon fill='#ADADAD' points='185.909,63.292 150.09,126.283 138.083,133.77 147.648,90.781 '/>
<path fill='#E2E2E2' d='M30.81,97.145l23.264-2.098l-2.035,8.742L30.81,97.145z'/>
<polygon fill='#CBCBCB' points='128.623,82.445 86.899,10.32 84.527,12.627 88.611,98.982 '/>
<polygon fill='#E6E7E8' points='80.275,14.986 82.244,13.838 84.845,100.539 72.577,105.609 '/>
<polygon fill='#BBBBBB' points='77.797,16.375 74.384,19.014 55.035,104.729 66.041,107.846 68.579,107.262 '/>
<path fill='#DFDFDF' d='M69.945,141.207c-0.748,0.043-1.229,0.053-1.385,0.023c-1.771-0.322-16.562-4.101-22.613-5.91l4.778-5.078
l0,0l15.179-16.127L69.945,141.207L69.945,141.207z'/>
<path fill='#F0F0F0' d='M130.174,133.486l2.209,0.725l1.779,0.584c-12.788,1.369-49.015,5.215-61.423,6.211l-0.184-1.268
l-3.614-24.908l-0.22-1.52l29.698,9.75l10.305,3.383L130.174,133.486L130.174,133.486z'/>
<path fill='#D6D6D6' d='M52.964,108.27h0.004l11.655,3.726l-0.458,0.467l-20.814,21.302c-3.793-6.021-18.209-29.06-20.418-34.865
l4.5,1.215L52.964,108.27L52.964,108.27z'/>
<path fill='#F8F8F8' d='M185.28,64.085l-27.599,44.2l-18.449,23.926l-69.109-21.385l83.576-34.077
C171.808,69.663,185.297,64.315,185.28,64.085L185.28,64.085z'/>
<path fill='#AFAFAF' d='M46.08,134.242l17.944,4.713c135.917-18.133,206.353-10.34,206.312-9.541
c-0.041,0.801-88.329,0.379-144.937,9.678s-69.276,12.629-80.254,14.891c-10.978,2.265-9.999-10.776-9.999-10.776l0.128-0.021
C35.518,140.416,37.232,135.527,46.08,134.242L46.08,134.242z'/>
<path fill='#AFAFAF' d='M193.304,44.696h8.928c0.667,0,1.18,0.16,1.539,0.481c0.206,0.184,0.411,0.481,0.616,0.894l6.08,13.886
c0,0.092,0.128,0.275,0.385,0.55c0.205-0.184,0.333-0.344,0.385-0.48l6.926-13.817c0.308-0.55,0.629-0.939,0.962-1.169
c0.334-0.229,0.706-0.344,1.116-0.344h9.005c1.18,0,1.77,0.39,1.77,1.169c0,0.275-0.051,0.504-0.154,0.688
c-0.103,0.183-0.154,0.298-0.154,0.344L217.47,69.857c-0.205,0.367-0.436,0.791-0.693,1.272c-0.256,0.48-0.385,1.042-0.385,1.684
V90.41c0,1.055-0.218,1.719-0.654,1.994c-0.437,0.275-1.116,0.412-2.04,0.412h-6.003c-0.923,0-1.539-0.092-1.847-0.275
c-0.564-0.365-0.847-1.076-0.847-2.131V72.811c0-0.642-0.026-1.077-0.077-1.306c-0.052-0.229-0.308-0.779-0.77-1.65l-12.161-22.959
c-0.257-0.551-0.385-0.963-0.385-1.237c0-0.413,0.167-0.676,0.5-0.791C192.444,44.753,192.842,44.696,193.304,44.696L193.304,44.696
z M234.172,75.286V62.225c0-4.583,0.667-8.157,2.001-10.724c2.565-4.903,7.491-7.355,14.777-7.355c6.825,0,11.571,2.2,14.239,6.6
c1.692,2.795,2.539,6.622,2.539,11.479v13.061c0,4.537-0.666,8.089-2,10.655c-2.566,4.949-7.492,7.424-14.778,7.424
c-5.696,0-9.915-1.479-12.661-4.434C235.545,85.975,234.172,81.426,234.172,75.286z M256.338,74.118V63.394
c0-3.575-0.23-6.004-0.693-7.287c-0.718-2.017-2.283-3.024-4.694-3.024c-2.411,0-3.977,0.985-4.694,2.956
c-0.463,1.283-0.693,3.734-0.693,7.355v10.724c0,3.574,0.23,6.003,0.693,7.286c0.718,2.017,2.283,3.024,4.694,3.024
c2.411,0,3.977-0.985,4.694-2.956C256.108,80.189,256.338,77.738,256.338,74.118L256.338,74.118z M274.271,77.554V47.102
c0-0.825,0.102-1.375,0.307-1.649c0.412-0.505,1.207-0.757,2.387-0.757h6.004c1.18,0,1.924,0.195,2.23,0.584
c0.309,0.39,0.463,0.997,0.463,1.822v30.384c0,1.741,0.205,3.048,0.615,3.918c0.82,1.741,2.412,2.612,4.771,2.612
c1.897,0,3.271-0.502,4.119-1.512c0.847-1.008,1.271-2.681,1.271-5.018V47.102c0-0.825,0.102-1.375,0.307-1.649
c0.41-0.505,1.207-0.757,2.387-0.757h6.004c1.18,0,1.924,0.195,2.23,0.584c0.309,0.39,0.463,0.997,0.463,1.822v30.452
c0,4.079-0.873,7.379-2.617,9.899c-2.721,3.941-7.439,5.912-14.162,5.912c-6.721,0-11.441-1.947-14.16-5.844
C275.143,85.002,274.271,81.679,274.271,77.554L274.271,77.554z M317.447,44.696h14.24c6.516,0,11.391,1.489,14.623,4.469
c2.617,2.383,3.926,5.385,3.926,9.005c0,3.3-0.873,6.049-2.619,8.249c-1.385,1.787-3.104,3.002-5.154,3.643
c-0.463,0.092-0.693,0.299-0.693,0.619c0,0.275,0.127,0.642,0.385,1.1l9.621,18.56c0.152,0.367,0.23,0.688,0.23,0.964
c0,1.008-0.615,1.512-1.848,1.512h-8.004c-1.129,0-1.924-0.205-2.387-0.619c-0.154-0.137-0.332-0.412-0.539-0.824L330.07,73.5
c-0.359-0.642-0.898-0.963-1.615-0.963h-1.463c-0.564,0-0.848,0.275-0.848,0.825v17.047c0,1.055-0.217,1.719-0.654,1.993
c-0.436,0.275-1.115,0.412-2.039,0.412h-6.004c-0.922,0-1.539-0.092-1.846-0.274c-0.564-0.365-0.848-1.076-0.848-2.131V47.102
c0-0.825,0.104-1.375,0.309-1.649C315.473,44.948,316.268,44.696,317.447,44.696L317.447,44.696z M326.145,54.664v8.387
c0,0.688,0.359,1.03,1.078,1.03h3.617c2.154,0,3.875-0.48,5.156-1.443c1.283-0.962,1.924-2.245,1.924-3.85
c0-1.466-0.486-2.657-1.461-3.574c-1.232-1.146-3.105-1.719-5.619-1.719h-3.387C326.582,53.495,326.145,53.884,326.145,54.664
L326.145,54.664z'/>
<path fill='#CECECE' d='M355.93,90.408V47.101c0-0.825,0.104-1.375,0.309-1.65c0.41-0.504,1.205-0.756,2.385-0.756h13.316
c5.797,0,10.197,1.501,13.199,4.502c3.002,3.002,4.502,7.321,4.502,12.958V73.91c0,5.179-0.898,9.211-2.693,12.098
c-2.82,4.537-7.852,6.807-15.086,6.807h-13.238c-0.922,0-1.537-0.092-1.846-0.274C356.213,92.172,355.93,91.461,355.93,90.408z
M367.32,55.143v27.565c0,0.504,0.078,0.858,0.23,1.065c0.152,0.205,0.539,0.31,1.154,0.31h2.615c2.361,0,4.105-0.746,5.234-2.235
c1.129-1.489,1.693-4.159,1.693-8.008V63.804c0-2.887-0.309-5.063-0.924-6.53c-1.025-2.521-2.977-3.78-5.85-3.78h-2.771
c-0.615,0-1.002,0.16-1.154,0.48C367.398,54.295,367.32,54.685,367.32,55.143L367.32,55.143z M394.951,75.285V62.224
c0-4.583,0.666-8.157,2.002-10.725c2.564-4.903,7.49-7.354,14.777-7.354c6.824,0,11.57,2.199,14.238,6.599
c1.691,2.796,2.539,6.622,2.539,11.48v13.061c0,4.537-0.666,8.088-2.002,10.654c-2.564,4.949-7.49,7.424-14.775,7.424
c-5.697,0-9.916-1.479-12.662-4.434C396.324,85.975,394.951,81.425,394.951,75.285z M417.117,74.116V63.392
c0-3.574-0.23-6.003-0.693-7.286c-0.719-2.017-2.283-3.024-4.693-3.024c-2.412,0-3.979,0.985-4.695,2.955
c-0.463,1.283-0.691,3.735-0.691,7.355v10.724c0,3.574,0.229,6.004,0.691,7.286c0.719,2.017,2.283,3.026,4.695,3.026
c2.41,0,3.975-0.986,4.693-2.957C416.887,80.188,417.117,77.736,417.117,74.116L417.117,74.116z M462.295,46.276V52.6
c0,0.366-0.051,0.652-0.154,0.859c-0.102,0.206-0.357,0.31-0.77,0.31c-1.18-0.229-2.398-0.447-3.654-0.653
c-1.258-0.207-2.4-0.31-3.426-0.31c-3.488,0-5.773,0.985-6.85,2.956c-0.668,1.237-1,3.46-1,6.668v11.617
c0,3.941,0.576,6.564,1.73,7.871c1.152,1.306,3.373,1.959,6.656,1.959c1.85,0,3.105-0.148,3.771-0.447s1.77-0.446,3.309-0.446
c0.771,0,1.154,0.412,1.154,1.237v6.119c0,1.053-0.629,1.82-1.885,2.303c-1.258,0.48-4.143,0.721-8.658,0.721
c-7.082,0-11.982-1.694-14.701-5.086c-1.848-2.338-2.77-5.888-2.77-10.655V58.099c0-4.078,1.076-7.218,3.23-9.418
c2.926-3.024,7.877-4.536,14.855-4.536c3.848,0,6.465,0.229,7.85,0.687C461.859,45.107,462.295,45.588,462.295,46.276
L462.295,46.276z M468.068,90.133v-6.188c0-0.549,0.18-0.927,0.539-1.133c0.371-0.207,0.73-0.31,1.09-0.31
c0.41,0,0.896,0.068,1.436,0.206c0.541,0.138,0.938,0.229,1.207,0.275c0.871,0.229,2.193,0.458,3.949,0.688
c1.758,0.229,3.156,0.343,4.195,0.343c2.271,0,4.066-0.424,5.387-1.271c1.322-0.848,1.977-2.005,1.977-3.471
c0-2.154-1.488-4.171-4.465-6.05c-2.154-1.237-3.744-2.153-4.771-2.75c-3.797-2.245-6.387-4.147-7.771-5.705
c-1.85-2.063-2.771-4.629-2.771-7.699c0-4.216,1.59-7.424,4.771-9.624c3.182-2.199,7.49-3.299,12.93-3.299
c2.359,0,4.695,0.183,7.004,0.55c3.488,0.55,5.234,1.352,5.234,2.406v6.187c0,0.183,0,0.344,0,0.48
c-0.154,0.551-0.592,0.825-1.309,0.825l-3.695-0.619c-2.104-0.366-3.424-0.584-3.963-0.652c-0.539-0.069-1.348-0.104-2.424-0.104
c-2.105,0-3.631,0.298-4.58,0.894c-0.949,0.596-1.424,1.329-1.424,2.2c0,1.558,2.898,4.01,8.697,7.355
c3.385,2.017,5.85,3.918,7.389,5.705c2.463,2.842,3.693,6.187,3.693,10.036c0,4.309-1.693,7.71-5.066,10.208
s-8.004,3.746-13.879,3.746c-1.912,0-4.08-0.125-6.492-0.379c-2.424-0.252-4.207-0.584-5.336-0.996
c-0.68-0.229-1.102-0.504-1.281-0.824S468.068,90.5,468.068,90.133z'/>
<path fill='#AFAFAF' d='M204.477,118.375v-15.918h5.481c1.238,0,2.183,0.078,2.835,0.23c0.912,0.207,1.69,0.588,2.335,1.137
c0.837,0.713,1.468,1.617,1.882,2.721c0.419,1.104,0.626,2.365,0.626,3.783c0,1.209-0.141,2.279-0.426,3.213
c-0.281,0.936-0.641,1.709-1.086,2.32c-0.44,0.611-0.922,1.094-1.449,1.443c-0.522,0.352-1.156,0.616-1.897,0.799
c-0.745,0.182-1.597,0.271-2.558,0.271L204.477,118.375L204.477,118.375z M206.582,116.496h3.398c1.049,0,1.875-0.098,2.472-0.293
c0.597-0.197,1.071-0.471,1.427-0.826c0.5-0.496,0.889-1.172,1.167-2.014c0.278-0.844,0.418-1.863,0.418-3.068
c0-1.664-0.274-2.941-0.819-3.836c-0.548-0.896-1.212-1.492-1.994-1.797c-0.563-0.219-1.475-0.326-2.724-0.326h-3.347v12.16H206.582
z M220.58,118.375v-15.918h11.508v1.879h-9.402v4.873h8.806v1.869h-8.806v5.418h9.773v1.879H220.58L220.58,118.375z M234.652,113.26
l1.986-0.174c0.093,0.797,0.312,1.449,0.656,1.961c0.344,0.512,0.878,0.922,1.601,1.238c0.723,0.314,1.538,0.471,2.442,0.471
c0.804,0,1.513-0.119,2.128-0.357c0.615-0.239,1.074-0.565,1.375-0.979c0.3-0.42,0.451-0.871,0.451-1.364
c0-0.5-0.145-0.935-0.438-1.308c-0.289-0.375-0.767-0.687-1.43-0.938c-0.43-0.168-1.371-0.428-2.836-0.779
c-1.459-0.352-2.486-0.682-3.072-0.991c-0.76-0.397-1.327-0.896-1.701-1.483c-0.371-0.589-0.556-1.248-0.556-1.982
c0-0.799,0.226-1.553,0.682-2.248c0.456-0.701,1.123-1.23,1.998-1.594c0.878-0.359,1.85-0.541,2.921-0.541
c1.182,0,2.22,0.188,3.124,0.569c0.9,0.378,1.594,0.938,2.079,1.677c0.481,0.735,0.744,1.573,0.781,2.508l-2.021,0.152
c-0.111-1.005-0.479-1.769-1.104-2.279c-0.627-0.517-1.55-0.771-2.773-0.771c-1.273,0-2.201,0.234-2.786,0.701
c-0.582,0.467-0.875,1.029-0.875,1.686c0,0.574,0.208,1.045,0.619,1.412c0.407,0.371,1.464,0.748,3.177,1.135
c1.711,0.39,2.887,0.728,3.523,1.017c0.927,0.43,1.613,0.971,2.053,1.623c0.441,0.655,0.66,1.411,0.66,2.264
c0,0.851-0.24,1.646-0.727,2.396c-0.485,0.748-1.182,1.33-2.09,1.75c-0.908,0.414-1.931,0.621-3.064,0.621
c-1.441,0-2.65-0.207-3.621-0.629c-0.975-0.42-1.738-1.049-2.294-1.896C234.97,115.279,234.678,114.324,234.652,113.26
L234.652,113.26z M250.11,118.375v-15.918h2.109v7.895l7.904-7.895h2.854l-6.678,6.449l6.971,9.469h-2.779l-5.667-8.057
l-2.604,2.541v5.516H250.11L250.11,118.375z M269.082,118.375v-14.039h-5.244v-1.879h12.615v1.879h-5.268v14.039H269.082z
M277.572,110.621c0-2.643,0.707-4.709,2.127-6.203s3.25-2.242,5.496-2.242c1.467,0,2.795,0.352,3.973,1.053
c1.18,0.703,2.08,1.683,2.699,2.939c0.617,1.252,0.926,2.678,0.926,4.268c0,1.617-0.322,3.063-0.975,4.334
c-0.652,1.273-1.576,2.238-2.771,2.896c-1.196,0.653-2.481,0.979-3.864,0.979c-1.5,0-2.838-0.358-4.019-1.086
c-1.183-0.723-2.074-1.711-2.683-2.965C277.875,113.346,277.572,112.02,277.572,110.621L277.572,110.621z M279.744,110.654
c0,1.92,0.514,3.43,1.545,4.533c1.033,1.104,2.328,1.656,3.885,1.656c1.586,0,2.891-0.556,3.912-1.673
c1.023-1.114,1.539-2.696,1.539-4.746c0-1.295-0.223-2.424-0.66-3.394c-0.438-0.967-1.078-1.715-1.92-2.247
c-0.844-0.531-1.789-0.798-2.838-0.798c-1.494,0-2.777,0.513-3.852,1.537C280.281,106.549,279.744,108.262,279.744,110.654z
M295.51,118.375v-15.918h6.004c1.057,0,1.863,0.053,2.42,0.152c0.781,0.129,1.438,0.377,1.967,0.744
c0.527,0.362,0.953,0.879,1.275,1.535c0.322,0.659,0.482,1.383,0.482,2.172c0,1.352-0.43,2.502-1.291,3.438
c-0.863,0.935-2.42,1.403-4.668,1.403h-4.086v6.472L295.51,118.375L295.51,118.375z M297.613,110.025h4.119
c1.359,0,2.326-0.252,2.896-0.76c0.57-0.509,0.855-1.222,0.855-2.14c0-0.668-0.168-1.237-0.504-1.713
c-0.338-0.476-0.779-0.785-1.332-0.938c-0.354-0.092-1.008-0.141-1.963-0.141h-4.074v5.691H297.613z M328.182,116.67
c0.975,0.674,1.879,1.164,2.701,1.475l-0.617,1.469c-1.143-0.411-2.283-1.063-3.422-1.952c-1.178,0.655-2.479,0.983-3.906,0.983
c-1.441,0-2.746-0.348-3.92-1.041c-1.172-0.697-2.076-1.672-2.709-2.932c-0.635-1.26-0.949-2.68-0.949-4.254
c0-1.572,0.318-3.002,0.955-4.291c0.639-1.287,1.543-2.27,2.721-2.943c1.178-0.67,2.49-1.008,3.943-1.008
c1.471,0,2.795,0.348,3.977,1.049c1.182,0.697,2.08,1.674,2.697,2.932c0.619,1.257,0.928,2.673,0.928,4.25
c0,1.31-0.195,2.486-0.598,3.531C329.586,114.984,328.986,115.895,328.182,116.67L328.182,116.67z M323.545,113.975
c1.217,0.342,2.217,0.851,3.006,1.523c1.238-1.129,1.857-2.826,1.857-5.092c0-1.289-0.219-2.416-0.656-3.379
c-0.438-0.961-1.078-1.709-1.92-2.242c-0.844-0.531-1.789-0.797-2.842-0.797c-1.568,0-2.873,0.537-3.906,1.611
c-1.037,1.073-1.553,2.68-1.553,4.817c0,2.067,0.512,3.658,1.533,4.767c1.027,1.104,2.336,1.66,3.926,1.66
c0.756,0,1.463-0.142,2.131-0.423c-0.66-0.43-1.357-0.733-2.086-0.911L323.545,113.975L323.545,113.975z M343.859,102.457h2.107
v9.199c0,1.598-0.184,2.867-0.545,3.809c-0.363,0.941-1.018,1.705-1.959,2.295c-0.945,0.592-2.186,0.885-3.721,0.885
c-1.486,0-2.713-0.256-3.654-0.77c-0.949-0.512-1.631-1.258-2.031-2.232c-0.408-0.975-0.607-2.301-0.607-3.986v-9.198h2.104v9.188
c0,1.383,0.131,2.399,0.387,3.053c0.256,0.656,0.699,1.16,1.322,1.518c0.627,0.355,1.393,0.533,2.297,0.533
c1.551,0,2.654-0.354,3.314-1.057c0.656-0.701,0.986-2.049,0.986-4.047V102.457L343.859,102.457z M347.725,118.375l6.115-15.918
h2.268l6.516,15.918h-2.4l-1.857-4.822h-6.656l-1.744,4.822H347.725z M352.316,111.838h5.398l-1.664-4.408
c-0.504-1.338-0.881-2.438-1.127-3.301c-0.203,1.021-0.488,2.035-0.859,3.043L352.316,111.838L352.316,111.838z M364.217,118.375
v-15.918h2.107v14.039h7.84v1.879H364.217z M377.031,118.375v-15.918h2.105v15.918H377.031z M386.9,118.375v-14.039h-5.244v-1.879
h12.615v1.879h-5.266v14.039H386.9L386.9,118.375z M400.918,118.375v-6.742l-6.135-9.176h2.561l3.139,4.799
c0.58,0.896,1.117,1.795,1.617,2.695c0.479-0.834,1.057-1.771,1.738-2.813l3.082-4.683h2.455l-6.354,9.176v6.742L400.918,118.375
L400.918,118.375z M416.4,110.621c0-2.643,0.709-4.709,2.129-6.203c1.418-1.494,3.25-2.242,5.496-2.242
c1.467,0,2.793,0.352,3.973,1.053c1.178,0.703,2.078,1.683,2.697,2.938c0.619,1.254,0.926,2.681,0.926,4.271
c0,1.617-0.322,3.063-0.975,4.334c-0.652,1.272-1.574,2.238-2.768,2.895c-1.197,0.654-2.482,0.98-3.865,0.98
c-1.502,0-2.84-0.359-4.02-1.086c-1.182-0.724-2.074-1.711-2.684-2.965C416.705,113.346,416.4,112.02,416.4,110.621L416.4,110.621z
M418.572,110.654c0,1.92,0.516,3.428,1.547,4.533c1.033,1.104,2.326,1.656,3.883,1.656c1.586,0,2.891-0.558,3.914-1.673
c1.023-1.114,1.537-2.696,1.537-4.746c0-1.295-0.223-2.424-0.658-3.394c-0.438-0.967-1.08-1.715-1.92-2.247
c-0.846-0.531-1.791-0.798-2.84-0.798c-1.494,0-2.775,0.513-3.85,1.537C419.109,106.549,418.572,108.262,418.572,110.654z
M434.316,118.375v-15.918h2.16l8.361,12.496v-12.496h2.02v15.918h-2.16l-8.361-12.508v12.508H434.316z M450.309,118.375v-15.918
h2.107v14.039h7.84v1.879H450.309z M463.123,118.375v-15.918h2.105v15.918H463.123z M468.92,118.375v-15.918h2.16l8.361,12.496
v-12.496h2.02v15.918h-2.16l-8.361-12.508v12.508H468.92z M485.045,118.375v-15.918h11.508v1.879h-9.402v4.873h8.805v1.869h-8.805
v5.418h9.771v1.879H485.045L485.045,118.375z'/>
<polygon fill='#B5B5B5' points='80.268,117.346 69.612,121.502 68.397,113.484 '/>
<path fill='#A6A8AB' d='M58.024,118.588l-33.43-11.02c0.458-0.15-3.059-6.269-4.434-9.16l6.949,1.877l36.893,11.797L58.024,118.588z'/>
<path fill='#B5B5B5' d='M60.703,119.469l0.238-0.232l5.237-5.416l0.899,7.623C65.023,120.861,62.443,119.998,60.703,119.469z'/>
<path fill='#D0D2D3' d='M178.142,85.885l-93.671,29.594l-14.48-4.477l117.176-47.806C186.073,67.116,179.371,82.425,178.142,85.885z'/>
</svg>";
}
}

View File

@@ -0,0 +1,146 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="514px" height="166px" viewBox="0 0 514 166" enable-background="new 0 0 514 166" xml:space="preserve">
<polygon fill="#ADADAD" points="185.909,63.292 150.09,126.283 138.083,133.77 147.648,90.781 "/>
<path fill="#E2E2E2" d="M30.81,97.145l23.264-2.098l-2.035,8.742L30.81,97.145z"/>
<polygon fill="#CBCBCB" points="128.623,82.445 86.899,10.32 84.527,12.627 88.611,98.982 "/>
<polygon fill="#E6E7E8" points="80.275,14.986 82.244,13.838 84.845,100.539 72.577,105.609 "/>
<polygon fill="#BBBBBB" points="77.797,16.375 74.384,19.014 55.035,104.729 66.041,107.846 68.579,107.262 "/>
<path fill="#DFDFDF" d="M69.945,141.207c-0.748,0.043-1.229,0.053-1.385,0.023c-1.771-0.322-16.562-4.101-22.613-5.91l4.778-5.078
l0,0l15.179-16.127L69.945,141.207L69.945,141.207z"/>
<path fill="#F0F0F0" d="M130.174,133.486l2.209,0.725l1.779,0.584c-12.788,1.369-49.015,5.215-61.423,6.211l-0.184-1.268
l-3.614-24.908l-0.22-1.52l29.698,9.75l10.305,3.383L130.174,133.486L130.174,133.486z"/>
<path fill="#D6D6D6" d="M52.964,108.27h0.004l11.655,3.726l-0.458,0.467l-20.814,21.302c-3.793-6.021-18.209-29.06-20.418-34.865
l4.5,1.215L52.964,108.27L52.964,108.27z"/>
<path fill="#F8F8F8" d="M185.28,64.085l-27.599,44.2l-18.449,23.926l-69.109-21.385l83.576-34.077
C171.808,69.663,185.297,64.315,185.28,64.085L185.28,64.085z"/>
<path fill="#AFAFAF" d="M46.08,134.242l17.944,4.713c135.917-18.133,206.353-10.34,206.312-9.541
c-0.041,0.801-88.329,0.379-144.937,9.678s-69.276,12.629-80.254,14.891c-10.978,2.265-9.999-10.776-9.999-10.776l0.128-0.021
C35.518,140.416,37.232,135.527,46.08,134.242L46.08,134.242z"/>
<path fill="#AFAFAF" d="M193.304,44.696h8.928c0.667,0,1.18,0.16,1.539,0.481c0.206,0.184,0.411,0.481,0.616,0.894l6.08,13.886
c0,0.092,0.128,0.275,0.385,0.55c0.205-0.184,0.333-0.344,0.385-0.48l6.926-13.817c0.308-0.55,0.629-0.939,0.962-1.169
c0.334-0.229,0.706-0.344,1.116-0.344h9.005c1.18,0,1.77,0.39,1.77,1.169c0,0.275-0.051,0.504-0.154,0.688
c-0.103,0.183-0.154,0.298-0.154,0.344L217.47,69.857c-0.205,0.367-0.436,0.791-0.693,1.272c-0.256,0.48-0.385,1.042-0.385,1.684
V90.41c0,1.055-0.218,1.719-0.654,1.994c-0.437,0.275-1.116,0.412-2.04,0.412h-6.003c-0.923,0-1.539-0.092-1.847-0.275
c-0.564-0.365-0.847-1.076-0.847-2.131V72.811c0-0.642-0.026-1.077-0.077-1.306c-0.052-0.229-0.308-0.779-0.77-1.65l-12.161-22.959
c-0.257-0.551-0.385-0.963-0.385-1.237c0-0.413,0.167-0.676,0.5-0.791C192.444,44.753,192.842,44.696,193.304,44.696L193.304,44.696
z M234.172,75.286V62.225c0-4.583,0.667-8.157,2.001-10.724c2.565-4.903,7.491-7.355,14.777-7.355c6.825,0,11.571,2.2,14.239,6.6
c1.692,2.795,2.539,6.622,2.539,11.479v13.061c0,4.537-0.666,8.089-2,10.655c-2.566,4.949-7.492,7.424-14.778,7.424
c-5.696,0-9.915-1.479-12.661-4.434C235.545,85.975,234.172,81.426,234.172,75.286z M256.338,74.118V63.394
c0-3.575-0.23-6.004-0.693-7.287c-0.718-2.017-2.283-3.024-4.694-3.024c-2.411,0-3.977,0.985-4.694,2.956
c-0.463,1.283-0.693,3.734-0.693,7.355v10.724c0,3.574,0.23,6.003,0.693,7.286c0.718,2.017,2.283,3.024,4.694,3.024
c2.411,0,3.977-0.985,4.694-2.956C256.108,80.189,256.338,77.738,256.338,74.118L256.338,74.118z M274.271,77.554V47.102
c0-0.825,0.102-1.375,0.307-1.649c0.412-0.505,1.207-0.757,2.387-0.757h6.004c1.18,0,1.924,0.195,2.23,0.584
c0.309,0.39,0.463,0.997,0.463,1.822v30.384c0,1.741,0.205,3.048,0.615,3.918c0.82,1.741,2.412,2.612,4.771,2.612
c1.897,0,3.271-0.502,4.119-1.512c0.847-1.008,1.271-2.681,1.271-5.018V47.102c0-0.825,0.102-1.375,0.307-1.649
c0.41-0.505,1.207-0.757,2.387-0.757h6.004c1.18,0,1.924,0.195,2.23,0.584c0.309,0.39,0.463,0.997,0.463,1.822v30.452
c0,4.079-0.873,7.379-2.617,9.899c-2.721,3.941-7.439,5.912-14.162,5.912c-6.721,0-11.441-1.947-14.16-5.844
C275.143,85.002,274.271,81.679,274.271,77.554L274.271,77.554z M317.447,44.696h14.24c6.516,0,11.391,1.489,14.623,4.469
c2.617,2.383,3.926,5.385,3.926,9.005c0,3.3-0.873,6.049-2.619,8.249c-1.385,1.787-3.104,3.002-5.154,3.643
c-0.463,0.092-0.693,0.299-0.693,0.619c0,0.275,0.127,0.642,0.385,1.1l9.621,18.56c0.152,0.367,0.23,0.688,0.23,0.964
c0,1.008-0.615,1.512-1.848,1.512h-8.004c-1.129,0-1.924-0.205-2.387-0.619c-0.154-0.137-0.332-0.412-0.539-0.824L330.07,73.5
c-0.359-0.642-0.898-0.963-1.615-0.963h-1.463c-0.564,0-0.848,0.275-0.848,0.825v17.047c0,1.055-0.217,1.719-0.654,1.993
c-0.436,0.275-1.115,0.412-2.039,0.412h-6.004c-0.922,0-1.539-0.092-1.846-0.274c-0.564-0.365-0.848-1.076-0.848-2.131V47.102
c0-0.825,0.104-1.375,0.309-1.649C315.473,44.948,316.268,44.696,317.447,44.696L317.447,44.696z M326.145,54.664v8.387
c0,0.688,0.359,1.03,1.078,1.03h3.617c2.154,0,3.875-0.48,5.156-1.443c1.283-0.962,1.924-2.245,1.924-3.85
c0-1.466-0.486-2.657-1.461-3.574c-1.232-1.146-3.105-1.719-5.619-1.719h-3.387C326.582,53.495,326.145,53.884,326.145,54.664
L326.145,54.664z"/>
<path fill="#CECECE" d="M355.93,90.408V47.101c0-0.825,0.104-1.375,0.309-1.65c0.41-0.504,1.205-0.756,2.385-0.756h13.316
c5.797,0,10.197,1.501,13.199,4.502c3.002,3.002,4.502,7.321,4.502,12.958V73.91c0,5.179-0.898,9.211-2.693,12.098
c-2.82,4.537-7.852,6.807-15.086,6.807h-13.238c-0.922,0-1.537-0.092-1.846-0.274C356.213,92.172,355.93,91.461,355.93,90.408z
M367.32,55.143v27.565c0,0.504,0.078,0.858,0.23,1.065c0.152,0.205,0.539,0.31,1.154,0.31h2.615c2.361,0,4.105-0.746,5.234-2.235
c1.129-1.489,1.693-4.159,1.693-8.008V63.804c0-2.887-0.309-5.063-0.924-6.53c-1.025-2.521-2.977-3.78-5.85-3.78h-2.771
c-0.615,0-1.002,0.16-1.154,0.48C367.398,54.295,367.32,54.685,367.32,55.143L367.32,55.143z M394.951,75.285V62.224
c0-4.583,0.666-8.157,2.002-10.725c2.564-4.903,7.49-7.354,14.777-7.354c6.824,0,11.57,2.199,14.238,6.599
c1.691,2.796,2.539,6.622,2.539,11.48v13.061c0,4.537-0.666,8.088-2.002,10.654c-2.564,4.949-7.49,7.424-14.775,7.424
c-5.697,0-9.916-1.479-12.662-4.434C396.324,85.975,394.951,81.425,394.951,75.285z M417.117,74.116V63.392
c0-3.574-0.23-6.003-0.693-7.286c-0.719-2.017-2.283-3.024-4.693-3.024c-2.412,0-3.979,0.985-4.695,2.955
c-0.463,1.283-0.691,3.735-0.691,7.355v10.724c0,3.574,0.229,6.004,0.691,7.286c0.719,2.017,2.283,3.026,4.695,3.026
c2.41,0,3.975-0.986,4.693-2.957C416.887,80.188,417.117,77.736,417.117,74.116L417.117,74.116z M462.295,46.276V52.6
c0,0.366-0.051,0.652-0.154,0.859c-0.102,0.206-0.357,0.31-0.77,0.31c-1.18-0.229-2.398-0.447-3.654-0.653
c-1.258-0.207-2.4-0.31-3.426-0.31c-3.488,0-5.773,0.985-6.85,2.956c-0.668,1.237-1,3.46-1,6.668v11.617
c0,3.941,0.576,6.564,1.73,7.871c1.152,1.306,3.373,1.959,6.656,1.959c1.85,0,3.105-0.148,3.771-0.447s1.77-0.446,3.309-0.446
c0.771,0,1.154,0.412,1.154,1.237v6.119c0,1.053-0.629,1.82-1.885,2.303c-1.258,0.48-4.143,0.721-8.658,0.721
c-7.082,0-11.982-1.694-14.701-5.086c-1.848-2.338-2.77-5.888-2.77-10.655V58.099c0-4.078,1.076-7.218,3.23-9.418
c2.926-3.024,7.877-4.536,14.855-4.536c3.848,0,6.465,0.229,7.85,0.687C461.859,45.107,462.295,45.588,462.295,46.276
L462.295,46.276z M468.068,90.133v-6.188c0-0.549,0.18-0.927,0.539-1.133c0.371-0.207,0.73-0.31,1.09-0.31
c0.41,0,0.896,0.068,1.436,0.206c0.541,0.138,0.938,0.229,1.207,0.275c0.871,0.229,2.193,0.458,3.949,0.688
c1.758,0.229,3.156,0.343,4.195,0.343c2.271,0,4.066-0.424,5.387-1.271c1.322-0.848,1.977-2.005,1.977-3.471
c0-2.154-1.488-4.171-4.465-6.05c-2.154-1.237-3.744-2.153-4.771-2.75c-3.797-2.245-6.387-4.147-7.771-5.705
c-1.85-2.063-2.771-4.629-2.771-7.699c0-4.216,1.59-7.424,4.771-9.624c3.182-2.199,7.49-3.299,12.93-3.299
c2.359,0,4.695,0.183,7.004,0.55c3.488,0.55,5.234,1.352,5.234,2.406v6.187c0,0.183,0,0.344,0,0.48
c-0.154,0.551-0.592,0.825-1.309,0.825l-3.695-0.619c-2.104-0.366-3.424-0.584-3.963-0.652c-0.539-0.069-1.348-0.104-2.424-0.104
c-2.105,0-3.631,0.298-4.58,0.894c-0.949,0.596-1.424,1.329-1.424,2.2c0,1.558,2.898,4.01,8.697,7.355
c3.385,2.017,5.85,3.918,7.389,5.705c2.463,2.842,3.693,6.187,3.693,10.036c0,4.309-1.693,7.71-5.066,10.208
s-8.004,3.746-13.879,3.746c-1.912,0-4.08-0.125-6.492-0.379c-2.424-0.252-4.207-0.584-5.336-0.996
c-0.68-0.229-1.102-0.504-1.281-0.824S468.068,90.5,468.068,90.133z"/>
<path fill="#AFAFAF" d="M204.477,118.375v-15.918h5.481c1.238,0,2.183,0.078,2.835,0.23c0.912,0.207,1.69,0.588,2.335,1.137
c0.837,0.713,1.468,1.617,1.882,2.721c0.419,1.104,0.626,2.365,0.626,3.783c0,1.209-0.141,2.279-0.426,3.213
c-0.281,0.936-0.641,1.709-1.086,2.32c-0.44,0.611-0.922,1.094-1.449,1.443c-0.522,0.352-1.156,0.616-1.897,0.799
c-0.745,0.182-1.597,0.271-2.558,0.271L204.477,118.375L204.477,118.375z M206.582,116.496h3.398c1.049,0,1.875-0.098,2.472-0.293
c0.597-0.197,1.071-0.471,1.427-0.826c0.5-0.496,0.889-1.172,1.167-2.014c0.278-0.844,0.418-1.863,0.418-3.068
c0-1.664-0.274-2.941-0.819-3.836c-0.548-0.896-1.212-1.492-1.994-1.797c-0.563-0.219-1.475-0.326-2.724-0.326h-3.347v12.16H206.582
z M220.58,118.375v-15.918h11.508v1.879h-9.402v4.873h8.806v1.869h-8.806v5.418h9.773v1.879H220.58L220.58,118.375z M234.652,113.26
l1.986-0.174c0.093,0.797,0.312,1.449,0.656,1.961c0.344,0.512,0.878,0.922,1.601,1.238c0.723,0.314,1.538,0.471,2.442,0.471
c0.804,0,1.513-0.119,2.128-0.357c0.615-0.239,1.074-0.565,1.375-0.979c0.3-0.42,0.451-0.871,0.451-1.364
c0-0.5-0.145-0.935-0.438-1.308c-0.289-0.375-0.767-0.687-1.43-0.938c-0.43-0.168-1.371-0.428-2.836-0.779
c-1.459-0.352-2.486-0.682-3.072-0.991c-0.76-0.397-1.327-0.896-1.701-1.483c-0.371-0.589-0.556-1.248-0.556-1.982
c0-0.799,0.226-1.553,0.682-2.248c0.456-0.701,1.123-1.23,1.998-1.594c0.878-0.359,1.85-0.541,2.921-0.541
c1.182,0,2.22,0.188,3.124,0.569c0.9,0.378,1.594,0.938,2.079,1.677c0.481,0.735,0.744,1.573,0.781,2.508l-2.021,0.152
c-0.111-1.005-0.479-1.769-1.104-2.279c-0.627-0.517-1.55-0.771-2.773-0.771c-1.273,0-2.201,0.234-2.786,0.701
c-0.582,0.467-0.875,1.029-0.875,1.686c0,0.574,0.208,1.045,0.619,1.412c0.407,0.371,1.464,0.748,3.177,1.135
c1.711,0.39,2.887,0.728,3.523,1.017c0.927,0.43,1.613,0.971,2.053,1.623c0.441,0.655,0.66,1.411,0.66,2.264
c0,0.851-0.24,1.646-0.727,2.396c-0.485,0.748-1.182,1.33-2.09,1.75c-0.908,0.414-1.931,0.621-3.064,0.621
c-1.441,0-2.65-0.207-3.621-0.629c-0.975-0.42-1.738-1.049-2.294-1.896C234.97,115.279,234.678,114.324,234.652,113.26
L234.652,113.26z M250.11,118.375v-15.918h2.109v7.895l7.904-7.895h2.854l-6.678,6.449l6.971,9.469h-2.779l-5.667-8.057
l-2.604,2.541v5.516H250.11L250.11,118.375z M269.082,118.375v-14.039h-5.244v-1.879h12.615v1.879h-5.268v14.039H269.082z
M277.572,110.621c0-2.643,0.707-4.709,2.127-6.203s3.25-2.242,5.496-2.242c1.467,0,2.795,0.352,3.973,1.053
c1.18,0.703,2.08,1.683,2.699,2.939c0.617,1.252,0.926,2.678,0.926,4.268c0,1.617-0.322,3.063-0.975,4.334
c-0.652,1.273-1.576,2.238-2.771,2.896c-1.196,0.653-2.481,0.979-3.864,0.979c-1.5,0-2.838-0.358-4.019-1.086
c-1.183-0.723-2.074-1.711-2.683-2.965C277.875,113.346,277.572,112.02,277.572,110.621L277.572,110.621z M279.744,110.654
c0,1.92,0.514,3.43,1.545,4.533c1.033,1.104,2.328,1.656,3.885,1.656c1.586,0,2.891-0.556,3.912-1.673
c1.023-1.114,1.539-2.696,1.539-4.746c0-1.295-0.223-2.424-0.66-3.394c-0.438-0.967-1.078-1.715-1.92-2.247
c-0.844-0.531-1.789-0.798-2.838-0.798c-1.494,0-2.777,0.513-3.852,1.537C280.281,106.549,279.744,108.262,279.744,110.654z
M295.51,118.375v-15.918h6.004c1.057,0,1.863,0.053,2.42,0.152c0.781,0.129,1.438,0.377,1.967,0.744
c0.527,0.362,0.953,0.879,1.275,1.535c0.322,0.659,0.482,1.383,0.482,2.172c0,1.352-0.43,2.502-1.291,3.438
c-0.863,0.935-2.42,1.403-4.668,1.403h-4.086v6.472L295.51,118.375L295.51,118.375z M297.613,110.025h4.119
c1.359,0,2.326-0.252,2.896-0.76c0.57-0.509,0.855-1.222,0.855-2.14c0-0.668-0.168-1.237-0.504-1.713
c-0.338-0.476-0.779-0.785-1.332-0.938c-0.354-0.092-1.008-0.141-1.963-0.141h-4.074v5.691H297.613z M328.182,116.67
c0.975,0.674,1.879,1.164,2.701,1.475l-0.617,1.469c-1.143-0.411-2.283-1.063-3.422-1.952c-1.178,0.655-2.479,0.983-3.906,0.983
c-1.441,0-2.746-0.348-3.92-1.041c-1.172-0.697-2.076-1.672-2.709-2.932c-0.635-1.26-0.949-2.68-0.949-4.254
c0-1.572,0.318-3.002,0.955-4.291c0.639-1.287,1.543-2.27,2.721-2.943c1.178-0.67,2.49-1.008,3.943-1.008
c1.471,0,2.795,0.348,3.977,1.049c1.182,0.697,2.08,1.674,2.697,2.932c0.619,1.257,0.928,2.673,0.928,4.25
c0,1.31-0.195,2.486-0.598,3.531C329.586,114.984,328.986,115.895,328.182,116.67L328.182,116.67z M323.545,113.975
c1.217,0.342,2.217,0.851,3.006,1.523c1.238-1.129,1.857-2.826,1.857-5.092c0-1.289-0.219-2.416-0.656-3.379
c-0.438-0.961-1.078-1.709-1.92-2.242c-0.844-0.531-1.789-0.797-2.842-0.797c-1.568,0-2.873,0.537-3.906,1.611
c-1.037,1.073-1.553,2.68-1.553,4.817c0,2.067,0.512,3.658,1.533,4.767c1.027,1.104,2.336,1.66,3.926,1.66
c0.756,0,1.463-0.142,2.131-0.423c-0.66-0.43-1.357-0.733-2.086-0.911L323.545,113.975L323.545,113.975z M343.859,102.457h2.107
v9.199c0,1.598-0.184,2.867-0.545,3.809c-0.363,0.941-1.018,1.705-1.959,2.295c-0.945,0.592-2.186,0.885-3.721,0.885
c-1.486,0-2.713-0.256-3.654-0.77c-0.949-0.512-1.631-1.258-2.031-2.232c-0.408-0.975-0.607-2.301-0.607-3.986v-9.198h2.104v9.188
c0,1.383,0.131,2.399,0.387,3.053c0.256,0.656,0.699,1.16,1.322,1.518c0.627,0.355,1.393,0.533,2.297,0.533
c1.551,0,2.654-0.354,3.314-1.057c0.656-0.701,0.986-2.049,0.986-4.047V102.457L343.859,102.457z M347.725,118.375l6.115-15.918
h2.268l6.516,15.918h-2.4l-1.857-4.822h-6.656l-1.744,4.822H347.725z M352.316,111.838h5.398l-1.664-4.408
c-0.504-1.338-0.881-2.438-1.127-3.301c-0.203,1.021-0.488,2.035-0.859,3.043L352.316,111.838L352.316,111.838z M364.217,118.375
v-15.918h2.107v14.039h7.84v1.879H364.217z M377.031,118.375v-15.918h2.105v15.918H377.031z M386.9,118.375v-14.039h-5.244v-1.879
h12.615v1.879h-5.266v14.039H386.9L386.9,118.375z M400.918,118.375v-6.742l-6.135-9.176h2.561l3.139,4.799
c0.58,0.896,1.117,1.795,1.617,2.695c0.479-0.834,1.057-1.771,1.738-2.813l3.082-4.683h2.455l-6.354,9.176v6.742L400.918,118.375
L400.918,118.375z M416.4,110.621c0-2.643,0.709-4.709,2.129-6.203c1.418-1.494,3.25-2.242,5.496-2.242
c1.467,0,2.793,0.352,3.973,1.053c1.178,0.703,2.078,1.683,2.697,2.938c0.619,1.254,0.926,2.681,0.926,4.271
c0,1.617-0.322,3.063-0.975,4.334c-0.652,1.272-1.574,2.238-2.768,2.895c-1.197,0.654-2.482,0.98-3.865,0.98
c-1.502,0-2.84-0.359-4.02-1.086c-1.182-0.724-2.074-1.711-2.684-2.965C416.705,113.346,416.4,112.02,416.4,110.621L416.4,110.621z
M418.572,110.654c0,1.92,0.516,3.428,1.547,4.533c1.033,1.104,2.326,1.656,3.883,1.656c1.586,0,2.891-0.558,3.914-1.673
c1.023-1.114,1.537-2.696,1.537-4.746c0-1.295-0.223-2.424-0.658-3.394c-0.438-0.967-1.08-1.715-1.92-2.247
c-0.846-0.531-1.791-0.798-2.84-0.798c-1.494,0-2.775,0.513-3.85,1.537C419.109,106.549,418.572,108.262,418.572,110.654z
M434.316,118.375v-15.918h2.16l8.361,12.496v-12.496h2.02v15.918h-2.16l-8.361-12.508v12.508H434.316z M450.309,118.375v-15.918
h2.107v14.039h7.84v1.879H450.309z M463.123,118.375v-15.918h2.105v15.918H463.123z M468.92,118.375v-15.918h2.16l8.361,12.496
v-12.496h2.02v15.918h-2.16l-8.361-12.508v12.508H468.92z M485.045,118.375v-15.918h11.508v1.879h-9.402v4.873h8.805v1.869h-8.805
v5.418h9.771v1.879H485.045L485.045,118.375z"/>
<polygon fill="#B5B5B5" points="80.268,117.346 69.612,121.502 68.397,113.484 "/>
<path fill="#A6A8AB" d="M58.024,118.588l-33.43-11.02c0.458-0.15-3.059-6.269-4.434-9.16l6.949,1.877l36.893,11.797L58.024,118.588z
"/>
<path fill="#B5B5B5" d="M60.703,119.469l0.238-0.232l5.237-5.416l0.899,7.623C65.023,120.861,62.443,119.998,60.703,119.469z"/>
<path fill="#D0D2D3" d="M178.142,85.885l-93.671,29.594l-14.48-4.477l117.176-47.806C186.073,67.116,179.371,82.425,178.142,85.885z
"/>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.