/*
 * Copyright (c) 2009 Simo Kinnunen.
 * Licensed under the MIT license.
 *
 * @version 1.09i
 */
var Cufon = (function()
  {var m = function() {return m.replace.apply(null, arguments)};
    var x = m.DOM = {ready:
      (function()
        {var C = false, E = {loaded: 1, complete: 1};
          var B = [], D = function() {if(C) {return}C = true; for(var F; F = B.shift(); F()) {}}; if(document.addEventListener) {document.addEventListener("DOMContentLoaded", D, false); window.addEventListener("pageshow", D, false)}if(!window.opera&&document.readyState) {(function() {E[document.readyState]? D(): setTimeout(arguments.callee, 10)})()}if(document.readyState&&document.createStyleSheet) {(function() {try {document.body.doScroll("left"); D()}catch(F) {setTimeout(arguments.callee, 1)}})()}q(window, "load", D); return function(F) {if(!arguments.length) {D()}else {C? F(): B.push(F)}}}
      )(), root: function() {return document.documentElement||document.body}
    };
    var n = m.CSS = {Size: function(C, B) {this.value = parseFloat(C); this.unit = String(C).match(/[a-z%]*$/)[0]||"px"; this.convert = function(D) {return D/B*this.value}; this.convertFrom = function(D) {return D/this.value*B}; this.toString = function() {return this.value+this.unit}}, addClass: function(C, B) {var D = C.className; C.className = D+(D&&" ")+B; return C}, color: j(function(C) {var B = {}; B.color = C.replace(/^rgba\((.*?),\s*([\d.]+)\)/, function(E, D, F) {B.opacity = parseFloat(F); return"rgb("+D+")"}); return B}), fontStretch: j(function(B) {if(typeof B=="number") {return B}if(/%$/.test(B)) {return parseFloat(B)/100}return {"ultra-condensed": 0.5, "extra-condensed": 0.625, condensed: 0.75, "semi-condensed": 0.875, "semi-expanded": 1.125, expanded: 1.25, "extra-expanded": 1.5, "ultra-expanded": 2}[B]||1}), getStyle: function(C) {var B = document.defaultView; if(B&&B.getComputedStyle) {return new a(B.getComputedStyle(C, null))}if(C.currentStyle) {return new a(C.currentStyle)}return new a(C.style)}, gradient: j(function(F) {var G = {id: F, type: F.match(/^-([a-z]+)-gradient\(/)[1], stops:[]}, C = F.substr(F.indexOf("(")).match(/([\d.]+=)?(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)/ig); for(var E = 0, B = C.length, D; E<B; ++E) {D = C[E].split("=", 2).reverse(); G.stops.push([D[1]||E/(B-1), D[0]])}return G}), quotedList: j(function(E) {var D =[], C = /\s*((["'])([\s\S]*?[^\\])\2|[^,]+)\s*/g, B; while(B = C.exec(E)) {D.push(B[3]||B[1])}return D}), recognizesMedia: j(function(G) {var E = document.createElement("style"), D, C, B; E.type = "text/css"; E.media = G; try {E.appendChild(document.createTextNode("/**/"))}catch(F) {}C = g("head")[0]; C.insertBefore(E, C.firstChild); D = (E.sheet||E.styleSheet); B = D&&!D.disabled; C.removeChild(E); return B}), removeClass: function(D, C) {var B = RegExp("(?:^|\\s+)"+C+"(?=\\s|$)", "g"); D.className = D.className.replace(B, ""); return D}, supports: function(D, C) {var B = document.createElement("span").style; if(B[D]===undefined) {return false}B[D] = C; return B[D]===C}, textAlign: function(E, D, B, C) {if(D.get("textAlign")=="right") {if(B>0) {E = " "+E}}else {if(B<C-1) {E += " "}}return E}, textShadow: j
   (function(F)
    {if(F=="none") {return null}var E =[], G = {}, B, C = 0;
     var D = /(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)|(-?[\d.]+[a-z%]*)|,/ig; while(B = D.exec(F)) {if(B[0]==",") {E.push(G); G = {}; C = 0}else {if(B[1]) {G.color = B[1]}else {G[["offX", "offY", "blur"][C++]] = B[2]}}}E.push(G); return E}
   ), textTransform: (function() {var B = {uppercase: function(C) {return C.toUpperCase()}, lowercase: function(C) {return C.toLowerCase()}, capitalize: function(C) {return C.replace(/\b./g, function(D) {return D.toUpperCase()})}}; return function(E, D) {var C = B[D.get("textTransform")]; return C? C(E): E}})(), whiteSpace: (function() {var D = {inline: 1, "inline-block": 1, "run-in": 1};
     var C = /^\s+/, B = /\s+$/; return function(H, F, G, E) {if(E) {if(E.nodeName.toLowerCase()=="br") {H = H.replace(C, "")}}if(D[F.get("display")]) {return H}if(!G.previousSibling) {H = H.replace(C, "")}if(!G.nextSibling) {H = H.replace(B, "")}return H}}
   )()
  }; n.ready = (function() {var B = !n.recognizesMedia("all"), E = false;
    var D = [], H = function() {B = true; for(var K; K = D.shift(); K()) {}};
    var I = g("link"), J = g("style"); function C(K) {return K.disabled||G(K.sheet, K.media||"screen")}function G(M, P) {if(!n.recognizesMedia(P||"all")) {return true}if(!M||M.disabled) {return false}try {var Q = M.cssRules, O; if(Q) {search: for(var L = 0, K = Q.length; O = Q[L], L<K; ++L) {switch(O.type) {case 2: break; case 3: if(!G(O.styleSheet, O.media.mediaText)) {return false}break; default: break search}}}}catch(N) {}return true}function F() {if(document.createStyleSheet) {return true}var L, K; for(K = 0; L = I[K]; ++K) {if(L.rel.toLowerCase()=="stylesheet"&&!C(L)) {return false}}for(K = 0; L = J[K]; ++K) {if(!C(L)) {return false}}return true}x.ready(function() {if(!E) {E = n.getStyle(document.body).isUsable()}if(B||(E&&F())) {H()}else {setTimeout(arguments.callee, 10)}}); return function(K) {if(B) {K()}else {D.push(K)}}}
  )(); function s(D) {var C = this.face = D.face, B = {"\u0020": 1, "\u00a0": 1, "\u3000": 1}; this.glyphs = D.glyphs; this.w = D.w; this.baseSize = parseInt(C["units-per-em"], 10); this.family = C["font-family"].toLowerCase(); this.weight = C["font-weight"]; this.style = C["font-style"]||"normal"; this.viewBox = (function()
    {var F = C.bbox.split(/\s+/);
     var E = {minX: parseInt(F[0], 10), minY: parseInt(F[1], 10), maxX: parseInt(F[2], 10), maxY: parseInt(F[3], 10)}; E.width = E.maxX-E.minX; E.height = E.maxY-E.minY; E.toString = function() {return[this.minX, this.minY, this.width, this.height].join(" ")}; return E}
   )(); this.ascent = -parseInt(C.ascent, 10); this.descent = -parseInt(C.descent, 10); this.height = -this.ascent+this.descent; this.spacing = function(L, N, E) {var O = this.glyphs, M, K, G, P =[], F = 0, J = -1, I = -1, H; while(H = L[++J]) {M = O[H]||this.missingGlyph; if(!M) {continue}if(K) {F -= G = K[H]||0; P[I] -= G}F += P[++I] = ~~(M.w||this.w)+N+(B[H]? E: 0); K = M.k}P.total = F; return P}
  }function f() {var C = {}, B = {oblique: "italic", italic: "oblique"}; this.add = function(D) {(C[D.style]||(C[D.style] = {}))[D.weight] = D}; this.get = function(H, I) {var G = C[H]||C[B[H]]||C.normal||C.italic||C.oblique; if(!G) {return null}I = {normal: 400, bold: 700}[I]||parseInt(I, 10); if(G[I]) {return G[I]}var E = {1: 1, 99: 0}[I%100], K =[], F, D; if(E===undefined) {E = I>400}if(I==500) {I = 400}for(var J in G) {if(!k(G, J)) {continue}J = parseInt(J, 10); if(!F||J<F) {F = J}if(!D||J>D) {D = J}K.push(J)}if(I<F) {I = F}if(I>D) {I = D}K.sort(function(M, L) {return(E? (M>=I&&L>=I)? M<L: M>L: (M<=I&&L<=I)? M>L: M<L)? -1: 1}); return G[K[0]]}}function r() {function D(F, G) {if(F.contains) {return F.contains(G)}return F.compareDocumentPosition(G)&16}function B(G) {var F = G.relatedTarget; if(!F||D(this, F)) {return}C(this, G.type=="mouseover")}function E(F) {C(this, F.type=="mouseenter")}function C(F, G) {setTimeout(function() {var H = d.get(F).options; m.replace(F, G? h(H, H.hover): H, true)}, 10)}this.attach = function(F) {if(F.onmouseenter===undefined) {q(F, "mouseover", B); q(F, "mouseout", B)}else {q(F, "mouseenter", E); q(F, "mouseleave", E)}}}function u() {var C =[], D = {}; function B(H) {var E =[], G; for(var F = 0; G = H[F]; ++F) {E[F] = C[D[G]]}return E}this.add = function(F, E) {D[F] = C.push(E)-1}; this.repeat = function() {var E = arguments.length? B(arguments): C, F; for(var G = 0; F = E[G++];) {m.replace(F[0], F[1], true)}}}function A() {var D = {}, B = 0; function C(E) {return E.cufid||(E.cufid = ++B)}this.get = function(E) {var F = C(E); return D[F]||(D[F] = {})}}function a(B) {var D = {}, C = {}; this.extend = function(E) {for(var F in E) {if(k(E, F)) {D[F] = E[F]}}return this}; this.get = function(E) {return D[E]!=undefined? D[E]: B[E]}; this.getSize = function(F, E) {return C[F]||(C[F] = new n.Size(this.get(F), E))}; this.isUsable = function() {return !!B}}function q(C, B, D) {if(C.addEventListener) {C.addEventListener(B, D, false)}else {if(C.attachEvent) {C.attachEvent("on"+B, function() {return D.call(C, window.event)})}}}function v(C, B) {var D = d.get(C); if(D.options) {return C}if(B.hover&&B.hoverables[C.nodeName.toLowerCase()]) {b.attach(C)}D.options = B; return C}function j(B) {var C = {}; return function(D) {if(!k(C, D)) {C[D] = B.apply(null, arguments)}return C[D]}}function c(F, E) {var B = n.quotedList(E.get("fontFamily").toLowerCase()), D; for(var C = 0; D = B[C]; ++C) {if(i[D]) {return i[D].get(E.get("fontStyle"), E.get("fontWeight"))}}return null}function g(B) {return document.getElementsByTagName(B)}function k(C, B) {return C.hasOwnProperty(B)}function h() {var C = {}, B, F; for(var E = 0, D = arguments.length; B = arguments[E], E<D; ++E) {for(F in B) {if(k(B, F)) {C[F] = B[F]}}}return C}function o(E, M, C, N, F, D) {var K = document.createDocumentFragment(), H; if(M==="") {return K}var L = N.separate;
   var I = M.split(p[L]), B = (L=="words"); if(B&&t) {if(/^\s/.test(M)) {I.unshift("")}if(/\s$/.test(M)) {I.push("")}}for(var J = 0, G = I.length; J<G; ++J) {H = z[N.engine](E, B? n.textAlign(I[J], C, J, G): I[J], C, N, F, D, J<G-1); if(H) {K.appendChild(H)}}return K}function l(D, M) {var C = D.nodeName.toLowerCase(); if(M.ignore[C]) {return}var E = !M.textless[C];
   var B = n.getStyle(v(D, M)).extend(M);
   var F = c(D, B), G, K, I, H, L, J; if(!F) {return}for(G = D.firstChild; G; G = I) {K = G.nodeType; I = G.nextSibling; if(E&&K==3) {if(H) {H.appendData(G.data); D.removeChild(G)}else {H = G}if(I) {continue}}if(H) {D.replaceChild(o(F, n.whiteSpace(H.data, B, H, J), B, M, G, D), H); H = null}if(K==1) {if(G.firstChild) {if(G.nodeName.toLowerCase()=="cufon") {z[M.engine](F, null, B, M, G, D)}else {arguments.callee(G, M)}}J = G}}}var t = " ".split(/\s+/).length==0;
  var d = new A();
  var b = new r();
  var y = new u();
  var e = false;
  var z = {}, i = {}, w = {autoDetect: false, engine: null, forceHitArea: false, hover: false, hoverables: {a: true}, ignore: {applet: 1, canvas: 1, col: 1, colgroup: 1, head: 1, iframe: 1, map: 1, optgroup: 1, option: 1, script: 1, select: 1, style: 1, textarea: 1, title: 1, pre: 1}, printable: true, selector: (window.Sizzle||(window.jQuery&&function(B) {return jQuery(B)})||(window.dojo&&dojo.query)||(window.Ext&&Ext.query)||(window.YAHOO&&YAHOO.util&&YAHOO.util.Selector&&YAHOO.util.Selector.query)||(window.$$&&function(B) {return $$(B)})||(window.$&&function(B) {return $(B)})||(document.querySelectorAll&&function(B) {return document.querySelectorAll(B)})||g), separate: "words", textless: {dl: 1, html: 1, ol: 1, table: 1, tbody: 1, thead: 1, tfoot: 1, tr: 1, ul: 1}, textShadow: "none"};
  var p = {words: /\s/.test("\u00a0")? /[^\S\u00a0]+/: /\s+/, characters: "", none: /^/}; m.now = function() {x.ready(); return m}; m.refresh = function() {y.repeat.apply(y, arguments); return m}; m.registerEngine = function(C, B) {if(!B) {return m}z[C] = B; return m.set("engine", C)}; m.registerFont = function(D) {if(!D) {return m}var B = new s(D), C = B.family; if(!i[C]) {i[C] = new f()}i[C].add(B); return m.set("fontFamily", '"'+C+'"')}; m.replace = function(D, C, B) {C = h(w, C); if(!C.engine) {return m}if(!e) {n.addClass(x.root(), "cufon-active cufon-loading"); n.ready(function() {n.addClass(n.removeClass(x.root(), "cufon-loading"), "cufon-ready")}); e = true}if(C.hover) {C.forceHitArea = true}if(C.autoDetect) {delete C.fontFamily}if(typeof C.textShadow=="string") {C.textShadow = n.textShadow(C.textShadow)}if(typeof C.color=="string"&&/^-/.test(C.color)) {C.textGradient = n.gradient(C.color)}else {delete C.textGradient}if(!B) {y.add(D, arguments)}if(D.nodeType||typeof D=="string") {D =[D]}n.ready(function() {for(var F = 0, E = D.length; F<E; ++F) {var G = D[F]; if(typeof G=="string") {m.replace(C.selector(G), C, true)}else {l(G, C)}}}); return m}; m.set = function(B, C) {w[B] = C; return m}; return m}
)(); Cufon.registerEngine("vml", (function()
  {var e = document.namespaces; if(!e) {return}e.add("cvml", "urn:schemas-microsoft-com:vml"); e = null;
   var b = document.createElement("cvml:shape"); b.style.behavior = "url(#default#VML)"; if(!b.coordsize) {return}b = null;
   var h = (document.documentMode||0)<8; document.write(('<style type="text/css">cufoncanvas{text-indent:0;}@media screen{cvml\\:shape,cvml\\:rect,cvml\\:fill,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute;}cufoncanvas{position:absolute;text-align:left;}cufon{display:inline-block;position:relative;vertical-align:'+(h? "middle": "text-bottom")+";}cufon cufontext{position:absolute;left:-10000in;font-size:1px;}a cufon{cursor:pointer}}@media print{cufon cufoncanvas{display:none;}}</style>").replace(/;/g, "!important;")); function c(i, j) {return a(i, /(?:em|ex|%)$|^[a-z-]+$/i.test(j)? "1em": j)}function a(l, m) {if(m==="0") {return 0}if(/px$/i.test(m)) {return parseFloat(m)}var k = l.style.left, j = l.runtimeStyle.left; l.runtimeStyle.left = l.currentStyle.left; l.style.left = m.replace("%", "em");
    var i = l.style.pixelLeft; l.style.left = k; l.runtimeStyle.left = j; return i}function f(l, k, j, n) {var i = "computed"+n, m = k[i]; if(isNaN(m)) {m = k.get(n); k[i] = m = (m=="normal")? 0: ~~j.convertFrom(a(l, m))}return m}var g = {}; function d(p) {var q = p.id; if(!g[q]) {var n = p.stops, o = document.createElement("cvml:fill"), i =[]; o.type = "gradient"; o.angle = 180; o.focus = "0"; o.method = "sigma"; o.color = n[0][1]; for(var m = 1, l = n.length-1; m<l; ++m) {i.push(n[m][0]*100+"% "+n[m][1])}o.colors = i.join(","); o.color2 = n[l][1]; g[q] = o}return g[q]}return function(ac, G, Y, C, K, ad, W) {var n = (G===null); if(n) {G = K.alt}var I = ac.viewBox;
    var p = Y.computedFontSize||(Y.computedFontSize = new Cufon.CSS.Size(c(ad, Y.get("fontSize"))+"px", ac.baseSize));
    var y, q; if(n) {y = K; q = K.firstChild}else {y = document.createElement("cufon"); y.className = "cufon cufon-vml"; y.alt = G; q = document.createElement("cufoncanvas"); y.appendChild(q); if(C.printable) {var Z = document.createElement("cufontext"); Z.appendChild(document.createTextNode(G)); y.appendChild(Z)}if(!W) {y.appendChild(document.createElement("cvml:shape"))}}var ai = y.style;
    var R = q.style;
    var l = p.convert(I.height), af = Math.ceil(l);
    var V = af/l;
    var P = V*Cufon.CSS.fontStretch(Y.get("fontStretch"));
    var U = I.minX, T = I.minY; R.height = af; R.top = Math.round(p.convert(T-ac.ascent)); R.left = Math.round(p.convert(U)); ai.height = p.convert(ac.height)+"px";
    var F = Y.get("color");
    var ag = Cufon.CSS.textTransform(G, Y).split("");
    var L = ac.spacing(ag, f(ad, Y, p, "letterSpacing"), f(ad, Y, p, "wordSpacing")); if(!L.length) {return null}var k = L.total;
    var x = -U+k+(I.width-L[L.length-1]);
    var ah = p.convert(x*P), X = Math.round(ah);
    var O = x+","+I.height, m;
    var J = "r"+O+"ns";
    var u = C.textGradient&&d(C.textGradient);
    var o = ac.glyphs, S = 0;
    var H = C.textShadow;
    var ab = -1, aa = 0, w; while(w = ag[++ab]) {var D = o[ag[ab]]||ac.missingGlyph, v; if(!D) {continue}if(n) {v = q.childNodes[aa]; while(v.firstChild) {v.removeChild(v.firstChild)}}else {v = document.createElement("cvml:shape"); q.appendChild(v)}v.stroked = "f"; v.coordsize = O; v.coordorigin = m = (U-S)+","+T; v.path = (D.d? "m"+D.d+"xe": "")+"m"+m+J; v.fillcolor = F; if(u) {v.appendChild(u.cloneNode(false))}var ae = v.style; ae.width = X; ae.height = af; if(H)
     {var s = H[0], r = H[1];
      var B = Cufon.CSS.color(s.color), z;
      var N = document.createElement("cvml:shadow"); N.on = "t"; N.color = B.color; N.offset = s.offX+","+s.offY; if(r) {z = Cufon.CSS.color(r.color); N.type = "double"; N.color2 = z.color; N.offset2 = r.offX+","+r.offY}N.opacity = B.opacity||(z&&z.opacity)||1; v.appendChild(N)}S += L[aa++]
    }var M = v.nextSibling, t, A; if(C.forceHitArea) {if(!M) {M = document.createElement("cvml:rect"); M.stroked = "f"; M.className = "cufon-vml-cover"; t = document.createElement("cvml:fill"); t.opacity = 0; M.appendChild(t); q.appendChild(M)}A = M.style; A.width = X; A.height = af}else {if(M) {q.removeChild(M)}}ai.width = Math.max(Math.ceil(p.convert(k*P)), 0); if(h) {var Q = Y.computedYAdjust; if(Q===undefined) {var E = Y.get("lineHeight"); if(E=="normal") {E = "1em"}else {if(!isNaN(E)) {E += "em"}}Y.computedYAdjust = Q = 0.5*(a(ad, E)-parseFloat(ai.height))}if(Q) {ai.marginTop = Math.ceil(Q)+"px"; ai.marginBottom = Q+"px"}}return y
   }
  }
 )()
); Cufon.registerEngine("canvas", (function()
  {var b = document.createElement("canvas"); if(!b||!b.getContext||!b.getContext.apply) {return}b = null;
   var a = Cufon.CSS.supports("display", "inline-block");
   var e = !a&&(document.compatMode=="BackCompat"||/frameset|transitional/i.test(document.doctype.publicId));
   var f = document.createElement("style"); f.type = "text/css"; f.appendChild(document.createTextNode(("cufon{text-indent:0;}@media screen,projection{cufon{display:inline;display:inline-block;position:relative;vertical-align:middle;"+(e? "": "font-size:1px;line-height:1px;")+"}cufon cufontext{display:-moz-inline-box;display:inline-block;width:0;height:0;overflow:hidden;text-indent:-10000in;}"+(a? "cufon canvas{position:relative;}": "cufon canvas{position:absolute;}")+"}@media print{cufon{padding:0;}cufon canvas{display:none;}}").replace(/;/g, "!important;"))); document.getElementsByTagName("head")[0].appendChild(f); function d(p, h) {var n = 0, m = 0;
    var g = [], o = /([mrvxe])([^a-z]*)/g, k; generate: for(var j = 0; k = o.exec(p); ++j) {var l = k[2].split(","); switch(k[1]) {case"v": g[j] = {m: "bezierCurveTo", a:[n+~~l[0], m+~~l[1], n+~~l[2], m+~~l[3], n += ~~l[4], m += ~~l[5]]}; break; case"r": g[j] = {m: "lineTo", a:[n += ~~l[0], m += ~~l[1]]}; break; case"m": g[j] = {m: "moveTo", a:[n = ~~l[0], m = ~~l[1]]}; break; case"x": g[j] = {m: "closePath"}; break; case"e": break generate}h[g[j].m].apply(h, g[j].a)}return g}function c(m, k) {for(var j = 0, h = m.length; j<h; ++j) {var g = m[j]; k[g.m].apply(k, g.a)}}return function(V, w, P, t, C, W) {var k = (w===null); if(k) {w = C.getAttribute("alt")}var A = V.viewBox;
    var m = P.getSize("fontSize", V.baseSize);
    var B = 0, O = 0, N = 0, u = 0;
    var z = t.textShadow, L =[]; if(z) {for(var U = z.length; U--;)
     {var F = z[U];
      var K = m.convertFrom(parseFloat(F.offX));
      var I = m.convertFrom(parseFloat(F.offY)); L[U] =[K, I]; if(I<B) {B = I}if(K>O) {O = K}if(I>N) {N = I}if(K<u) {u = K}}
    }var Z = Cufon.CSS.textTransform(w, P).split("");
    var E = V.spacing(Z, ~~m.convertFrom(parseFloat(P.get("letterSpacing"))||0), ~~m.convertFrom(parseFloat(P.get("wordSpacing"))||0)); if(!E.length) {return null}var h = E.total; O += A.width-E[E.length-1]; u += A.minX;
    var s, n; if(k) {s = C; n = C.firstChild}else {s = document.createElement("cufon"); s.className = "cufon cufon-canvas"; s.setAttribute("alt", w); n = document.createElement("canvas"); s.appendChild(n); if(t.printable) {var S = document.createElement("cufontext"); S.appendChild(document.createTextNode(w)); s.appendChild(S)}}var aa = s.style;
    var H = n.style;
    var j = m.convert(A.height);
    var Y = Math.ceil(j);
    var M = Y/j;
    var G = M*Cufon.CSS.fontStretch(P.get("fontStretch"));
    var J = h*G;
    var Q = Math.ceil(m.convert(J+O-u));
    var o = Math.ceil(m.convert(A.height-B+N)); n.width = Q; n.height = o; H.width = Q+"px"; H.height = o+"px"; B += A.minY; H.top = Math.round(m.convert(B-V.ascent))+"px"; H.left = Math.round(m.convert(u))+"px";
    var r = Math.max(Math.ceil(m.convert(J)), 0)+"px"; if(a) {aa.width = r; aa.height = m.convert(V.height)+"px"}else {aa.paddingLeft = r; aa.paddingBottom = (m.convert(V.height)-1)+"px"}var X = n.getContext("2d"), D = j/A.height; X.scale(D, D*M); X.translate(-u, -B); X.save(); function T() {var x = V.glyphs, ab, l = -1, g = -1, y; X.scale(G, 1); while(y = Z[++l]) {var ab = x[Z[l]]||V.missingGlyph; if(!ab) {continue}if(ab.d) {X.beginPath(); if(ab.code) {c(ab.code, X)}else {ab.code = d("m"+ab.d, X)}X.fill()}X.translate(E[++g], 0)}X.restore()}if(z) {for(var U = z.length; U--;) {var F = z[U]; X.save(); X.fillStyle = F.color; X.translate.apply(X, L[U]); T()}}var q = t.textGradient; if(q) {var v = q.stops, p = X.createLinearGradient(0, A.minY, 0, A.maxY); for(var U = 0, R = v.length; U<R; ++U) {p.addColorStop.apply(p, v[U])}X.fillStyle = p}else {X.fillStyle = P.get("color")}T(); return s}
  }
 )()
);
