text: if (!document.createElement("canvas").getContext) {
      (function() {
          var z = Math;
          var K = z.round;
          var J = z.sin;
          var U = z.cos;
          var b = z.abs;
          var k = z.sqrt;
          var D = 10;
          var F = D / 2;
  
          function T() {
              return this.context_ || (this.context_ = new W(this))
          }
          var O = Array.prototype.slice;
  
          function G(i, j, m) {
              var Z = O.call(arguments, 2);
              return function() {
                  return i.apply(j, Z.concat(O.call(arguments)))
              }
          }
  
          function AD(Z) {
              return String(Z).replace(/&/g, "&amp;").replace(/"/g, "&quot;")
          }
  
          function r(i) {
              if (!i.namespaces.g_vml_) {
                  i.namespaces.add("g_vml_", "urn:schemas-microsoft-com:vml", "#default#VML")
              }
              if (!i.namespaces.g_o_) {
                  i.namespaces.add("g_o_", "urn:schemas-microsoft-com:office:office", "#default#VML")
              }
              if (!i.styleSheets.ex_canvas_) {
                  var Z = i.createStyleSheet();
                  Z.owningElement.id = "ex_canvas_";
                  Z.cssText = "canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}"
              }
          }
          r(document);
          var E = {
              init: function(Z) {
                  if (/MSIE/.test(navigator.userAgent) && !window.opera) {
                      var i = Z || document;
                      i.createElement("canvas");
                      i.attachEvent("onreadystatechange", G(this.init_, this, i))
                  }
              },
              init_: function(m) {
                  var j = m.getElementsByTagName("canvas");
                  for (var Z = 0; Z < j.length; Z++) {
                      this.initElement(j[Z])
                  }
              },
              initElement: function(i) {
                  if (!i.getContext) {
                      i.getContext = T;
                      r(i.ownerDocument);
                      i.innerHTML = "";
                      i.attachEvent("onpropertychange", S);
                      i.attachEvent("onresize", w);
                      var Z = i.attributes;
                      if (Z.width && Z.width.specified) {
                          i.style.width = Z.width.nodeValue + "px"
                      } else {
                          i.width = i.clientWidth
                      }
                      if (Z.height && Z.height.specified) {
                          i.style.height = Z.height.nodeValue + "px"
                      } else {
                          i.height = i.clientHeight
                      }
                  }
                  return i
              }
          };
  
          function S(i) {
              var Z = i.srcElement;
              switch (i.propertyName) {
                  case "width":
                      Z.getContext().clearRect();
                      Z.style.width = Z.attributes.width.nodeValue + "px";
                      Z.firstChild.style.width = Z.clientWidth + "px";
                      break;
                  case "height":
                      Z.getContext().clearRect();
                      Z.style.height = Z.attributes.height.nodeValue + "px";
                      Z.firstChild.style.height = Z.clientHeight + "px";
                      break
              }
          }
  
          function w(i) {
              var Z = i.srcElement;
              if (Z.firstChild) {
                  Z.firstChild.style.width = Z.clientWidth + "px";
                  Z.firstChild.style.height = Z.clientHeight + "px"
              }
          }
          E.init();
          var I = [];
          for (var AC = 0; AC < 16; AC++) {
              for (var AB = 0; AB < 16; AB++) {
                  I[AC * 16 + AB] = AC.toString(16) + AB.toString(16)
              }
          }
  
          function V() {
              return [
                  [1, 0, 0],
                  [0, 1, 0],
                  [0, 0, 1]
              ]
          }
  
          function d(m, j) {
              var i = V();
              for (var Z = 0; Z < 3; Z++) {
                  for (var AF = 0; AF < 3; AF++) {
                      var p = 0;
                      for (var AE = 0; AE < 3; AE++) {
                          p += m[Z][AE] * j[AE][AF]
                      }
                      i[Z][AF] = p
                  }
              }
              return i
          }
  
          function Q(i, Z) {
              Z.fillStyle = i.fillStyle;
              Z.lineCap = i.lineCap;
              Z.lineJoin = i.lineJoin;
              Z.lineWidth = i.lineWidth;
              Z.miterLimit = i.miterLimit;
              Z.shadowBlur = i.shadowBlur;
              Z.shadowColor = i.shadowColor;
              Z.shadowOffsetX = i.shadowOffsetX;
              Z.shadowOffsetY = i.shadowOffsetY;
              Z.strokeStyle = i.strokeStyle;
              Z.globalAlpha = i.globalAlpha;
              Z.font = i.font;
              Z.textAlign = i.textAlign;
              Z.textBaseline = i.textBaseline;
              Z.arcScaleX_ = i.arcScaleX_;
              Z.arcScaleY_ = i.arcScaleY_;
              Z.lineScale_ = i.lineScale_
          }
          var B = {
              aliceblue: "#F0F8FF",
              antiquewhite: "#FAEBD7",
              aquamarine: "#7FFFD4",
              azure: "#F0FFFF",
              beige: "#F5F5DC",
              bisque: "#FFE4C4",
              black: "#000000",
              blanchedalmond: "#FFEBCD",
              blueviolet: "#8A2BE2",
              brown: "#A52A2A",
              burlywood: "#DEB887",
              cadetblue: "#5F9EA0",
              chartreuse: "#7FFF00",
              chocolate: "#D2691E",
              coral: "#FF7F50",
              cornflowerblue: "#6495ED",
              cornsilk: "#FFF8DC",
              crimson: "#DC143C",
              cyan: "#00FFFF",
              darkblue: "#00008B",
              darkcyan: "#008B8B",
              darkgoldenrod: "#B8860B",
              darkgray: "#A9A9A9",
              darkgreen: "#006400",
              darkgrey: "#A9A9A9",
              darkkhaki: "#BDB76B",
              darkmagenta: "#8B008B",
              darkolivegreen: "#556B2F",
              darkorange: "#FF8C00",
              darkorchid: "#9932CC",
              darkred: "#8B0000",
              darksalmon: "#E9967A",
              darkseagreen: "#8FBC8F",
              darkslateblue: "#483D8B",
              darkslategray: "#2F4F4F",
              darkslategrey: "#2F4F4F",
              darkturquoise: "#00CED1",
              darkviolet: "#9400D3",
              deeppink: "#FF1493",
              deepskyblue: "#00BFFF",
              dimgray: "#696969",
              dimgrey: "#696969",
              dodgerblue: "#1E90FF",
              firebrick: "#B22222",
              floralwhite: "#FFFAF0",
              forestgreen: "#228B22",
              gainsboro: "#DCDCDC",
              ghostwhite: "#F8F8FF",
              gold: "#FFD700",
              goldenrod: "#DAA520",
              grey: "#808080",
              greenyellow: "#ADFF2F",
              honeydew: "#F0FFF0",
              hotpink: "#FF69B4",
              indianred: "#CD5C5C",
              indigo: "#4B0082",
              ivory: "#FFFFF0",
              khaki: "#F0E68C",
              lavender: "#E6E6FA",
              lavenderblush: "#FFF0F5",
              lawngreen: "#7CFC00",
              lemonchiffon: "#FFFACD",
              lightblue: "#ADD8E6",
              lightcoral: "#F08080",
              lightcyan: "#E0FFFF",
              lightgoldenrodyellow: "#FAFAD2",
              lightgreen: "#90EE90",
              lightgrey: "#D3D3D3",
              lightpink: "#FFB6C1",
              lightsalmon: "#FFA07A",
              lightseagreen: "#20B2AA",
              lightskyblue: "#87CEFA",
              lightslategray: "#778899",
              lightslategrey: "#778899",
              lightsteelblue: "#B0C4DE",
              lightyellow: "#FFFFE0",
              limegreen: "#32CD32",
              linen: "#FAF0E6",
              magenta: "#FF00FF",
              mediumaquamarine: "#66CDAA",
              mediumblue: "#0000CD",
              mediumorchid: "#BA55D3",
              mediumpurple: "#9370DB",
              mediumseagreen: "#3CB371",
              mediumslateblue: "#7B68EE",
              mediumspringgreen: "#00FA9A",
              mediumturquoise: "#48D1CC",
              mediumvioletred: "#C71585",
              midnightblue: "#191970",
              mintcream: "#F5FFFA",
              mistyrose: "#FFE4E1",
              moccasin: "#FFE4B5",
              navajowhite: "#FFDEAD",
              oldlace: "#FDF5E6",
              olivedrab: "#6B8E23",
              orange: "#FFA500",
              orangered: "#FF4500",
              orchid: "#DA70D6",
              palegoldenrod: "#EEE8AA",
              palegreen: "#98FB98",
              paleturquoise: "#AFEEEE",
              palevioletred: "#DB7093",
              papayawhip: "#FFEFD5",
              peachpuff: "#FFDAB9",
              peru: "#CD853F",
              pink: "#FFC0CB",
              plum: "#DDA0DD",
              powderblue: "#B0E0E6",
              rosybrown: "#BC8F8F",
              royalblue: "#4169E1",
              saddlebrown: "#8B4513",
              salmon: "#FA8072",
              sandybrown: "#F4A460",
              seagreen: "#2E8B57",
              seashell: "#FFF5EE",
              sienna: "#A0522D",
              skyblue: "#87CEEB",
              slateblue: "#6A5ACD",
              slategray: "#708090",
              slategrey: "#708090",
              snow: "#FFFAFA",
              springgreen: "#00FF7F",
              steelblue: "#4682B4",
              tan: "#D2B48C",
              thistle: "#D8BFD8",
              tomato: "#FF6347",
              turquoise: "#40E0D0",
              violet: "#EE82EE",
              wheat: "#F5DEB3",
              whitesmoke: "#F5F5F5",
              yellowgreen: "#9ACD32"
          };
  
          function g(i) {
              var m = i.indexOf("(", 3);
              var Z = i.indexOf(")", m + 1);
              var j = i.substring(m + 1, Z).split(",");
              if (j.length == 4 && i.substr(3, 1) == "a") {
                  alpha = Number(j[3])
              } else {
                  j[3] = 1
              }
              return j
          }
  
          function C(Z) {
              return parseFloat(Z) / 100
          }
  
          function N(i, j, Z) {
              return Math.min(Z, Math.max(j, i))
          }
  
          function c(AF) {
              var j, i, Z;
              h = parseFloat(AF[0]) / 360 % 360;
              if (h < 0) {
                  h++
              }
              s = N(C(AF[1]), 0, 1);
              l = N(C(AF[2]), 0, 1);
              if (s == 0) {
                  j = i = Z = l
              } else {
                  var m = l < 0.5 ? l * (1 + s) : l + s - l * s;
                  var AE = 2 * l - m;
                  j = A(AE, m, h + 1 / 3);
                  i = A(AE, m, h);
                  Z = A(AE, m, h - 1 / 3)
              }
              return "#" + I[Math.floor(j * 255)] + I[Math.floor(i * 255)] + I[Math.floor(Z * 255)]
          }
  
          function A(i, Z, j) {
              if (j < 0) {
                  j++
              }
              if (j > 1) {
                  j--
              }
              if (6 * j < 1) {
                  return i + (Z - i) * 6 * j
              } else {
                  if (2 * j < 1) {
                      return Z
                  } else {
                      if (3 * j < 2) {
                          return i + (Z - i) * (2 / 3 - j) * 6
                      } else {
                          return i
                      }
                  }
              }
          }
  
          function Y(Z) {
              var AE, p = 1;
              Z = String(Z);
              if (Z.charAt(0) == "#") {
                  AE = Z
              } else {
                  if (/^rgb/.test(Z)) {
                      var m = g(Z);
                      var AE = "#",
                          AF;
                      for (var j = 0; j < 3; j++) {
                          if (m[j].indexOf("%") != -1) {
                              AF = Math.floor(C(m[j]) * 255)
                          } else {
                              AF = Number(m[j])
                          }
                          AE += I[N(AF, 0, 255)]
                      }
                      p = m[3]
                  } else {
                      if (/^hsl/.test(Z)) {
                          var m = g(Z);
                          AE = c(m);
                          p = m[3]
                      } else {
                          AE = B[Z] || Z
                      }
                  }
              }
              return {
                  color: AE,
                  alpha: p
              }
          }
          var L = {
              style: "normal",
              variant: "normal",
              weight: "normal",
              size: 10,
              family: "sans-serif"
          };
          var f = {};
  
          function X(Z) {
              if (f[Z]) {
                  return f[Z]
              }
              var m = document.createElement("div");
              var j = m.style;
              try {
                  j.font = Z
              } catch (i) {}
              return f[Z] = {
                  style: j.fontStyle || L.style,
                  variant: j.fontVariant || L.variant,
                  weight: j.fontWeight || L.weight,
                  size: j.fontSize || L.size,
                  family: j.fontFamily || L.family
              }
          }
  
          function P(j, i) {
              var Z = {};
              for (var AF in j) {
                  Z[AF] = j[AF]
              }
              var AE = parseFloat(i.currentStyle.fontSize),
                  m = parseFloat(j.size);
              if (typeof j.size == "number") {
                  Z.size = j.size
              } else {
                  if (j.size.indexOf("px") != -1) {
                      Z.size = m
                  } else {
                      if (j.size.indexOf("em") != -1) {
                          Z.size = AE * m
                      } else {
                          if (j.size.indexOf("%") != -1) {
                              Z.size = (AE / 100) * m
                          } else {
                              if (j.size.indexOf("pt") != -1) {
                                  Z.size = m / 0.75
                              } else {
                                  Z.size = AE
                              }
                          }
                      }
                  }
              }
              Z.size *= 0.981;
              return Z
          }
  
          function AA(Z) {
              return Z.style + " " + Z.variant + " " + Z.weight + " " + Z.size + "px " + Z.family
          }
  
          function t(Z) {
              switch (Z) {
                  case "butt":
                      return "flat";
                  case "round":
                      return "round";
                  case "square":
                  default:
                      return "square"
              }
          }
  
          function W(i) {
              this.m_ = V();
              this.mStack_ = [];
              this.aStack_ = [];
              this.currentPath_ = [];
              this.strokeStyle = "#000";
              this.fillStyle = "#000";
              this.lineWidth = 1;
              this.lineJoin = "miter";
              this.lineCap = "butt";
              this.miterLimit = D * 1;
              this.globalAlpha = 1;
              this.font = "10px sans-serif";
              this.textAlign = "left";
              this.textBaseline = "alphabetic";
              this.canvas = i;
              var Z = i.ownerDocument.createElement("div");
              Z.style.width = i.clientWidth + "px";
              Z.style.height = i.clientHeight + "px";
              Z.style.overflow = "hidden";
              Z.style.position = "absolute";
              i.appendChild(Z);
              this.element_ = Z;
              this.arcScaleX_ = 1;
              this.arcScaleY_ = 1;
              this.lineScale_ = 1
          }
          var M = W.prototype;
          M.clearRect = function() {
              if (this.textMeasureEl_) {
                  this.textMeasureEl_.removeNode(true);
                  this.textMeasureEl_ = null
              }
              this.element_.innerHTML = ""
          };
          M.beginPath = function() {
              this.currentPath_ = []
          };
          M.moveTo = function(i, Z) {
              var j = this.getCoords_(i, Z);
              this.currentPath_.push({
                  type: "moveTo",
                  x: j.x,
                  y: j.y
              });
              this.currentX_ = j.x;
              this.currentY_ = j.y
          };
          M.lineTo = function(i, Z) {
              var j = this.getCoords_(i, Z);
              this.currentPath_.push({
                  type: "lineTo",
                  x: j.x,
                  y: j.y
              });
              this.currentX_ = j.x;
              this.currentY_ = j.y
          };
          M.bezierCurveTo = function(j, i, AI, AH, AG, AE) {
              var Z = this.getCoords_(AG, AE);
              var AF = this.getCoords_(j, i);
              var m = this.getCoords_(AI, AH);
              e(this, AF, m, Z)
          };
  
          function e(Z, m, j, i) {
              Z.currentPath_.push({
                  type: "bezierCurveTo",
                  cp1x: m.x,
                  cp1y: m.y,
                  cp2x: j.x,
                  cp2y: j.y,
                  x: i.x,
                  y: i.y
              });
              Z.currentX_ = i.x;
              Z.currentY_ = i.y
          }
          M.quadraticCurveTo = function(AG, j, i, Z) {
              var AF = this.getCoords_(AG, j);
              var AE = this.getCoords_(i, Z);
              var AH = {
                  x: this.currentX_ + 2 / 3 * (AF.x - this.currentX_),
                  y: this.currentY_ + 2 / 3 * (AF.y - this.currentY_)
              };
              var m = {
                  x: AH.x + (AE.x - this.currentX_) / 3,
                  y: AH.y + (AE.y - this.currentY_) / 3
              };
              e(this, AH, m, AE)
          };
          M.arc = function(AJ, AH, AI, AE, i, j) {
              AI *= D;
              var AN = j ? "at" : "wa";
              var AK = AJ + U(AE) * AI - F;
              var AM = AH + J(AE) * AI - F;
              var Z = AJ + U(i) * AI - F;
              var AL = AH + J(i) * AI - F;
              if (AK == Z && !j) {
                  AK += 0.125
              }
              var m = this.getCoords_(AJ, AH);
              var AG = this.getCoords_(AK, AM);
              var AF = this.getCoords_(Z, AL);
              this.currentPath_.push({
                  type: AN,
                  x: m.x,
                  y: m.y,
                  radius: AI,
                  xStart: AG.x,
                  yStart: AG.y,
                  xEnd: AF.x,
                  yEnd: AF.y
              })
          };
          M.rect = function(j, i, Z, m) {
              this.moveTo(j, i);
              this.lineTo(j + Z, i);
              this.lineTo(j + Z, i + m);
              this.lineTo(j, i + m);
              this.closePath()
          };
          M.strokeRect = function(j, i, Z, m) {
              var p = this.currentPath_;
              this.beginPath();
              this.moveTo(j, i);
              this.lineTo(j + Z, i);
              this.lineTo(j + Z, i + m);
              this.lineTo(j, i + m);
              this.closePath();
              this.stroke();
              this.currentPath_ = p
          };
          M.fillRect = function(j, i, Z, m) {
              var p = this.currentPath_;
              this.beginPath();
              this.moveTo(j, i);
              this.lineTo(j + Z, i);
              this.lineTo(j + Z, i + m);
              this.lineTo(j, i + m);
              this.closePath();
              this.fill();
              this.currentPath_ = p
          };
          M.createLinearGradient = function(i, m, Z, j) {
              var p = new v("gradient");
              p.x0_ = i;
              p.y0_ = m;
              p.x1_ = Z;
              p.y1_ = j;
              return p
          };
          M.createRadialGradient = function(m, AE, j, i, p, Z) {
              var AF = new v("gradientradial");
              AF.x0_ = m;
              AF.y0_ = AE;
              AF.r0_ = j;
              AF.x1_ = i;
              AF.y1_ = p;
              AF.r1_ = Z;
              return AF
          };
          M.drawImage = function(AO, j) {
              var AH, AF, AJ, AV, AM, AK, AQ, AX;
              var AI = AO.runtimeStyle.width;
              var AN = AO.runtimeStyle.height;
              AO.runtimeStyle.width = "auto";
              AO.runtimeStyle.height = "auto";
              var AG = AO.width;
              var AT = AO.height;
              AO.runtimeStyle.width = AI;
              AO.runtimeStyle.height = AN;
              if (arguments.length == 3) {
                  AH = arguments[1];
                  AF = arguments[2];
                  AM = AK = 0;
                  AQ = AJ = AG;
                  AX = AV = AT
              } else {
                  if (arguments.length == 5) {
                      AH = arguments[1];
                      AF = arguments[2];
                      AJ = arguments[3];
                      AV = arguments[4];
                      AM = AK = 0;
                      AQ = AG;
                      AX = AT
                  } else {
                      if (arguments.length == 9) {
                          AM = arguments[1];
                          AK = arguments[2];
                          AQ = arguments[3];
                          AX = arguments[4];
                          AH = arguments[5];
                          AF = arguments[6];
                          AJ = arguments[7];
                          AV = arguments[8]
                      } else {
                          throw Error("Invalid number of arguments")
                      }
                  }
              }
              var AW = this.getCoords_(AH, AF);
              var m = AQ / 2;
              var i = AX / 2;
              var AU = [];
              var Z = 10;
              var AE = 10;
              AU.push(" <g_vml_:group", ' coordsize="', D * Z, ",", D * AE, '"', ' coordorigin="0,0"', ' style="width:', Z, "px;height:", AE, "px;position:absolute;");
              if (this.m_[0][0] != 1 || this.m_[0][1] || this.m_[1][1] != 1 || this.m_[1][0]) {
                  var p = [];
                  p.push("M11=", this.m_[0][0], ",", "M12=", this.m_[1][0], ",", "M21=", this.m_[0][1], ",", "M22=", this.m_[1][1], ",", "Dx=", K(AW.x / D), ",", "Dy=", K(AW.y / D), "");
                  var AS = AW;
                  var AR = this.getCoords_(AH + AJ, AF);
                  var AP = this.getCoords_(AH, AF + AV);
                  var AL = this.getCoords_(AH + AJ, AF + AV);
                  AS.x = z.max(AS.x, AR.x, AP.x, AL.x);
                  AS.y = z.max(AS.y, AR.y, AP.y, AL.y);
                  AU.push("padding:0 ", K(AS.x / D), "px ", K(AS.y / D), "px 0;filter:progid:DXImageTransform.Microsoft.Matrix(", p.join(""), ", sizingmethod='clip');")
              } else {
                  AU.push("top:", K(AW.y / D), "px;left:", K(AW.x / D), "px;")
              }
              AU.push(' ">', '<g_vml_:image src="', AO.src, '"', ' style="width:', D * AJ, "px;", " height:", D * AV, 'px"', ' cropleft="', AM / AG, '"', ' croptop="', AK / AT, '"', ' cropright="', (AG - AM - AQ) / AG, '"', ' cropbottom="', (AT - AK - AX) / AT, '"', " />", "</g_vml_:group>");
              this.element_.insertAdjacentHTML("BeforeEnd", AU.join(""))
          };
          M.stroke = function(AM) {
              var m = 10;
              var AN = 10;
              var AE = 5000;
              var AG = {
                  x: null,
                  y: null
              };
              var AL = {
                  x: null,
                  y: null
              };
              for (var AH = 0; AH < this.currentPath_.length; AH += AE) {
                  var AK = [];
                  var AF = false;
                  AK.push("<g_vml_:shape", ' filled="', !!AM, '"', ' style="position:absolute;width:', m, "px;height:", AN, 'px;"', ' coordorigin="0,0"', ' coordsize="', D * m, ",", D * AN, '"', ' stroked="', !AM, '"', ' path="');
                  var AO = false;
                  for (var AI = AH; AI < Math.min(AH + AE, this.currentPath_.length); AI++) {
                      if (AI % AE == 0 && AI > 0) {
                          AK.push(" m ", K(this.currentPath_[AI - 1].x), ",", K(this.currentPath_[AI - 1].y))
                      }
                      var Z = this.currentPath_[AI];
                      var AJ;
                      switch (Z.type) {
                          case "moveTo":
                              AJ = Z;
                              AK.push(" m ", K(Z.x), ",", K(Z.y));
                              break;
                          case "lineTo":
                              AK.push(" l ", K(Z.x), ",", K(Z.y));
                              break;
                          case "close":
                              AK.push(" x ");
                              Z = null;
                              break;
                          case "bezierCurveTo":
                              AK.push(" c ", K(Z.cp1x), ",", K(Z.cp1y), ",", K(Z.cp2x), ",", K(Z.cp2y), ",", K(Z.x), ",", K(Z.y));
                              break;
                          case "at":
                          case "wa":
                              AK.push(" ", Z.type, " ", K(Z.x - this.arcScaleX_ * Z.radius), ",", K(Z.y - this.arcScaleY_ * Z.radius), " ", K(Z.x + this.arcScaleX_ * Z.radius), ",", K(Z.y + this.arcScaleY_ * Z.radius), " ", K(Z.xStart), ",", K(Z.yStart), " ", K(Z.xEnd), ",", K(Z.yEnd));
                              break
                      }
                      if (Z) {
                          if (AG.x == null || Z.x < AG.x) {
                              AG.x = Z.x
                          }
                          if (AL.x == null || Z.x > AL.x) {
                              AL.x = Z.x
                          }
                          if (AG.y == null || Z.y < AG.y) {
                              AG.y = Z.y
                          }
                          if (AL.y == null || Z.y > AL.y) {
                              AL.y = Z.y
                          }
                      }
                  }
                  AK.push(' ">');
                  if (!AM) {
                      R(this, AK)
                  } else {
                      a(this, AK, AG, AL)
                  }
                  AK.push("</g_vml_:shape>");
                  this.element_.insertAdjacentHTML("beforeEnd", AK.join(""))
              }
          };
  
          function R(j, AE) {
              var i = Y(j.strokeStyle);
              var m = i.color;
              var p = i.alpha * j.globalAlpha;
              var Z = j.lineScale_ * j.lineWidth;
              if (Z < 1) {
                  p *= Z
              }
              AE.push("<g_vml_:stroke", ' opacity="', p, '"', ' joinstyle="', j.lineJoin, '"', ' miterlimit="', j.miterLimit, '"', ' endcap="', t(j.lineCap), '"', ' weight="', Z, 'px"', ' color="', m, '" />')
          }
  
          function a(AO, AG, Ah, AP) {
              var AH = AO.fillStyle;
              var AY = AO.arcScaleX_;
              var AX = AO.arcScaleY_;
              var Z = AP.x - Ah.x;
              var m = AP.y - Ah.y;
              if (AH instanceof v) {
                  var AL = 0;
                  var Ac = {
                      x: 0,
                      y: 0
                  };
                  var AU = 0;
                  var AK = 1;
                  if (AH.type_ == "gradient") {
                      var AJ = AH.x0_ / AY;
                      var j = AH.y0_ / AX;
                      var AI = AH.x1_ / AY;
                      var Aj = AH.y1_ / AX;
                      var Ag = AO.getCoords_(AJ, j);
                      var Af = AO.getCoords_(AI, Aj);
                      var AE = Af.x - Ag.x;
                      var p = Af.y - Ag.y;
                      AL = Math.atan2(AE, p) * 180 / Math.PI;
                      if (AL < 0) {
                          AL += 360
                      }
                      if (AL < 0.000001) {
                          AL = 0
                      }
                  } else {
                      var Ag = AO.getCoords_(AH.x0_, AH.y0_);
                      Ac = {
                          x: (Ag.x - Ah.x) / Z,
                          y: (Ag.y - Ah.y) / m
                      };
                      Z /= AY * D;
                      m /= AX * D;
                      var Aa = z.max(Z, m);
                      AU = 2 * AH.r0_ / Aa;
                      AK = 2 * AH.r1_ / Aa - AU
                  }
                  var AS = AH.colors_;
                  AS.sort(function(Ak, i) {
                      return Ak.offset - i.offset
                  });
                  var AN = AS.length;
                  var AR = AS[0].color;
                  var AQ = AS[AN - 1].color;
                  var AW = AS[0].alpha * AO.globalAlpha;
                  var AV = AS[AN - 1].alpha * AO.globalAlpha;
                  var Ab = [];
                  for (var Ae = 0; Ae < AN; Ae++) {
                      var AM = AS[Ae];
                      Ab.push(AM.offset * AK + AU + " " + AM.color)
                  }
                  AG.push('<g_vml_:fill type="', AH.type_, '"', ' method="none" focus="100%"', ' color="', AR, '"', ' color2="', AQ, '"', ' colors="', Ab.join(","), '"', ' opacity="', AV, '"', ' g_o_:opacity2="', AW, '"', ' angle="', AL, '"', ' focusposition="', Ac.x, ",", Ac.y, '" />')
              } else {
                  if (AH instanceof u) {
                      if (Z && m) {
                          var AF = -Ah.x;
                          var AZ = -Ah.y;
                          AG.push("<g_vml_:fill", ' position="', AF / Z * AY * AY, ",", AZ / m * AX * AX, '"', ' type="tile"', ' src="', AH.src_, '" />')
                      }
                  } else {
                      var Ai = Y(AO.fillStyle);
                      var AT = Ai.color;
                      var Ad = Ai.alpha * AO.globalAlpha;
                      AG.push('<g_vml_:fill color="', AT, '" opacity="', Ad, '" />')
                  }
              }
          }
          M.fill = function() {
              this.stroke(true)
          };
          M.closePath = function() {
              this.currentPath_.push({
                  type: "close"
              })
          };
          M.getCoords_ = function(j, i) {
              var Z = this.m_;
              return {
                  x: D * (j * Z[0][0] + i * Z[1][0] + Z[2][0]) - F,
                  y: D * (j * Z[0][1] + i * Z[1][1] + Z[2][1]) - F
              }
          };
          M.save = function() {
              var Z = {};
              Q(this, Z);
              this.aStack_.push(Z);
              this.mStack_.push(this.m_);
              this.m_ = d(V(), this.m_)
          };
          M.restore = function() {
              if (this.aStack_.length) {
                  Q(this.aStack_.pop(), this);
                  this.m_ = this.mStack_.pop()
              }
          };
  
          function H(Z) {
              return isFinite(Z[0][0]) && isFinite(Z[0][1]) && isFinite(Z[1][0]) && isFinite(Z[1][1]) && isFinite(Z[2][0]) && isFinite(Z[2][1])
          }
  
          function y(i, Z, j) {
              if (!H(Z)) {
                  return
              }
              i.m_ = Z;
              if (j) {
                  var p = Z[0][0] * Z[1][1] - Z[0][1] * Z[1][0];
                  i.lineScale_ = k(b(p))
              }
          }
          M.translate = function(j, i) {
              var Z = [
                  [1, 0, 0],
                  [0, 1, 0],
                  [j, i, 1]
              ];
              y(this, d(Z, this.m_), false)
          };
          M.rotate = function(i) {
              var m = U(i);
              var j = J(i);
              var Z = [
                  [m, j, 0],
                  [-j, m, 0],
                  [0, 0, 1]
              ];
              y(this, d(Z, this.m_), false)
          };
          M.scale = function(j, i) {
              this.arcScaleX_ *= j;
              this.arcScaleY_ *= i;
              var Z = [
                  [j, 0, 0],
                  [0, i, 0],
                  [0, 0, 1]
              ];
              y(this, d(Z, this.m_), true)
          };
          M.transform = function(p, m, AF, AE, i, Z) {
              var j = [
                  [p, m, 0],
                  [AF, AE, 0],
                  [i, Z, 1]
              ];
              y(this, d(j, this.m_), true)
          };
          M.setTransform = function(AE, p, AG, AF, j, i) {
              var Z = [
                  [AE, p, 0],
                  [AG, AF, 0],
                  [j, i, 1]
              ];
              y(this, Z, true)
          };
          M.drawText_ = function(AK, AI, AH, AN, AG) {
              var AM = this.m_,
                  AQ = 1000,
                  i = 0,
                  AP = AQ,
                  AF = {
                      x: 0,
                      y: 0
                  },
                  AE = [];
              var Z = P(X(this.font), this.element_);
              var j = AA(Z);
              var AR = this.element_.currentStyle;
              var p = this.textAlign.toLowerCase();
              switch (p) {
                  case "left":
                  case "center":
                  case "right":
                      break;
                  case "end":
                      p = AR.direction == "ltr" ? "right" : "left";
                      break;
                  case "start":
                      p = AR.direction == "rtl" ? "right" : "left";
                      break;
                  default:
                      p = "left"
              }
              switch (this.textBaseline) {
                  case "hanging":
                  case "top":
                      AF.y = Z.size / 1.75;
                      break;
                  case "middle":
                      break;
                  default:
                  case null:
                  case "alphabetic":
                  case "ideographic":
                  case "bottom":
                      AF.y = -Z.size / 2.25;
                      break
              }
              switch (p) {
                  case "right":
                      i = AQ;
                      AP = 0.05;
                      break;
                  case "center":
                      i = AP = AQ / 2;
                      break
              }
              var AO = this.getCoords_(AI + AF.x, AH + AF.y);
              AE.push('<g_vml_:line from="', -i, ' 0" to="', AP, ' 0.05" ', ' coordsize="100 100" coordorigin="0 0"', ' filled="', !AG, '" stroked="', !!AG, '" style="position:absolute;width:1px;height:1px;">');
              if (AG) {
                  R(this, AE)
              } else {
                  a(this, AE, {
                      x: -i,
                      y: 0
                  }, {
                      x: AP,
                      y: Z.size
                  })
              }
              var AL = AM[0][0].toFixed(3) + "," + AM[1][0].toFixed(3) + "," + AM[0][1].toFixed(3) + "," + AM[1][1].toFixed(3) + ",0,0";
              var AJ = K(AO.x / D) + "," + K(AO.y / D);
              AE.push('<g_vml_:skew on="t" matrix="', AL, '" ', ' offset="', AJ, '" origin="', i, ' 0" />', '<g_vml_:path textpathok="true" />', '<g_vml_:textpath on="true" string="', AD(AK), '" style="v-text-align:', p, ";font:", AD(j), '" /></g_vml_:line>');
              this.element_.insertAdjacentHTML("beforeEnd", AE.join(""))
          };
          M.fillText = function(j, Z, m, i) {
              this.drawText_(j, Z, m, i, false)
          };
          M.strokeText = function(j, Z, m, i) {
              this.drawText_(j, Z, m, i, true)
          };
          M.measureText = function(j) {
              if (!this.textMeasureEl_) {
                  var Z = '<span style="position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;"></span>';
                  this.element_.insertAdjacentHTML("beforeEnd", Z);
                  this.textMeasureEl_ = this.element_.lastChild
              }
              var i = this.element_.ownerDocument;
              this.textMeasureEl_.innerHTML = "";
              this.textMeasureEl_.style.font = this.font;
              this.textMeasureEl_.appendChild(i.createTextNode(j));
              return {
                  width: this.textMeasureEl_.offsetWidth
              }
          };
          M.clip = function() {};
          M.arcTo = function() {};
          M.createPattern = function(i, Z) {
              return new u(i, Z)
          };
  
          function v(Z) {
              this.type_ = Z;
              this.x0_ = 0;
              this.y0_ = 0;
              this.r0_ = 0;
              this.x1_ = 0;
              this.y1_ = 0;
              this.r1_ = 0;
              this.colors_ = []
          }
          v.prototype.addColorStop = function(i, Z) {
              Z = Y(Z);
              this.colors_.push({
                  offset: i,
                  color: Z.color,
                  alpha: Z.alpha
              })
          };
  
          function u(i, Z) {
              q(i);
              switch (Z) {
                  case "repeat":
                  case null:
                  case "":
                      this.repetition_ = "repeat";
                      break;
                  case "repeat-x":
                  case "repeat-y":
                  case "no-repeat":
                      this.repetition_ = Z;
                      break;
                  default:
                      n("SYNTAX_ERR")
              }
              this.src_ = i.src;
              this.width_ = i.width;
              this.height_ = i.height
          }
  
          function n(Z) {
              throw new o(Z)
          }
  
          function q(Z) {
              if (!Z || Z.nodeType != 1 || Z.tagName != "IMG") {
                  n("TYPE_MISMATCH_ERR")
              }
              if (Z.readyState != "complete") {
                  n("INVALID_STATE_ERR")
              }
          }
  
          function o(Z) {
              this.code = this[Z];
              this.message = Z + ": DOM Exception " + this.code
          }
          var x = o.prototype = new Error;
          x.INDEX_SIZE_ERR = 1;
          x.DOMSTRING_SIZE_ERR = 2;
          x.HIERARCHY_REQUEST_ERR = 3;
          x.WRONG_DOCUMENT_ERR = 4;
          x.INVALID_CHARACTER_ERR = 5;
          x.NO_DATA_ALLOWED_ERR = 6;
          x.NO_MODIFICATION_ALLOWED_ERR = 7;
          x.NOT_FOUND_ERR = 8;
          x.NOT_SUPPORTED_ERR = 9;
          x.INUSE_ATTRIBUTE_ERR = 10;
          x.INVALID_STATE_ERR = 11;
          x.SYNTAX_ERR = 12;
          x.INVALID_MODIFICATION_ERR = 13;
          x.NAMESPACE_ERR = 14;
          x.INVALID_ACCESS_ERR = 15;
          x.VALIDATION_ERR = 16;
          x.TYPE_MISMATCH_ERR = 17;
          G_vmlCanvasManager = E;
          CanvasRenderingContext2D = W;
          CanvasGradient = v;
          CanvasPattern = u;
          DOMException = o
      })()
  };